¿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.

https://i0.wp.com/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#

 

Como actualizar una hoja de calculo con un botón externo


 Ted Benson  queria  diseñar un botón simple que pueda pegarse a la pared y pulsar para registrar ciertos eventos asociados a la crianza de su hijo . Por suerte , Amazon acababa de empezar a enviar sus nuevos botones Dash , los cuales se pueden transformar en exactamente eso con sólo unos minutos, pero obviamente esa no pretende ser la utilidad de este dispositivo.

Los botones son pequeños, de plástico  y de un coste ínfimo (  5€) ,pero ahí no va mas pues ademas incluye  una batería y una conexión WiFi dentro. Amazon quiere que usted los pegue en el interior de sus puertase y utilizarlos para volver a pedir productos de uso cotidiano  como pueden ser los pañales o papel higiénico ( por ejemplo simplemente pulsando el botón, obtener un nuevo paquete de pañales  por medio del mensajero  en dos días).

Vamos a mostrarle cómo secuestrar y utilizar estos botones para casi cualquier cosa que desee. Aquí está una vista previa de vídeo corto de los resultados. Siga leyendo para ver cómo puede construir esto usted mismo en sólo unos minutos.

Video del resultado final. Puede conectar tantos botones como desee para grabar cosas alrededor de su casa. El retardo entre la pulsación del botón y el cambio de la hoja de cálculo se debe al proceso de arranque del hardware Dash.

Aquí está el truco: escuchar el botón para despertar y conectarse a la red.

Nuestro objetivo es detectar cuando uno de estos botones Dash se empuja y luego hacer algo más que ordenar más pañales en Amazon. El hack impresionante sería abrir el botón y reprogramarlo (personalmente me lo apunto)  pero  vamos a tomar la ruta fácil: sólo vamos a escribir un programa simple que rastrea nuestra red wifi para buscar  la evidencia de que el botón fue pulsado  y luego registra un punto de datos cuando escucha estos.

Resulta que Amazon nos dio una manera muy fácil de hacer esto porque estaban tan preocupados con el ahorro de energía pues estos  botones  se desactivan la mayor parte del tiempo para conservar la batería dentro. Sólo se encienden cuando son pulsados. Y eso significa que tienen que volver a conectarse a su red Wifi cada vez que son pulsados. Eso es fácil de detectar.

Los dispositivos de Internet no solo se conectan a una red Wifi y empiezan a hablar con Amazon: se presentan primero a la red local . Esta introducción se hace con algo llamado una sonda ARP , y es esencialmente una comprobación de seguridad para asegurarse de que la dirección MAC que el dispositivo va a utilizar como identificador ya no está siendo utilizada por otra persona.

Cada vez que pulsas un botón Dash, se vuelve a conectar a la red, causando una transmisión predecible  de llamada una sonda ARP que podemos detectar y actuar.

Eso es una gran noticia para nosotros: cada vez que se pulsa un botón Dash, se enciende su radio y transmite rápidamente el mensaje, «Hola! Mi nombre es [Dirección MAC]! «

Así, que conceptualmente, el problema esta resuelto pues sólo tenemos que:

  1. Evitar que el botón realice cualquier pedido
  2. Escuche las sondas ARP del botón Dash y
  3. Traducir esas sondas a actualizaciones de hojas de cálculo

 

 

Paso 1: Evite que el botón  lance una compra

 

Lo primero que debe hacer es configurar los botones para enviar mensajes cuando los pulse , pero en realidad no termines el proceso de  compre  . Cuando obtiene un botón Dash, Amazon le da una lista de instrucciones de configuración para empezar. Simplemente siga esta lista de instrucciones, pero no complete el paso final – no seleccione el producto particular que desea ordenar.

El último paso para el botón Huggies, por ejemplo, es seleccionar cuál de los varios productos Huggies desea. Simplemente no responda a esta pregunta y no tendrá que preocuparse de comprar nada.

 

