- Quelle technologie/langage (et éventuellement Framework)?
C++ principalement, rarement avant la norme C++11 et quand je peux, du C++14.
Le second langage que j'utilise est le Go.
Au niveau du reste, tous les jours j'utilise beaucoup de Bash, un peu de R et de GnuPlot.
- Les plus/avantage moins/inconvénients?
L'avantage qui est aussi la faiblesse du C++, c'est sa versatilité. Beaucoup de choses sont possibles, et les possibilités du langages permettent de faire ces choses de manière horrible.
De plus, il est très verbeux, les erreurs des compilateurs sont horribles et le nombre de concepts à maitriser pour ne pas produire du mauvais code est tel que la maxime du langage pourrait être « L'expertise sinon rien », ce qui en fait l'un des langages les plus affreux à apprendre dans un but de devenir opérationel.
Pour nuancer, les apports du C++11, puis la confirmation du C++14 et l'espoir du C++17, corrigent largement la plupart de ces defauts en offrant des syntaxes plus légères et agréables a manipuler, ainsi que des concepts plus modernes. Le soucis inherant au langages stables, comme le C l'est egalement, c'est que l'inertie pour faire changer les comportements, les methodes de developpement et l'utilisation du langage est extremement faible en comparaison avec des langages plus jeunes ou underground.
Enfin, un défaut qu'il me faut citer mais qui ne me concerne pas (quoique un peu maintenant), c'est le manque de support de la librairie standard pour des choses aussi basique que filesystem ou network.
Le Go m'a ete plus ou moins impose par la boite ou je travaillais et ou justement, il reecrivait une bonne partie de leur base de code C++ en Go. Il y a plusieurs raisons a cela:
- Code beaucoup moins verbeux
- Support natif du RPC, multithread, filesystem
- De bonnes performances
- Moins complexe que le C++
La courbe d'apprentissage du langage est tres bonne lorsque l'on vient du C / C++ ou Java. De bonnes performances pour les besoins courants. C'est assez agreables a utiliser, notamment des idiomes interessants couples a des concepts interessants (retours multiples, pseudo objet, slices, canaux, reflexion). J'apprecie egalement les outils standards qui viennent avec le langage, comme le formatteur de sources, de quoi faire les tests, la construction logicielle. Cela permet d'avoir une certaine standardisation appreciable en entreprise, et la facon dont ils sont fait, ne rend par leur utilisation obligatoire et mieux, permet d'integrer ses propres outils par dessus au besoin.
Le defaut que je pourrais faire au Go serait peut etre quelques erreurs de design de par sa jeunesse.
Console + tmux, ce qui me fait tourner vim et quelques pluggins.
Pour la construction logicielle j'utilise CMake pour le C++.
- Quel point de vue avez-vous? (utilisation/formation : projet perso, projet professionnel, autre)
- Quel type de projet?
Point de vue projet perso / pro.
Mon parcours est un peu complique mais disons que je travaille dans la recherche, en C++, pour des applications ou frameworks de calcul haute performance, d'optimisation ou simulation. C'est egalement ce qui attire mon attention sur mon temps libre (en general les projets sont open-source sous License CeCILL puisque je collabore avec Inria ou sur des projets ANR incluant au moins Inria, ce qui me permet egalement d'investir mon temps libre dedans).
Du coup, sur ces projets on retrouve le Bash pour lancer differentes experiences et R / GnuPlot pour l'analyse / visualisation des resultats.
J'ai fais un petit detour par la securite informatique, ou j'utilisais du C++ et du Go pour des projets liees au monitoring et statistiques d'utilisation de licences informatiques.
Enfin, je precise que je ne suis pas dans l'informatique a la base mais dans les mathematiques (et j'ai decouvert que le Go pouvait etre un excellent choix pour le traitement de donnes par ailleurs).
- Pensez-vous évoluer vers un(e) autre?
Je n'ai pas vraiment d'autres besoins que ceux offerts par le C++ en terme de performances. Comme je le disais, je fais du calcul scientifique et de la simulation avant tout mais ce n'est pas mon activite principale (et quand j'en fait sur mon temps libre c'est plus pour me detendre et sortir la tete des mathematiques).