style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

El lenguaje de programación (casi) perfecto

1. Cero frameworks

Depender de un framework muchas veces no es nada bueno. Algunos dejan de ser actualizados o de plano dejan de existir. O la documentación es minima o nula.

Que el lenguaje tuviera lo necesario para crear aplicaciones web o de escritorio.

2. Documentación automática

Nos gusta tener (más no leer) documentación completa del lenguaje/proyecto que vamos a usar/modificar. Si al terminar de escribir nuestro código se generará la documentación de manera automáticamente mejor aun.

3. Manejo de dependencias

Algo así como @Grapes de Groovy, el programador solo se preocupa de escribir el código. Nada de andar viendo que librería o clase le hace falta a su proyecto.

4. Generador de pruebas automático

Al terminar de escribir el código se crearan las pruebas unitarias de manera automática. Aunque tal vez seriamos más flojos y dependientes.

5. Un IDE integrado

No tener la necesidad de instalar alguno. Que el lenguaje no tuviera tan solo el compilador sino también un editor de código.

Solo son algunas características que se me ocurren.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de rodrigo salado anaya

IMHO

IMHO

1. Si no existieran frameworks en un lenguaje, sería una completa locura, p.e. todo mundo aria sus propios ORM. ¡A pero dices que eso ya estuviera integrado en el lenguaje verdad!, pero imaginate que yo solo quiero hacer una calculadora tendría que llevarme todo el ORM ya integrado?
Tal vez te parezca buena idea que ya tenga TODO lo necesario para hacer aplicaciones web y de escritorio, pero que pasa con la gente que no desea hacer ese tipo de aplicaciones, que pasa si yo quiero hacer programas para un satelite (solo es un ejemplo) o para un tanque de guerra, o un carro que se estaciones solo, no se cosas por el estilo.

Los framework son herramientas, pero lo padre es que esta implícito en cada una de esas herramientas el ingenio de su creador y todas sus buenas practicas y malas también. A mi me parece muy buena idea que un lenguaje este más que pensado para poder ser armado con todas las herramientas posibles.

Alomejor no te gustan porque hay que pasar horas desvelándote y jalandote los pelos por que no jalan las cosas a la primera, pero ese tipo de experiencias hacen que la siguiente generación de framework sea aun mejor y causan una disminución en las metidas de pata.

2. Este punto no lo entiendo, Nos gusta tener (más no leer) documentación..., creo que deberíamos de mejorar nuestras habilidades como desarrolladores para escribir código más legible y mejorar todas nuestras habilidades de comunicación. Tal ves existe una mejor forma de expresar lo que hace tu código que con un comentario o un diagrama UML o un montón de pruebas unitarias. No se, no entendí muy bien a que te refieres.

3. Grapes es un framwork. Ya no te entendí de nuevo, sí te gustan o no?

4. Las pruebas unitarias se deben tomar con mucha seriedad tanta o incluso con más que el código de producción, cuando creas una prueba unitaria estas hilando la red que te detendrá de un rotundo golpe de la azotea de un edificio llamado nombre_de_tu_proyecto, yo en este momento no le confiaría la creación de mi pruebas a algo parecido a una herramienta case

5. En el caso de Java y muchos otros lenguajes, no necesitas ni un solo IDE para poder desarrollar.

En resumen tu quieres algo como smalltalk :P

Imagen de Sr. Negativo

Lenguaje casi perfecto

Gracias por comentar.

Sobre @Grapes, me refería a que estuviera integrado alguna herramienta similar. Y de la documentación tienes razón es mejor hablar directamente.

No, no me gustan los frameworks, a veces dan más dolor de cabeza que soluciones (a mi parecer)

Lo que tu mencionas no es un

Lo que tu mencionas no es un lenguaje, sino un entorno de desarrollo.

Aun asi:

1. Cubierto: java.net, java.io, java.util, javax.swing, java.awt. Solo que te vas a tardar eternidades.
2. javadoc
3. Se puede hacer algo mucho muy sencillo en poco tiempo. Para algo realmente robusto se requieren varios meses.
4. o_O
5. :-(

Imagen de Sr. Negativo

Viéndolo desde otro punto de

Viéndolo desde otro punto de vista tienes razón o_O

Pero solo se trataba de un simple "ejercicio" mental. Imaginar cuales serían las características del lenguaje perfecto (jeje).

Aunque al fin de cuentas lo que importa es quien lo va usar (el lenguaje que sea).

Claro y va relacionado mucho

Claro y va relacionado mucho a la experiencia/frustraciones encontradas.

Por ejemplo, hubo una nueva "oleada" de lenguajes de programación a raíz de las frustraciones con Java, por ejemplo, Ceylon y Go tienen manejo de dependencia "built-in" que es una de las cosas que mencionaste. Sobre el IDE integrado no es parte del lenguaje pero tener una sintaxis simple de parsear ayuda mucho a crear IDEs.

Imagen de Sr. Negativo

Si, una de ellas es que

Si, una de ellas es que existen muchos frameworks que al paso del tiempo lejos de dar soluciones generan más problemas (según yo).

Andar revisando que librerías le hacen falta a tu proyecto, entre otras cosas más.

Eso del IDE me pareció útil. Desde la terminal teclear:

# miLenguajeFavorito  startIDE

jajaja si puede ser exagerado pero me gustó

0_o

Imagen de luxspes

Pasate a .NET ;-)

