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
Publicar un comentario