Ver Mensaje Individual
  #8  
Antiguo 13-12-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
mamcx,

Cita:
Empezado por mamcx
...¿Pero que es lo que combinarías?, ¿Como se vería ese animal?, ¿Como seria su sintaxis?...
Nunca me he planteado el desarrollo de un nuevo lenguaje de programación, hasta la fecha solo he utilizado lo mejor que puedo los lenguajes que he tenido la oportunidad de usar en el ambiente universitario y empresarial, por ello no te puedo dar guías específicas sobre el desarrollo de un lenguaje, solo te puedo sugerir algo que siempre me ha parecido lógico en la vida y por ende en la computación : Hacer todo de la forma más simple posible sin que esto afecte la efectividad o calidad de la solución.

En su época existió el S/36 y el S/38, ambos minicomputadores de IBM. El software del S/38 era muy avanzado para su momento y por ello se creo el S/36, una versión simplificada del S/38, con el tiempo ambos sirvieron de base para el desarrollo del AS400 hoy en día conocido como iSeries, el cual es un sistema de computo que puede rivalizar con el poder de un Mainframe dependiendo de su configuración pero con la facilidad de un Minicomputador.

En el caso de Microsoft algo similar ocurrió con Visual C++ y Visual Basic, lo cual dio las bases para el nacimiento años mas tarde de C#. Hay muchas historias similares y el punto en común de todas ellas es que hicieron que todo sea más simple y potente, la clave: Simplicidad.

En el caso de Microsoft, el Framework de .NET (VM) permite la integración entre lenguajes, tipos de datos e independencia de la máquina física, sin perder la posibilidad de generar código nativo, de allí una segunda idea: Interoperabilidad a nivel de lenguajes, no tiene sentido crear un lenguaje aislado por más potente que este sea. En lo que a los tipos de datos se refiere seguiría lo planteado en C# y Delphi, fuertemente tipeado, incluyendo los modificadores de C#.

En términos prácticos (cantidad de usuarios existentes) cualquier nuevo lenguaje debe basar su sintaxis en C, sin embargo la sintaxis de Pascal es muy intuitiva, directa y fácil de leer, habría que sopesar si se quiere una sintaxis accesible a una gran base instalada de desarrolladores (C, C++, C#, Java, Python, Objective-C) o una sintaxis basada en Pascal fácil de aprender y utilizar, de allí otra punto: Sintaxis simple.

Hoy en día todo ambiente de desarrollo que sea productivo requiere un IDE y un potente compilador, luego cualquier nuevo lenguaje debe tener un IDE que permita desarrollar, compilar y probar el código realizado, esto realmente es un Plus para cualquier lenguaje, como es el caso de C# y Delphi, en el caso de Java el mejor IDE que probé fue NetBeans, por lo tanto: Un IDE flexible, potente y amigable al programador es indispensable.

Un punto crucial son los paradigmas que soporte el lenguaje, siempre me gusto la visión de Delphi de combinar los paradigmas Orientado a Objetos, Orientado a Componentes e Imperativo, en el caso de C# se cumple la misma formula con la adición del paradigma funcional, luego: Si un lenguaje es Multiparadigma y Multipropósito con una concepción flexible de los mismos (Java y C# son Orientados a Objetos Puros mas o menos, C++ y Delphi son más flexibles en su implementación de paradigmas), se puede lograr mayor adaptabilidad del lenguaje a diversos problemas: Científicos, Financieros, Económicos, Administrativos, de Ingeniería, Técnicos, etc.

El lenguaje debe ser Multiplataforma, esto se ha resuelto en la practica en mayor o menor medida con el empleo de las VM (No así en Delphi), como es el caso de Java y C#, sin embargo es necesario que se pueda compilar en Nativo ya sea por que el sistema es en tiempo real o por que su naturaleza exige altos niveles de performance. En lo personal he visto programas bancarios corriendo en .NET (Winforms) y es imperceptible el hecho de que este siendo ejecutado por una VM, lo cual indica la robustez de la tecnología de las VM en la actualidad.

Un punto importante es la concurrencia, es por ello que el caso de Erlang me parece destacable como modelo, sin embargo es necesario señalar que este es un lenguaje muy especializado en procesos asíncronos bajo paradigma funcional, lo cual lo hace por si solo todo un reto.

Creo que todo nuevo lenguaje se basa en mejoras y/o combinación de características de lenguajes anteriores, sumado a los intereses y gustos personales de su desarrollador(es), en mi caso consideraría los lenguajes mencionados (Delphi, C# y Erlang), sin embargo es una tarea realmente gigantesca crear un nuevo lenguaje de programación, quizás propia de grandes equipos o genios informáticos. En lo personal creo que sería interesante desarrollar la plataforma .NET para Linux, Android y Mac (Actualmente existe el proyecto Mono) para lo cual están disponible sus especificaciones (Standard ECMA-335) y de esa forma poder reutilizar todos los recursos actualmente disponibles en .NET en las distintas plataformas mencionadas (No reinventar la rueda), algo que no entiendo por que Microsoft no lo ha hecho aun por cuenta propia , teniendo todos los recursos disponibles para ello.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 13-12-2013 a las 05:17:48.
Responder Con Cita