Por: Roberto C. González
Para: Ethical Hack
Ya lo mencioné anteriormente, no hay UN mejor lenguaje de programación, por más que alguien se empeñe en decir lo contrario.
En todo caso habrá un mejor lenguaje de programación dependiendo de la tarea a programar, los recursos disponibles y el mercado al que se dirige la solución. Tomando estos aspectos y algunos otros podremos elegir uno u otro lenguaje. De hecho en proyectos grandes no es raro requerir de dos o más lenguajes para obtener una solución completa.
Dada la versatilidad de muchos de los lenguajes es casi imposible encasillar un lenguaje para una tarea especifica, por eso mismo, hacemos mención de algunos de los más populares así como su enfoque primordial.
Recuerda, esta lista no es ni de lejos completa ni exhaustiva, lo ideal es que programes con cada lenguaje que te llame la atención.
Tabla 1. Lenguajes de programación y aplicaciones
Lenguaje | Plataforma | Uso más frecuente | Programas desarrollados con el lenguaje |
Java | Multiplataforma | Aplicaciones Android | Minecraft, Vuze, NASA World Wind, Android, 4SHared, Eclipse, Netbeans, Aptana, Curiosity (el que está en marte), Limeware, Open Office |
C | Multiplataforma | Sistemas Operativos, Drivers, propósito general | Kernel de Linux, Minix, FreeBSD, Mac OS X, etc., GIMP, Apache, Nginx, Emacs, VIM, Compiladores C, C++, Python, Perl, Ruby, etc. |
C++ | Multiplataforma | Desarrollo de sistemas operativos, aplicaciones de escritorio, drivers, Aplicaciones Android, propósito general | Windows, Los paquetes de Adobe, máquinas virtuales de Java y .NET |
Python | Multiplataforma | Dropbox, SpamBayes, Calibre, GNU Mailman, Flumotion, Twisted, OpenERP, ClamWin, YouTube, Reddit | |
C# | Windows | Aplicaciones para .NET | Umbraco CMS, Aplicaciones Empresariales para Windows |
PHP | Multiplataforma | Desarrollo y aplicaciones Web | Facebook, Wikipedia, WordPress, Drupal… |
Visual Basic. NET | Windows | Aplicaciones para .NET | Aplicaciones Generales para Windows |
Javascript | Multiplataforma | Desarrollo Web | Aplicaciones Móviles |
Delphi/Object Pascal | Windows | Aplicaciones de escritorio | Ares, ConTEXT, Feed Reader, icprog, Real Alternative, DevC, Skype,QuickTimePlayer, K-Lite Codec Pack (Partes) |
Go (Golang) | Multiplataforma | Aplicaciones Web, Aplicaciones Móviles | |
Perl | Multiplataforma | Web, Sistemas, Aplicaciones de escritorio, Video juegos, Bioinformática | |
Swift | OS X y Linux | Apps de iOS, Mac, Apple TV y Apple Watch | Lyft, Khan Academy, Clear, Sky Guide, Linkedin, Airbnb, Eventbrite, Hipmunk |
Ruby | Multiplataforma | Desarrollo Web | |
Assembly language (ASL) | NA | Programación de sistemas, Drivers | |
R | Análisis estadístico | ||
Visual Basic | Windows | Aplicaciones de escritorio | |
MATLAB | Aplicaciones científicas e ingeniería | ||
Objetive C | MacOS | Programación de sistemas | iOS |
Scratch | Desarrollo de Juegos, animaciones, historias interactivas | ||
PL/SQL | Programación para bases de datos Oracle, embebida en la misma DB | ||
ASP.NET | .Net | Desarrollo y aplicaciones Web | |
ASP | IIS | Desarrollo Web | |
Kotlin | Android | Aplicaciones Android |
La lista no abarca ni de lejos el universo de lenguajes disponibles para programar, pero sí muestra a los más influyentes en este momento (noviembre de 2024), de acuerdo a lo expresado en la tabla 1 puedes darte una idea de qué lenguaje te puede ser de utilidad para iniciar el proyecto que tengas en mente o del objetivo que desees perseguir.
Recuerda siempre, la lista anterior es solo una sugerencia, si algo tiene la programación es que si algo no te gusta, o le falta, tú puedes programar ese faltante y aunque una lista te diga este lenguaje es para aplicaciones Web, llegado el momento nada impedirá que puedas hacer aplicaciones de escritorio con ese lenguaje diseñado para Web, por su puesto el tiempo y trabajo de desarrollo requeridos (Y por tanto la viabilidad), son otro tema a considerar.
He seleccionado los 20 lenguajes de programación más influyentes del momento a noviembre de 2024 (con algunos extras), puedes observar que dependiendo la tarea a realizar uno se ajustará más para ciertas tareas, La lección en este sentido es: no te cases con un solo lenguaje, claro siempre habrá un «lenguaje preferido» pero no seas dogmático, si otro lenguaje hace mejor lo que necesitas, utilízalo, aunque no sea tu preferido.
A continuación te presento el ranking utilizando 2 de las principales fuentes para este tipo de comparativas:
Tabla 2. Top 20 de lenguajes de programación
Lenguaje | Ranking TIOBE (Nov/2024) | Ranking según datos de GitHub y Stack Overflow (2024) |
---|---|---|
Python | 1 | 1 |
C++ | 2 | 4 |
Java | 3 | 2 |
C | 4 | 8 |
C# | 5 | 6 |
Javascript | 6 | 3 |
Go (Golang) | 7 | 7 |
Fortran | 8 | |
Visual Basic | 9 | |
SQL | 10 | 5 |
Delphi/Object Pascal | 11 | |
PHP | 12 | 12 |
MATLAB | 13 | |
Rust | 14 | 10 |
Swift | 15 | |
Scratch | 16 | |
Ruby | 17 | |
R | 18 | |
Assembly language (ASL) | 19 | |
Kotlin | 20 |
Fuente: https://www.tiobe.com/tiobe-index/ y Github
Esta información, junto a la de la tabla 1, te darán una idea más precisa de «qué lenguaje te puede convenir», claro, suponiendo que te vayas a dedicar a programar como profesión. La ventaja de todo esto es que conociendo los fundamentos de un lenguaje de programación, cualquier otro lenguaje será más fácil de adoptar.
La siguiente gráfica te da una perspectiva de el lugar de los lenguajes de programación más representativos a lo largo de 3 décadas.
Entonces, ¿Cuál lenguaje de programación elegir?
Para responder esta cuestión vuelvo a aclarar, ninguna respuesta que te diga «éste es el mejor» es válida, bueno, ni la que a continuación daré. Todo es una sugerencia, tómala como tal.
Si es tu primer lenguaje y lo vas a adoptar de forma libre (es decir no por requerimiento laboral o de estudios) mi sugerencia es la siguiente:
- C++
- Python
- Java
- Swift
En ese orden, en esa prioridad. A continuación intentaré justificar mi respuesta.
C++
Como puedes apreciar de las tablas y gráficas de ésta y otras páginas hay una mano a mano Java vs. C++, hay una guerra de razones y sinrazones en cada bando que no es útil retomar. ¿Porqué C++ en lugar de Java en primer lugar?
- Al igual que Java, es multiplataforma, es poderoso y es de los más requeridos en la industria, se usa para programas personales y para el desarrollo de grandes sistemas. Si algo no existe lo puedes crear con C++, con Java empieza a haber restricciones a nivel de sistema.
- No es C, pero hereda casi todo el comportamiento de C, por lo que si llega el momento, puedes aprender C, quitando las particularidades de C++, aprendiendo las generalidades de C.
- La «familia C (C, C++, C#) tiene una estructura muy similar (aunque trabajen y se comporten distinto) por lo que la lectura y la transición a otro lenguaje «tipo C (JavaScript, Java, etc.) será relativamente accesible. Si conoces C++ mucho del software existente te será «familiar».
- La facilidad de aprenderlo en cualquier equipo, en cualquier plataforma es, en la mayoría de los casos, más accesible que toda la estructura que requiere Java
- Sin llegar a la complejidad de C, podrás programar «casi todo» lo que necesites a nivel de sistema y hadware y lo que no puedas, lo puedes complementar con ensamblador… o con C creando las librerías necesarias.
Python
De hecho para muchos autores esta es la sugerencia inmediata para quien inicia, incluso para mí lo es en cierto modo, ¿Por qué la dejo en segundo lugar? Tal vez por que le doy preferencia a que el usuario entre por la puerta «difícil» (C++) pues (a falta de Pascal) es una de las mejores formas que tiene el usuario nuevo en obtener una formación en la ciencia informática. Sin embargo Python con justa razón puede ser el primero por muchas razones:
- Es fácil de aprender
- Soporta varios paradigmas de programación (Programación estructurada, imperativa, funcional, orientada a objetos)
- Se ejecuta en cualquier plataforma
- Amplia disponibilidad de bibliotecas
- Te permite desarrollar para Web, Escritorio y es ampliamente utilizado en el ámbito de la Seguridad Informática
- Es simple, limpio y potente
Java
Los «Javeros» se sentirán insultados de ver mi sugerencia en tercer lugar, debo señalar que bien pudo ir en el lugar uno. Sin embargo a mi modo de ver, las simplificaciones y abstracciones que tiene Java sobre C++, «ocultan» muchas cosas «complicadas» que tiene C++ que resultan importantes pedagógicamente hablando para quienes inician (por mencionar un par: no se puede «ver» la formación de las clases a partir de funciones, ni el manejo a bajo nivel que se hace de la memoria al manipular objetos). Sin embargo es innegable la potencia, difusión y preferencia de Java por parte de la industria.
- Es relativamente fácil de aprender
- Es multiplataforma
- Permite desarrollo para aplicaciones Web, de escritorio o para móviles por igual
- Amplio conjunto de entornos de desarrollo
- Por más de 10 años ha estado en los lugares 1-2 de penetración
- El manejo de Java está incluido dentro de las 20 habilidades más valoradas por los empleadores en 2016, según un estudio elaborado por LinkedIn.
Así que empezar con Java, es una apuesta segura.
Swift
En lugar de Swift (que reemplaza a Objetive C) pude haber puesto Go (Para Android), PHP o Ruby, sin embargo me inclino por esta opción básicamente por el respaldo de Apple con que cuenta. Todos los sabemos, Apple es un mercado que no se debe subestimar. Además hay otros factores que resultan interesantes:
- Es una plataforma de desarrollo de código abierto
- Te permite desarrollar las aplicaciones para todo el ecosistema Apple reemplazando y usando herramientas antiguas-Objective C)
- El desarrollo de aplicaciones se mueve a plataformas móviles, con Java cubres Android, para iOS swift es la apuesta.
El dinero importa, claro, sino como pagamos la luz…
No menos importante resulta tener una referencia del salario que un lenguaje de programación nos puede proporcionar, aunque considera que esta tabla solo es una referencia.
Por otra parte, tu lugar de residencia puede determinar el tope promedio de ingreso, variado mucho de región en región.
Lenjuaje de Programación | Sueldo medio (Pesos mexicanos) |
---|---|
Python | $21,703 |
JavaScript | $24,173 |
C++ | $20,681 |
Java | $20,647 |
Ruby y Ruby on Rails | $20,514 |
PHP | $14,777 |
Sueldo en México, con información de Indeed |
Conclusión
Más allá de si te vas a dedicar a programar de forma profesional o como pasatiempo debes considerar que la programación si bien todo mundo la puede aprender, no es para todos. A mi modo de ver debes sentir pasión por el hardware que quieres programar. De otro modo solo codificarás sin encontrarte mucho sentido a lo que haces.
Realmente tu eliges con cuál lenguaje empezar, si quieres empezar con Basic, está bien, lo importante es que tengas presente que si vas a aprender a programar sistemas, seas metódico, ordenado y sobre todo, que tengas siempre presente que conocer y aprender un lenguaje de programación, es solo el primer paso.
Unas últimas palabras si pretendes a aprender a programar: Es válido preguntar cualquier cosa, siempre y cuando hayas buscado la respuesta por tí mismo. Es lamentable la cantidad de preguntas en foros y blogs pidiendo ayuda para instalar un compilador, recuerda el camino del programador empieza por ser un camino en solitario. Aprende a buscar y a encontrar y solo al final, preguntar.
Como postdata te invito que revises éste artículo la casuística de los programadores principiantes y aunque lo describe con humor, es una lamentable realidad en muchos aprendices de la actualidad.
Si tienes alguna duda que no se responde en este documento, por favor plantea tu pregunta para poder responderte. O escribe directamente a soporte@ehack.mx
Referencias
- Por Roberto C. González
Fuente Imágenes
- «Elegir el «mejor» lenguaje de programación»: by Envato Elements
- «Lenguajes de programación a lo largo del tiempo»: by TIOBE
- «Lenguajes mejor pagados al 2024»: by Campusmvp
- «Elección de un lenguaje de programación»: by artmonkey / Freepik
- «Lenguajes de programación mejor pagados al 2024»: by Indeed
- «Salario de programadores en el mundo»: by Instituto Foc
Elegir el "mejor" lenguaje de programación, por Roberto C. González. Se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.
©2019 - 2025, Ethical Hack, Todos los derechos reservados sobre el contenido propio.