CLASIFICACIÓN DEL LENGUAJE DE PROGRAMACIÓN 2020


MongoDB le ofrece esta iteración de las clasificaciones del lenguaje de programación RedMonk. No importa el idioma, MongoDB ayuda a los desarrolladores a resolver sus problemas de datos más difíciles. Construya mejor, más grande y más rápido con MongoDB Cloud.

Con el nuevo año en marcha, es hora de abandonar nuestras clasificaciones semestrales del lenguaje de programación bianual. Como siempre, estos son una continuación del trabajo realizado originalmente por Drew Conway y John Myles White a fines de 2010. Si bien los medios específicos de recolección han cambiado, el proceso básico sigue siendo el mismo: extraemos clasificaciones de idiomas de GitHub y Stack Overflow, y combínelos para una clasificación que intente reflejar tanto el código (GitHub) como la tracción de discusión (Desbordamiento de pila). La idea no es ofrecer una representación estadísticamente válida del uso actual, sino más bien correlacionar la discusión y el uso del lenguaje en un esfuerzo por extraer información sobre las posibles tendencias futuras de adopción.

NUESTRO PROCESO ACTUAL

La fuente de datos utilizada para la parte de GitHub del análisis es el Archivo de GitHub. Consultamos idiomas por solicitud de extracción de una manera similar a la que GitHub usó para ensamblar el Estado del Octoverso. Nuestra consulta está diseñada para ser lo más comparable posible al proceso anterior.
ü  El lenguaje se basa en el lenguaje de repositorio base. Si bien esto sigue teniendo las advertencias que se detallan a continuación, tiene el beneficio de la cohesión con nuestra metodología anterior.
ü  Excluimos repositorios bifurcados.
ü  Usamos el historial agregado para determinar la clasificación (aunque en función de los cambios en la estructura de la tabla, esto ya no se puede lograr a través de una sola consulta).
Para Stack Overflow, simplemente recopilamos las métricas requeridas utilizando su útil herramienta de exploración de datos.
Con esa descripción fuera del camino, tenga en cuenta las otras advertencias habituales.
ü  Para ser incluido en este análisis, un lenguaje debe ser observable tanto en GitHub como en Stack Overflow.
ü  Aquí no se afirma que estas clasificaciones sean representativas del uso general en general. No son más ni menos que un examen de la correlación entre dos poblaciones que creemos que predicen el uso futuro, de ahí su valor.
ü  Hay muchas comunidades potenciales que podrían ser encuestadas para este análisis. GitHub y Stack Overflow se usan aquí primero por su tamaño y segundo por su exposición pública de los datos necesarios para el análisis. Sin embargo, alentamos a las partes interesadas a realizar sus propios análisis utilizando otras fuentes.
ü  Todas las clasificaciones numéricas deben tomarse con un grano de sal. Aquí nos clasificamos por números estrictamente por interés. En general, la clasificación numérica es sustancialmente menos relevante que el nivel o la agrupación del idioma. En muchos casos, un punto en la lista no es distinguible del siguiente. Sin embargo, la separación entre los niveles de idioma en la trama es generalmente representativa de diferencias sustanciales en la popularidad relativa.
ü  Además, cuanto más baja en la clasificación, menos datos hay disponibles para clasificar los idiomas. Más allá de los niveles superiores de idiomas, según la instantánea, la cantidad de datos a evaluar es mínima, y ​​la ubicación real de los idiomas se vuelve menos confiable a medida que avanza en la lista.
ü  Los idiomas que tienen comunidades basadas fuera de Stack Overflow como Mathematica estarán subrepresentados en ese eje. No es posible escalar un proceso que mide cien sitios comunitarios diferentes, tanto porque muchos no tienen métricas públicas disponibles como porque medir diferentes sitios comunitarios entre sí no es estadísticamente válido.
Con eso, aquí está la trama del primer trimestre para 2020.
Además de la gráfica anterior, que puede ser difícil de analizar incluso a tamaño completo, ofrecemos las siguientes clasificaciones numéricas. Como se observará, esta ejecución produjo varios lazos que se reflejan a continuación (se enumeran aquí alfabéticamente en lugar de consolidarse como lazos porque el último enfoque condujo a malentendidos).
1 JavaScript
2 Python
2 Java
4 PHP
5 C#
6 C++
7 Ruby
7 CSS
9 TypeScript
9 C
11 Swift
12 Objective-C
13 Scala
13 R
15 Go
15 Shell
17 PowerShell
18 Perl
19 Kotlin
20 Haskell
En general, cuando se preparan estas clasificaciones, hay poco que comentar con respecto al movimiento en las 10 entradas principales. Debido a que tanto el eje X como el Y reflejan métricas que son de naturaleza acumulativa, cuanto más alto se clasifica el lenguaje, más difícil resulta desplazarse. Es notable, por lo tanto, que tenemos movimiento entre cuatro idiomas. Dos se discutirán con más detalle a continuación, pero la caída de C ++ (6) en un punto se ve ensombrecida por el ascenso de Ruby del # 8 al # 7. Por sí solo, esta ganancia sería de relativamente poca importancia, pero como se dijo hace dos años en este espacio, Ruby parecía haber alcanzado su punto máximo y había estado en un período de estancamiento y, posiblemente, en declive. El rendimiento de una cuarta parte, por supuesto, no revierte este análisis o trayectoria de la noche a la mañana, pero sin duda es un punto brillante para los defensores del lenguaje.

