¿Cual es mejor lenguaje de programación para aprender?


Hay muchas comunidades potenciales que podrían ser encuestadas para este análisis. aunque GitHub y Stack Overflow se utilizan en casi en casi todos los análisis que vamos  a ver  debido indudablemente a su voluntaria,   pero  también a su grandisma exposición pública de los datos necesarios para el análisis.

Asimismo, todas las clasificaciones numéricas deben tomarse con sumo cuidado, porque estas  pueden ser sustancialmente menos relevantes que la agrupación de  lenguajes de programación (en muchos casos, un lugar en la lista no es distinguible del siguiente).

De todos modos  la separación entre los niveles de lenguajes en la trama, sin embargo, es generalmente representativa de las diferencias sustanciales en la popularidad relativa.
Además, cuanto más abajo en los rankings un lenguaje  de programacion  va, menos datos hay disponibles para clasificar los lenguajes.

Más allá de los niveles superiores de lenguajes, dependiendo de la instantánea, la cantidad de datos a evaluar es mínima, y ​​la ubicación real de los lenguajes se vuelve menos confiable cuanto más adelante en la lista se avanza. De   todos modos  aunque  todos estas listas no puedan ser exactas al 100% ,estos rankings que vamos a ver son una buena referencia para entender como se están construyendo actualmente lo sistemas actuales ofreciéndonos una  idea  de cuales son las tecnologías preferidas

 

Ranking de PYPL

El índice de popularidad de PYPL se crea al analizar la frecuencia con la que se buscan los tutoriales de idiomas en Google.

Cuanto más se busca un tutorial de idioma, más popular se supone que es el lenguaje de   programacion , asi  que es un indicador adelantado dado que. ls datos brutos provienen de Google Trends.

Si cree en la sabiduría colectiva, el índice de Popularidad del Lenguaje de Programación de PYPL puede ayudarle a decidir qué lenguaje de programacion estudiar o cuál usar en un nuevo proyecto de software.

Lista mundial en  Abril de  2018 comparado   con datos un año  hacia atrás :

Rank Change Language Share Trend
1 Java 22.62 % -0.8 %
2 Python 22.05 % +5.2 %
3 Javascript 8.56 % +0.2 %
4 PHP 8.22 % -1.8 %
5 C# 7.95 % -0.7 %
6 C 6.38 % -1.1 %
7 R 4.26 % +0.4 %
8 Objective-C 3.7 % -1.0 %
9 Swift 2.92 % -0.6 %
10 Matlab 2.31 % -0.4 %
11 Ruby 1.7 % -0.4 %
12 TypeScript 1.58 % +0.5 %
13 VBA 1.39 % +0.0 %
14 Visual Basic 1.27 % -0.3 %

Ranking de GitHut

GitHut  asociado al famoso repositorio  de codigo  Github     también tiene su propio ranking

El ganador  sin duda  es   #1(26,5%)  Javascript  desarrollado  originalmente por Netscape en 2002.  A pesar de tener nombres similares, Javascript no está relacionado con Java como todos sabemo

JavaScript (abreviado como js) es un lenguaje de programación interpretado  orientado a objetos ​ basado en prototipos, imperativo, débilmente tipado y dinámico.

Se ha estado  usando  años a tras  principalmente en su forma del lado del cliente , implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas , pero  actualmente ha tomado mucha transcendencia , y de ahi  su posición en este ranking  debido a su facilidad de uso en el lado del servidor(Server-side JavaScript o SSJS)

A  partir de mediados de la década de los 2000, ha habido una proliferación de implementaciones de JavaScript para el lado servidor. Node.js es uno de los notables ejemplos de JavaScript en el lado del servidor, siendo usado en proyectos importantes

# Ranking

Programming Language

Percentage (Change)

Trend

1 JavaScript
22.947% (-2.606%)
2 Python
16.127% (+0.848%)
3 Java
9.960% (+0.001%)
4 Go
7.236% (+1.238%)
5 Ruby
6.732% (+0.237%)
6 C++
6.423% (+0.779%)
7 PHP
6.094% (-1.242%)
8 TypeScript
4.807% (+1.999%)
9 C#
3.375% (-0.647%)
10 C
2.890% (-0.442%)
11 Shell
2.327% (+0.146%)
12 Scala
1.406% (-0.011%)
13 Swift
1.168% (-0.025%)

githut.PNG

