FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
¿Es necesario traer a la mente de todos una famosa frase de Martin Fowler para argumentar que el código debe ser escrito y entendido por un humano?
¿¡Que carajos importa si se escribe begin o {, que si es for i := 1 to N do ó for(i,i<=N,i++)!? A la máquina le da lo mismo ¿o no? Total a ella no le interesa si se usan 1 carácter o 17. Mientras pueda hacer su trabajo... Ya me está haciendo acordar la teoría de Hasteald cuando se intenta comparar a un lenguaje por la cantidad de caracteres y las LDC. No sabía que por escribir { se era mucho más óptimo y productivo que escribir begin. Recién me entero Pero al ojo y la mente humana les es mucho más ventajoso y útil poder entender lo que se escribe. El código está hecho y escrito por humanos, para ser entendidos por humanos no por una máquina. Bien dicen y afirman que con práctica, tiempo, dedicación, disciplina, y gusto (convengamos) uno fácilmente puede entender cualquier lenguaje y encontrarle equivalencias. Pero es mucho más ventajoso cuanto más al nivel de la lectura y la escritura humana esté. En C hay algunas cosas cripticas, y te fuerza a ser críptico. No es tan fácil leer un lenguaje que te "oculta" caracteres. Para ponerlo en óptica, no sin darlo con cierto humor: Delphi: NombreDeUnaFunción C: NmbrdnFncn ¡Si... claro... a eso le llaman leer! El código debe ser leído y entendido por un humano, no por una máquina. Quizá en parte se deba a la habilidad del programador... no lo discuto, pero que da mucho gusto el disfrutar de una buena sintaxis bastante amigable que no tiene nada que envidiar (o si lo tiene, es bastante poco) a la de otros lenguajes creo que ninguno lo puede negar. Si puedes leer C, fantástico... puedes leer Brainfuck... ¡increíble! Ahora dime... ¿Cuántas neuronas has fritado el día de hoy en la sarten de la criptografía? La verdad es que ya me cansa que se intente justificar el poder de C por sobre cualquier otro cuando se intenta estúpidamente buscarle sentido alguno que el { le permite ahorrar mucha más productividad, flexibilidad y algunos hasta rallan en la idea de que gracias a esa sintaxis es que se puede tener escabilidad y la posibilidad de llevarse a multiplataforma. ¡Vamos! Que si es multiplataforma, que si puede acceder al más bajo nivel no es por una cuestión de sintaxis... se debe a un buen diseño del compilador! La sintaxis entra sobrando. La palabra lenguaje de programación invita a algo que se pueda leer y entender, C oscurece ese principio con su sintaxis. Puede que sea una sintaxis que un humano puede entender, pero el esfuerzo gastado en eso se podría destinar a algo más. La sintaxis de Pascal fue hecha por un humano, para un humano. No me vengan con cuentos... Saludos, |
#2
|
|||
|
|||
Hola, releyendo el tema me he acordado de un articulo que lei sobre matematicas (no recuerdo fuentes, lo siento). Se ve que a partir de Euler (no estoy seguro si era Euler, pero si por el siglo XVII, XVIII) las matematicas hicieron un salto mas que importante debido a que se cambio su sintaxis. Antes de este cambio, se escribia, por ejemplo:"la incognita a descubrir multiplicada por si misma dos veces , adicionandose 3 veces mas a si misma y desplazandola una unidad hacia la raiz, sera igual a la raiz (cero)". Ademas, para mas inri, en latin que era la lengua culta, esto es, usando las declinaciones y esas cosas. Evidentemente, para un no iniciado x^2 + 3x - 1 = 0 es mucho mas misterioso que lo otro, pero para alguien con nociones le sera mucho mas sencillo leer (y escribir) la segunda opcion, con lo que su desarrollo y productividad usando la segunda opcion (dependiendo unicamente de la sintaxis) sera bastante mejor. Por otro lado, se ve que el rendimiento en matematicas de china y europa es bastante diferente por la misma razon, al menos en primaria: china tiene una sintaxis tradicional para los numeros, con signos, en los cuales estan implicitas las operaciones basicas (algo asi como los palitos de los numeros romanos) y su sistema de numeracion (algo asi como el cuatre-vint frances para el 80) permite hacer multiplicaciones y divisiones de manera muy natural y visual. Asi, dependiendo unicamente de la sintaxis, consiguen un mayor rendimiento al menos como ya digo en la enseñanza de la escuela primaria. Y ya directamente saltando a su habla, que es bastante estilo indio ("yo escribir forointernet mañana") tambien les permite mas velocidad y, digamos, rendimiento, perdiendo por eso claro esta, el poder expresar una gran cantidad de matices importantes.
Por otra banda, y en favor de sintaxis mas elaboradas, lo que si es cierto es que una sintaxis digamos cercana a nuestro lenguaje permite entender el problema, al menos los simples, de maneras mucho menos estrechas y mas humanas, no teniendo que "traducir" el problema a simbolos y luego "destraducir" los simbolos otra vez a conceptos entendibles o menos abstractos y mas materiales, digamos, lo que permite trabajar directamente con los conceptos y no olvidarnos de cualidades de estos conceptos por el camino. Usando la propia POO, lo que venia a decir en el parrafo anterior seria que intentar crear una clase tan abstracta y simple saltandonos propiedades que en principio considerariamos innecesarias no nos permitira ver que estas propiedades nos hubiesen hecho encontrar un metodo de resolucion mucho mas directo. El hecho de no tender a la simplicidad en la abstraccion permite, por ejemplo, hacer este tipo de demostraciones, pues se tiene en mente completamente el concepto a trabajar, y no unicamente su simbolo abstracto, lo que permite al menos a un ser humano, encontrar otras maneras para enfocar su problema (demostraciones geometricas tª pitagoras). En estos ejemplos, todo el razonamiento se hace con la sintaxis de "jugar con triangulos", que hasta un niño podria hacer y entender (el area de un cuadrado hecho del lado pequeño, mas la de otro cuadrado hecho del lado grande, y cuatro veces el triangulo con el que trabajar, sera igual a el area de un cuadrado hecho con el lado diagonal, mas la de cuatro veces el triangulo con el que trabajamos, por lo que si sacamos los cuatro triangulos, tenemos que el area un cuadrado del lado diagonal es igual a la de un cuadrado hecho con el lado pequeño mas la de un cuadrado hecho con el lado grande),mientras que si usamos la simplicidad de abstraccion de a^2 + b^2 = c^2, sera mucho mas complicado demostrarlo, y mas aun, llegar a "descubrirlo". Siento la parrafada XD pero la verdad es que personalmente creo que la sintaxis si importa en cuanto al rendimiento y, tambien, en cuanto al resultado final. Un saludo. |
#3
|
|||
|
|||
Reenvio de mensaje mil excusas.
|
#4
|
||||
|
||||
Este es un mal ejemplo, disculpa que te lo diga. Nada tiene que ver con sintaxis, sino, precisamente, con la habilidad (o falta de ella) de un programador del lenguaje que sea para escribir su código.
Lo que citas de Fowler no se contrapone con lo que algunos aquí sostenemos. El uso de abstracciones simbólicas no es exclusivo de las máquinas. La abstracción es, primero que nada, una prerrogativa del hombre. Tal como comenta coso y comenté yo al principio, las matemáticas hoy en día serían impensables sin la simbología que las sostiene. Asímismo sucede con la música, la lógica simbólica, la química, etc. Cuando alguien escribe la demostración de un teorema matemático, no está pensando en una máquina. Está, desde luego, escribiendo para humanos. Cita:
Cita:
Cita:
Cita:
Fíjate además, que en ningún momento dije que C fuera mejor que pascal; simplemente opiné que la mera sintaxis de pascal no hace a éste más sencillo que otros lenguajes. Recordarás que Wirth diseñó pascal específicamente para la enseñanza. En ese contexto, ciertamente puedo citar su sintaxis como más sencilla para quien empieza. Pero eso no significa que no podamos pasar a las llaves y sentirnos cómodos con ellas. Ni siquiera significa que debamos empezar con begin. // Saludos |
#5
|
||||
|
||||
Personalmente creo que la mejor sintaxis que eh llegado a ver es la de Python. Yo hago casi todo en pascal, pero siendo sincero me gusta hacer cosas en Delphi y luego las hago en C para experimentar.
PD. Ultimamente estoy metido en FreePascal xD. |
#6
|
||||
|
||||
Cualquier lenguaje simbólico es producto de la abstracción. Pero creo que cuando dice 'mas humano' quiere dar a entender la
cualidad del lenguaje Pascal, de asemejarse más al lenguaje coloquial. En este sentido, se podría decir que Pascal es más semejante al lenguaje cotidiano que C. C más que Assembler y COBOL quizá más que los anteriores. Pero pareciera que la calificación 'mas humano' pierde fuerza en la medida que nos referimos a programadores experimentados, ya que una vez que se maneja fluidamente un lenguaje, nos es tan habitual como cualquier otro. Otro tema diferente es la sencillez de un lenguaje. Cosa que pienso, es bastante subjetiva. Aunque hace tiempo no programo en C, yo veo una sintaxis clara en este código: int LargoDeCadena(char *s) { char *t = s; while(*t) t++; return(t-s); }; Pero seguramente un programador de COBOL, considerará más claro hacer el o los párrafos necesarios para que se realice esta tarea. Si bien es cierto que hay lenguajes que solucionan determinados problemas de forma más sencilla que otros, la afinidad con el lenguaje cuenta a la hora de escuchar a los que exaltan la sencillez del mismo. Del mismo modo como hay personas a las que les resulta más sencillo aprender el italiano que el francés, hay a quién le resulta mas sencillo PROLOG que SmallTalk. En cuanto a la legibilidad de la sintaxis coincido con que cuenta mucho la capacidad del programador de expresar claramente su código. Por supuesto poco puede hacerse al respecto si usamos Intercal, Brainfuck o Malbolgue... Un saludo. Última edición por ecfisa fecha: 23-11-2010 a las 07:58:10. |
#7
|
||||
|
||||
A mi la que me parece más humana es la sintaxis de ruby
Cita:
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..." |
#8
|
||||
|
||||
Off topic:
Xander: Es un gusto verte participar nuevamente después de tanto tiempo.
|
#9
|
||||
|
||||
Cita:
¡Un abrazo a todos!
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..." |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cambiar el Icono de un Exe, No hay manera humana. | lag_0 | Varios | 9 | 18-03-2008 04:05:11 |
Problema con sintaxis. | zvf | OOP | 5 | 13-03-2007 20:19:21 |
Sintaxis en el SQL | Alexander | SQL | 2 | 11-09-2006 18:13:17 |
Problemas con la sintaxis | andre navarrete | Conexión con bases de datos | 2 | 13-08-2006 16:48:47 |
"No existe parche para la estupidez humana" | Neftali [Germán.Estévez] | Noticias | 4 | 30-06-2006 19:36:58 |
|