MIE, 29 / JUL / 2015

Los nuevos lenguajes de programación: 1era parte

Hacemos un repaso por los lenguajes de programación modernos y populares: sus inicios, sus antecesores, y en qué escenarios reales podemos aplicar cada uno de ellos.

Esta nota fue publicada originalmente en la edición 288 de revista USERS. Podes suscribirte a la versión impresa y/o digital aquí

Por Fernando Luna

Si viajásemos a través del tiempo recorriendo la era de la computación, encontraríamos un sinfín de personajes que aportaron grandes desarrollos a esta era, creando entre otras cosas grandes equipos computacionales para diversos fines. Y si de equipos computacionales hablamos, no podemos dejar de pensar que, para que estos funcionen, se necesita al menos un lenguaje de programación y un compilador o intérprete, para que el código cobre vida y vuelva útil a la máquina.

Parados en el presente más próximo, seguramente hemos notado que la programación cobra cada vez más protagonismo en la vida del ser humano y que, tarde o temprano, todo niño en su período de educación inicial terminará aprendiendo programación de la misma manera que hoy aprende matemática, lengua, o historia.

php

PHP es uno de los lenguajes que podemos considerar como de la vieja escuela. Está detrás de exitosas web como lo son Twitter, Facebook, y WordPress, entre otras.

Si debemos expresar a través de la literatura el significado de un lenguaje de programación, podemos decir que este es un conjunto de algoritmos o sentencias, predefinidos a través de una estructura básica, conocida como lengua o lenguaje. Esta puede requerir, o no, de un compilador o intérprete intermedio para traducir el significado de cada instrucción en una orden que será ejecutada como proceso por una máquina o computadora.

Con los años, los lenguajes de programación expandieron sus fronteras dándole vida no solo a las aplicaciones básicas que todos ejecutamos dentro de una computadora, sino también a las páginas web por las que navegamos, los videojuegos que nos ayudan a despuntar el vicio en nuestra tablet o en nuestra consola favorita, las apps que nos permiten interactuar a diario con nuestro smartphone, y también en los microcontroladores Arduino y Raspberry.

El objetivo de esta nota es invitarlos a recorrer el camino de los nuevos jugadores que existen actualmente en el campo de la programación. Esta nueva legión de lenguajes viene haciendo historia en los terrenos más influyentes de estos últimos años. Conozcamos a continuación cada uno de los lenguajes de programación más importantes de hoy en día, y qué alcance tienen estos en el desarrollo de soluciones para la vida cotidiana.

build

Phonegap Build, el compilador de aplicaciones híbridas que saca provecho de la fortaleza de JavaScript en el terreno móvil.

JavaScript

Si de lenguajes modernos hablamos, no podemos dejar de mencionar a JavaScript. Este maravilloso lenguaje de scripting nació en 1995 bajo el nombre LiveScript, para luego rebautizarse con el nombre con el que hoy lo conocemos.

JavaScript basó su sintaxis en el lenguaje Java, orientando su uso al terreno de los navegadores web, para resolver principalmente determinadas funciones que no requieren de mucho procesamiento. Las cuales pueden ejecutarse sin problemas del lado del cliente, reduciendo así los tiempos de respuesta del lado del servidor.

En sus inicios, las páginas que utilizaban JavaScript eran mal vistas dado que la Internet en sí era lenta y la utilización del lenguaje JavaScript, el cual resuelve sus instrucciones en tiempo real, ralentizaban más el proceso de visualización de sitios web. Con los años, se desarrollaron diversos frameworks que utilizan a JavaScript como lenguaje base para interactuar del lado del servidor. Entre los frameworks más conocidos, podemos destacar a Node JS.

Hoy, con velocidades de navegación más aceptables, sumado al poder de procesamiento de las computadoras y la memoria RAM de sobra que éstas incluyen, JavaScript es utilizado no solo para resolver funciones simples en sitios web, sino también para intervenir y dotar a otros frameworks (como Jquery, AngularJS, TypeScript, Ionic y Sencha Touch, etc.), de la lógica básica necesaria para crear y simplificar funcionalidades de este lenguaje, que le permitan resolver tareas de diversa índole dentro de funciones optimizadas según el navegador web o sistema operativo donde se ejecutan.

