Cada poco tiempo surge un nuevo lenguaje de programación o un nuevo framework que supuestamente iba a suponer una revolución y iba a facilitar enormemente la vida al programador.
Las consecuencias no son siempre beneficiosas, más bien lo contrario y cuando echo la vista atras, veo que esta proliferación de lenguajes ha dejado muchos cadaveres en el camino, sobre todo de aquellas personas que no eligieron correctamente el sistema o lenguaje a aprender
Además ha habido importantes efectos colaterales negativos a nivel global, fruto del furor creativo, entre los que yo destacaría:
Fragmentación- Cada plataforma usa su propio lenguaje (IOS->objectiv C, Android->Java, Windows-> .NET, Web->Php,Java, Scripting->Perl,Python,Ruby)
Alejamiento del baremetal- Cada libreria, cada capa de abstracción, aleja un poco más al programador del verdadero campo de batalla, que realmente se libra en la placa pcb con los chips que hay soldados en ella.
Cuando un Maker tenga que hacer algo fuera del entorno comodo de un PC, por ejemplo si quiere programar un robot o una máquina, le costará adaptarse y entender los conceptos necesarios, si lo único que sabe es un lenguaje de última hornada que hace de carcel y no le deja escapar a etapas de más bajo nivel.
Es por esto, que a la gente que empieza y que quieran llegar a ser Makers competentes, les recomiendo retroceder unos pasos y estudiar los lenguajes C y C++.
Esto no significa quedarse anclado en el pasado, más bien al contrario, estos lenguajes son tan potentes que tan solo se necesita trabajar librerías que incorporen todas las tecnologías modernas importantes.
Existe una librería, de calidad exquisita, con una larguísima historia, de codigo libre con licencia LGPL, y su nombre es Qt.
Esta librería es multidisciplinar (UI gráfico,red,sistema) y multiplataforma.
La potencia que implica la frase anterior no se puede subestimar, estamos hablando de que usando C++ y la librería Qt se puede realizar un único programa que funcionará en todos los sistemas actuales sin practicamente modificaciones.
Esto incluye telefonos Iphone, Android, WindowsPhone, sistemas de escritorio, como Windows, Linux y MacOS, y cualquier sistema embedded (Raspberry, ODroid,CubieBoard, BeagleBoard,etc..)
Además se ejecutará de forma nativa en el procesador, sin intérpretes intermedios, con lo que la velocidad y la gestion de los recursos es dificilmente superable.
Si te ha interesado el tema, aquí tienes todo lo necesario para continuar:
http://www.qt.io