last day (19 days later) » 

4:51 AM
@eferion @PaperBirdMaster
Juan M me ha pedido ir elaborando uno o varios temarios sobre posibles temas a tratar en el webcast.
Se que PaperBirdMaster propuso Novedades C++17.
Para mi, es demasiado, no soy experto en C++, pero puedo intentar ir tirando algunos posibles temas.
Opino que, dado que la mayoria de usuarios (yo incluido) del sitio tienen un nivel no demasiado alto,
podriamos orientar este primer webcast a temas mas asumibles
¿ plantillas, tal vez ? casos básicos, y subir a especialización parcial y plantillas de argumentos variables ?
Podeis dejar las opiniones o ideas aquí.
Mi intención al proponer ese tema es no limitar demasiado la posible audiencia del webcast. Novedades C++17, entiendo que será de interés para profesionales y entusiastas avanzados; los que están iniciando, e incluso a nivel medio, posiblemente lo encuentren menos atractivo.
 
 
7 hours later…
11:42 AM
Mis propuestas fueron:

**Evolución del lenguaje**
Han habido 4 estándares oficiales de C++ desde que "nació" en 1983 (C++98, C++03, C++11, C++14) próximamente se aprobará C++17 y ya se habla de C++20. En este tiempo el comité de estándares se ha esforzado por hacer de C++ un lenguaje más fácil de aprender y enseñar, un lenguaje más seguro, un lenguaje que permita más expresividad... se podría discutir de cómo ha evolucionado y qué lenguajes han influenciado esta evolución.

**C++ como barrera**
Tras pensarlo unos días, en mi opinión, el que es más fácilmente abordable en un WebCast es "C++ como barrera".
Propongo las siguientes preguntas-temas para incentivar el debate alrededor de ese tema:

• ¿Por qué crees que C++ tiene esa fama de complicado?
• ¿Es una fama fundada o infundada?
• ¿Cuál crees que es la característica de C++ que los nuevos programadores consideran como más complicada?
• ¿Cuál crees que es la mayor barrera que deben superar los nuevos programadores de C++?
• ¿Qué es lo que a ti te parece más difícil de C++?
• ¿Algo de C++ que te pareciera complicado y al final no lo fuera?
• ¿Algo de C++ que te pareciera sencillo?
Tomaos la libertad de añadir más preguntas a la lista. Me gustaría también recibir opiniones sobre si alguna pregunta sobra para eliminarla.
 
@Trauma las plantillas son, desde mi punto de vista, de lo más complejo de C++... para ejemplo revisa dos de las últimas preguntas de @PaperBirdMaster. De hecho estoy convencido de que ese es uno de los motivos por el que en los cursos regulares apenas se profundice en este tema.
Y si ya incluímos variadic templates entonces ya es para que a más de uno se suicide
A mi la propuesta de @PaperBirdMaster me parece mejor opción ya que puede ayudar a "quitarse el miedo" a aprender C++
Aun así, al menos en España, se nota que hay poca industria en este aspecto... la mayor parte del trabajo en Madrid está relacionado con la banca... hay muy poco de otras temáticas mucho más interesantes desde mi punto de vista como robótica y automatismos
Por otro lado sí que comparto que el tema de las novedades de C++17 puede ser algo demasiado alejado del mundo real... la mayoría de la audiencia dudo que conozcan la diferencia entre C++11 y C++14 (y lo digo sin intención de faltar el respeto a nadie, es una simple apreciación). En ese contexto centrar la primera charla en el último estándar podría ser un error.
 
12:06 PM
@eferion Hasta donde llega mi experiencia C++ se usa mucho en desarrollo de videojuegos, habiendo varias empresas de videojuegos en ciudades importantes en España (Madrid, Barcelona, Zaragoza y Valencia).
Y me gusta el análisis que has hecho de mi propuesta: "quitarse el miedo" es una muy buena manera de verlo.
Por eso, os invito a añadir/quitar preguntas a la lista que he confeccionado.
 
@PaperBirdMaster Pues será que tengo la negra, pero en mi perfil de linkedin únicamente entran negreros del mundo de la banca
Otra pregunta que podría hacerse...
- ¿En qué aspectos crees que debería mejorar el lenguaje?
 
@eferion ¿Tienes trasfondo de videojuegos en tu perfil? Yo en LinkedIn tengo algo de Gambling y me entran ofertas de ese tipo. Eso si: ahora estoy en banca.
@eferion Es buena :) (y complicada)
Me gusta que @Trauma esté en el WebCast porque puede aportar un punto de vista diferente: el de alguien entrado "recientemente" en C++.
Los temas complicados (estándares y plantillas) pueden dejarse para WebCasts temáticos específicos de C++.
 
