Logo Studenta

¿Cuál es el lenguaje de programación más rentable y con mayor futuro en los próximos años?

💡 1 Respuesta

User badge image

Apuntes Prácticos

Respecto de la primera parte de su pregunta, depende de lo que quiera decir por “rentable”.


Si por rentable quiere decir, el que normalmente genera programas “más optimizados” en términos de eficiencia energética, hay estudios que concluyen que ese lenguaje todavía sigue siendo C…

https://haslab.github.io/SAFER/scp21.pdf

…seguido por C++ y Rust.


Si por rentable se refiere a qué lenguaje es “más productivo” para una software factory en términos de funcionalidad (FP) por línea de código (LoC) la firma QSM, experta en estimación, señala a Perl como el lenguaje con menor ratio de LoC por FP.

Function Point Languages Table
The QSM Function Point Table provides SLOC/FP language gearing factors for a variety of programming languages.
https://www.qsm.com/resources/function-point-languages-table

Sin embargo, como muchos ingenieros de software le dirán, las LoC estimadas es una métrica muuuuy engañosa. Para empezar, no cuesta lo mismo producir una línea de código en ensamblador que una línea de código en C, ni producir una línea de código en C que una línea de código en Haskell. Pero es que, además, las LoC tienden a producir sobreingeniería y costumbres muy poco higiénicas en los programadores a los que se mide su productividad en función de las LoC que generan semanalmente.

Una mejor métrica en términos de productividad (y que ayuda a mantener a los desarrolladores enfocados en el problema) es la de horas necesarias para entregar un punto de función (o un punto de historia de usuario). También se puede establecer ciertos valores típicos según el lenguaje elegido. Hace pocos años el conocido consultor e ingeniero de software Carpers Jones publicó su revisión del estado del arte en lo que se refiere a las métricas de medición de productividad en el desarrollo de software.

https://www.ifpug.org/wp-content/uploads/2017/04/IYSM.-Thirty-years-of-IFPUG.-Software-Economics-and-Function-Point-Metrics-Capers-Jones.pdf

Para el tema que nos ocupa, la productividad según el lenguaje, véase la tabla 16 en la página 49.

Según esta tabla, el lenguaje de propósito general más productivo en términos de funcionalidad obtenida por hora de trabajo sería Smalltalk. Cuesta creer que Smalltalk, un lenguaje veterano, pero sin una gran popularidad al cabo de los años, sea tan productivo.

Why learning Smalltalk can never be a waste of time
I get this a lot, people telling me that learning Smalltalk is a waste of time. Here’s my retort…
https://richardeng.medium.com/why-learning-smalltalk-can-never-be-a-waste-of-time-a45038b18427

Pero así es. Probablemente tiene que ver con otras cuestiones como son el hecho de que los equipos que lo usan tienen gran experiencia en desarrollo ágil (fue el lenguaje que usaron los primeros que practicaron “metodologías” ágiles como XP), y que los entornos incluyen de serie una biblioteca enorme de componentes reusables y muy cercanos al lenguaje del problema. Y que admite técnicas de metaprogramación (programar programas que generan programas). Y que es un lenguaje extraordinariamente compacto con una sintaxis muy pequeña (con una biblioteca enorme, sí, pero el lenguaje en sí es ultracompacto).

No obstante, debe tenerse en cuenta que, en esa misma tabla 16, se puede observar como la forma más productiva de crear software son las herramientas que no requieren codificación o que requieren muy poca codificación (lo que se conoce como “no-code” y “low-code”). La más productiva resulta ser Integranova:

Integranova Software Solutions | Integranova Software Solutions
No-Code and Low-Code are two buzzwords you may have heard of. Whether or not you are familiar with those terms and what their implications are, let us tell you that quite often, when we do a presentation, before moving on to a live demo, people ask: “Is Integranova a No-Code tool? Or is it a Low-Code tool?” Our quick answer to that is: “It is both and it is none”. Sounds contradictory? Keep on reading. Before diving into what kind of tool Integranova is with respect to those two fancy terms, let us talk a bit about each one. Low-Code is a term that encompasses tools that require little coding to build applications. Such tools usually rely on a GUI that allow users to drag, drop and combine existing blocks of code and components in a workflow to create software applications. The existing components that make up the building blocks of the application to be developed do not cover all, but most of the final product. To complete the outcome of such tools, developers come into play by adding the required code. These tools promise that the code that needs to be added is a small fraction of the whole code base, hence the term “low-code”. The main advantages of low-code tools and platform are obviously an increase in development speed and ROI along with a minimization of risk. There are disadvantages, however, as scalability, high availability, performance, and possibly other non-functional requirements, are not always met, and these platforms are so constrained that it is not always easy to change or adapt the output to meet specific needs No-Code is a term that applies to tools that push the bar even higher and make a more ambitious promise. They function in a similar way to low-code tools, but their building blocks are not related to programming or development concepts. Because of that, their target audience are people that do not have a background in programming but rather a more business-oriented profile. Also, these tools promise that they can produce all the code of the application thus not requiring any additional development effort to complete it, hence the term “no-code”. The main advantages of no-code tools are those of low-code tools combined with the fact that they require little training, so virtually anyone can become a “developer”. But there are disadvantages too: no-code tools are even more constrained than low-code tools. You either use what they produce or not, but you cannot change it. In any of the two approaches, users are trading off ease of use, development speed and completion of the product to develop for the ability to customize and adapt the generated product to meet specific needs. With low-code tools, you need to create additional code to complete the generated product
https://www.integranova.com/en/integranova-m-e-s/blog/2021/05/nocode-lowcode-integranova/

