PDA

Ver la Versión Completa : Sintaxis humana


roman
12-11-2010, 17:05:49
En un par de ocasiones he visto que nuestro amigo Al González defiende la sintaxis de pascal por sobre la de otros lenguajes como C o java argumentando que es más humana. Y yo me pregunto, ¿es esto realmente una ventaja?

Claro que se ven por ahí códigos en C que parecen jeroglíficos, pero también se ven códigos pascal sin ninguna clase de orden e igualmente ilegibles.

Creo que depende mucho de la habilidad del codificador para presentar algo que el humano pueda entender.

Pero más allá de eso, no deja de llamarme la atención la opinión de Al, porque, a fin de cuentas, la abstracción es inherente al ser humano, así que es también muy humana.

Como matemático que soy (o que fui) pienso en lo inmanejable que serían las matemáticas sin el uso de un pesado arsenal de símbolos y notaciones, muy poco humanos y definitivamente ilegibles para el no iniciado. Y, sin embargo, no solo están dirigidos a humanos sino que su uso es imprescindible para un cabal entendimiento.

Este hilo no es, desde luego, para criticar sino para compartir las opiniones de los demás en torno a este asunto:

¿Es una ventaja la sintaxis humana de pascal?

// Saludos

ContraVeneno
12-11-2010, 18:07:53
ding, ding, ding... Round 1, Figth!!

:D


¿"sintaxis humana"?... a mi me parece igual de ilegible delphi, c#, java o el que me digas... creo estar de acuerdo un poco en lo que comentas maese Roman y me pongo de ejemplo: una sintanxis para un "For" me da igual en cualquier lenguaje, porque la entiendo; y por el otro extremo, cualquier sintaxis referente a hilos de ejecución me parece ilegible, independientemente del lenguaje en el que esté.

Entonces, concuerdo que la apreciación de si es o no es una "sintaxis más humana", está completamente relacionada al nivel de conocimiento de la persona que hace dicha apreciación.

Saludos.

Casimiro Notevi
12-11-2010, 18:25:19
Yo vengo del lenguaje C y el código que estaba acostumbrado a escribir y ver en compañeros y amigos era "legible". Cierto es que por ahí veía código C que no lo entendía ni al derecho ni al revés.
Cuando llegué a delphi me pareció un lenguaje muy claro de entender pero no me gustó que había que escribir mucho. Quedaba legible también, muy legible, pero me parecía que escribía código innecesario, por ejemplo:


if(1)
{
...
}

if 1 then
begin
...
end
Es un ejemplo simplón, pero teclear 7 caracteres a 17 sólo en algo tan simple me parecía absurdo.

Ahora estoy acostumbrado, pero aún así me parece casi siempre que estoy tecleando demasiado.

Edito: Lo que quería explicar es que el lenguaje C me parecía lo más sencillo del mundo, te podías complicar tanto como quisieras, pero si no te gusta meterte en berenjenales entonces quedaba super claro, sencillo, conciso, simple, legigle (depende de cada uno).

duilioisola
12-11-2010, 20:36:20
Si piensan que Delphi, C o inclus0 Asembler tienen una sintaxis difícil, es porque no leyeron suficientes post en ClubDelphi. :confused:

