Category : General

Los 10 lenguajes de programación más populares en 2017

La revista IEEE Spectrum ha publicado un ranking de lenguajes de programación basándose en al menos 10 fuentes en línea (Google Search, Google Trends, Twitter, GitHub, Stack Overflow, Reddit, Hacker News, CareerBuilder, Dice, IEEE Xplore Digital Library).  La lista incluye 48 lenguajes y han usado una combinación de 12 métricas que fueron seleccionadas por su creador el periodista de datos Nick Diakopoulus.  La diferencia de este ranking con respecto a otros más populares, es que han generado una gráfica interactiva con la cual es posible personalizar como se ponderan esas métricas.  Más información de su método en el siguiente enlace:

http://spectrum.ieee.org/ns/IEEE_TPL_2017/methods.htm





De acuerdo a trabajos más solicitados dominan los lenguajes Java, C, Python,C++ y JavaScript, en ese orden.

Los lenguajes con mayor tendencia son casi los mismos pero ahora es Python el que se encuentra dominando.

 

Es posible crear filtros por plataforma (Web, Mobile, Enterprise, Embedded). Les dejamos el vínculo al artículo original para que prueben ustedes mismos.

http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017


Algunas de las librerías más usadas en Java

Estas son algunas de las librerías o bibliotecas más populares por su descarga en GitHub o por su uso en una amplia variedad de proyectos. Puede que se te haya ocurrido crear tus propias herramientas para resolver muchos de los problemas que vas encontrando cuando desarrollas tus propios proyectos, sin embargo, siempre vale la pena dar un vistazo en la Web antes de comenzar a programar algo que quizá ya ha sido desarrollado, basado en estándares y ampliamente probado y ahorrarte así tiempo valioso. Te mencionamos sólo algunos proyectos:





JUnit

Permite realizar pruebas de código de forma controlada, ya sea generales o parciales. Es muy recomendada. Algunas IDEs como Netbeans o Eclipse vienen preparadas para realizar pruebas de forma integrada.

http://junit.org/junit4/

mockito-all, mockito-core

Mockito es una librería Java para la creación de Mock Objects ampliamente usados en pruebas unitarias de Test Driven Development y basado en EasyMock.

https://github.com/mockito/mockito

guava

Es un conjunto de librerías desarrolladas por Google, dividido en tres grupos:

  • Utilidades básicas para reducir labores menores para implementar métodos y comportamientos comunes.
  • Una extensión a Java collections framework (JCF) anteriormente llamada Google Collections Library.
  • Utilidades que proporcionan características convenientes y productivas tales como programación funcional, almacenamiento en caché, objetos de rango y hashing.

https://github.com/google/guava

Las Commons de Apache Software Foundation

commons-io

Es parte de un conjunto de proyectos desarrollado por Apache Software Foundation.  Está divido en varias categorías:

  • Utility classes – con métodos estáticos que realizan tareas comunes.
  • Input – Implementaciones bastante útiles de Stream y Reader.
  • Output – Implementaciones de Output Stream y Writer.
  • Filters – Diversas implementaciones de filtros de archivos.
  • Comparators – Diversas implementaciones de java.util.Comparator para archivos.
  • File Monitor – Componente para monitoreo de eventos de archivos de sistema.

https://commons.apache.org/proper/commons-io/

commons-lang, commons-lang3

Apache Commons Lang provee de un conjunto extra de métodos para la manipulación del core estándar de clases de Java, tales como:

  • Métodos para de cadenas.
  • Operaciones numéricas.
  • Concurrencia.
  • Creación y serialización de propiedades de sistema.
  • Ayudas para java.util.Date, utilidades para el manejo y uso de hashCode, toString, y equals.

Lang3 es la versión actualizada y ampliada de esta librería.

https://commons.apache.org/proper/commons-lang/

commons-codec

El software Apache Commons Codec proporciona implementaciones de codificadores y decodificadores comunes como Base64, Hex, Phonetic y URLs.

https://commons.apache.org/proper/commons-codec/

commons-logging

Una biblioteca que utiliza la API commons-logging y se puede utilizar con cualquier implementación de registro en tiempo de ejecución.

https://commons.apache.org/proper/commons-logging/

 

log4j

Log4j es una biblioteca open source desarrollada en Java por la Apache Software Foundation que permite a los desarrolladores de software escribir mensajes de registro, cuyo propósito es dejar constancia de una determinada transacción en tiempo de ejecución

https://logging.apache.org/log4j/2.x/

Logback Project