Ranking  de Stack Overflow

Stack Overflow es uno de los  sitios de preguntas y respuestas mas famosos   para programadores de todo el mundo .  Gracias a ello este  ranking  rastrea los lenguajes más populares en su encuesta anual para desarrolladores. Para el informe de 2018, Stack Overflow obtuvo respuestas de más de 100.000 desarrolladores, lo que lo convierte en un buen vistazo a las tecnologías más populares entre programadores.

Esto es lo que hay en la lista:

  • #1: Javascript: A pesar de tener nombres similares, Javascript no está relacionado con Java. Permite a los desarrolladores crear elementos interactivos en los sitios web, convirtiéndolo en uno de los lenguajes más omnipresentes de la web y el más popular del mundo.
  • #2: HTML: Aunque técnicamente no es un lenguaje de programación – es un “lenguaje de marcas” – HTML es la base para la estructura de cada sitio web.
  • #3: Cascading Style Sheets, o CSS: el lenguaje de programación más utilizado para diseñar sitios web y aplicaciones basadas en navegadores.
  • #4: SQL: Structured Query Language (Lenguaje de consulta estructurado). Permite tratar grandes cantidades de datos mediante el acceso y la gestión de bases de datos. La mayoría de las veces se usa en conjunción con otro lenguaje, como PHP.
  • #5: Java: Java fue inventado originalmente por Sun Microsystems en 1991 como lenguaje de programación para sistemas de televisión interactiva. Desde la compra de Sun, Oracle ha convertido a Java en una potencia. El lenguaje de programación es la forma más común de construir aplicaciones Android.
  • #6: Bash/Shell: Shell no es exactamente un lenguaje de programación. En su lugar, un script de shell instruye a un sistema operativo para que ejecute automáticamente una lista prediseñada de comandos. Por ejemplo, un script shell puede hacer que un sistema operativo convierta cada archivo “.bmp” en un “.jpg” siempre que se ejecute.
  • #7: Python: Python data de 1989 y es amado por sus fans por su código altamente legible. Muchos programadores creen que es el lenguaje más fácil de usar.
  • #8: C#: Este lenguaje, pronunciado “C-Sharp”, fue desarrollado por Microsoft. Es un rival al aún más popular Java y ampliamente utilizado por los desarrolladores de software empresarial.
  • #9: PHP se utiliza para sitios web y aplicaciones que son pesados en datos. Incluso alimenta WordPress y Facebook. Pero muchos programadores odian PHP con pasión. “PHP no es tanto un lenguaje como una colección aleatoria de cosas arbitrarias, una explosión virtual en la fábrica de palabras clave y funciones”, escribió Jeff Atwood, fundador de Stack Overflow.
  • #10: C++ es una rama del lenguaje de programación C. Fue creado originalmente en 1983, y se puede encontrar en todo, desde aplicaciones web de escritorio hasta infraestructura de servidores.
  • #11: C, uno de los lenguajes de programación más antiguos aún en uso común, fue creado a principios de la década de los 70. En 1978, el legendario manual del lenguaje, “The C Programming Language”, fue publicado por primera vez.
  • #12: Typescript es relativamente joven según los estándares de lenguajes de programación. Lo creó Microsoft en 2012. Está estrechamente relacionado con el mega-popular JavaScript y diseñado para ejecutar grandes aplicaciones.
  • #13: Ruby ha ganado muchos elogios por ser fácil de leer y escribir. También es popular Rails, un framework complementario para Ruby que facilita la creación de aplicaciones web. El lema oficial de la lengua es “El mejor amigo de un programador”.
  • #14: Swift fue lanzado por Apple 2014, promocionado como una mejor y más fácil manera de construir software. Swift se ha puesto de moda; Lyft, entre otros, lo utilizó para hacer su aplicación para iPhone.

Ranking de RedMonk

Redmonk   sigue un proceso básico similar  a los anteriores : extraen clasificaciones de idiomas de GitHub y Stack Overflow, y combinan  una clasificación que intente reflejar la tracción de código (GitHub) y 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 ideas sobre posibles tendencias futuras de adopción.

La fuente de datos utilizada para estas consultas es el archivo GitHub. Consultan lenguajes de  programación  por solicitud de extracción de una manera similar a la que usó GitHub para ensamblar el Estado del Octoverse 2016.

