Generalidades Programación

Elegir el «mejor» lenguaje de programación

PorRoberto 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
LenguajePlataformaUso más frecuenteProgramas desarrollados con el lenguaje
JavaMultiplataformaAplicaciones AndroidMinecraft, Vuze, NASA World Wind, Android, 4SHared, Eclipse, Netbeans, Aptana, Curiosity (el que está en marte), Limeware, Open Office
CMultiplataformaSistemas Operativos, Drivers, propósito generalKernel de Linux, Minix, FreeBSD, Mac OS X, etc., GIMP, Apache, Nginx, Emacs, VIM, Compiladores C, C++, Python, Perl, Ruby, etc.
C++MultiplataformaDesarrollo de sistemas operativos, aplicaciones de escritorio, drivers, Aplicaciones Android, propósito generalWindows, Los paquetes de Adobe, máquinas virtuales de Java y .NET
PythonMultiplataforma Dropbox, SpamBayes, Calibre, GNU Mailman, Flumotion, Twisted, OpenERP, ClamWin, YouTube, Reddit
C#WindowsAplicaciones para .NETUmbraco CMS, Aplicaciones Empresariales para Windows
PHPMultiplataformaDesarrollo y aplicaciones WebFacebook, Wikipedia, WordPress, Drupal…
Visual Basic. NETWindowsAplicaciones para .NETAplicaciones Generales para Windows
JavascriptMultiplataformaDesarrollo WebAplicaciones Móviles
Delphi/Object PascalWindowsAplicaciones de escritorioAres, ConTEXT, Feed Reader, icprog, Real Alternative, DevC, Skype,QuickTimePlayer, K-Lite Codec Pack (Partes)
Go (Golang)MultiplataformaAplicaciones Web, Aplicaciones Móviles 
PerlMultiplataformaWeb, Sistemas, Aplicaciones de escritorio, Video juegos, Bioinformática 
SwiftOS X y LinuxApps de iOS, Mac, Apple TV y Apple WatchLyft, Khan Academy, Clear, Sky Guide, Linkedin, Airbnb, Eventbrite, Hipmunk
RubyMultiplataformaDesarrollo Web 
Assembly language (ASL)NAProgramación de sistemas, Drivers 
R Análisis estadístico 
Visual BasicWindowsAplicaciones de escritorio 
MATLAB Aplicaciones científicas e ingeniería 
Objetive CMacOSProgramación de sistemasiOS
Scratch Desarrollo de Juegos, animaciones, historias interactivas 
PL/SQL Programación para bases de datos Oracle, embebida en la misma DB 
ASP.NET.NetDesarrollo y aplicaciones Web 
ASPIISDesarrollo Web 
KotlinAndroidAplicaciones 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
LenguajeRanking TIOBE (Nov/2024)Ranking según datos de GitHub y Stack Overflow (2024)
Python11
C++24
Java32
C48
C#56
Javascript63
Go (Golang)7 7
Fortran8
Visual Basic9
SQL105
Delphi/Object Pascal11 
PHP1212
MATLAB13
Rust1410
Swift15
Scratch16 
Ruby17 
R18
 Assembly language (ASL)19 
Kotlin20 

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.

Lenguajes de programación a lo largo del tiempo
Lenguajes de programación a lo largo del tiempo. Fuente: https://www.tiobe.com/tiobe-index/

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:

  1. C++
  2. Python
  3. Java
  4. 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?

  1. 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.
  2. 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.
  3. 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».
  4. 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
  5. 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:

  1. Es fácil de aprender
  2. Soporta varios paradigmas de programación (Programación estructurada, imperativa, funcional, orientada a objetos)
  3. Se ejecuta en cualquier plataforma
  4. Amplia disponibilidad de bibliotecas
  5. Te permite desarrollar para Web, Escritorio y es ampliamente utilizado en el ámbito de la Seguridad Informática
  6. 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.

  1. Es relativamente fácil de aprender
  2. Es multiplataforma
  3. Permite desarrollo para aplicaciones Web, de escritorio o para móviles por igual
  4. Amplio conjunto de entornos de desarrollo
  5. Por más de 10 años ha estado en los lugares 1-2 de penetración
  6. 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:

  1. Es una plataforma de desarrollo de código abierto
  2. Te permite desarrollar las aplicaciones para todo el ecosistema Apple reemplazando  y usando herramientas antiguas-Objective C)
  3. 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.

Lenguajes mejor pagados al 2024
Lenguajes mejor pagados al 2024


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ónSueldo 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

Licencia Creative Commons
  
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.

eHack Blog

About Author

Leave a comment

También te podría gustar...

C++ Programación

Presentación: Tutorial de C++

Bienvenido a este tutorial de lenguaje C++, está pensado para usuarios que nunca han programado y para usuarios que no
C++ Programación

Lenguaje C++ – Introducción

Presento algunas razones porqué empezar con C++ y una breve descripción histórica del lenguaje. Además algunos compiladores de C++