@PaperBirdMaster pues sí, el de plantillas por ejemplo daría para un par de webcast él solito
De videojuegos no, pero sí tengo de sistemas embebidos y automatismos (en eso estaba metido hasta que pasaron a deberme 5 nóminas y media y me dió por irme hace 5 años ya) y de eso no llega nada
Por cierto me gustaría compartir con vosotros una imagen que me demuestra dos cosas:
1. que hay gente que tiene mucho tiempo libre
2. Que C++ es un mundo
 
12:27 PM
@eferion La he pegado en el chat de meta a las 8:37 xD
Las tengo todas, desde que empezaron a hacer eso con C++11 :)
 
@PaperBirdMaster pues no se por qué me había dado a mí que tu ibas a estar más metido en temas de universidad...
 
@eferion No tengo siquiera titulo universitario...
Estuve en la FIB 1,5 años y me fui porque sentía que perdía el tiempo.
(y dinero)
 
@PaperBirdMaster Cuando he leído lo de FIB lo primero que he pensado es en el festival de Benicasim jejejeje
 
Tengo un CFGS de DAI. Con ese CF me apunté a la Universidad y me dijeron que me convalidaban todas las asignaturas de programación... no me lo podía creer. Era tal cual como si me dijeran que ya había aprendido todo lo que tenía que aprender de programación... lo cuál yo sabía que no era cierto. Yo iba a la Universidad a aprender más, no a que me dijeran que ya lo sabía todo.
@eferion No sabía que había un festival en Benicassim con el mismo acrónimo que la Faculta de Informática de Barcelona :O
@eferion ¿Has visto el cementerio? Han metido a los trígrafos ahí xD y el auto_ptr.
 
@PaperBirdMaster fiberfib.com. Yo también pasé a la universidad vía CF en mi caso fue el de Sistemas de Telecomunicación e Informáticos... las convalidaciones me llegaron tarde pero me sirvieron para borrar los créditos de libre elección jejejeje
El mapa está genial. Me ha hecho mucha gracia lo del try expresado como una seta
o lo de los templates como un laberinto en plan "entra entra, ya veremos si luego sales..."
 
12:43 PM
@eferion ¿Y las personas más importantes de C++ con construcciones a su nombre? La torre de Bjarne y el molino de Sutter xD
 
ya
 
(Y el castillo de Alexandrescu)
 
pero se les ha olvidado poner nuestro nombre... habrá sido un despiste jejeje
 
Aún recuerdo una charla de Alexandrescu en que hablaba de templates variádicos compuestos de templates variádicos... @_@
 
Bueno
en tu caso han puesto un origami
 
12:44 PM
"Variadic templates are funadic" (creo que era)
@eferion Por las fold expressions :P
 
@PaperBirdMaster sí, es que me daba pereza escribirlo
 
Me acabo de dar cuenta que register está como saliendo del cementerio. Eso es porque se plantean reciclar esa palabra clave (que está deprecada pero sigue siendo palabra clave).
 
No parece que tenga muy buena pinta la pobre... da la impresión de que se quedó en las puertas
 
@eferion Lo han propuesto para alargar la vida de temporales O_o
 
Yo creo que deberían centrarse más en mejorar la legibilidad del código o en darle una forma más agradable a los metadatos... meterse a tan bajo nivel suele crear más confusión que soluciones
 
12:51 PM
@eferion Hablando de legibilidad del código... lo que hay propuesto para concepts es terrible
template <class T>
concept bool EqualityComparable() {
return requires(T a, T b) {
{a == b}->bool;
{a != b}->bool;
};
}
 
lo se...
A mí me habría gustado más algo tipo los atributos de C#
[Atributos]
funcion(){
y no meter los conceptos dentro de la función
O si no que se carguen de una vez el concepto de cabecera
que con los compiladores de hoy en día no tiene demasiado sentido mantenerlo todo separado en dos ficheros
 
Yo habría hecho algo así:

template <typename T> concept bool EqualityComparable(T a, T b)
{
return
typeof(a == b) == bool &&
typeof(a != b) == bool;
}
 
Los conceptos se podrían haber definido como pseudofunciones y después simplemente hacer referencia a ellos para establecer las condiciones de la función
 
Ya tenemos algo así en C++:

int [[nodiscard]] f();
@eferion ¿Puedes ponerme un ejemplo de esto?
 
No sabría como explicarlo con pocas palabras... yo me fijé en su momento en C# y hay problemas que solucionaron de forma mucho más sencilla a como se hace en C++
 
12:58 PM
(Oh, me temo que te leeré luego, me tengo que ir)
 
No se, en el caso del ejemplo que has puesto de los concepts desde mi punto de vista sobra lo de template<class T> ya que se presupone que un concepto será algo abstracto
Y por supuesto, como dices, lo de requires debería ser algo implícito
Es como el absurdo de que no exista una palabra específica para definir interfaces que exija que la misma no tenga implementación
Y lo que comentas de [[nodiscard]] ¿En serio era imprescindible poner doble corchete? ¿Y no han pensado la posibilidad de poder poner atributos propios?
Lo del doble corchete vale que es una tontería... pero ¿es necesario?
 

  last day (19 days later) »