C++ a toda máquina

Si quieres una tecnología, un lenguaje vibrante que avance a toda máquina, novedades y ritmo a tope… C++ es para ti.
Se está celebrando el cppcon 2015
Las charlas y anuncios son sorprendentes.
Para los que pensábamos que que C++11 y C++14 eran un gran cambio, una gran evolución, un gran cambio de filosofía… cppcon 2015 nos muestra que eso era sólo el principio.
La máquina se mueve a una velocidad trepidante y sigue acelerando…
Una declaración de intenciones…
Una muestra real que se puede tocar…
Una guía de estilo oficial, una librería que acompaña, anotaciones atómicas cuando quieras saltarlas, y a aprovechar las novedades con un NUEVO estilo, un nuevo lenguaje.
Un lenguaje seguro a tipos, elegante, moderno, multiparadigma (como siempre) pero funcional bien integrado…
NOTE
Sí C++ type safe, no estás soñando
Por fin una ventana para eliminar el "undefined behaviour is all arround you in C++"
Grandes noticias.
Yo llevo años luchando con este undefined behaviour con librerías seguras link (fail fast, safe iterators, bound checking, etc…) y activando un par de warnings del compilador
-std=c++14 -O0 -g -Werror -Wall -W -Wundef -Wpointer-arith  -Wfloat-equal -fexceptions -Winit-self -Wconversion  -Wclobbered  -Wempty-body  -Wignored-qualifiers -Wmissing-field-initializers -Wsign-compare -Wtype-limits -Wuninitialized -Wno-unused-result   -Wnon-virtual-dtor -Wreorder -Woverloaded-virtual -Wsign-promo -Winit-self -Wignored-qualifiers -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wshadow -Wcast-qual -Wwrite-strings -Wconversion -time
Microsoft, de la mano de Herb Sutter ha mostrado un prototipo operativo…
¿Cuántos programadores de C++ pueden ver fácil y rápidamente el error en este código?
auto i = -1;

auto abs = std::max(i, -1*i);

std::cout << abs << std::endl;
Desgraciadamente pocos y eso es malo.
El compilador y las guías de estilo nos avisarán de estos errores.
Este error podría no aparecer en depuración, no aparecer durante días, semanas o meses. Seguro que en situaciones de estrés y concurrencia es más fácil que ocurra.
La propuesta de meter rangos en c++ está muy avanzada y es espectacular…
Impresionante!!!
Un equivalente a $ cal 2015 sin bucles (no for, no while), sin condicionales, sin estado, declarativo, composición, elegante…
Estos rangos, en otros lenguajes también son conocidos como listas perezosas o streams.
La OOP hace tiempo que pasó de moda, ahora se lleva la programación funcional, cuanto más pura mejor (mónadas, monoides, teoría de clasificación… los morfismos y su composición están a la orden del día incluso en c++) ¿Quien lo habría dicho hace 5 años?
Y esto no es todo, los módulos (el vídeo todavía no está disponible) los concepts (por fin)…
Y esta otra joya de Herb Sutter propuesta para el C++17…
Unified CallSyntax
void fun(My_class& obj, int i);

My_class  mc;
mc.fun(3);
Hay otros lenguajes de programación que lo tienen (D por ejemplo)
Se habla de Rust, se habla de SwiftGoNim… pero ahora también hablaremos de C++ como uno de los lenguajes elegantes, modernos…
Lejos han quedado aquellos tiempos a finales del siglo pasado y principios de este en el que se decía…
Si quieres colaborar con pass:[C++], si quieres aportar, si quieres sugerir cosas nuevas...
la mejor forma de hacerlo, es convencer a todo el mundo de que no proponga cosas nuevas.
C++ Ya es bastante complicado y grande, ahora se trata de que los compiladores
sean buenos con el estándar.
Esto nos metió en el periodo oscuro, de inmovilismo… pero eso es historia.

Comentarios

Entradas populares de este blog

Software libre

Servicios, servicios, servicios... (y Amazon)

Tecnologías divertidas