Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
¿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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #2  
Antiguo 17-11-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 17-11-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Reenvio de mensaje mil excusas.
Responder Con Cita
  #4  
Antiguo 17-11-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Delphius Ver Mensaje
Delphi: NombreDeUnaFunción
C: NmbrdnFncn
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:
Empezado por Delphius
Pero al ojo y la mente humana les es mucho más ventajoso y útil poder entender lo que se escribe.
Así es, nadie lo niega. Pero somos seres racionales capaces de entender simbologías.

Cita:
Empezado por Delphius
El código está hecho y escrito por humanos, para ser entendidos por humanos no por una máquina.
[...]

Cita:
Empezado por Delphius
El código debe ser leído y entendido por un humano, no por una máquina.
El código debe ser claro para que las personas puedan leerlo y trabajar con él. Tan claro como debería serlo un artículo de economía o el informe del presidente. Pero desde luego que el código debe ser entendido por una máquina. Ése es su fin último. No escribimos código para solazarnos con lo hermoso que se ve. Escribimos código para instruir a una máquina a ejecutar procesos.

Cita:
Empezado por Delphius
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.
Digamos que a te da gusto la sintaxis de pascal. Y está muy bien. A mi también me da gusto. Pero también puedo disfrutar un buen código escrito en C.

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
Responder Con Cita
  #5  
Antiguo 22-11-2010
Avatar de javier_ecf
javier_ecf javier_ecf is offline
Miembro
 
Registrado: sep 2010
Posts: 32
Poder: 0
javier_ecf Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 23-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
Responder Con Cita
  #7  
Antiguo 09-12-2010
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
A mi la que me parece más humana es la sintaxis de ruby

Cita:
5.times {puts 'hello there!!'}
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #8  
Antiguo 09-12-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Off topic:

Xander: Es un gusto verte participar nuevamente después de tanto tiempo.
Responder Con Cita
  #9  
Antiguo 09-12-2010
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Xander: Es un gusto verte participar nuevamente después de tanto tiempo.
Que tal Al, y resto de los amigos del club; tiene mucho que ya no programo con Delphi, me migré a Ruby/Python hace ya algunos años y ahora frecuento otros terruños; solo pasaba a saludar y me da mucho gusto volver a saber de ustedes

¡Un abrazo a todos!
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 20:34:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi