Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Ver: Modo: Orden:
Aprendiendo a programar | 37 comentarios (37 temáticos, editoriales, 0 ocultos)
Java no (none / 0) (#8)
por man ls a las Thu Jul 22nd, 2004 at 01:08:27 AM CET
(Información Usuario)

Es curioso lo de las modas en programación, hace unos años mucha gente te habría recomendado aprender Java. Ahora la gente se ha dado cuenta de la terrible realidad: aunque sea una especie de C++ simplificado, Java sigue siendo complicado.

Tras cuatro años ganándome la vida en eso, yo ya estoy harto de programar en Java. Así que voy a aprender Lisp, ¡hale! Y por dar la nota, te lo recomiendo también.

De regalo, un enlace interesante sobre los problemas de la ingeniería del software, en inglés. Confío en vuestro fino sentido del humor.



¿Lisp? (none / 0) (#10)
por thuban a las Thu Jul 22nd, 2004 at 09:08:34 AM CET
(Información Usuario)

Lo vas a flipar.

Vas a estar contando p**os parentesis hasta que al Real Madrid le den el Premio Nobel...

[ Padre ]


Poder expresivo (none / 0) (#25)
por man ls a las Fri Jul 23rd, 2004 at 07:08:57 PM CET
(Información Usuario)

Quiero explicar un poco por qué Lisp. Cuando uno programa en un lenguaje, acaba por pensar en ese lenguaje; resulta difícil salirse del marco que te fija, con lo que resuelves los problemas de una manera determinada. En esencia, el lenguaje acaba pensando por ti.

Pero a veces notas las limitaciones del lenguaje que estás usando. Por ejemplo, yo empecé con mi humilde Amstrad CPC a programar en Basic, y al poco tiempo ya te dabas cuenta de los problemas que trae el tener que numerar las líneas. Después empezabas a aburrirte de sus cortísimas variables (8 caracteres). El gfBasic del Atari ST resolvía estos problemas, pero para entonces ya hacía cosas más complicadas, y también se me quedó corto.

La programación orientada a objetos (primero en Perl, luego en C++ y finalmente en Java) fue una liberación. ¡Podías encapsular un montón de datos en un solo objeto! y pasarlo como parámetro para hacer otras cosas. Sin embargo, todavía noto ciertas faltas:
  • la absurda distinción entre métodos (o funciones en C++) y variables, que te lleva a crear métodos de acceso a tutiplén;
  • la incapacidad de ejecutar código que venga en una cadena, que sería tan útil para evaluar expresiones aritméticas;
  • no poder definir nuevos operadores, al menos en Java (en C++ por lo menos se pueden sobrecargar los operadores aritméticos, así que se puede usar '+' para sumar lo que quieras).
Algunas de estas restricciones las llevo sintiendo desde los tiempos de Basic. Me han prometido que Lisp es más flexible, y estoy dispuesto a escribir paréntesis hasta que las monas se afeiten con tal de poder superarlas.

[ Padre ]


Pop (none / 0) (#35)
por nya a las Sat Jul 24th, 2004 at 02:03:37 PM CET
(Información Usuario)

No sé si ya lo conocerás, pero hace tiempo DopeRider escribió un buen artículo sobre Poplog que quizás te interese.

[ Padre ]


Qué fuerste (none / 0) (#36)
por man ls a las Sat Jul 24th, 2004 at 10:29:47 PM CET
(Información Usuario)

Pues sí, coincide totalmente con lo que yo andaba buscando. Lástima que el soporte del lenguaje parece un poco pobre, pero sería interesante echarle un vistazo.

¡Gracias a ti y a DopeRider!

[ Padre ]


 
Paréntesis (none / 0) (#39)
por xan (xan en gnome punto org) a las Wed Jul 28th, 2004 at 03:43:33 PM CET
(Información Usuario)

La razón de que LISP tenga esa extraña y tediosa apariencia es en realidad increiblemente profunda e importante.

LISP nació como una entelequía matemática en los años 50 cuyo propósito podría definirse como la axiomatización de la programación. En concreto, la función "eval" de LISP actúa como un intérprete universal. Pero para su existencia sea posible necesitamos poder expresar el código LISP como datos, que serán pasados como argumentos a dicha función. De este modo, la sintaxis (¡mejor dicho ausencia de ella!) de LISP no es en realidad otra cosa que los árboles que se generan al parsear código, ¡que a su vez están hechos de listas!. Esto es importante: la representación de los datos y el código en LISP es idéntica.

Esto puede parecer confuso, pero al poder expresar código con la misma notación que los datos se obtienen cosas como las macros LISP, que son programas que generan nuevos programas. Explicar lo asombroso y potente que es esto es díficil si no se ha experimentado, pero en mi opinión es una de las características primordiales (si no la primodrial) que hacen a LISP el lenguaje más bello y poderoso que existe.

Si el tema te parece mínimamente atrayente te recomiendo que leas los ensayos sobre el tema en www.paulgraham.com o el libro Structure and Interpretation of Computer Programs, entre otros :)
--
Sirviendo al Comité Revolucionario Permanente de los Hombres Topo desde 2002.
[ Padre ]


 
Una lanza por Lisp (none / 0) (#12)
por jorginius ("jorginius" en Google Mail) a las Thu Jul 22nd, 2004 at 03:22:27 PM CET
(Información Usuario) http://www.rodriguezmoreno.com

Es el lenguaje más coherente que conozco y precisamente por eso es el más sencillo de aprender.

Es lexicológicamente mínimo, sólo hay tres o cuatro tokens y puedes definir fácilmente el léxico entero en menos de diez líneas formalmente. Esto conlleva que que el comportamiento sea absolutamente regular: "asignaciones", operaciones sobre funciones, llamadas a función, "operadores"... Todo se realiza de la misma manera y todo lo que "ves" tiene las mismas propiedades. En este sentido es un regalo del cielo si vienes de lenguajes como C o Perl. También el paradigma de programación funcional te permite abordar algunos problemas de forma distinta (y más cómoda).

Además hay compiladores eficientes, buenos entornos de desarrollo y extensiones de todo tipo, incluidas las peregrinas, como las que permiten programación orientada a objetos por ejemplo.

Es una buena idea dedicarle un poco de tiempo a aprenderlo, incluso si no se tiene pensado hacer nada serio con él, es un lenguaje que aporta una nueva perspectiva, sobre todo si nunca has salido de lenguajes como C y sus primos.

[ Padre ]


 
Java si (none / 0) (#14)
por dodger (dodgerNOSPAM@NOSPAMseastorm.org) a las Thu Jul 22nd, 2004 at 10:11:13 PM CET
(Información Usuario) http://www.seastorm.org

Pues por llevar la contraria, yo si recomendaría Java.

Muy potente, y los IDEs actuales te dan suficiente trabajo hecho como para que sea facil empezar.

--
dodger
http://www.seastorm.org
"Hacer software basado en requisitos es igual que caminar sobre el agua: Es fácil, si están congelados"
[ Padre ]


Jo qué troll soy (5.00 / 1) (#16)
por man ls a las Fri Jul 23rd, 2004 at 02:57:38 AM CET
(Información Usuario)

La verdad es que seguramente debería haber explicado un poco más mi postura, porque si no quedo demasiado de troll.

Los motivos por los que no recomiendo Java son:
  • Es lo bastante bajo nivel como para que te hagan falta un montón de librerías...
  • que por otro lado no son tan fáciles de encontrar, al final te las acabas currando tú. Yo por ejemplo he terminado por hacerme mi pool de conexiones a base de datos, mi librería de pruebas para servlets, mi librería de (!) parseado de xml...
  • No hay nada parecido al CPAN para Perl: un repositorio monstruoso de código contribuido por usuarios. Sólo existe Jakarta, que me han desengañado mucho a lo largo del tiempo.
  • Al mismo tiempo, es lo bastante alto nivel como para que no aprendas demasiado de tu plataforma. Esto a mí me parece bueno, pero siempre habrá a quien le fastidie.
  • La supuesta multi-plataformidad se queda en nada: Solaris, Linux y Windows. Vamos, que el ANSI C más perretero corre en mil veces más sitios.
  • Además, Sun planeaba que fuera ubicuo. Buena suerte encontrando un JDK > 1.1 en una máquina cliente encontrada al azar.
  • El monstruoso tamaño del JDK se corresponde con el afán megalómano de Sun. En la última entrega (1.4.X) incluyen ¡el parser de xml Xerces y la librería de xsl Xalan! como si uno no supiera cómo bajársela cuando le haga falta.
  • Las librerías gráficas incluídas (el infame Swing) tienen una pinta más fea que pegarle a un padre paralítico. La única librería gráfica útil que he visto, SWT (parte de Eclipse), no tiene el soporte de Sun.
  • Es más, parece que Sun ignora las cosas buenas que se hacen en Java (desde IBM). Y si no, pasen y vean lo que dice Gosling sobre Eclipse.
  • Pues que no es libre. Siempre puedes probar con gcj para compilarlo a código nativo con un compilador libre, pero mis experiencias no han sido del todo satisfactorias.
Me daría cosa recomendarlo en estas condiciones. Para eso, mejor aprender Lisp que por lo menos es multiplataforma de verdad, y más abstracto.

[ Padre ]


 

Aprendiendo a programar | 37 comentarios (37 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:
Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda