Entrevista a Joshua Bloch en InfoQ

En InfoQ publican una entrevista a Joshua Bloch, uno de los grandes artífices de lo que es hoy en día Java, que actualmente trabaja para Google. Parece que Bloch es uno de los que están en contra de modificar el lenguaje Java si esto añade más complejidad al mismo, y prefiere limitarse a modificaciones que «limen»  ciertos aspectos mejorables, como la verbosidad de los generics o las clases anónimas, pero sin introducir nuevas características que pueden suponer un quebradero de cabeza (y un peligro) para los programadores.

En este sentido, se muestra partidario del Project Coin, que simplemente hace más sencilla la utilización de generics (con el operador diamante) y la gestión de recursos en los bloques try, entre otros.

Sin embargo se muestra en contra del Lambda Project. Según Bloch, este es uno de los proyectos que introducirían una complejidad dañina, en este caso las closures o typed functions. Y pone un ejemplo muy concreto: una closure que tenga acceso a las variables locales del método donde es definida obliga a que el ciclo de vida de estas variables se prolonge más allá del final de la invocación del método. El recolector de basura no puede recolectar los objetos referenciados por estas variables mientras puedan ser accedidos por la closure.

Por otro lado, al ser preguntado sobre el futuro de la programación (en general), Bloch no se corta al prever un nuevo «gran lenguaje» al estilo de C y Java. Y basa su afirmación en que hay problemas aún no resueltos de manera completamente satisfactoria por los lenguajes actuales como la programación multi-core y el desarrollo de aplicaciones web.

La entrevista es muy interesante, y una de las recomendaciones que hace es aprender múltiples lenguajes y paradigmas. La entrevista completa aquí: Interview:Josh Bloch on Java and Programming.

Choosing the right tool

Via Lambda the Ultimate I’ve been aware of a survey that David MacIver is running about programming languages. The interesting thing here is the way the survey is presented. You are asked to select a set of languages you know, and then you are presented a set of questions for which you have to order the languages you chose previously.

There are a lot of questions, but don’t worry, you can skip those that don’t make sense to you and you can stop whenever you want. However, I encourage you to fill the whole survey so as to get a feeling of what the developers community think of widely available languages.

Some interesting results are shown in this comment to the post in LtU, here are some others I have shown when I finished the survey (do the survey first if you are planning to do so, before continuing reading to avoid biasing the results):

VB stands high in «The thought that I may still be using this language in twenty years time fills me with dread» question and also in «I am reluctant to admit to knowing this language». Surprisingly, php is second on this last category, being a so common language for web applications. Delphi ranks third.

Java ranks high on «There are many good tools for this language» and «Third-party libraries are readily available, well-documented, and of high quality».

In question «This language is likely to be around for a very long time», the four high ranked are C, C++, assembler, and Java.