Ver Mensaje Individual
  #11  
Antiguo 13-12-2013
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Ñuño Martínez Ver Mensaje
¿Y la multitarea? Bueno, los objetos son, por definición, multitarea. Otra cosa es que casi ningún compilador/entorno los implemente así. Objective C es un buen ejemplo. Small Talk es otro. Oberon otro más...
.
De donde sacas esto?

Cita:
Empezado por Ñuño Martínez Ver Mensaje
En mi opinión, si no es para algo muy específico (lenguajes de propósito específico, me refiero), no merece la pena hablar de diseñar nuevos lenguajes, porque de propósito general andamos sobrados. Mejor preguntar por cómo sería nuestro compilador o entorno soñado. Ahí sí, oye.
Eso es como decir que no hay que hacer nuevos programas porque los que hay ya cubren las necesidades.

Un lenguaje de programación (que es algo que esta intrínsecamente ligado a su entorno/runtime/compilador/librerías) es algo que afecta profundamente el como y cuales problemas se resuelven. Y generan un mundo de diferencia.

Por ejemplo, ya que han mencionado erlang: No hay nada que lo toque en multitarea y todo eso. Python es sobrado en claridad de código. Lisp permite metaprogramacion como ninguno y asi por el estilo.

Si uno solo sabe pascal y no sabe nada mas, es muy dificil darse cuenta todo el trabajo idiota que se esta uno cargando. Y eso aplica a todo.

Y cual es la forma de resolver las tareas mundanas (como manejo de memoria) y permitir hacer cosas que en otros entornos es muy dificil (como multitarea)? Pues a nivel del lenguaje. Y es por eso que hay tantos, muchos mas y mas variados de lo que uno se imagina.

Piensen como usuarios. No es la idea "bueno ya que con C se puede hacer de todo, porque no usar C y ya?", sino "como seria un lenguaje que no este amarrado por el status quo? como podria hacerse aun mejor?".

De seguro hay muchas ideas que andan por ahi flotando y que quizas estan enterradas. Apenas esta resurgiendo la programacion funcional, por ejemplo. Me entere hace muy poco, que ADA (un pascal) manejaba multi-hilos de una forma muy simple, casi como en GO/Erlang. En cuanto a manejo de bases de datos, todo esta tan crudo aun...excepto cuando era con dbase. Incluso delphi esta por debajo.

Y todas esas deficiencias no se pueden arreglar parchando lo que ya existe. Primero, porque en el momento que se desvia del proposito inicial del lenguaje la cosa se ve "alienigena" - como implementar OO en C- y cuando ya hay una tonelada de codigo escrito nadie quiere moverse, no importa lo mejor que sea. Asi que si por ejemplo queremos hacer programacion escalable, multihilos y demas estamos fregados con delphi. Nunca tuvo eso en cuenta, asi que lo que se hace es parchar y hackear. Igual esta fregado python, que aun en python 3 tiene el GIL. Y aun cuando le arreglen esas cosas, todo el codigo asume que nada de eso existe y puff... se arruina todo.

LLevo mas de 1 decada programando y en muchos ambientes y lenguajes. Y es precisamente por eso que me parece que aun falta mucho. Es una desgracia que muchas de las mejores ideas estan implementadas en lenguajes con sintaxis y metodologias bizarras (erlang, haskell, racket) y que los mas populares sean un gran ejemplo de como NO hacer las cosas (c, c++, php) que requieren tener experiencia para pelear en contra de lo que los lenguajes/librerias estimulan.
__________________
El malabarista.

Última edición por mamcx fecha: 13-12-2013 a las 20:16:50.
Responder Con Cita