Para muestra un botón (http://www.clubdelphi.com/foros/showthread.php?t=70829)

¿Qué es CFD?
¿Complemento de Impuestos locales? ¿Locales de dónde? ¿Locales al ordenado, al país, a la empresa?
¿nodo complemento<complmento>? ¿Es un árbol, una lista, alguna otra cosa?

¿En qué lenguage está delcarando la cuestión?

ContraVeneno
12-11-2010, 21:01:03
Si piensan que Delphi, C o inclus0 Asembler tienen una sintaxis difícil, es porque no leyeron suficientes post en ClubDelphi. :confused:

Para muestra un botón (http://www.clubdelphi.com/foros/showthread.php?t=70829)

¿Qué es CFD?
¿Complemento de Impuestos locales? ¿Locales de dónde? ¿Locales al ordenado, al país, a la empresa?
¿nodo complemento<complmento>? ¿Es un árbol, una lista, alguna otra cosa?

¿En qué lenguage está delcarando la cuestión?

CFD: comprobante fiscal digital, factura electrónica.
Impuestos locales: determinados en base a la legislación estatal vigente. Algún impuesto que cobran solo en ese estado o municipio.
<complemento>: sección del archivo XML donde se guarda la información de el CFD, en este caso, quiere guardar los impuestos locales dentro del XML en su nodo Complemento.

saludos :D:D

marcoszorrilla
12-11-2010, 21:11:51
A mi el lenguaje más humano siempre me parecio el Cobol, otra cosa es que el compilador sea eficiente o no y lo que se pueda hacer o no.

MULTIPLY 5 BY RESULTADO.
//Este otro es mucho menos humano.
Mov ah,5
Mov al,5
Mul ah,al



Un Saludo.

coso
13-11-2010, 14:26:43
Hola,
sigo defendiendo que la sintaxis de C es mucho mejor que la de pascal, aunque lo que se gana en simplicidad al escribir se pierde en lectura. Para ejemplo, un programa de ajedrez...


#define F getchar())
#define H(z)*n++=z;
#include <setjmp.h>
#define v main(0,0,0
#define Z while(
#define _ if(
#define o(d)(S=63,u[l]=0,l[d]=6^e,q=1e4>v,0),l[d]=0,u[l]=e^6,S=b,q)
#define I(H,n) { _ r=l[x=H],!r|(r^e)<-1){ _ j=u[l],-7==r|6==r\
){ n; e=~e; return 1e5-443*f; } u[l]=0,t=j+1,i=j-1; _!i&89<\
x)i=j,t=6; _-1==t&30>x)t=j,i=-7; Z++i<t){ d =0; S&= 63; \
a=((j^e)!=1?6!=(j^e)?O[32+x/10]-O[u/10+32]-q:(S|=6!=j?8\
:1,2==u-x)*9+9*(x-u==2):(d=1==j?x-u:u-x)/8+!(!((x-u)%\
10)|r)*99+(j==1?90<x:29>x)*(9*O[28+i]-288))+O[r+28\
]*9-288+O[x%10+33]-f-O[33+u%10]; x[l]=i; S|=(21=\
=u|21==x)*2+(u==28|28==x)*4+(91==u|x==91)*16+32\
*(u==98|x==98)+(20==d)*64*x; a-=k>f?main(a,f+1\
,M,k):0; _ i==c&u==h&!f&N&a>-1e4&x==y)longjm\
p(z,1); S=b; _!N|f&&(a>M||!f&a==M&&1&rand()\
)){ _!f){ _ k){ c=i; h=u; y=x; } } else _ \
L-a<N){ n; e=~e; u[l]=j; x[l]=r; return\
a; } M=a; } } x[l]=r; u[l]=j; n; } }
typedef int G; char J [ 78 ], O [ ]
= "HRQAMS#-smaqrh[UTZYTU[|TBA("
"$#(ABT|ba`gg`ab8>GK[_`fFDZXEYR" "L\t####"
"##B#A#@#G#F#E#D#K\t\3Zlv#tjm" "\3J#tjm\3Pwb"
"ofnbwf\3Joofdbo\3)&`&`.&`&`" "#+&g*\t"; G y,
c,h,e,S,*s,l[149]; jmp_buf z ; G main(G L,G f,
G N,G k){ G u=99,p,q,r,j,i,x ,t,a,b=S,d,M=-1e9
; char *n; if( *l){ e=~e; Z u >21){ q= l[--u]^e;
_!-- q){ _!l[p=e?u-10:u+10]){ I(p,)_ e?u>80 & !l[p
-=10]:u<39&!l[p+=10])I(p,)} _ l[p=e?u-11:9+u] )I(p,)
else _ u-1==S>>6){ l[u-1]=0; I(p,l[u-1]=-2^e); } _ l[
p=e?u-9:11+u])I(p,)else _ S>>6==1+u){ l[1+u]=0; I(p,l
[1+u]=e^-2); } } _!--q){ n=O+41; Z++n<50+O)I(u+80-*n,
)} _ 0<q&4>q){ n=q==2?53+O:O+49; Z++n<O+(q!=1)*4+54
){ p=u; do I(p-=*n-80,)Z!p[l]); } } _ 4==q){ n=49+O
; Z++n<O+58)I(u-*n+80,)_ e&!(S&24)|!e&!(S&3) &&
!l[u-2]&!l[u-1]&!l[u-3]&&o(u)&&o(u-1)){ l[u-1]=4
^e; l[u-4]=0; I(u-2,l[u-1]=0; l[u-4]=e^4); } _
e&!(S&40)|!e&!(S&5) &&!l[u+1]&!l[2+u]&&o(u)&&
o(1+u)){ l[u+1]=e^4; l[3+u]=0; I(u+2,l[1+u
]=0; l[u+3]=4^e); } } } e=~e; return M; }
Z h<130){l[h]=-(21>h|98<h|2 >(h+1 )%
10); O[h++]^=3; } n=O +14; s=20+l; Z
++s<29+l){ 10[s]=1; 70[s]=~ ( * s = *
n++ -+84); 60 [ s] =-2; } Z n=J){ puts
(58+O); u=19; Z++u<100){ H(32)_!( u%10
))H(32)H(O[7+l[u]])_(9+u)%10>7){ H(58
-u/10)H(32)_ u&1)puts(n=J); } } puts
(O+58); _-1e4 >v , 1)){ e=~e; puts
(O+(v,0)> 1e4?e?90:82:96)); break
; } _ 1<L&e) { d=v,2+L); printf
(O+114,h%10+64,58-h/10,y%10+64
,58 -y/10,d); } else{ putchar
(62+e); h= (95 & F-44; c=l[h
+=(56-F *10]; y=(95&F-44; y
+=(56-F*10; Z 10!=(u=(95
&F)){ c=5; Z--c>1&&u!=c
[O]); c=e^c-7; } } _!
setjmp(z)){ v+1,1);
puts( 106+
O); } } Z
10!=
F; }