A ver si luego no me linchan ;-)...

1. Cero frameworks

Microsoft te da todo, nada de buscarle con terceros si no quieres.

2. Documentación automática

Puedes usar http://sandcastle.codeplex.com/, y quiere hacer algun diagrama, visual studio tiene todo lo necesario.

3. Manejo de dependencias

Dado (1), todas las dependencias que necesitas se agregaran solitas. Y si te llega a dar por usar un framework, ahi esta Nuget

4. Generador de pruebas automático

Pex y Moles: http://research.microsoft.com/en-us/projects/pex/

5. Un IDE integrado

Visual Studio: http://www.microsoft.com/visualstudio/eng

¿Desea algo mas?

Imagen de neko069

;-)

Que no sea .NET <sarcasm/>

Imagen de ezamudio

punto para luxspes

En la lista de deseos que pusieron al principio no dice que sea gratuito, ni que sea libre, ni que sea multiplataforma, ni que sea indeseable el vendor lock-in.

+1 .net para la lista de

+1 por .net para la lista descrita por Mr(-) del lenguaje perfecto.

Para otras características, será otro lenguaje.

Imagen de luxspes

Pudo se peor

En la lista de deseos que pusieron al principio no dice que sea gratuito, ni que sea libre, ni que sea multiplataforma, ni que sea indeseable el vendor lock-in.

Y pude haberme visto mucho as sadico... proponiendo por ejemplo 4D ;-)

Imagen de ezamudio

4D

Pero a poco 4D cumple el punto 3? tiene mil años que no lo veo (me sorprende saber que aún existe)... y el punto 4? también ya se usan pruebas? documentación? vaya que ha avanzado desde que lo conocí en 1994...

Imagen de luxspes

Pero a poco 4D cumple el

Pero a poco 4D cumple el punto 3?

Claro que si, 4D es completamente monolitico, tienes todo, te guste o no, nada de preocuparte por "dependencias"

tiene mil años que no lo veo (me sorprende saber que aún existe)...

Mala hierba nunca muere...

y el punto 4? también ya se usan pruebas? documentación? vaya que ha avanzado desde que lo conocí en 1994...

Ahi si ahora que lo pienso, le falle... hasta donde se, no hace nada de eso

Imagen de ezamudio

ah

jajajajajaj ok ok entonces creo que todavía ni se pueden hacer bibliotecas distribuibles con componentes reutilizables, por lo tanto el punto 3 se elimina jajajajajajaj.

Pero ya ves, no hay pruebas ni documentación, así que tristemente 4D no es perfecto.

Imagen de Sr. Negativo

.Net

jajajaja

Cambiate a .Net

No gracias, jeje.

6. Cierto también debí mencionar que fuera libre.

7. Multiplataforma

Imagen de paranoid_android

Un lenguaje muy arcaico

Logo era un lenguaje para niños que cumple con todas las exigencias :P

Imagen de ezamudio

Logo?

Usé Logo hace más de 30 años, pero no recuerdo que tuviera nada de pruebas generadas automáticamente. Ni documentación, ni dependencias (esto último tal vez porque no llegué a hacer algo tan complejo como para necesitar dependencias).

Quiero actualizar mi respuesta a 2015:

  1. En cualquier lenguaje puedes optar por no usar frameworks. Vas a terminar haciendo el tuyo propio. Buena suerte con eso.
  2. Ceylon tiene un programa muy sencillo para generar documentación a partir de las anotaciones de doc que le pongas a tu código. Puedes anotar tipos, funciones, métodos, atributos, parámetros, aliases, de modo que todas las declaraciones queden bien documentadas.
  3. Ceylon tiene un sistema de módulos que maneja las dependencias por ti, lo cual hace innecesario el uso de cosas como Maven o Ivy.

Los puntos 4 y 5, no me parece que deban ser algo que esté a nivel lenguaje, porque son herramientas.

Para pruebas por ejemplo luxspes mencionó un par de generadores pero son herramientas externas; .NET no es la única plataforma con eso. Pero de todas maneras a lo más que puede llegar un generador automático es a darte el esqueleto para tus pruebas, de todas formas necesitas herramientas adicionales (jUnit con algunos plugins adicionales por ejemplo, o sus pruebas paramétricas).

Y para IDE, un IDE es una herramienta; no tiene sentido que un lenguaje incluya su propio IDE; yo diría incluso que es señal de que algo no está bien; prefiero que se integre y juegue bien con las herramientas que los programadores ya conocen, ya sea su editor favorito, o un IDE existente. Por eso mejor plugins para IDEs. Ceylon tiene un plugin para Eclipse que es una fregonería y el plugin para IntelliJ viene en camino. Si prefieres algo más simple como vim, hay un plugin para colorear el código.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">