Python (+1): Python no se ha destacado en estas clasificaciones con tanta frecuencia, en parte porque su rendimiento ha sido constante, casi metrónicamente. Con la excepción de un cuarto, pasó aproximadamente cuatro años sentado en el cuarto lugar, saltando al tercer lugar hace tres años y aguantando, hasta este mes. Por primera vez en la historia de estos rankings que comenzaron en 2012, tenemos una entrada que no es Java o JavaScript en nuestro espacio número dos. No desplazó ninguno de esos lenguajes, pero ha vinculado Java por primera vez. A menudo se nos pregunta sobre las razones por las que el uso o la disminución de determinados idiomas en particular, y hay varios patrones que tienden a correlacionarse con el uso aumentado (o disminuido). Uno de esos es la versatilidad. Al igual que el lenguaje con el que se relacionó en esta ejecución, Java, Python ha continuado encontrando un papel por sí mismo en nuevas cargas de trabajo y casos de uso, incluso cuando se enfrenta a una competencia más especializada en estos ámbitos. Esto, tanto como la accesibilidad general y la facilidad de uso del lenguaje, es uno de los factores más importantes en la capacidad de Python para no solo sobrevivir, sino también prosperar. La pregunta ahora es si puede mantener esta clasificación sin precedentes, o si es simplemente un problema.

TypeScript (+1): como se señaló en nuestra última ejecución, con la excepción del rendimiento de Swift durante un solo trimestre, habían pasado cinco años desde que habíamos visto un nuevo lenguaje Top 10. Habiendo logrado esa hazaña en junio, la pregunta era si TypeScript podría mantener ese rendimiento, o si, como Swift, el lenguaje de crecimiento más rápido que habíamos medido, sería una anomalía única y retrocedería fuera del Top 10. Este trimestre trae La respuesta, que era que TypeScript no sostenía su rendimiento, lo excedía. En lugar de retroceder al rango de 10-15, el lenguaje compatible con JavaScript continuó ganando, pasando del décimo lugar al noveno. Al igual que con Python, TypeScript está teniendo éxito en parte debido a los patrones. Sin embargo, en lugar de versatilidad, TypeScript se destaca tanto por su capacidad de mezclarse con una gran base de código existente en JavaScript como por su capacidad potencial de hacer que el código resultante sea más seguro. Esto ha demostrado ser una combinación ganadora, una que aumenta las expectativas de si el idioma pertenece o no en el Top 10 a cuánto más alto, si es que puede ser, ir más allá.