XD de un ofuscated C contest.

PD : dejo el link (http://nanochess.110mb.com/chess1.html)

ContraVeneno
16-11-2010, 16:48:01
buen código... pero creo que está al revés...

AzidRain
16-11-2010, 21:15:35
Todas las sintaxis al final son humanas pues no las interpreta una máquina sino un humano. Lo que dice Al es como pensar que las series de Fourier o las transformadas de La Place, fueran no humanas tan solo porque para los no entendidos del tema no signifiquen gran cosa.

Al final de cuentas Pascal nació como un lenguaje de "proósito general" por lo que tenía que ser entendido por "la generalidad de los programadores". Para muchos Pascal fue nuestra puerta de entrada y gracias a el logramos aprender rápidamente C, Java y demás cosas simplemente pensando "{=Begin, }=end, ...etc." Pascal es estupendo para entender la lógica de un programa y como se ejecuta. Una vez dominado todo lo básico estás listo para irte al lenguaje que desees. Pero de eso a que sea más o menos humano creo que dista muchísimo, como ya comenté.
Obviamente cuando ya te entiendes con el ya sale sobrando si te tardas 4 caracteres mas en escribir "begin" que "{" al final como es mi lema "Lo importante es el resultado".

Acoto: Casí nadie programa para otros, salvo honrrosísimas excepciones, todos tenemos nuestro propio estilo y nos cuesta mucho adaptarnos a esquemas ajenos.

rgstuamigo
16-11-2010, 21:55:27
...
Entonces, concuerdo que la apreciación de si es o no es una "sintaxis más humana", está completamente relacionada al nivel de conocimiento de la persona que hace dicha apreciación.
....

Estoy totalmente de acuerdo con ContraVeneno;)
A unos pueden gustarle mucho la Sintaxis de Pascal, a otros no tanto, y otros nada;:rolleyes:
La verdad es como preguntar: ¿cuál es Mejor Windows o Linux?,¿Cuál es el Mejor servidor de Base de dato?,etc,etc. pues unos responderan una cosa quizás basado en su experiencia y otros otra cosa; y al final es una cosa de nunca acabar.;)
Saludos...:)

Al González
17-11-2010, 00:17:20
Ya me subscribí a este tema para seguirle la pista a todo lo que están diciendo. :p

Casimiro Notevi
17-11-2010, 00:35:55
Al principio con el lenguaje C tuve que aprenderlo muy bien para no meter la pata con los punteros nulos, la gestión de memoria, etc. pero una vez que se conoce bien entonces resulta muy sencillo.
Con pascal es más simple para los que empiezan porque no hay que preocuparse por esas cosas, normalmente es algo "transparente" para el programador.