Paso 2: Detectar cuando un botón se pulsa por  monitorizacion de sondas ARP

 Así que ahora su botón está enviando mensajes a la red cada vez que se empuja. El siguiente paso es oler la red WiFi para estos mensajes. Recuerde, estamos buscando algo llamado una sonda ARP. Para hacer eso, vamos a escribir un pequeño programa de Python usando una bibliotecallamada Scapy .

Solo copie y pegue el siguiente código:

from scapy.all import *

def arp_display(pkt):
   if pkt[ARP].op == 1: #who-has (request)
       if pkt[ARP].psrc == ‘0.0.0.0’: # ARP Probe
              print «ARP Probe from: » + pkt[ARP].hwsrc

print sniff(prn=arp_display, filter=»arp», store=0, count=10)

Con ese programa en ejecución – aquí está la parte de baja tecnología – se rastrea  un botón cuando es presionado. Aparecerá un mensaje después de unos segundos (¡los botones tardan un tiempo en encenderse!). Esa es la dirección MAC que identifica de forma exclusiva ese botón.

Cada vez que presiona el botón Dash, se despierta y emite una solicitud ARP. Al observar la salida de sniffer de estas solicitudes en tiempo real, puede aprender la dirección MAC de cada botón.

Ahora que conocemos las direcciones MAC, vamos a codificarlas en nuestro programa python  .

En este caso el código y las capturas de pantalla a continuación son para un ejemplo de boton. Sus direcciones se verán diferentes.

Aquí está el código modificado:

from scapy.all import *
def arp_display(pkt):
      if pkt[ARP].op == 1: #who-has (request)
          if pkt[ARP].psrc == ‘0.0.0.0’: # ARP Probe
            if pkt[ARP].hwsrc == ’74:75:48:5f:99:30′: # Huggies
                     print «Pushed Huggies»
            elif pkt[ARP].hwsrc == ’10:ae:60:00:4d:f3′: # Elements
                   print «Pushed Elements»
            else:
                   print «ARP Probe from unknown device: » + pkt[ARP].hwsrcprint sniff(prn=arp_display, filter=»arp», store=0, count=10)

Y aquí está la salida de la consola cuando presionamos un  botón mientras este programa se está ejecutando:

Ya casi terminamos! Nuestro código identifica cada pulsación de botón correctamente. Ahora sólo tenemos que registrar un punto de datos en respuesta.

Paso 3: Grabe los datos de pulsaciones de botones en una hoja de cálculo de Google

Ahora todo lo que tenemos que hacer es grabar datos cada vez que se pulsa un botón. Para ello, usaremos un Magic Form , una herramienta que Cloudsttch , que  permite enviar datos desde  cualquier lugar  a una Hoja de Google.

Simplemente visite Cloudstitch, cree un formulario mágico y se le dará una URL que agregará filas a su hoja de cálculo cuando publique los datos del formulario.

Así que todas las piezas están en su lugar ahora: antes teníamos un poco de código que imprime un mensaje cada vez que se pulsa un botón Dash. Ahora solo agregamos unas cuantas líneas de código para enviar datos a nuestro Formulario Mágico. En lugar de pegar en todo el ejemplo actualizado nuevamente, solo enlazarémos con la versión completa y en su lugar mostrarle la parte que registra una entrada de pañales Poopy en nuestro formulario mágico. Justo después de imprimir «Huggies empujado» a la pantalla, se agrego este código, que envía dos campos, un Timestamp y el mensaje «Poopy Diaper» a la URL del formulario.

¡Eso es! Vuelva a ejecutar el programa, presione los botones, y verá las filas agregadas a su hoja de cálculo como lo hace!

 

Conclusión: El IoT ya está aquí para quedarse 

Mucha gente se burlaba de Dash Buttons cuando Amazon los lanzó el día antes del Día de los Inocentes . Sin embargo, independientemente de lo que usted piense acerca de Dash como un producto de consumo, es un prototipo sin duda  convincente de lo que  Internet de las cosas va a parecer.

Fuente https://blog.cloudstitch.com