TIOBE Programming Community Index Definition
TIOBE Programming Community Index Definition
Abstract
Cada mes. En el portal http://www.tiobe.com/ se publica una lista con el top 20 de los lenguajes de programacin mas utilizados en el mundo. En esta ocasin, analizaremos el top de Marzo del 2012, y algunas caractersticas de cada lenguaje enlistado[1].
1. Introduccin
Alguna vez nos hemos puesto a pensar en el impacto que tiene el Lenguaje de Programacin que usamos para nuestro trabajo diario y en la efectividad con la que desempeamos el mismo? En otras palabras, el lenguaje que estoy usando en mi proyecto actual Ayuda o inhibe el proceso mental que me permite hallar respuestas a los problemas que enfrento el da de hoy?
De hecho, hay lenguajes que son mejores para el pensamiento que otros: Smalltalk, Lisp y posiblemente Ruby, son algunos de ellos. Aunque en muchos aspectos estos lenguajes difieren enormemente entre s (como el griego y el alemn tambin lo hacen), tienen una caracterstica que a mi modo de ver es esencial: son lenguajes tersos. Esto no significa otra cosa que el hecho de que estos lenguajes permiten expresar una gran cantidad de conceptos utilizando muy pocas palabras reservadas. Entonces, mientas mas lenguajes de programacin aprendamos, ms y mejores herramientas para pensar vamos a tener. Lenguajes de programacin hay cientos, escoger el mas adecuado para resolver las necesidades es lo importante.
2. Lenguajes de Programacin
Debemos recordar que si bien todos los lenguajes de programacin son, de hecho Equivalentes Turing, eso no significa que todos sean igualmente adecuados para cada tarea. Recordemos que el desarrollo de software es una actividad eminentemente intelectual. Es quizs, junto con la poesa y otras formas de creacin literaria, una de las actividades ms puramente intelectuales en las que se puede embarcar el ser humano. Nuestro trabajo consiste 80% o un 90% en pensar, y despus un 10% o un 20% en otras cosas como teclear, etc. Entonces, hay acaso lenguajes que son mejores para el pensamiento que otros?, cuales? y por otro lado, el hecho de que la mayor parte de los proyectos, libros y artculos de revistas se escriban en Visual Basic, C# y Java no es razn suficiente para concentrar mis esfuerzos en esos lenguajes?
Una visin general del factor de confianza se puede encontrar en la tabla a continuacin:
4. Clasificacin
Las clasificaciones se calculan contando xitos en los motores de bsqueda ms populares. La consulta de bsqueda que se utiliza es +"<language> programming" Esta consulta de bsqueda se ejecuta para los 9 sitios web de Alexa que cumplan las siguientes condiciones: La pgina de entrada del sitio contiene un motor de bsqueda. El resultado de la consulta de la pgina contiene una indicacin del nmero de visitas a la pgina. Basndose en estos criterios, los motores de bsqueda que se utilizan en la actualidad son los siguientes: Google: 30% Blogger: 30% Wikipedia: 15% YouTube: 9% Baidu: 6% Yahoo!: 3% Bing: 3% Amazon: 3% El nmero de visitas determina la clasificacin del lenguaje. Las visitas contadas estn normalizadas por cada motor de bsqueda para los primeros 50 lenguajes. En otras palabras, los primeros 50 lenguajes en conjunto tienen una puntuacin de 100%. Vamos a definir "hits50 (SE)" como la suma del nmero de visitas en los primeros 50 lenguajes para los motores de bsqueda SE y hits (PL y SE) "como el nmero de visitas para el lenguaje de programacin PL en el motor de bsqueda SE. Posibles falsos positivos para una consulta ya estn filtrados en la definicin de "hits (PL y SE)". Esto se hace mediante el uso de un factor de confianza manualmente determinado por consulta. Una consulta, como "Basic programming" tambin devuelve las pginas que contengan " Improve your basic programming skills in Java". Las primeras 100 pginas en cada motor de bsqueda son revisados por posibles falsos positivos y esto se utiliza para definir el factor de confianza. Si este factor es del 90%, slo el 90% de los accesos se utilizan para visitas "(PL y SE)". Donde n es el nmero de motores de bsqueda utilizados[2]. Las puntuaciones se calculan con la siguiente frmula: ((Hits (PL, SE1) / hits50 (SE1) + ... + hits (PL, Sen) / hits50 (SEN)) / n
4. Referencias
[1]http://www.tiobe.com/ [2]http://www.tiobe.com/index.php/content/paperinfo/tpci/tp ci_definition.htm [3]http://www.tiobe.com/index.php/content/paperinfo/tpci/in dex.html
Posicion 1
Lenguaje Java
Logo
Procedural
Creadore(s) James Gosling & Sun Microsystem s Dennis Ritchie y Bell Labs Microsoft
C#
Orientado a objetos
C++
Orientado a objetos
Bjarne Stroustrup
Objective-C
Orientado a objetos
#include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } using System; class Program { static void Main() { Console.WriteLine("Hello world!"); } } #include <iostream> Int main { cout<<Hola Mundo<< return o; } #import "Display.h" int main(void) { printf("Enter an integer: "); return 0; } <?php echo hola mundo; ?>
PHP
Orientado a objetos, Procedural Orientado a objetos, procedural Orientado a objetos, Procedural, Funcional Orientado a objetos
Rasmus Lerdorf
(Visual) Basic
Alan Cooper
JavaScript
Brendan Eich
Python
10
Perl
Procedural
Larry Wall
11
Delphi/Object Pascal
Orientado a objetos
program pHolaMundo users Dialogs; begin Message(Hola mundo) end BEGIN DBMS_OUTPUT.Put_Line (Hola mundo); END;
12
PL/SQL
Procedural, Logico
13
Ruby
Orientado a objetos
Yukihiro Matsumoto
14
Transact-SQL
Procedural, Logico
IBM
15
Lisp
Funcional
John McCarthy
16
Orientado a objetos
Microsoft
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Msgbox("Hello, World") End Sub End Class Program HolaMundo Begin Write(Hola Mundo) end
17
Pascal
Procedural
Niklaus Wirth
18
Logo
Funcional
19
Ada
with Ada.Text_IO; use Ada.Text_IO; procedure Hello is begin Put_Line("Hello, world!"); end Hello; LCD.drawString(Hello World!, 2, 2); LCD.refresh(); while(true) {}
20
NXT-G
Procedural