roman
17-11-2010, 03:25:27
Esto último que dices Casimiro, podría plantearse como una posible ventaja de pascal sobre C, pero va más allá de la sintaxis. Mi tesis es que ésta por sí sola no marca la diferencia.

Claro está que hay sintaxis que, definitivamente hace que un lenguaje sea un poco más difícil, como, por ejemplo, la de brainfuck (http://en.wikipedia.org/wiki/Brainfuck). Aunque, para algunos (http://clubdelphi.com/foros/showpost.php?p=187995&postcount=5) también es cosa fácil :)

// Saludos

Delphius
17-11-2010, 04:03:46
¿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 (http://www.clubdelphi.com/foros/showthread.php?p=269907&highlight=Halstead#post269907) 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:p

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!:D:rolleyes:

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 :confused: 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,

coso
17-11-2010, 12:37:34
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 (http://translate.google.es/translate?hl=es&langpair=en|es&u=http://chineseculture.about.com/library/extra/character/bls_numbers.htm), 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 (http://roble.pntic.mec.es/jarran2/cabriweb/1triangulos/teoremapitagoras.htm)). 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.

coso
17-11-2010, 12:43:01
Reenvio de mensaje :) mil excusas.

roman
17-11-2010, 16:57:52
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.


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.


El código está hecho y escrito por humanos, para ser entendidos por humanos no por una máquina.


[...]


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.


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 tí 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

javier_ecf
22-11-2010, 01:20:18
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.

ecfisa
23-11-2010, 07:54:18
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. :)

xander
09-12-2010, 18:28:27
A mi la que me parece más humana es la sintaxis de ruby


5.times {puts 'hello there!!'}

Al González
09-12-2010, 18:45:33
Xander: Es un gusto verte participar nuevamente después de tanto tiempo. :)

xander
09-12-2010, 19:00:20
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!

LainCoubert
09-12-2010, 19:04:23
Yo entro poco pero también me da gusto verte de nuevo por aquí.

Saludos.

DanielSempere
09-12-2010, 19:14:37
Lo mismo que Lain digo.

Es bonito ver gente que vuelve aunque solamente sea para saludar.

Hasta otra.

Casimiro Notevi
09-12-2010, 19:52:27
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!

Saludos, xander, tanto tiempo!!! :)

Delphius
09-12-2010, 20:34:56
Sepan disculpar que no me haya expresado antes... Pensé que podrían ver y entender mejor el punto de mis palabras... Al parecer no me expresé bien... o es que no quieren verlo.

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.

Yo había indicado que al ejemplo le condimentaba cierto humor, por tanto debería haberse sacado una conclusión en el mismo sentido... darle humor.

Tanto la habilidad del programador como la sintaxis juegan... No puede tirarse de la balanza por un lado y dejar de lado lo otro. No debemos concentrarnos únicamente en resumir y dejar en conclusión definitiva que todo debe resumirse en la habilidad del programador.

Si un lenguaje ofrece una sintaxis incómoda, por más experto que seas... seguirá siendo incómoda y te tomará más tiempo acostumbrarte.

Por el otro lado, el tener una bella sintaxis y que el programador sea un total desastre tampoco llevará a un resultado óptimo. Pero de que le resultará más amigable y fácil de abordar seguro, segurísimo.

Lo que intento exponer es un equilibrio entre habilidad del programador y sintaxis.