R (+2): En nuestra primera carrera de estas clasificaciones, R ocupó el puesto 17. Todos estos años más tarde salta dos lugares desde la edición del último trimestre hasta el # 13. Mientras tanto, se clasificó tan alto como el 12, pero generalmente se encuentra en el rango de 13-15. Dado el enfoque especializado del idioma, este es probablemente su techo efectivo, pero también es una ilustración de la notable popularidad de un idioma cuyo uso está restringido para todos los efectos a un solo dominio: aquellos que trabajan y operan con datos. El éxito de R es un ejemplo del poder de una comunidad apoyada por la academia para elevar un lenguaje más allá de su umbral esperado, y es notable que el crecimiento antes mencionado de Python y su expansión en el análisis de datos no haya sido visiblemente a expensas de la tracción en R.

Rust (0) / Go (+1): para aquellos que esperan otro salto este trimestre desde Rust, los resultados serán decepcionantes: el lenguaje brillante que muchos han argumentado debería usarse como la base para que más proyectos de infraestructura central avancen se mantuvieron estables en # 21. A este respecto, el ascenso medido de Rust refleja el reciente estancamiento de Go (15), a pesar del bache de este trimestre para el último. Después del rápido viaje inicial de Go a la clasificación, su progreso se ha estancado en gran medida y ha languidecido a mediados de la adolescencia: desde 2015, ha marcado 14 una vez, 16 dos veces y 15 siete veces. Al igual que R, ese parece ser su techo efectivo por el momento, pero si bien excede las expectativas de un lenguaje de enfoque limitado como R, de alguna manera los supera en un lenguaje más aplicable, aunque aún especializado, como Go. La pregunta entonces es si la diferenciación técnica de Rust de Go, aunque con una curva de aprendizaje posiblemente más larga, será suficiente para permitirle superar a su rival actual más serio para las cargas de trabajo de infraestructura moderna.

Kotlin (+1) / Clojure (-1) / Groovy (+1) / Scala (0): Kotlin, el segundo idioma de más rápido crecimiento que hemos visto fuera de Swift, hizo un gran revuelo hace un año en este momento cuando saltó ocho lugares completos en la lista para romper el Top 20 en el lugar # 20. Si bien creció a pasos agigantados inicialmente, sin embargo, el crecimiento desde entonces ha sido más difícil de lograr. Incluso ha habido sugerencias de que el lenguaje sintáctico y estéticamente popular podría haber sido un destello en la sartén, y devolver el terreno que había ganado a otras alternativas basadas en JVM como Clojure, Groovy o Scala. Sin embargo, con la excepción de Groovy, que pasó del puesto 24 al 23, Scala permaneció estático en el puesto 13 y Clojure perdió un puesto. Mientras tanto, Kotlin finalmente hizo progresos para subir el tablero del Top 20 al # 19. Será interesante observar la próxima corrida para determinar si puede continuar construyendo sobre esas ganancias, o si hay otra pausa larga antes de que continúe el crecimiento.

Dart (+3): Por último, tenemos el caso de Dart. No es un lenguaje que se haya comentado en este espacio en algún momento, debido a su desempeño histórico medio en estos rankings. Sin embargo, como predijo correctamente al menos una persona, Dart ha logrado algunos avances recientes que se correlacionan aproximadamente con un aumento en la popularidad del juego de herramientas de interfaz de usuario Flutter. Hace dieciocho meses, Dart se registró en el # 33. Desde que el Flutter basado en Dart fue 1.0 seis meses después de eso, el lenguaje ha subido hasta el puesto # 24 en las últimas clasificaciones. Se argumentó en este espacio hace casi una década que los marcos conducen a la adopción, y el rápido aumento de Dart después de años de estancamiento es un ejemplo de este fenómeno en el trabajo. Si Dart ahora es impulsado en gran parte por Flutter, sin embargo, la pregunta obvia es hasta qué punto Flutter puede llevar el lenguaje a nuestras listas.
Crédito: Mi colega Rachel Stephens escribió y ejecutó las consultas que son responsables del eje GitHub en estas clasificaciones. También es responsable del diseño y la recopilación de consultas para los datos de desbordamiento de pila.

Comentarios

Entradas populares