Ver Mensaje Individual
  #48  
Antiguo 16-11-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por nlsgarcia Ver Mensaje
Honestamente creo que si alguien puede crear un lenguaje ese eres tu
No exageren!.

Hasta hace unos meses, yo tambien creia que hacer un lenguaje era algo de super-super-gurus. Y contrario a lo que puede parecer, soy mejor debatiendo que programando .

La complejidad de este tipo de proyecto radica mas en:

1- Es facil hacer un clon de otro lenguaje (otro Javascript, otro C++, ....) y mas alla de su valor educacional, eso no tiene sentido. Los "clones de " sufren de que para que rayos usar el clon (incompleto, con mas bugs, etc) si puedo usar lo real?

Esto esta en la "lista de chequeo antes de hacer un lenguaje"

http://colinm.org/language_checklist.html

2- Uno sufre por lo limitado de su propio mundo. Si un programador sabe solo Java, y le han enseñado que OO es lo máximo, como podrá hacer algo diferente? De hecho, es solo con el tiempo que de tanto batallar uno va pensando "algo mal esta en todo lo que he creído hasta el momento, no hay otra forma mejor?"

He tenido mucha suerte, porque soy poliglota en lenguajes de programación. Pero solo ha sido en este ultimo año que realmente he mirado mas alla de los lenguajes OO mas comunes (sorprendentemente, Objective-C que tanto lo odio me hizo mirar a Smalltalk, y de allí partio otras cosas).

3- Contrario a lo que se pudiera creer, la mayoría de los lenguajes están fundamentados por teorias arcaicas en cuanto a programación!. Y muchas de las *mejores ideas* están apenas redescubriendose.

C/C++/JS/Java le han hecho un daño gigantesco a la computación, porque enterraron a muchas mejores alternativas (como la familia pascal: Modula & ADA, por ejemplo).

Ahora que me he puesto a leer sobre todo esto, es sorprendente lo mucho que "ya se sabia" como hacer mejor.

Esto es como el "efecto Apple". No importa que haya algo mejor, falta quien sabe mercadearlo y volverlo popular. Smalltalk, Delphi, ADA, Modula, LISP y otros han fallado porque han sido manejados de forma tal que fallan en capturar el mercado, mientras C, C++, Java han tenido mejor marketing, a pesar de sus problemas - que ya se conocían entonces!- porque los demás estaban mas ocupados por otras cosas. Por ejemplo, smalltalk tenia unos costos de licencia astronómicos y ADA sufrió por ser manejado por el gobierno de US.

4- Lograr un lenguaje que sea bueno, bonito, barato, rapido, flexible, expresivo, multiplataforma, deseable, etc... y aun mercado duro como los programadores? Eso es mas teso que hacer el lenguaje en si mismo ademas: Lenguaje <> Implementación: Es facil hacer un lenguaje .... combinar con un runtime, virtual machine y/o interprete y/o JIT y/o compilador, librerías, interfaces a otras librerías, etc es lo que complica todo. Igual que es facil hacer un programa que haga 1 factura, y es otro camello que sea un ERP funcional.


P.D:

Algunos links de 110+ que tengo sobre el tema que son muy faciles de entender:

Como diseñar programas (mal titulo, realmente es "como diseñar lenguajes"_:

http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html

Como funciona un compilador

http://mortoray.com/tag/compiler/

Pratt parser (un mas mejor sistema de parseo):

http://journal.stuffwithstuff.com/20...ing-made-easy/

Como hacer que dentro de tu propio lenguaje, implementes cosas como IF, FOR, etc:

http://journal.stuffwithstuff.com/20...in-a-language/

Haciendo un compilador, pasito a pasito en ruby (es facil de seguir en general):

http://www.hokstad.com/writing-a-com...ttom-up-step-1

Como hacer un recolector de basura (ULTRA FACIL DE ENTENDER!)

http://journal.stuffwithstuff.com/20...age-collector/

PFFF!

Se me olvido el clasico del creador de PASCAL:

http://www.ethoberon.ethz.ch/WirthPubl/AD.pdf
__________________
El malabarista.

Última edición por mamcx fecha: 16-11-2014 a las 17:51:57.
Responder Con Cita