En el lado positivo, en este ranking  también eliminan  la queja más común con respecto a los rankings históricamente: que las mediciones por repositorio pueden sobreestimar la importancia de un lenguaje determinado(JavaScript, con mayor frecuencia).

Para ser incluido en este análisis, un lenguaje debe ser observable dentro de GitHub y Stack Overflow.

Con todas las consideraciones  aquí está la trama del primer trimestre para 2018.

http://sogrady-media.redmonk.com/sogrady/files/2018/03/lang.rank_.118.png

 

No se hacen afirmaciones aquí de que estos rankings sean representativos del uso general más amplia mente. No son nada más ni nada menos que un examen de la correlación entre dos poblaciones que creen que son predictivas del uso futuro, de ahí su valor.

 

Es difícil  dar un prevision a futuro del uso de cada lenguaje,pero desde luego lo que ya nadie duda es que Java va perdiendo cada vez mas protagonismo, protagonismo que va lentamente reemplazado por otros lenguajes como  Javascript  , Python  , Ruby  o C#

 

Anuncios

¿Qué es NETMF?


NETMF es una plataforma de código abierto, que se convirtió en un proyecto de colaboración de código abierto allá  por  el año 2009, cuya principal virtud es  ampliar  el potencial y la capacidad de adaptación de .NET para el mundo de los dispositivos integrados de modo que programadores de escritorio , también pueden crear aplicaciones que se ejecuten en una amplia gama de sistemas de pequeños dispositivos, como mandos a distancia,  PCs ,servidores en la nube ,etc    todos ellos usando el mismo modelo de programación y herramientas comunes. Así de  este modo ,desarrolladores de sistemas integrados pueden aprovechar las ventajas  de lenguajes de productividad masiva orientados a escritorio y reducir su tiempo de comercialización.

.NET Micro Framework  pues esta diseñado  pues para dispositivos pequeños y por tanto de recursos limitados ofreciendo un entorno completo e innovador de desarrollo y ejecución que trae la productividad de las herramientas informáticas modernas a esta clase de dispositivos,pudiendo utilizarse para construir dispositivos integrados en dispositivos limitados recursos en un microcontrolador con pocos cientos kilobytes de memoria RAM y almacenamiento  como por ejemplo Netduino del que tantas veces hemos tratado en este blog.

Uno de los punto fuertes  respecto a otras plataformas  Open Hardware como Arduino o Raspberry Pi es que los desarrolladores pueden utilizar sus conocimiento de Visual Studio, C# y .net   para escribir rápidamente aplicaciones integradas sin tener que preocuparse por las complejidades de cada microcontrolador, asi que cualquier desarrollador puede comprarse  una placa  compatible con .net, conectar la placa a su equipo de desarrollo con Visual Studio y comenzar a escribir aplicaciones para dispositivos físicos  no  necesitando por tanto amplios conocimientos de diseño de hardware  para empezar a escribir código para dispositivos físicos.