He dicho: si lo haces bien con C, o el que sea perfecto... Pero llevo el planteo más allá cuando hago un debido llamado de atención al tema de sintaxis y a falsos argumentos de que menos carácteres es igual a más productividad. Y es allí donde voy a estar en contra y caeré con mucho peso, y con justa razón, afirmando algo que sostienen muchos defensores de C: el uso de { es más ventajoso y productivo que el begin de Pascal, y así lo comparan con el resto de las instrucciones...

Señores... a mi no me pueden vender el cuento de que por tener menos caracteres más productivo somos... En última al compilador no le interesa si ingresamos 1 o 5... mientras pueda "traducir" las líneas de código a algo que entienda no le interesa si se escribe en chino, ruso, espanglish, eukera o esperanto.

Por un lado tenemos la habilidad del programador, por el otro la facilidad de absorción y aprendizaje de la sintaxis y su simbología. Por debajo de esto está la capacidad técnica del compilador.

Pascal ofrece un mejor equilibrio entre simbología, sintaxis, habilidad y capacidad de absorción y aprendizaje. Y su compilador no tiene que carajos envidiarle a C o a cualquier otro.


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.

Si yo no digo que se deba eliminar las abstracciones simbólicas... como bien indicas, las usamos a diario y nos han ayudado muchísimo. El ejemplo que citas del álgebra (entre otras) en la matemática es quizá el más evidente y el de mayor peso.

A lo que apunto es que llenar de símbolos tampoco es lo más correcto, adecuado y ventajoso.
Nos entendemos, gracias a esos símbolos... pero ver demasiados cansa... y en un punto se nubla la cabeza y empezamos a perder concentración y divagar.

¡Si hasta los matemáticos mismos señalan que a veces un exceso de simbología hace más complicado lo que puede decirse de una forma más simple!. Hay un power-point dando vuelta la red que indica, en cierta forma, con sarcasmo, el como podemos expresar que 1+1=2

En última lo que importa es que nos podamos comunicar, pero no por tener abundancia de símbolos y reducir todo a eso conseguiremos mejorar las cosas.

Yo digo: ¡A la máquina no le interesan los símbolos para ella no existe otra cosa que ceros y unos...!


Así es, nadie lo niega. Pero somos seres racionales capaces de entender simbologías.

Seremos capaces de entender simbologías. La sintasis de Pascal tiene las suyas... y a mi me parece que la sintaxis de Pascal es la más amigable para la mayor cantidad de personas... desde los más nóveles a lo más avanzados, desde jóvenes a ancianos. La proporción entre palabras y símbolos es tal que convierte al lenguaje como uno de los más bellos, y que tiene mayor poder de difusión y comprensión desde una edad muy temprana. Puede y tiene capacidad de llegar a más personas y más rápido. Eso lo hace más humano. :)


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.

El código en realidad no es entendido por la máquina. interpreta, según las reglas que les hemos definido, lo que le decimos. La máquina no entiende nada... ella lo único lo que hace es seguir nuestras instrucciones... Nuestras intrucciones deben ser claras para nosostros... no para las máquinas. La máquina, según las reglas que indicamos, tomará eso y generará unos y ceros...
El código es para los humanos, a la máquina... no le interesa.


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.


Y recordarás tu también que grande ha sido la sorpresa que Pascal superó las barreras de la enseñanza y se lo utilizó (y sigue, en su nueva versión Object Pascal) comercial y profesionalmente. No lo limites y encasilles como únicamente como un lenguaje diseñado para enseñar y allí queda todo.

