Ir al contenido


Foto

Lenguajes de Programacion del Lado del Escritorio


  • Por favor identifícate para responder
52 respuestas en este tema

Encuesta: Cual de estos lenguajes de programacion te gusta programar y por que? (19 miembros han emitido voto)

Cual de estos lenguajes de programacion te gusta programar y por que?

  1. Delphi (14 votos [73.68%])

    Porcentaje de voto: 73.68%

  2. Visual Studio (1 votos [5.26%])

    Porcentaje de voto: 5.26%

  3. C ++ (3 votos [15.79%])

    Porcentaje de voto: 15.79%

  4. C (1 votos [5.26%])

    Porcentaje de voto: 5.26%

Votar Los invitados no pueden votar

#41 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 13 febrero 2012 - 08:30


Esto no resultaría divertido, si no tuviera tantísimo de cierto.
http://www.netjeff.c...file=c.hoax.txt


Creo que eso es un "hoax" o como se diga, porque ese mismo texto, cambiando algunos nombres, datos, etc.  recuerdo haberlo visto antes, pero hablando de otro lenguaje :)


¿ No me digas que has visto un texto de este estilo aplicado a Pascal ?.  :|

De otros lenguajes lo puede entender (aunque dudo de que ninguno de tantas facilidades para ello como C), pero me encantaría leer como intentan hacer algo parecido con Pascal.

Saludos.
  • 0

#42 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 13 febrero 2012 - 08:44

Por cierto, curiosamente hoy ha aparecido esta entrada en mi google reader:
http://www.elclubdel...t=Google Reader


Buen artículo, aunque creo que se equivoca en sus conclusiones, parece deducir que tanto legibilidad como eficiencia son igual de importantes. Pero en mi opinión la legibilidad es mucho más importante que la eficiencia. Mientras no nos salgamos de los márgenes de lo "suficientemente eficiente" tenemos que buscar siempre la mejor legibilidad posible.

La búsqueda de la mejor eficiencia posible, se debería restringir solo a unos pequeños módulos muy críticos. Para el resto de la aplicación, la eficiencia normalmente no suele tener mayor importancia.

Edito : Para que no nos confundamos. Suponiendo que un algoritmo tiene un coste típico de k * n * log(n), siendo k una constante y n el nº de elementos implicados en el cálculo. Me refiero a que la eficiencia no suele tener mayor importancia, cuando lo que hacemos es modificar k, solo en casos muy críticos es realmente importante que k tenga un valor de 2 o bien de 24 (aunque tardará 12 veces más en ejecutarse, esto normalmente no tiene importancia porqué seguimos estando en un orden de n * log(n)).
  • 0

#43 casi

casi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 191 mensajes

Escrito 13 febrero 2012 - 08:50

El 'hoax' no era sobre pascal, seguro.

Si en general, yo estoy de acuerdo en tus opiniones, tan sólo discrepo en que programadores "normales" escribiendo código "normal" pueden usar lenguaje C y el código resultante puede ser perfectamente legible y fácil de entender.

Que con delphi sale código más legible, pues normalmente también es cierto.

  • 0

#44 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 13 febrero 2012 - 08:55

Si en general, yo estoy de acuerdo en tus opiniones, tan sólo discrepo en que programadores "normales" escribiendo código "normal" pueden usar lenguaje C y el código resultante puede ser perfectamente legible y fácil de entender.

Que con delphi sale código más legible, pues normalmente también es cierto.


No, si yo no discrepo en lo primero, estoy totalmente de acuerdo en ambas afirmaciones.

Edito: En lo que no estoy de acuerdo es en esta afirmación :

En delphi también se puede escribir código ininteligible, y como en C, también puede ser código claro como el agua, pero claro, para el que entienda dichos lenguajes.

El código lo escriben las personas y como las palabras,  no dependen del idioma que hables para hablar enrevesado o claro como el agua. Personalmente el ruso no lo entiendo pero he leído literatura traducida y es una delicia.


Delphi y C juegan en distintas ligas.

En un código Delphi nunca podrás llegar al mismo nivel de ininteligibilidad a la que puedes llegar con los derivados de C, y eso es debido a la sintaxis más natural y estricta de Pascal, comparado con la sintaxis más abstracta, críptica y permisiva de C.

  • 0

#45 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 13 febrero 2012 - 10:21





delphi
  1. program Pi;{$APPTYPE CONSOLE}uses SysUtils; var F: integer = 0; OO: integer = 0;
  2. procedure O; begin inc(OO); end; function _: integer; begin result:=integer(F>0);dec(F); result:=integer(result or F);result:=result-OO;end;procedure F_OO;
  3. begin
  4.             _;_;_;_;O;
  5.       _;_;_;_;_;_;_;_;_;O;
  6.     _;_;_;_;_;_;_;_;_;_;_;_;O;
  7.   _;_;_;_;_;_;_;_;_;_;_;_;_;_;O;
  8. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_;O;
  9. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_; O;
  10. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_; O;
  11. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_; O;
  12. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_; O;
  13. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_; O;
  14. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_; O;
  15. _;_;_;_;_;_;_;_;_;_;_;_;_;_;_;O;
  16.   _;_;_;_;_;_;_;_;_;_;_;_;_;_;O;
  17.     _;_;_;_;_;_;_;_;_;_;_;_;O;
  18.         _;_;_;_;_;_;_;_;O;
  19.             _;_;_;_;O;
  20. end; begin F_OO; Write(Format('%1.3f', [4*-F/OO/OO])); ReadLn; end.


