43 meneos
1483 clics
Envío erróneo o controvertido, por favor lee los comentarios.
Índice TIOBE: Los lenguajes de programación más usados en la actualidad [En]
Los cinco lenguajes de programación más populares en la actualidad son Java, C, C++, Python y Visual Basic .NET. La lista de los lenguajes de programación más utilizados de cada año se elabora según el Índice TIOBE , que es elaborado por una empresa de software holandesa que se especializa en la evaluación y seguimiento de la calidad de los programas informáticos. Actualmente, la empresa revisa en tiempo real más de 300 millones de códigos de diversos programas informáticos por día actualizando mes a mes su índice.
|
comentarios cerrados
- Gestión de memoria horrible.
- Introduces código que ralentiza la ejecución, súmale el tema de la máquina virtual y ya te meas...
- La famosa "verbosidad", que sí, que ha mejorado mucho, pero...
- A nivel de seguridad...en fin...igual que lo otro, mejora pero no lo suficiente...
- Intenta controlar el hw con JAVA y luego me lo cuentas...
- Y ya del control de errores no hablamos porque pa qué...
...
Y LA PRINCIPAL:
JAVA se ha utilizado como lenguaje de programación inicial de muchas hornadas de programadores, y gracias a eso las cárnicas del mundo entero han metido JAVA con calzador en sitios donde no pinta nada, (dime tú a mí que pinta el ASDM de CISCO programado en java, es que es de locos...) con el consiguiente deterioro de la calidad del software construido (que se ha suplido gracias en parte al avance de los sistemas sobre los que se ejecuta).
Por favor, talibanes de JAVA, no me vengáis con lo muchíiiiiiiisimo que ha mejorado en las últimas versiones, y que no tengo ni idea y tal...ya que yo he sido javero (y por tanto, culpable) de muchos de los despropósitos que hay hoy en día por ahí sueltos.
C# - Java = Argumentos en contra de Java
Y no estoy diciendo que C# sea mi lenguage favorito.
* seguro que has entendido que no te estoy insultando
Cuando solo conoces un martillo , todo te parece un clavo.
Viendo los empleos que se ofertan, en España diría que C#, java php, js..pero python no mucho
En Barcelona, la mitad de ofertas de trabajo son Php.. En Berlín es java, Python o lenguajes nuevos como Go o Rust.
githut.info/
Aquí discrepan sobre JS ...
Te recomiendo Delphi (pascal + orientación a objetos), pero es caro, bastante caro, mucho más que la competencia. No obstante, hay una versión "starter" o así.
Hay otro potentísimo IDE clon de Delphi, Lazarus. Este es open source y es terrorífico -por lo potente que es --, puedes programar con él casi lo que se te antoje.
Saludos.
- Gestión de la memoria horrible: según como lo veas, a mí me parece horrible un lenguaje como C que no tiene recolector de basura. Y los "garbaje collectors" no son hoy en día lo ineficientes que eran en el pasado.
- Una máquina virtual es lo que hace que un mismo código pueda ejecutarse en hardwares diferentes. Si la MV está optimizada el código puede ser tan rápido como el nativo. Además ahora la MV está modularizada y te puedes bajar solo las partes que te interesen.
- La verbosidad es cuestión de gustos. A mi me gusta que el código exprese claramente su intención y no sea una jerga indescifrable pero que solo gasta un línea de código. Ni que cobraran por líneas. En cada versión de Java sacan nuevos casos en los que hay "inferencia de tipos" lo cual reduce mucho la verbosidad innecesaria.
- La seguridad era un problema sobre todo de los applets que ya se han eliminado de la JVM
- Lo del hardware ya te lo han dicho, Java no es para eso.
- No sé qué problema le ves al control de errores.
Resumiendo. Java es un gran lenguaje, por eso está de primero. No quiere decir que sea el mejor ni que valga para todo. Pero la gente de Oracle se está esforzando en mantenerlo actualizado y mantenido (ahora con versiones cada 6 meses) y por eso, por muchos haters que tenga, se sigue manteniendo de número 1
Dicho esto, NO es el mejor lenguaje para conocer cómo funciona la computación. Python es transparente para el usuario, lo tutela para que no meta la pata, a costa de abstraerlo del computador.
He sufrido en mis propias carnes el dolor de cambiar de lenguaje (de Python a C) y darme cuenta de que en realidad no sabía absolutamente nada de computadores, no tenía control sobre el dispositivo que ejecuta el código.
Si sólo quieres programar como un conocimiento auxiliar a tu disciplina, adelante con el!.
Ahora Oracle sí se ha tomado más en serio el mundo de Java.
Eso no quita que también Android ha ayudado a su popularidad en los últimos tiempos
Learn key computer science concepts in this introductory Python course. You'll learn by doing, and will build your own search engine and social network.
Según sus palabras:
The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.
El ecosistema Java a nivel de herramientas, frameworks, comunidad, soporte, etc. no tiene parangón todavía en ninguna otra plataforma actual.
Java te enseña a ser mal programador.
Para otras cosas, por ejemplo para una aplicación web en backend, me parece una opción más que digna. ¿Hay cosas mejores? Sí. Claro. Ahora bien, no solo hay que valorar un lenguaje, también hay que valorar a sus programadores. Si efectivamente, hay una gran cantid de programadores con un nivel bueno de Java, lo normal es que se apueste por Java.
Otra cosa es que hablemos de Java nivel cárnica, con plazos de entrega de mierda y tirar código como un mandril. Pero claro, haz eso con C o con python.
Vamos, que Java tiene sus cosas, pero decir que el mundo se va a la mierda...
Por ejemplo puede ser interesante en el mundo de embedded, si C++ come terreno a C o no, pero en ese mundo C# o Java pintan poco o nada. Igualmente en el mundo web frontend, C o C++ son irrelevantes y solo interesa si Typescript avanza a JavaScript pelado o no.
Y así etcétera con todo.
Yo estoy ahora con Python y quiero agregar uno o dos lenguajes diferentes más. Algo heterogénea de estilos Python-Rust-Lisp o Python-Haskell-Elixir.
"Gestion de memoria horrible" Explica esto, si puedes.
"Introduces codigo que ralentiza la ejecucion, sumale el tema de la maquina virtual y ya te meas" Codigo que ralentiza la ejecucion? pero sabes de lo que hablas?
"La famosa "verbosidad" Lo que?
"A nivel de seguridad...en fin...igual que lo otro" Lo cualo?
"Intenta controlar el hw con JAVA y luego me lo cuentas" Controlar hardware con Java? pero tu sabes de lo que estas hablando?
"y ya del control de errores no hablamos..." pero si no has dicho nada, que dices que no hablas. Explica el "control de errores" anda, que veamos tu sabiduria sobre java.
No digo que haya mejorado muchiiiiiiisimo pero que no tienes ni pajolera, ya lo creo. Has sido javero, ya, si. He conocido muchos que se autodeclaran conocedores de java... de la sintaxis de java y ya.
Si se programa correctamente con RAII y smartpointers, la gestión de memoria en C++ es automática y al mismo tiempo predecible, no se generan picos de limpieza porque los recursos se liberan en el mismo punto donde de forma manual se haría un delete, solo que insertado automáticamente por el compilador.
Si lo que quieres es aprender a programar con la idea de hacer algo mas productivo, como un video juego vete a C#.
Python tiene un nicho muy exclusivo para hacer scripts y básicamente lo que haces es hacer llamadas a librerias en C. Es una capa que se pone por encima en muchas programas para que los usuarios hagan cosas sin necesidad de recompilar todo. Pero Python como lenguaje es bastante desastroso. Cogerás todo tipo de vicios y aprenderás cero de programación.
Aparte de FPGA esta en pleno boom eso de 1m de capas de sofware y hardware le sientan fatal a la latencias.
Si eres poco metodico , te conviene un lenguaje que te obligue a serlo. Si eres metodico por ti mismo , puedes iniciarte hasta con el caos reptante tambien conocido como javascript.
Si vas a dedicarte de forma profesional , yo empezaria por un lenguaje de fuerte tipado , (C#, C++) y despues ya a algo mas relajado
madnight.github.io/githut/
Se puede ver como JS sigue 1º, y Python consolidándose como 2º
Desde hace dos años trabajo en go y es una maravilla y, especialmente en programación de servidores.
Rust es el siguiente lenguaje en el que me estoy metiendo. Creo que es más aburrido que go, pero muy, muy robusto. Probablemente se quedará como lenguaje empresarial para grandes sistemas.
Si tienes que andar diciendo que un puntero es smart o no ya tienes que andar jugando con cosas "ajenas" a la lógica del programa como es la gestión de la memoria. Para eso en Java también puedes jugar con referencias weak, soft o phantom.
La aproximación de C++ al problema es: inmediatamente que un objeto queda sin referencias, se llama a su destructor.
No es una cuestión de alto o bajo nivel, es una cuestión de especificaciones del lenguaje. Perfectamente podría haberse hecho así en Java, de hecho puedes hacerlo si pones el objeto a null y llamas a System.gc() a continuación. Solo que no está diseñado para funcionar así y no es eficiente, ni tan siquiera se te garantiza que efectivamente se libere nada en ese punto.
Este pequeño detalle hace a Java muy arisco para determinadas aplicaciones dónde necesitas un comportamiento determinista, no que de forma random te salte el GC y te de un tironcillo de rendimiento.
La idea primigenea de Java fue liberar al programador de aspectos de bajo nivel, y la gestión de la memoria es uno de ellos.
Si tienes que andar destruyendo objetos explícitamente, o gestionando el tipo de referencia que usas para esos objetos puede que tu código haga un uso más eficiente de la memoria, a cambio de hacer perder el tiempo al programador a la hora de gestionar aspectos de bajo nivel.
Yo lo veo más como un tema de filosofía de trabajo y de a quién va dirigido el lenguaje de programación. Por lo general cuanto más de alto nivel es el lenguaje de programación más probable es que incluya GC entre sus características: Java, C#, los lenguajes funcionales, etc.
Python se usa mucho en universidades americanas para aprender, y según para que quieras aprender, hasta js, aunque JavaScript yo no lo recomendaría.
La idea es que el sistema tiene más claro que tú cuando debería liberarse memoria. Por eso en Android siempre desaconsejaban usar "task managers" que trataban de eliminar aplicaciones de memoria cuando no eran necesarias. Siempre fue mejor dejar esa tarea al sistema
No puedo estar más en desacuerdo.
Desde este es fácil acceder a otros lenguajes ya más completos, para mi el siguiente sería Java, con una base decente de Javascript el paso a las clases y los objetos es rápida. Con eso se puede decir que la programación no tiene secretos.
Luego ya dependerá, si se trata de desarrollo web yo tiraría por PHP, para aplicaciones tiraría por C.