La próxima generación del lenguaje JavaScript contempla una evolución significativa dentro del lenguaje, ya que incluirá características tales como ser el manejo de paquetes, namespaces, y definición explícita de clases previa a su uso, acercándose así a la sintaxis utilizada en los lenguajes de programación orientados a objetos.

VSjavascript

Windows 8 y superior, basaron la tecnología de desarrollo de las apps en el éxito de JavaScript, HTML5 y CSS3, bautizando a su propio port como TypeScript.

El mundo mobile

Otro ámbito donde ha crecido mucho JavaScript es en el terreno del mundo mobile. Tanto para tablets como para smartphones y handhelds en general, JavaScript comenzó a jugar un papel importante en este segmento, ya que los navegadores web suman cada vez más comunicación entre el hardware de los dispositivos, y el navegador en sí.

Así, aprovechando el componente WebView, presente en la mayoría de los sistemas operativos móviles, cualquier desarrollador puede combinar JavaScript con HTML5 y CSS, para acceder a funcionalidades de hardware. Como puede ser la cámara, acelerómetro, brújula, almacenamiento interno, de modo que puedan ser explotados desde lo que se conoce como aplicaciones híbridas.

Johnny Five Framework

Aprovechando el auge de estos últimos años en el terreno de la electrónica básica y la microcomputación (gracias a proyectos como Arduino), JavaScript se instaló también en el terreno de los controladores electrónicos. Allí pudo aprovechar el framework Johnny Five para desarrollar aplicaciones que manipulen el comportamiento de dispositivos basados en Arduino.

 

Johnnny Five Framework incorpora diversos módulos para desarrollar soluciones en JavaScript, combinado con Node JS, que permitan manipular el hardware de la placa Arduino, como también los puertos series, los componentes que utilizan los pines o jumpers, los LED, los servo motores, motores básicos, motores paso a paso, sonares, sensores de ultrasonido, relays, Joystick, displays LCD, y sensores acelerómetro, giroscopio y de temperatura, entre otros.

Actualmente se considera a JavaScript como un punto de partida excelente que permite aprender las bases y conceptos necesarios para manejar la programación en todos sus tipos. A su vez, JavaScript cumple de manera excelente su función en los terrenos web, mobile, robótica y videojuegos. Por lo tanto, su aprendizaje nos permitirá desplazarnos hacia el terreno de nuestra preferencia con un mínimo de aprendizaje específico adicional.

Scala

Scala es un lenguaje de programación, nacido en el año 2003 en el laboratorio de la Escuela Superior Politécnica de Lausana. Fue diseñado para expresar patrones comunes de programación de una forma más elegante que la que nos puede brindar un lenguaje de programación promedio. Scala integra, dentro de su sintaxis, características de lenguajes de programación orientado a objetos, como también características propias de un lenguaje funcional. Su sintaxis tiene mucha reminiscencia a Java y depende del Runtime Java, por lo tanto, posee compatibilidad con las aplicaciones Java existentes.

scala

Scala es un lenguaje orientado a objetos, que transforma en objeto cualquier declaración, variable o valor que se utilice dentro de este.

La orientación a objetos con la que cuenta Scala es total. A tal nivel que cada valor manejado dentro de las líneas de código de este lenguaje se transforma en un objeto, describiendo el comportamiento de éstos por medio de clases y traits. En base a las características de los lenguajes funcionales, Scala soporta funciones de nivel superior, anidadas y anónimas, entre otros tipos.

Dada su fuerte orientación para resolver cálculos matemáticos, Scala incluye en su sintaxis la técnica de Pattern Matching. Esta permite modelar tipos algebraicos, usados en muchos lenguajes de programación con orientación funcional. Al igual que su lenguaje modelo, de donde hereda gran parte de la lógica, Scala fue desarrollado para soportar extensiones específicamente desarrolladas para este lenguaje. Dichas extensiones se las conoce como bibliotecas.

Como bien dijimos, al ser compatible con Java y como depende del Runtime de este para ejecutarse, Scala puede ser utilizado sin problema tanto en aplicaciones web, como también en aplicaciones de escritorio, y en diferentes sistemas operativos que soporten a Java Runtime.

Punto de partida y documentación

Scala posee un sitio web muy bien equipado (www.scala-lang.org). Allí podremos acceder a toda la información importante que necesitamos para poder sacar partido de este asombroso lenguaje de programación. A su vez, la documentación también es bastante completa, y dado el auge que está teniendo todo el campo científico en esta última década, podemos encontrar cursos gratuitos de introducción a Scala, en los portales Coursera y EDX.