¿Acaso en delphi no se puede escribir de forma críptica?


No, para nada. Ese código no es críptico, solo lo puede parecer a muy simple vista. Este código, bien identado, corresponde exactamente a...

...Ahora ya solo tienes que poner unos identificadores que signifiquen algo, cambiando "_" por algo como "InteriorCirculo" y "O" por "SaltarLinea", ... y te queda un código perfectamente legible, de este estilo, que hace exactamente lo mismo...


Me parece, que ahora si que estas haciendo trampas. Si expando la macro de C (#define _ -F<00||--F-OO--;) y mejor si la sustituyo por funciones y les doy nombres amigables, entonces estamos ante un código muy legible... Pero yo no he hecho eso. Simplemente he mostrado como con delphi también, y digo también, se puede escribir de forma muy críptica, y no vale traducir desmenuzando poco a poco cambiando el código, que eso también te lo hago en C. Todo ello no demuestra que el anterior código no era críptico en ambos lenguajes. Si hice el ejemplo críptico en delphi fué para demostrar que si quieres, puedes.

No niego que en C es mas fácil la criptografía y nunca lo he negado. Simplemente afirmo que depende del que lo escribe y que delphi tampoco se salva, aunque sea a un nivel algo inferior.


Saludos.
  • 0

#46 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 13 febrero 2012 - 11:03

Me parece, que ahora si que estas haciendo trampas. Si expando la macro de C (#define _ -F<00||--F-OO--;) y mejor si la sustituyo por funciones y les doy nombres amigables, entonces estamos ante un código muy legible... Pero yo no he hecho eso. Simplemente he mostrado como con delphi también, y digo también, se puede escribir de forma muy críptica, y no vale traducir desmenuzando poco a poco cambiando el código, que eso también te lo hago en C. Todo ello no demuestra que el anterior código no era críptico en ambos lenguajes. Si hice el ejemplo críptico en delphi fué para demostrar que si quieres, puedes.


A ver, no he desmenuzado nada, lo único que he hecho es identar el código, esa es toda la ofuscación que han podido hacer en Pascal. Es de risa, te he mostrado el resultado y ya era perfectamente legible, si encima le pones nombres de identificadores reconocibles, apaga y vámonos. Lo he dejado perfectamente manipulable en un minuto. Menuda ofuscación, a eso no se le puede llamar código ininteligible.

Prueba a hacer lo mismo en C. ¿ Te va a servir de algo identar el código ?, no para nada. ¿ Ayudará en algo poner nombre a las variables ?, no, solo hay dos y te vas a quedar igual.

Yo no he dicho que sea imposible entender código C críptico. Pero desde luego vas a tener mucho más trabajo que con cualquier código Pascal (con dos manipulaciones de lo más pedestres y obvias lo dejé perfectamente legible).

Prepárate para currartelo en C, ¿ va a servir de algo expandir la macro ?, no, en absoluto, va a ser mucho peor. ¿ Cambiarla por una función ?, hombre, allí ya empezamos a mejorar, pero eso solo no mejora en nada la legibilidad, ahora tienes que trabajarte la función y desmenuzar esa burrada de expresión -F<00||--F-OO-- (buen ejemplo de porqué los operadores unarios son una aberración) para hacerla comprensible convirtiéndola en varias líneas de asignaciones simples.

No niego que en C es mas fácil la criptografía y nunca lo he negado. Simplemente afirmo que depende del que lo escribe y que delphi tampoco se salva, aunque sea a un nivel algo inferior.


Felicidades, por fin vamos progresando (ya solo queda cambiar ese algo por un mucho).
  • 0

#47 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 13 febrero 2012 - 11:29

Escafandra, aquí tienes el código C aplicando exactamente las mismas manipulaciones inmediatas que hice en Pascal.



delphi
  1. #define IncArea -Area < 00 || --F - NumLineas--;
  2.  
  3. int Area=00, NumLineas=00;
  4.  
  5. main(){
  6.   CalcularArea();
  7.   printf("%1.3f\n", 4.* -Area / NumLineas / NumLineas);
  8. }
  9.  
  10. CalcularArea(){
  11.   IncArea-IncArea-IncArea-IncArea
  12.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  13.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  14.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  15.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  16.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  17.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  18.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  19.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  20.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  21.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  22.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  23.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  24.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  25.   IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea-IncArea
  26.   IncArea-IncArea-IncArea-IncArea
  27. }



Como puedes ver, aquí lo obvio no basta, tienes más trabajo por delante si quieres dejarlo comprensible para terceros (como siempre, volvemos a la expresión -F<00||--F-OO--).

Y es que, como dice la crítica humorística que colgué un par de mensajes atrás, ¿ que se puede esperar de un compilador que acepta líneas como ? :

for (;P("\n"),R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
  • 0

#48 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 13 febrero 2012 - 11:59

Bueno, Bueno... este debate ya se está yendo de manos.

Discusiones sobre Pascal vs C, legibilidad vs Criptografía va a seguir existiendo. Ya se ha hablado al respecto, y no creo que cambien de posturas ambos. Lo que queda por hacer es respetar las posturas de cada quien.
Me parece Marc que te estás dejando llevar demasiado y no estás siendo demasiado comprensible. Intencionalmente quieres hacer llevar el tema a que se llegara a una conclusión única y a tu favor, y a tu medida. Revisa nuevamente tus expresiones, ya en frío.
Se te conoce por tener cierto asco a lo que huela C, en parte yo también soy igual, pero ahora como que te está sacando más las canas... estoy viendo un NewMarc.

El NewMarc como el "new" de cada quien será bien recibido pero no quisiera que esta diferencia de opiniones los llevase a decirse cosas que estoy seguro no la piensan con suficiente claridad y aventarán lo primero que les caiga en la cabeza sin tener la intención de decirlo.

Saludos,
  • 0

#49 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 13 febrero 2012 - 12:03

Por cierto, ¿Cuál es el nombre del algoritmo que están implementando para calcular el valor de pi? Me mata la curiosidad.

Saludos,
  • 0

#50 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 13 febrero 2012 - 01:34

Por cierto, ¿Cuál es el nombre del algoritmo que están implementando para calcular el valor de pi? Me mata la curiosidad.

Saludos,


Fíjate como el código contiene el dibujo de un círculo. Y lo que hace es calcular el área de ese círculo llamando en cada cuadradito interior a la directiva _ (una función en el equivalente Delphi), que va acumulando su valor de Área.

Una vez tiene el área de ese círculo, ya solo tiene que calcular el nº pi utilizando la función :

Area = pi * r^2

Para ello en lugar del radio, utiliza el diámetro (nº de lineas del círculo formado por la llamada de funciones).

Área = pi * (D/2) ^2

Que operando un poco queda en : pi = 4 * Área / Diámetro / Diámetro



delphi
  1. {
  2.             _-_-_-_
  3.       _-_-_-_-_-_-_-_-_
  4.     _-_-_-_-_-_-_-_-_-_-_-_
  5.   _-_-_-_-_-_-_-_-_-_-_-_-_-_
  6.  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  7.  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  8. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  9. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  11. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  12.  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  13.  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  14.   _-_-_-_-_-_-_-_-_-_-_-_-_-_
  15.     _-_-_-_-_-_-_-_-_-_-_-_
  16.         _-_-_-_-_-_-_-_
  17.             _-_-_-_
  18. }



Como te puedes imaginar este cálculo de área no es muy exacto, puesto que sumamos los cuadraditos que forman más o menos un círculo. Por eso el valor de pi resultante solo es exacto en 3 decimales (se nota que está hecho solo para que quede bonito).


  • 0

#51 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 13 febrero 2012 - 03:46

Ahora entiendo el algoritmo.
No lograba captarlo ni siquiera en Pascal. Apreciaba el conteo y la división pero no sobre qué estaba contando y que dividía.
Esto explica lo burro que soy  :o  :

A mi mejor me dejan con la estimación de pi basada en series, o en función del seno o alguna otra función trigonométrica  :D

Saludos,
  • 0

#52 casi

casi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 191 mensajes

Escrito 13 febrero 2012 - 05:24

Y es que, como dice la crítica humorística que colgué un par de mensajes atrás, ¿ que se puede esperar de un compilador que acepta líneas como ? :

for (;P("\n"),R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);



Esa línea sirve para cuando se acerca la chica impresionante que hay en casi todas las oficinas y te dice: "¿Tú entiendes esas cosas?".
Y tú, poniendo cara de no haber roto nunca un plato, le dices: "sí, bueno, es simple, si quieres te lo explico mientras tomamos un café"
:D

  • 0

#53 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 14 febrero 2012 - 01:04

No lograba captarlo ni siquiera en Pascal. Apreciaba el conteo y la división pero no sobre qué estaba contando y que dividía.
Esto explica lo burro que soy  :o  :

No Delphius, no eres un burro, el código tenía cierto tono críptico y no le dedicaste tiempo suficiente.  :)


Esa línea sirve para cuando se acerca la chica impresionante que hay en casi todas las oficinas y te dice: "¿Tú entiendes esas cosas?".
Y tú, poniendo cara de no haber roto nunca un plato, le dices: "sí, bueno, es simple, si quieres te lo explico mientras tomamos un café"
:D

Si, alguna cosa buena tenía que tener el "C".  :D :D :D.


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.