Este proyecto es un intento de sustituir a log4j, escrito por el mismo creador. Dividido en tres módulos:

  • logback-core.
  • logback-classic
  • logback-access.

https://logback.qos.ch/

slf4-api, slf4j-log4j12

Simple Logging Facade for Java (SLF4J). Te permite generar registros de la ejecución de tu código Java, ofrece métodos de registro que aceptan marcadores. SLF4J fue creado como una alternativa más confiable al Jakarta Commons Logging framework.

https://www.slf4j.org/

spring-context

Spring-contex es un contenedor de Inversión de Control (IoC), te permite instanciar, configurar y ensamblar beans leyendo metadatos de configuración de archivos XML, anotaciones Java y/o código Java en archivos de configuración.

https://projects.spring.io/spring-framework/

httpclient

HttpClient busca llenar el vacío del paquete java.net aumentando la funcionalidad y flexibilidad al acceder a recursos via HTTP, de forma eficiente, actualizada y rica en características para implementarse del lado cliente con los estándares y recomendaciones de HTTP más recientes.

https://hc.apache.org/httpcomponents-client-ga/

joda-time

Es básicamente un reemplazo de mayor calidad para las clases de fecha y hora que originalmente fueron creadas para Java. Muy recomendable.

http://www.joda.org/joda-time/

testng

Es un framework de pruebas inspirado en JUnit y NUnit, pero introduce algunas nuevas funcionalidades que lo hacen más potente y fácil de usar.

http://testng.org/doc/index.html

JDOM

Es una popular biblioteca de analizador de DOM que se utiliza ampliamente en muchas aplicaciones java para analizar XML.

http://www.jdom.org/

Xerces

Otro analizador de XML bastante popular.

http://xerces.apache.org/xerces-j/

Gson

Una estupenda librería para parseo de JSON creada por Google.

https://github.com/google/gson

JFreeChart

Es la biblioteca gráfica ampliamente utilizada para crear una gran variedad de gráficos de buena apariencia. Permite a los usuarios generar gráficos circulares de barras, diagrama de series de tiempos, diagrama de Gantt, histogramas, gráficos X-Y y varios gráficos específicos.

http://www.jfree.org/jfreechart/

JasperReports

Una completa biblioteca de funciones ricas para crear documentos PDF y gráficos. También disponible con soporte empresarial.

http://community.jaspersoft.com/

Commons Math

Aborda los problemas más comunes de matemáticas y estadísticas que no están disponibles en el lenguaje de programación Java.

http://commons.apache.org/proper/commons-math/

 

Estos son sólo algunos proyectos, desde luego hay muchos más que estamos omitiendo, estaremos actualizando esta entrada continuamente.

via:

http://www.javaworld.com/article/2924315/open-source-tools/javas-top-20-the-most-used-java-libraries-on-github.html

http://www.fromdev.com/2014/10/most-widely-used-java-libraries.html


Imágenes con algunos de los formatos de archivo más polulares

Ange Albertini ha creado algunos posters minimalistas bastante interesantes que muestran como están divididos y organizados los distintos bloques de información con los que se conforman algunos de los formatos de archivos más conocidos.  En algunos casos como el .class de Java muestra la descripción de un clásico “Hola Mundo“, en otros, muestra como sería una pequeña imagen representada como información hexadecimal y a que corresponde cada bloque en el archivo.





Su trabajo completo es interesante: https://github.com/corkami

  • Ejecutables
    • Portable Executable
    • Executable and Linkable Format
    • Mach-Object File Format
    • Java Class (class)
    • Small Web Format / Flash
    • Command File / PE Dos Stub
    • Dolphin Executable
    • Dalvik Executable
  • Imágenes
    • X Bit Map
    • Portable Gray Map
    • Portable Pix Map
    • BitMap / Device Independent Bitmap
    • Graphics Interchange Format (GIF)
    • Tagged Image File Format (TIFF)
    • Portable Network Graphics (PNG)
    • JPEG File Interchange Format

  • Archivos
    • Zip File
    • Tape ARchive
    • GNU GZip
    • Roshal ARchive
    • BZIP2
  • Otros
    • Portable Document Format (PDF)
    • X64 1-Byte Opcodes
    • X86 1-Byte Opcodes
    • Waveform Audio File Format (WAV)

Para ver más: https://github.com/corkami


No estoy seguro


Y otro más…


Pensando en código siempre


Cuando despiertas

Cuando despiertas y ves el error.


Java Básico, el ciclo for, continue y break


Problemas de programación


Estilos

¿Que estilo prefieres?