Mozilla nos trae su nuevo lenguaje de programación llamado Rust

Anuncio
Mozilla nos trae su nuevo lenguaje de
programación llamado Rust
Rust es un nuevo lenguaje de programación multiparadigmático que está siendo desarrollado por
Mozilla. Según se puede leer en su sitio oficial, el objetivo de este nuevo lenguaje es
diseñar e implementar un lenguaje de sistemas seguro, concurrente, práctico y estático.
El desarrollo del lenguaje, fue empezado en 2006 por Graydon Hoare, y en 2009, la fundación
Mozilla, se involucró en el proyecto. Además de Hoare, hay otros desarrolladores detrás como
son el miembro del comité Ecma, Dave Herman, y el CTO de Mozilla y creador de JavaScript,
Brendan Eich.
Por ahora se conoce poco sobre el código, pero se puede ver algo de sintaxis en la FAQ de
Rust. Os pongo un trozo de código.
iter pairs()-> tup(int,int){
let int i =;
let int j =;
while(i <10){
put tup(i, j);
i +=1;
j += i;
}
}
fn main(){
let int i =10;
let int j =;
for each (tup(int,int) p in pairs()){
log p._0;
log p._1;
check (p._0 +10== i);
i +=1;
j = p._1;
}
check(j ==45);
}
Las características que nos aportará este nuevo lenguaje, han sido resumidas por los
desarrolladores de Mozilla.
Orientado a seguridad
Memoria de seguridad, para evitar bugs que sirvan como brechas de seguridad. Gestión
automática de guardado.
Control de las modificaciones. Inmutables por defecto. El estado de mutabilidad no se comparte
entre tareas.
Ejecución dinámica de seguridad: errores, registros, etc.
Capacidad para definir invariantes complejas
Orientado a la concurrencia
Control de la memoria explícita. Control de localización y de etiquetas.
Tareas de peso muy ligero. Facilidad para convertir miles en millones.
Stack iterators
Compilación nativa y estática. Emite archivos ELF / PE / Mach-o
Una interfaz simple y directa para C.
Orientado a la práctica
Multiparadigmático, totalmente funcional, concurrente, OO
Funciones de primera clase con vínculos
Multiplataforma. Desarrollado para Windows, Linux, OSX
Cadenas UTF8
Funciona con cadenas nativas existentes. GDB, Balgrind, Shark, etc
Permite romper normas en la práctica, si es explícito dónde y cómo
Como se ha comentado, es un proyecto aún en desarrollo, por lo que no podemos ofrecer mucha
más información, solo esperar a que por parte de Mozilla vayan sacando más información al
respecto.
Las diez tecnologías mejor pagadas que
un programador puede aprender
Un estudio publicado recientemente basándose en la base de datos del buscador de
empleos tecnológico, Dice, muestra un interesante pulso de la industria del
desarrollo y la valoración de cierta tecnologías, de acuerdo al salario que las
empresas pagan a los profesionales.
Entre los principales puntos a destacar:
Una tremenda especialización entre los profesionales de la analitica y la
minería de datos.
El posicionamiento de Bigdata entre las tecnologías mejor valoradas.
El dominio de las tecnologías de backend frente a las tecnologías frontend o
aplicaciones móviles.
Ranking de tecnologías mejor pagadas
R: un lenguaje y entorno de programación para análisis estadístico y gráfico.
Proporciona un amplio abanico de herramientas estadísticas para el análisis
de comportamientos. Es uno de los pilares para el análisis de grandes datos
en el concepto más amplio de Bigdata. Si queréis empezar a aprender algo de
R, os aconsejamos, la versión en español de R for Beginners, traducido por
Jorge A. Ahumada.
NoSQL: el conjunto de bases de datos y sistemas de almacenamiento
contrapuesto al sistema tradicional de bases de datos relacionales. Existen
un amplio abanico de tecnologías y módelos como sistemas de grafos,
documentos, orientadas a objetos, a colummnas, clave-valor, etc… Entre ellas
nos encontramos con Redis, MongoDB, Cassandra, Neo4J, DynamoDB, etc…
MapReduce: es un modelo de programación para procesar grandes cantidades de
datos, en forma paralela y en clusters. Está compuesto por el proceso
de Map() para el filtrado y de Reduce() para el procesado. Podemos
encontrarnos con tecnologías como Hadoop.
PMBok: uno de los estándares de gestión de proyectos más extendidos del
mundo. En el se basan distintos master que certifican a jefes de proyectos y
gestores en la industria del software. Más enfocado a la parte de gestión que
a la desarrollo de software.
Cassandra: una de las tecnologías NoSQL que mencionábamos más arriba con un
fuerte posicionamiento en el mercado. Desarrollada inicialmente por Facebook
en 2008 y que se describe como un modelo de datos BigTable. Sus principales
usarios son grandes compañías como Twitter o la propia Facebook.
Onmigraffle, más orientado a profesionales de usabilidad que programación,
pero se cuela sorprendentemente en el ranking. Se trata de una herramienta
para crear diagramas, gráficas de flujo, ilustraciones, etc… Similar a
Microsoft Visio, pero que se posicionar fuertemente para construir todo tipo
de diseños y wireframes por los expertos en usabilidad, bastante bien
valorados
Pig: volvemos a referirnos a Bigdate y MapReduce con esta herramienta
construida con la intención como plataforma por encima de Hadoop para el
análisis de datos. Incialmente desarrollada por Yahoo, ahroa pertenece a la
fundación Apache.
Service Oriented Arquitecture (SOA): esta es una de las habilidades o
conocimientos más amplio basados en el patrón de diseño y arquitectura de
aplicaciones SOA: las aplicaciones se sustentan en servicios totalmente
independientes que encajan con otros para formar funcionalidades más amplias.
Hadoop: Otra más para apuntar en el conjunto relacionado con BigData. Un
modelo de almacenamiento y análisis de grandes cantidades de datos cuyo
sistema es HDFS. Sus usos principales son el clustering de datos y aplicar
técnicas de MapReduce
MongoDB: una de las bases de datos NoSQL más ampliamente usadas. Parte de su
popularidad viene gracias a su modelo basado en documentos y JSON de
almacenamiento que hacen bastante cómodo su uso y tratamiento.
Después de confeccionar este ranking, quizás la industria de software en España
sea muy distinta. Pero no viene mal conocer y echar un vistazo estas tecnologías
que están en la punta de lanza en otros mercados como el norteamericano. Quizás
en unos años tengamos que pegarnos más en serio con ellas, sobre todo
con Bigdata que, como vemos, difiere mucho del estado casi en pañales de España.
Se libera Dart 1.1
Hace apenas un par de meses se liberó la versión 1.0 de Dart. Hoy sale la
versión 1.1 que promete mejor desempeño, más características, así como
herramientas mejoradas. En un artículo de Seth Ladd, anunciando la salida de
Dart 1.1, indica que es más rápido que Javascript por un 25% más o menos.
Dice Ladd: “Dart continúa brillando. El desempeño en las pruebas hechas por
Richards hablan de un 25% más rápido a favor de la primera versión, haciendo
el runtime comparable con el de Javascript original. El desempeño de nuevo
benchmark, FluidMotion se ha duplicado desde noviembre. Dart2js ahora genera
Javascript que trabaja al menos tan bien, si no es que mejor que el
equivalente idiomático de Javascript”.
Las notas de Ladd indican que hay un número de mejoras para el lado del
servidor de Dart, incluyendo soporte para archivos grandes, copia de
archivos, manejadores de procesos de señales e información de la consola. Hay
nuevo soporte ara el User Datagram protocol (UDP), cuya intención es permitir
a los desarrolladores escribir aplicaciones de streaming más eficientes, así
como documentación para el soporte de las línea de comandos y las
aplicaciones desde el lado del servidor de Dart.
Las actualizaciones del editor de Dart incluyen depuración mejorada,
implementación de código y más herramientas de descripción. En promedio, el
desempeño del editor y el analizador también han mejorado.
Las cinco cosas más frustrantes de la
profesión de programador
Trabajar como programador implica una serie de cosas realmente frustrante que
podemos declarar como propias de la profesión. No os preocupéis, realmente puede
seguir gustándote trabajar como programador, pero debes asumirlo cuanto antes.
La profesión de programador está lejos de ser automatizada por completo, es
necesario resolver muchos y variados problemas a diario mediante la intervención
humana. Parte de ellos son quebraderos de cabeza que no tienen que ver con el
trabajo en sí que estamos haciendo.
A continuación una serie de las cosas más frustrantes de la profesión de
programador.
1. Arreglar el ordenador a todo el mundo
Que gran parte de la humanidad (incluyendo a conocidos, amigos, vecinos y, por
supuesto, familiares) asuman que puedes y debes arreglarles el ordenador o
cualquier aparato electrónico. Por supuesto, todo esto de forma gratuita y
dedicando tu tiempo libre. Lo peor de esto, no es arreglar el ordenador en sí,
si no aguantar todos los comentarios y vacilaciones cuando realmente algo no
tiene solución y les intentas convencer que deben llevarlo al SAT oficial.
2. Incidencias de errores incompletas
Informes de bugs sin suficiente información para reproducir el error. Cualquiera
que se dedique a programar y mantener una aplicación con usuarios finales ha
sufrido auténticos quebraderos de cabeza al intentar resolver incidencias
incompletas. Los usuarios tienen el gatillo fácil para abrir una incidencia sin
preocuparse si realmente lo están haciendo bien o aportar la suficiente
información sobre el problema. Hay que perseguirlos para recabar datos e
insistir para que aprendan a abrir incidencias de errores adecuadamente.
3. Que los usuarios ignoren la documentación de la aplicación
Ignorar la documentación. Hay que reconocerlo: escribir documentación es una de
las tareas más tediosas que existen, sobre todo cuando te toca hacerlo al final,
después de haber dedicado toda tu energía a desarrollar una aplicación. Por eso,
es especialmente frustrante cuando un usuario ignora la documentación y pretende
que le expliquemos cómo funciona algo sin haberse molestado en echar un vistazo
al manual de usuario.
4. Las prisas en los plazos de entrega
Una lucha constante entre los desarrolladores y sus gestores de proyectos
imposible de solucionar (da igual si internamente usas metodologías ágiles, para
ellos no existen). Por un lado se quiere tener una nueva funcionalidad (muchas
veces sin importar cómo) y, por el otro, se intenta hacer lo mejor posible, pero
con plazos de entrega que no son realistas se fuerza a las horas extras y no
aplicar correctamente las buenas prácticas a la hora de desarrollar: no hay
tests, no se documenta, no existe ningún principio de clean code, etc…
5. Los errores inesperados en el entorno de desarrollo o en las maquinas de
producción
Resolver los errores inesperados de servidores, de que el Eclipse empiece a
fallar, problemas entre librerías, maquinas sin espacio, liarla parda con el
repositorio, trabajar sin un correcto entorno de pre-producción etc.. Una serie
de errores externos a nuestra aplicación, e incluso a nuestro equipo de
desarrollo que nos hacen perder una mañana entera para resolverlo.
www.asociacionaepi.es
Noticia original en Genbetadev
D: un nuevo lenguaje de programación
D es un lenguaje de propósito general y para aplicaciones. Es de alto nivel
pero retiene la capacidad de escribir código de alto desempeño y poderlo
ligar directamente con el API del sistema operativo y el hardware del equipo.
D es una buena opción para escribir programas medianamente grandes a algunos
de gran escala, con millones de líneas de código, escritos por un grupo de
desarrolladores. D -dicen los creadores- es fácil de aprender y da muchas
posibilidades y ayudas al programador. Tiene además una optimización agresiva
en el compilador.
D no es un lenguaje de scripts o interpretado. No tiene una máquina virtual
como Java, por ejemplo. No es una religión ni una filosofía de vida. Es un
lenguaje práctico para los programadores prácticos que necesitan sacar el
trabajo rápidamente, con código entendible y mantenible fácilmente. Es,
dicen, la culminación de décadas de experiencia implementando compiladores
para diversos lenguajes e intentando construir proyectos grandes usando estos
lenguajes. D obtiene su inspiración en C++.
Pero… ¿por qué necesitaríamos un nuevo lenguaje? La industria del software ha
tenido un largo camino desde que el lenguaje C fue inventado. Muchos
conceptos se añadieron a C++, pero manteniendo la compatibilidad hacia atrás
con C. Con ello también se mantenía la compatibilidad con sus debilidades,
por decirlo de algún modo. Y aunque C y C++ están en constante revisión, cada
nueva característica debe ponerse cdon mucho cuidado para ser compatible con
las estructuras existentes sin requerir reescribir código antiguo. El
resultado es complicado: El C estándar tiene cerca de 500 páginas y C++ tiene
unas 750. Es costoso y difícil escribir hoy en día programas en C++ que sean
portables a otros sistemas operativos.
La cuestión es si es posible extraer el poder y capacidades de C++,
rediseñarlas y ponerlas en un lenguaje simple, ortogonal y práctico. ¿Puede
ponerse todo en un paquete que es fácil para los escritores de compiladores
implementar correctamente, lo cual permitiría a los compiladores generar
código agresivamente optimizado? Ésa es una de las pretensiones de este nuevo
lenguaje D.
Waltr Bright es el creador de D, en el cual empezó a trabajar en 1999. D
salió públicamente en diciembre del 2001, y alcanzó la versión 1.0 en enero
del 2007. La primera versión del lenguaje (D1) se concentró en ser
imperativo, orientado a objetos y con paradigmas de metaprogramación, similar
a C++. Sin embargo, no estaba satisfecho con Phobos, el módulo de tiempo de
ejecución de D, así como la biblioteca estándqar, por lo que la comunidad de
D creó una alternativa llamada Tango. El primer anuncio oficial de Tango
salió días después de la versión 1.0 de D. Tango adopta un estilo de
programación diferente, apoyando la programación orientada a objetos y la
alta modularidad. Siendo un proyecto comunitario, Tango estaba más abierto a
contribuciones de terceros, permitiendo que se progresará más rápidamente que
con la librería estándar. Ya para entonces, Tango y Phobos eran incompatibles
y no se podían usar las dos bibliotecas al mismo tiempo. Esto ha llevado a
una disputa entre los que apoyan una u otra biblioteca.
En junio del 2007, la primera versón de D 2.0 salió públicamente. D2
introdujo cambios interesantes en el lenguaje y añadió conceptos que ahora
están en boga: closure, purity, así como soporte a los paradigmas de la
programación concurrente y funcional. D2 resolvió el problema de las
bibliotecas estándar separando el módulo de ejecución en tiempo real de la
biblioteca estándar. D2 Tango se anunció en febrero del 2012.
Y siguiendo con la tradición, Andrei Alexandrescu sacó el libro: “The D
Programming Language” en junio del 2010, lo que marcó la estabilización del
lenguaje, el cual se le conoce genéricamente como lenguaje D.
D es de código abierto y evidentemente podría ser un contendiente en esta
batalla por hacer el mejor lenguaje de desarrollo.
Descargar