Esta tecnología es seguida por Excel, y por otras opciones del mundo 4GL normalmente asociadas a productos comerciales concretos como Forte, Telón y otros generadores de aplicaciones empresariales.


Si por rentable Vd. se refiere a “mejor pagado”… una reciente noticia publicada en Geeks4Geeks se publicó un ranking de los lenguajes mejor pagados (trabajando como autónomo).

7 Highest Paying Programming Languages For Freelancers in 2022 - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
https://www.geeksforgeeks.org/7-highest-paying-programming-languages-for-freelancers-in-2022/

El ganador (el que mejor se pagaba por hora) resultó ser Go.

Otra fuente de datos para una métrica similar la ofrece la encuesta anual de Stack Overflow que tiene un apartado dedicado a las tecnologías mejor remuneradas.

Stack Overflow Developer Survey 2021
In May 2021 over 80,000 developers told us how they learn and level up, which tools they’re using, and what they want.
https://insights.stackoverflow.com/survey/2021

En este caso, el lenguaje mejor pagado resulta ser Clojure (un dialecto de Lisp para la JVM de uso minoritario, pero muy buscado en algunos entornos). Un detalle interesante: los cuatro lenguajes mejor pagados según esta última encuesta son todos ellos funcionales: Clojure, F#, Elixir y Erlang. Todos ellos son lenguajes que no aparecen en los primeros puestos del ranking de lenguajes más populares de Tiobe o de PYPL.

De hecho, casi podría concluirse que si Vd. se especializa en un lenguaje no muy popular, tendrá mejores perspectivas de ganar un mejor salario que si se decide por una carrera más “convencional”. Aunque supongo que tendrá que estar dispuesto a moverse ya que es muy probable que solo algunas pocas empresas demanden la tecnología.


Respecto su segunda pregunta: el futuro… mi predicción es que en el futuro (a más de 10 años vista) la programación de ordenadores no se parecerá en nada a lo que es hoy día. Para empezar, los lenguajes de programación en gran medida desaparecerán, se difuminarán y/o se harán más integrables unos con otros a través de las IA de codificación, y entornos interactivos multileguaje en los que el programador tendrá libertad para pasar de un lenguaje a otro con la misma facilidad que un cirujano cambia de un bisturí ultrasonico a uno eléctrico o a uno de diamante (o un mecánico cambia de una llave del 3 a una del 5). Los programadores usarán sistemas auxiliares que permitirán rebajar notablemente la curva de aprendizaje de cada formalismo (Github Copilot solo es la punta del Iceberg que está por llegar). Programar sin programar será una realidad, y el valor añadido del programador no será el conocimiento de un lenguaje concreto, sino el conocimiento del negocio, y de las técnicas y formalismos matemáticos (estadística, técnicas de optimización, algoritmos evolutivos, aprendizaje profundo, conocimientos financieros, técnicas de especificación formal, etc.). Mención aparte, la computación cuántica, que todavía no tengo ni idea de qué perfiles necesitará, pero requerirán seguro matemáticas. Las posiciones de desarrollador C o de desarrollador Java… y también las de desarrollador Clojure o desarrollador Go… e incluso las de desarrollador de Integranova (en el sentido que hoy las consideramos perfiles profesionales) habrán quedado tan obsoletas como la del antiguo aguador o la del sereno o la más reciente que ejerció mi abuelo: contable (de los de manguitos y libros en papel). Sinceramente, para entonces espero estar jubilado.

0
Dislike0

✏️ Responder

FlechasNegritoItálicoSubrayadaTachadoCitaCódigoLista numeradaLista con viñetasSuscritoSobreDisminuir la sangríaAumentar la sangríaColor de fuenteColor de fondoAlineaciónLimpiarInsertar el linkImagenFórmula

Para escribir su respuesta aquí, Ingresar o Crear una cuenta

User badge image

Otros materiales