Las  ventajas de NETMF pues son las siguientes:

  • Mejores herramientas  y experiencia para los desarrolladores : al utilizar  tecnologías existentes (c#.net )  y entornos de desarrollo profesionales es evidente que  la experiencia de uso es mucho  mejor que en otros entornos de  desarrollo para crear micro dispositivos inteligentes de depuración.
  • Prototipado rápido :dar vida a sus ideas en horas es fácil (en lugar de días o semanas con otras plataformas) usando por ejemplo los módulos de . net Gadgeteer. Por tanto es una vía rápida y fácil de desarrollar sus invenciones para mostrar a la gente sus diseños creativos.
  • Aprovechamiento de . net y C# : puede usar su  base de conocimientos que ya tenga de C# y. net para hacer dispositivos frescos e innovadoras.

 

Desde el punto de vista del desarrollador ,  trabajar con NETMF tiene dos caras : portarlo al hardware  o  utilizarlo para controlar su hardware . Portarlo  requiere costo considerable , mucho tiempo y mucha experiencia . Una vez hecho esto , podrá usar  NETMF  casi sin esfuerzo .

Usando criterios de calidad y fiabilidad como  directrices principales, otras empresas  como Secrets Labs o GHI  han  enriquecido aún más NETMF con características de valor añadido tales como WiFi, USB servidor y base de datos, lo cual se traduce en soluciones  de bajo riesgo de abandono a un costo mínimo.

benefits

En cuanto al hardware  existen  dos partners de  .NET Micro como son  GHI Electronics y  Secret Labs.

placas

Características fundamentales

NETMF está lleno de características propias de  cualquier lenguaje  moderno,como el soporte de  las siguientes estructuras  y facilidades como son :

  • Arrays
  • Classes
  • Collections — ArrayList, Dictionary, Stack, Queue
  • Cryptography — Encrypting/decrypting, hashing, SSL
  • Displays
  • Dynamic memory management with GC
  • Exceptions
  • File I/O — Files, directories and various storage types.
  • Globalization
  • Graphics — Bitmap, GIF, JPEG, Windows Presentation Foundation (WPF), fonts, touch and gestures.
  • Numerics
  • Power Management
  • Reflection
  • Hardware — Analog Input/Output, Digital Input/Output, I2C, Interrupts, OneWire, PWM, SPI, UART (Serial Port)
  • Math helpers
  • Namespaces
  • Networking — DHCP. DNS. HTTP. Sockets. TCP. UDP. Wireless
  • Runtime Debugging
  • Serialization
  • Strings
  • Text Encoding/Decoding
  • Threading, Events, Delegates, and Timers
  • Time keeping
  • USB Client
  • XML
  • Resources

Hay empresas  como GHI , que ademas construyen sobre las características principales del NETMF anteriormente citadas , extensiones adicionales de valor añadido como pueden ser las siguientes:

  • Configuración de la pantalla y el logotipo de la puesta en marcha
  • E / S – CAN, captura de la señal, generador de señales, I2C Software, USB de almacenamiento masivo
  • En-Campo de actualización
  • PPP
  • Reloj en tiempo real
  • Registro Acceso
  • RLP para cargar código nativo (c / montaje) para los propósitos de velocidad y en tiempo real.
  • Base de datos SQLite
  • USB Client – joystick, teclado, almacenamiento masivo, Ratón
  • USB Host – joystick, teclado, almacenamiento masivo, ratón, USB-Serial, Webcam
  • Perro guardián

.NET Gadgeteer se construye en la parte superior de NETMF para proporcionar una plataforma de desarrollo rápido utilizando placas base y módulos plug-and-play  como sensores .

Supongamos que queremos por ejemplo  hacer una aplicación de registrador de temperatura,  esto requiere una placa base, módulo de tarjeta SD y un  módulo de temperatura. En cuanto al software, ademas también se necesitan  controladores necesarios .

Si contamos  con el hardware ya  preconstruido  y los controladores para estos se incluyen, en el desarrollo de  la nueva aplicación  se reducen significativamente el tiempo de desarrollo.

.NET Gadgeteer es un estándar mantenido por Microsoft para la normalización de las conexiones entre las placas base y módulos. GHI fue  elegido para ser el primer proveedor en ofrecer una tarjeta de .NET Gadgeteer, el FEZ araña. El ecosistema continúa creciendo con más placas base y módulos.

 

Diseñador

Usando el diseñador de .NET Gadgeteer es simple y acelera su diseño.En la pantalla de diseño, se abre la caja de herramientas, arrastrado y soltando los componentes deseados.Haciendo clic y seleccionando “Conectar todos los módulos”  habrá terminado la configuración inicial.

Este proceso  incluye automáticamente todos los archivos DLL necesarios y genera una variable para alcance de cada componente  que le permite centrarse en la escritura de la funcionalidad principal de su diseño sin tener que escribir todo desde el principio ahorrándole tiempo y recursos valiosos.

IntelliSense

Visual Studio de Microsoft incluye una característica denominada IntelliSense. A medida que escribe  su código , IntelliSense entiende lo que podría estar tratando de escribir y muestra cuadros con sugerencias. Es por eso que se envian productos .NET Gadgeteer sin ningún tipo de manuales de programación.

Imaginemos  que esta utilizando un módulo de la cámara:todo lo que necesita hacer es escribir la palabra “rfidReader” y  golpe  el teclado para ver una lista de los métodos admitidos disponibles en los controladores incluidos.

Gadgeteer vs  Arduino Phidgets

¿Cómo se compara Gadgeteer contra otras plataformas de desarrollo?,Si esta interesado puede echar un vistazo  al siguiente vídeo que compara parpadear un LED, el control de un servo con un potenciómetro y un podómetro que muestra los pasos en una matriz de LED todo ello comparando varias plataformas.

 

Fuente   aqui