freemat

FreeMat es un IDE para desarrollo de prototipos científicos y de ingeniería que se complementa muy bien con lenguajes de programación como MATLAB.

Go

El lenguaje de programación Go, fue desarrollado por Robert Griesemer, Ken Thompson y Rob Pike, para Google. Lanzado en 2009, este lenguaje de programación compilado soporta paradigmas imperativo, estructurado, y es orientado a objetos. Fue desarrollado para los sistemas basados en *NIX, por lo cual es compatible en un 100% solo para las plataformas OS-X, FreeBSD, Linux y Unix.

Go utiliza la sintaxis basada en C, por lo tanto, para quienes programen con soltura en el lenguaje C o C++, el uso de Go será casi transparente. Si bien Go es orientado a objetos, no soporta la herencia de tipos, ni palabras clave, o definición de un tipo de clase determinada.

go

El lenguaje de programación Go, es uno de los más utilizados para la creación de Shell Scripts para plataformas basadas en *Nix.

Uso de packages

Como la mayoría de los lenguajes de programación livianos o de alto nivel, Go utiliza packages. Con un package se obtiene la sintaxis de código requerida para un identificador determinado. De esta manera, importamos dentro del proyecto los tipos, funciones, variables y constantes necesarias para, por ejemplo, acceder a una base de datos, tablas y registros, y realizar operaciones del tipo ABM sobre estos.

Con el uso de packages la lectura del compilador del lenguaje es mucho más rápida, y al procesar el programa desarrollado en Go, éste poseerá una agilidad importante respecto a los programas que incluyen todas las referencias a sus librerías.

Comentarios
¡Comparte esta noticia!

