Lenguajes de programación: ¿cuál elegir?
Un lenguaje de programación es un sistema de reglas y caracteres que permite escribir instrucciones que un ordenador puede ejecutar. ¿Te imaginas tu vida hoy sin un ordenador? Seguramente no. Pero hubo un tiempo en que estas máquinas inteligentes no tenían periféricos, ni siquiera un teclado, y mucho menos un lenguaje de programación.
Hay alrededor de 8 mil lenguajes de programación documentados: algunos los usa un círculo reducido de especialistas y otros son ampliamente conocidos.
A continuación tienes los lenguajes de programación más populares, con sus ventajas y desventajas, pero antes conviene repasar algunos conceptos esenciales para entenderlos mejor.
¿Qué es el tipado en programación?
El tipado es el sistema que clasifica las variables en tipos: determina cómo se trabaja con cada una de ellas, cómo se configuran al principio, cómo se modifican, etc.
Puede ser de los siguientes tipos:
- explícito o implícito;
- débil o fuerte;
- estático o dinámico.
Si un lenguaje de programación tiene tipado estático, la comprobación de tipos se produce en la fase de compilación: el compilador detecta los errores antes de que el programa se ejecute, lo que ahorra bastante tiempo al programador. Los lenguajes de tipado dinámico, en cambio, buscan los errores mientras el programa se está ejecutando; son más flexibles y más fáciles de aprender.
En los lenguajes de tipado débil es posible mezclar distintos tipos de datos, algo que ya no es posible con el tipado fuerte.
Con el tipado explícito, eres tú quien indica el tipo de cada variable, lo que resulta más fiable pero lleva más tiempo. Con el tipado implícito, es el compilador quien lo hace por ti, y en menos tiempo.
¿Qué son HTML y CSS?
HTML son las siglas de HyperText Markup Language («lenguaje de marcado de hipertexto») y se utiliza para marcar el contenido de los documentos en internet. CSS, por su parte, son las siglas de Cascading Style Sheets («hojas de estilo en cascada»): es el lenguaje que da formato visual a un documento HTML —colores, tipografías, espaciados y disposición de los elementos— para que resulte agradable de leer.
Ninguno de los dos es, en sentido estricto, un lenguaje de programación: con ellos no puedes escribir un programa. Pero son imprescindibles para crear el contenido de una página, y el desarrollo de sitios web es imposible sin ellos. HTML y CSS son la base del desarrollo full stack, backend y frontend, y son muy fáciles de aprender: si decides dedicarte a los lenguajes de programación, te recomendamos empezar por ellos y pasar después a otros más complejos.
¿Qué es Java?
Java es un lenguaje de programación de alto nivel diseñado para ejecutar aplicaciones. Se utiliza para crear aplicaciones móviles para el sistema operativo Android, juegos 2D, aplicaciones para el sector financiero, sistemas de alto rendimiento, programas para Big Data, etc.
La sintaxis de Java se compara a menudo con la del lenguaje de bajo nivel C, aunque resulta más fácil de entender. Java tiene, además, las siguientes ventajas:
- amplio ámbito de aplicación;
- umbral de entrada bajo;
- funciona en todos los sistemas operativos;
- está respaldado por una gran cantidad de bibliotecas.
Java es un lenguaje difícil de aprender: lo eligen quienes ya tienen experiencia con otros lenguajes de programación o lo están estudiando de forma profesional. No admite construcciones implícitas, lo que lo hace fiable, aunque su verbosidad no siempre resulta cómoda. Además, este lenguaje arrastra bibliotecas de código heredado.
Así es el stack tecnológico de Java:
- IDE: Eclipse, Netbeans, Android Studio.
- Frameworks para Android: OrmLite, RoboSpice, Picasso, Retrofit, Butterknife.
- Frameworks populares: Spring, Hibernate, Swing, RxJava.
- Herramientas para Android: Android SDK Manager, Android Emulator, ADB.
- Bases de datos: Oracle, MSSQL, MySQL.
- Administrador de dependencias/sistema de compilación: Gradle, Ant, Maven.
- JVM: la máquina virtual de Java, el entorno donde se ejecuta el código.
El mercado laboral para desarrolladores de Java es bastante activo y los salarios son altos.
¿Qué es JavaScript?
JavaScript existe desde 1995. Al principio tenía un nombre distinto, Mocha; poco después pasó a llamarse LiveScript, y solo entonces recibió el nombre que conocemos hoy, porque el lenguaje Java se estaba haciendo cada vez más popular y aprovechar ese tirón resultaba una buena estrategia comercial.
JavaScript es un lenguaje de programación multiparadigma: admite estilos funcionales, imperativos y basados en eventos. Tiene un alcance amplio, aunque se usa con más frecuencia para desarrollar aplicaciones y páginas web interactivas, tanto del lado del servidor como en el móvil.
Ventajas de JavaScript:
- Se considera el principal lenguaje de programación web porque es compatible con todos los navegadores y se integra tanto con el diseño de la página como con la parte del servidor.
- Fácil de usar: resuelve problemas rápidamente sin pasos innecesarios.
- Alta velocidad: procesa páginas web sin necesidad de solicitudes al servidor.
- Tiene una interfaz fácil de usar y es sencillo de aprender.
Desventajas de JavaScript:
- Tipado débil: el código es fácil de escribir, pero eso lo hace menos fiable, por lo que para programas complejos se suele preferir otro lenguaje.
- Sin soporte de acceso remoto.
- No permite leer ni descargar archivos de forma nativa.
- El desarrollo nativo de aplicaciones móviles sigue apoyándose sobre todo en Java y Kotlin, aunque JavaScript también tiene su hueco en este terreno gracias a frameworks como React Native.
A pesar de su popularidad, este lenguaje tiene sus propios matices de uso. Si eliges convertirte en programador web, no puedes prescindir de aprender JavaScript. Pero no temas que sea difícil, por los siguientes motivos:
- tiene una sintaxis sencilla y el código se entiende de forma intuitiva;
- todas las herramientas son claras y accesibles;
- hay material didáctico de sobra en internet.
Puedes aprender el lenguaje con cursos en línea, después de determinar qué nivel de conocimiento necesitas.
Así es el stack tecnológico de JavaScript, es decir, el conjunto de herramientas para trabajar en un proyecto:
- Editor de código o IDE: Sublime Text, Notepad++, WebStorm.
- Depurador: Chrome WebInspector (DevTools), Firebug. Sirve para encontrar errores con rapidez.
- Entorno de ejecución para el lado del servidor: Node.js.
- Frameworks para desarrollo web: jQuery, AngularJS, ReactJS, Ember, BackBone, Meteor.
- Herramientas para aplicaciones de escritorio: Electron, NW.js (Node-Webkit), AppJS, Windows 8+.
- MongoDB: un sistema de gestión de bases de datos orientado a documentos.
- JSON: un estándar de texto para el intercambio de datos.
Un desarrollador debe conocer bien todas estas herramientas para tener demanda en el mercado laboral. Ahora mismo la demanda de estos especialistas supera a la oferta: encontrar trabajo en este campo es bastante fácil y, aunque una vacante así sea poco habitual en tu ciudad, muchas empresas ya contemplan el empleo remoto, así que no tienes por qué atarte a un lugar concreto.
¿Qué es PHP?
PHP son las siglas de PHP: Hypertext Preprocessor, aunque originalmente significaban Personal Home Page Tools («herramientas para páginas personales»). Es un lenguaje de programación de código abierto, pensado especialmente para el desarrollo web, creado en 1995 y hoy el más popular entre los desarrolladores web.
PHP se usa mucho para crear sitios web, aplicaciones de servidor, utilidades, scripts y aplicaciones móviles. Sitios tan conocidos como Facebook, Wikipedia o WordPress se construyeron con PHP.
Estas son las razones de que este lenguaje sea tan popular:
- lectura rápida;
- diseñado para el desarrollo web;
- tiene un amplio ámbito de aplicación;
- es multiplataforma;
- fácil de aprender;
- tiene demanda, así que a un especialista en este campo le resultará fácil encontrar trabajo;
- las últimas versiones han incorporado nuevas funciones y una sintaxis mejorada.
Pero, como nada es perfecto, PHP tampoco lo es. Entre sus principales desventajas están el tipado débil, una biblioteca estándar poco cómoda de usar y el hecho de que está pensado sobre todo para el desarrollo web.
A diferencia de JavaScript, no podrás leer el código PHP por tu cuenta a la primera: para eso necesitas conocer los conceptos básicos del lenguaje, algo que puedes dominar en pocas horas.
La demanda de especialistas en PHP es alta, aunque el salario suele ser algo inferior al de los desarrolladores de JavaScript. En cualquier caso, conseguir trabajo en este campo no será difícil si conoces bien las tecnologías necesarias para trabajar con este lenguaje.
El conjunto de herramientas para trabajar con PHP consta de:
- Editor/IDE: Sublime Text, Atom, Notepad++, PhpStorm.
- Almacenamiento: Memcached, Redis, MongoDB.
- Servidores de bases de datos: PostgreSQL, MySQL.
- Depurador: Xdebug.
- Frameworks populares: Symfony, Yii, Laravel, Zend, Lumen, Silex, Slim.
- Profiler: XHProf, que estima el tiempo de ejecución en cada etapa y ayuda a detectar dónde el programa va más lento.
- Administrador de paquetes: Composer.
Los especialistas en tecnología web tendrán demanda durante muchos años, así que puedes elegir con confianza la formación en PHP.
¿Qué es Python?
Python lleva en el mercado desde 1991 y se usa como lenguaje de programación de propósito general: desarrollo web, redes neuronales, análisis de datos y ciencia de datos, escritura de scripts, videojuegos, etc. Muchas de estas tareas de aprendizaje automático se benefician además de la diferencia entre CPU y GPU a la hora de entrenar modelos más rápido.
Python es bastante fácil de aprender, por eso es uno de los primeros lenguajes que estudian quienes empiezan.
Ventajas de Python:
- sintaxis sencilla;
- amplio ámbito de aplicación;
- multiplataforma;
- fácil de aprender;
- umbral de entrada medio;
- existen muchas bibliotecas y plataformas de software para él.
Entre las desventajas de Python están un rendimiento más lento del programa y unas capacidades de análisis de código más limitadas.
Si comparamos la demanda de especialistas en Python frente a PHP, hay menos demanda de programadores de Python en general, aunque los desarrolladores con conocimientos de redes neuronales y aprendizaje automático están especialmente valorados en el mercado laboral.
El stack tecnológico de Python incluye:
- Editor/IDE: PyCharm.
- Para aprendizaje automático: Scikit-learn, Keras, TensorFlow.
- Para análisis de datos: IPython/Jupyter, Anaconda, Matplotlib, Pandas, NumPy, PySpark.
- Para desarrollo web: Django, Tornado, Flask.
- Gestor de dependencias: pip, conda.
- Cython: una extensión necesaria para escribir código de alto rendimiento.
Por cierto, sitios tan populares como YouTube e Instagram se apoyan en gran medida en Python para buena parte de su infraestructura, y la NASA fue una de las primeras agencias públicas en implementar la automatización robótica de procesos a gran escala, un campo en el que Python es una de las herramientas más utilizadas.
¿Qué lenguaje de programación deberías aprender primero?
Antes de elegir qué lenguaje dominar, decide qué te interesa: ¿quieres dedicarte al desarrollo web, escribir aplicaciones o te atrae más el análisis de datos? Conviene primero identificar qué habilidades quieres desarrollar, porque cada lenguaje de programación está pensado para tareas concretas.
No intentes aprenderlo todo de golpe. Concéntrate en tus propias preferencias y, si te cuesta decidirte, empieza por los lenguajes más fáciles de aprender y estudia sus stacks y frameworks.
Aunque HTML y CSS no son lenguajes de programación, es imposible escribir cualquier programa sin ellos: si decides dedicarte a esto, empieza por ellos porque son los más fáciles de aprender, aunque ten en cuenta que los salarios de quienes solo dominan estas habilidades no son los más altos.
Java es uno de los lenguajes más populares y utilizados: si lo dominas, tienes casi garantizados demanda y un buen salario, aunque no es fácil de aprender. JavaScript es algo más difícil de dominar y también tiene demanda en el mercado laboral.
Para trabajar en áreas más concretas son adecuados PHP y Python: la demanda de estos especialistas y su nivel salarial son bastante altos, a pesar de las limitaciones de cada lenguaje en cuanto a su ámbito de uso.