Perfecto que aprecies C, yo respeto su poder y uso (que bien merecido tiene su lugar... por algo seguramente la mayoría de los sistemas fueron escritos en C-style)... pero no me creo el cuento de que C-style es más potente que Object Pascal por que tiene esos *, {... es la magia del compilador que está detrás de eso lo que de el poder.

No digo que deba necesariamente empezar por Pascal, luego ir a C o empezar por C y luego ver Pascal...

Pero si voy a defender y sostener que Pascal/Object Pascal tiene mucho más posibilidad de acercar a más gente, desde una edad más temprana... Eso es lo que lo hace ser mucho más humano.

Estoy seguro de que si hermana de 13 años tuviera interés en programación, y le muestro Pascal le caerá y tendrá más gusto y cercanía que si le intentase enseñar C.
Si mi padre tuviera gusto, puedo asegurar que C le resultará chino... y si le muestro Pascal le sentirá agrado.
Me animaría a probarlo con alguno de mis sobrinos o mis primos más chicos, cuando tengan 10 años... Aun no teniendo grandes conceptos, o grandes habilidades... podrán desarrollar y liberar su poder creativo.

Es su equilibrio entre caracteres execivos como argumentan los de C, y sus símbolos lo que hace ser entendibles por humanos, para humanos y para más humanos.... No necesita de demasiado esfuerzo para adaptarse... no requiere de demasiados conocimientos formales y pelearse con punteros, y demás para comprenderlo, quererlo...

Es ese vínculo que se forma, el que te hace sentir hecho, de que tienes el control, de que no te sientes una máquina interpretando chino o caracteres extraños lo que lo hace humano.

Si no entienden eso entonces no han sabido ver lo que ha visto Al.

Desde hace tiempo se reconoce que una de las comunidades más pasionales, y humanas es la comunidad de desarrolladores de Pascal/Object Pascal... ¿eso no cuenta? ¿No será, entre otras cosas, por eso de que le tengamos tanto afecto, cariño a un lenguaje a que muchos lo quieren muerto? No sentir eso... es no ser humano.
No verlo así, es lo que nos hace decir que Pascal no tiene sintaxis humana.

Saludos,

roman
09-12-2010, 21:46:03
Delphius,

Deja leo todo lo que has escrito y en tres semanas respondo :p :D

// Saludos

AzidRain
10-12-2010, 00:29:33
La facilidad del pascal es directamente proporcional al conocimiento de inglés que tenga el programador en cuestión. A mi y a muchos se nos hizo "casi" transparente precisamente porque ya sabíamos que significa "begin", "while", "repeat"...etc. Para alguien que no lo supiera le hubiera dado lo mismo "{" que "begin". Por cierto BASIC también tiene lo suyo en cuanto a "humanidad" sin embardo Don Niklaus supo como hacerlo aún más fácil.

marcoszorrilla
10-12-2010, 07:41:55
Todos los lenguajes informáticos que conozco están escritos en inglés.

Un Saludo.

Casimiro Notevi
10-12-2010, 09:57:01
Todos los lenguajes informáticos que conozco están escritos en inglés.
Un Saludo.

Durante años estuve usando un lenguaje totalmente en español, se llamaba Boriar, era de una empresa de Madrid que crearon un "lenguaje de 4ª generación", era un generador de pantallas con altas, bajas, consultas, modificaciones, etc. un módulo generador de informes y un sistema de base de datos. Era en la época msdos, y generaba aplicaciones muy bonitas en aquella época, simulando ventanas con sombras muy aparentes.
Y ya digo, era totalmente en español.


XFIN:
cierra fichero GEN;
cierra fichero CUE;
cierra fichero COM;
cierra fichero APU;
cierra fichero DOM;
devuelve pantalla 7;
cierra ayuda;
ejecuta WIPE;
TERMINA;

ecfisa
10-12-2010, 13:14:05
Otro que recuerdo Casimiro, es el lenguaje Logo, hasta en una oportunidad hice andar la tortuguita con: adelante(15), izquierda(10)...
(Mis disculpas si el compilador protesta por la sintaxis, por que fué hace muchos años y no pasé de algunas sentencias... :) )

Pese a ser un lenguaje para el aprendizaje, era (o es) un lenguaje totalmente orientado a objeto y ví quienes realizaban
aplicaciones de bastante complejidad con el.

Saludos.

ElDioni
10-12-2010, 13:54:21
Buenas,
tengo que decir que yo aprendí a programar con pascal y creo que me ayudó mucho al principio, cuando no tenía ni idea de nada, el hecho de casi poder leer el código con sentido, es decir:

empiezo, si 3 es mayor que 5 entonces empiezo con esto y termino y si no, empiezo con lo otro y termino.

Creo, es mi opinión, que me hubiese costado más empezar con otro lenguaje como C. También tengo que decir que una vez sabes programar en un lenguaje, adaptarte a otro lenguaje es mucho menos costoso y da igual que simbología utilice, te acomodas rapidamente.

Un saludo.

marcoszorrilla
10-12-2010, 15:43:46
Gracias por las reseñas, el de la tortuga lo recuerdo vágamente.

Un Saludo.

ecfisa
10-12-2010, 16:15:57
Gracias por las reseñas, el de la tortuga lo recuerdo vágamente.

Un Saludo.

De todos formas Marcos, no dejan de ser eso: reseñas anecdóticas .:)
Coincido totalmente con vos que la gran mayoría (por no decir casi toda) de la programación práctica se desarrolla en
lenguajes que se escriben en ingles.

Un saludo.

roman
10-12-2010, 17:31:25
Todos los lenguajes informáticos que conozco están escritos en inglés.


Je, je. Bueno, pero creo que AzidRain se refiere a que pascal usa más palabras y, por ende, necesitas saber más inglés. Su tesis, imagino, es que para el no iniciado en el idioma inglés, será más sencillo un { que un begin.

// Saludos