16 Comments

  1. puma dice:

    Bajate el visual studio community 2015 que salio hace un mes a ver si no tiene soporte……

  2. Federico dice:

    Visual Basic?? no tiene mas soporte desde 2008.

  3. puma dice:

    Basic no esta obsoleto, los dialectos modernos son – Visual Basic.net, Gambas para linux, Xojo, Purebasic, Autoit….entre otros….

  4. Daisuke dice:

    Claramente el artículo esta totalmente influenciado por la opinión muy personal de su escritor.

  5. David Intersimone dice:

    Y Delphi? Consideran que ObjectPascal/Delphi está obsoleto? Nadie probó el nuevo Delphi XE8? Permite compilar para Win32/64, MacOS, iOS, Android y pronto se viene Linux. VIejos son los caminos, y siguen hechando polvo!

  6. Franlu dice:

    Hola @patriciomila:disqus
    Desde mi punto de vista, te recomiendo que hagas un fuerte aprendizaje de las plataformas .NET (C#, HTML5+JS+CSS), y/o de JAVA. También debes ahondar independientemente del lenguaje que elijas aprender para obtener conocimientos de orientación a objetos y MVC (Model View-Controller).

    Estas últimas dos opciones son lo que más se está utilizando en empresas hoy para trabajar. MVC no es mi pasión y creo que el mundo puede sobrevivir tranquilamente haciendo software sin esta metodología, pero es lo que se usa y lo que más te van a exigir que conozcas.

    Luego podés aprender tranquilo C/C++ como para conocer lo que es programar en serio una aplicación desde cero (fuera de los frameworks actuales que te agilizan los tiempos), y con el tiempo y experiencia irás viendo para donde querés rumbear.

    Si vas a estudiar con tiempo, buscá referencias en la web de los lenguajes mejores pagos o con muy alta demanda y capacitate en ellos. Así vas a conseguir buenos ingresos y podrás pelear tus ingresos independientemente de cómo se encuentre el mercado laboral.

    Si necesitás salir ya a trabajar, tal vez te conviene abordar C#.NET, algo de base de datos SQL, y en dos o tres meses estarás trabajando en empresas con un sueldo modesto. En un año, si hiciste buena experiencia y mejoraste te perfil, seguramente estarás ganando arriba de 10mil al mes.

    Por otra parte, si no estás encarando una carrera profesional, podes embarcarte en estudiar Analista de sistemas, o Analista desarrollador de software, que son carreras que duran entre 2 y 3 años en instituciones privadas, y de dan chapa y conocimientos generales que luego podés aplicar en empresas.

    Un saludo, espero te sirva la data.
    Franlu

  7. Federico dice:

    Podrías empezar por c++, pero un poco, no te vayas tan lejos. Como para tener un pequeño panorama. Después te recomiendo que te enfoques en Java, C# o PHP. Son los más solicitados. De acuerdo al lenguaje que elijas, naturalmente vas a tener que estudiar los frameworks que están para ellos: .Net para C#, te recomiendo Laravel para PHP.

    Espero te haya servido.
    PD: https://www.acamica.com/carreras/1/desarrollador-web es una capactiación hecha por instructores argentinos, y el sitio es argentino. Para desarrollo web está muy bien encarado.

  8. Patricio Mila dice:

    buenas les hago una pregunta,si uno quiere insertarse en sistemas de programación , a que lenguaje debería dedicarme ?consulta del punto de vista laboral estaría en lo correcto en abocarme a java?obviamente arrancando por c++.

  9. Diego Sena dice:

    si escuche hablar de ello hace rato. pero la verdad que como no es popular nunca me puse a investigar. supongo que se tendría que tener un compilador, y ademas php no es específicamente dedicado a hacer grandes cosas visuales, creo que por ese motivo no se lo utiliza. ya que siempre necesitara un respaldo de otro lenguaje para poder realizar cosas “hermosas” para la vista.

  10. sebastian dice:

    existe php para desarrollar aplicaciones de escritorio pero nadie lo usa…

  11. Fernando Luna dice:

    Hola a todos.
    En sí, PHP y JavaScript nacieron el mismo año, pero este último recién comenzó a cobrar un fuerte protagonismo en los últimos años, cuando Flash comenzó a morir. Si bien JavaScript se integra dentro de cualquier película flash, PHP, HTML, y otros tantos lenguajes, lo denominamos de la nueva escuela porque tuvo un fuerte impulso desde la llegada de Jquery, y del resto de librerías que lo simplificaron o re-adaptaron.

    También se aclara en la nota que Javascript sumó importancia cuando comenzó a popularizarse la banda ancha, lo cual se conjugó con la llegada de las PCs con Gigabytes de RAM, procesadores por arriba de 1 GHz, y los primeros indicios de las plataformas de 64 bits.

    Toda esta intersección de cosas fueron las que le dieron nuevamente protagonismo a JS. Al menos es lo que noté yo cuando escribí la nota. Comencé a dar mis primeros pasos en programación en 1994, todavía en la época de BBS, y donde Internet era solo el nuevo nombre que había heredado la red ArpaNET.

    Saludos!

  12. Gzmn Diego dice:

    es correcto!

  13. Diego Sena dice:

    también opino que esta mal encarado lo de php, hay que recordar que se esta por lanzar la version 7 de php que traerá muchísimas mejoras de rendimiento, estabilidad y seguridad. Claro esta. que php no es tan multi-plataformas como javascript pero es por un motivo casi obvio, se ejecuta del lado de servidor. por lo que se puede decir que de cada 1 server debe de existir miles de diferentes plataformas clientes. es algo lógico ya que, El código es interpretado por un servidor web con un módulo de procesador de PHP

  14. Federico dice:

    Yo creo que no se refiere a que es viejo. Cobol, ADA y Basic no son vieja escuela, directamente están obsoletos, todos los sistemas qe requieren developers en esos lenguajes es solo mantenimiento (o al menos el 95% de los casos).

    Respecto porque Javascript no es vieja escuela, aun naciendo en el mismo año que php, es porque yo creo que se mide la edad del lenguaje no en terminos de tiempos humanos, sino en madurez tecnológica. Estarás de acuerdo conmigo en que javascript y todo su mundo (jquery, node, angular, ember, reactjs, +1000 cosas mas) aparecieron mas recientemente en comparación que librerías php (excepto por los frameworks, hace un tiempito que estan saliendo nuevamente frameworks php que lo revitalizaron). Php se va adaptando, pero alcanzó cierta estabilidad hace ya algun tiempo; mientras javascript no deja de dar lugar a nuevas implementaciones.

    Opinión mía.
    Saludos!

  15. Chacal - dice:

    Totalmente de acuerdo!

  16. JoAn Guevara dice:

    Porqué PHP es de la vieja escuela, y JavaScript NO, si ambos aparecieron en 1995??? PHP también es relativamente nuevo, de la vieja escuela serían C, Pascal, Basic, ADA, Cobol, Fortran, etc.

Leave a Reply