Quel est votre langage préféré en 2015?

Quelles technologies préconisez-vous pour 2015?

a marqué ce sujet comme résolu.

Mon langage pour 2015 ?

Le C.

Pourquoi ?

  • Parce que c'est le langage supporté par le plus de machines au monde.
  • Parce qu'il est stable, il n'y a pas 2 versions du langage qui sortent avant même que le projet ne soit terminé.
  • Parce qu'il est léger. Ce n'est pas un amoncellement de 36 paradigmes de programmation différents.
  • Parce qu'il est facile à traduire en assembleur, ce qui facilite énormément le débug.
  • Parce qu'il existe une quantité incroyable de bibliothèques disponibles en C
  • Parce que POSIX prévoit des API en C.

*Quel IDE j'utilise ? *

Vim fait très bien le boulot, avec les extensions existantes (cscope et fugitive notamment), en plus, quand on sait utiliser vim, on n'a pas de problème pour utiliser vi quand il n'y a que ça.

Quel Framework?

La plupart du temps, aucun. Ah, si, CMSIS, on doit pouvoir voir ça comme un Framework, et puis il y a le Framework de drivers de Linux aussi.

C'est du troll ?

De défendre un langage d'il y a 40 ans, dont le typage est tellement faible qu'il ne protège pas des erreurs, où pour ré-inventer la roue, il faut redéfinir la géométrie, où une faute de frappe provoque de manière invisible fuites mémoires, des corruptions de stack, et autres saletés ? Oui, un peu. Mais c'était l'occasion de rappeler que tout ce qui est nouveau n'est pas forcément extraordinaire.

Merci pour votre participation, ca fait plaisir de voir les avis (je cherche à voir les tendances car je n'ai pas trop suivis ces dernières année et je vais reprendre le dev pour un projet perso). Sinon pour les questions, j'ai mis framework parce que j'ai copier du message pour les langages web mais je modifie le premier sujet afin de mettre framework/library ou autres dans le genre ;)

  • 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, multithread1, 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.

  • Quel EDI utilisez-vous?

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).


  1. A un niveau bien plus haut que C++. 

Y'en a qui auraient des retours sur AngularJS ou Backbone.js ou Ember.js?

Xia, tu la sens comment la V2 d'angularjs qui casse tout?

Je suis assez tenter par ce genre de "nouvelle" technologies mais j'ai vraiment du mal à choisir avec laquelle commencé ou tenter d'apprendre.

Y'en a qui auraient des retours sur AngularJS ou Backbone.js ou Ember.js?

Xia, tu la sens comment la V2 d'angularjs qui casse tout?

Je suis assez tenter par ce genre de "nouvelle" technologies mais j'ai vraiment du mal à choisir avec laquelle commencé ou tenter d'apprendre.

Nerothos

AngularJS est cool :) pour moi ça a été le coup de foudre. Un vrai MVC en javascript, le code est nikel, la doc est bien fichue et donne des exemples… Et on est proche de l'HTML dans la parti vue (modification de DOM et autres trucs). Les puristes vont me dire que c'est moche d'avoir des "ng-repeat", "ng-if", "ng-switch", "ng-linajoli" partout dans les tags, mais pour moi c'est super clair.

D'après ce que j'en ai vu, EmberJs fonctionne un peu pareil mais je n'ai pas regardé dans le détail (je l'ai même pas essayé :s) Backbone, je n'ai jamais pratiqué non plus…

La version 2 d'angular, je vais la laisser de coté un moment (comme je travaille uniquement en interne, je vais rester sur la version 1 aussi longtemps que possible, pas envi de tout casser).

+0 -0

De ce que j'ai pu en voir/lire, Backbone est plus orienté interaction serveur et s'occupe moins du DOM. Ember et Backbone nécessitent jQuery, chose qu'Angular ne fait pas (<3).

Sinon, il y a un bon comparatif (en anglais) ici : https://www.airpair.com/js/javascript-framework-comparison (on se rend d'ailleurs compte qu'Angular est loin devant en terme d'utilisation)

Perso pas vraiment de langage préféré pour 2015, je suis plutôt dans le triplet Java, Python, C. Avec des usages spécifiques pour chacun d'eux. Java : Applicatif Python : Pour tester des algos faire des GUI C : Pour l'embarqué

Je vais peut être me mettre à Ruby qui à l'air puissant et alimenté et soutenu par sa communauté (contrairement à Python qui m'a l'air de couler, notamment à cause de sa fragmentation 2.7/3.x). Si je m'amuserai bien avec des nouveaux langage style Haxe, Rust, Go .. Mais j'ai peur que leurs syntaxes change toute les semaines et je vois pas trop leurs intérêt pour l'instant.

Natalya -> Tu n'utilises pas HAL ?

+0 -0

contrairement à Python qui m'a l'air de couler, notamment à cause de sa fragmentation 2.7/3.x

C'est juste une impression alors, car la version 3.x a un peu plus de 6 ans, et comme l'a déjà dit Nohar dans son précédent post, il n'existe que très peu de modules n'ayant pas fait la compatibilité entre les deux versions.

Pour un débutant qui veut découvrir un langage, ce genre de détails n'a plus d'importance… Mais python ne coule pas, ça c'est sûr :)

Apprendre Ruby, quand on connaît Python est discutable, mais je te laisse découvrir par toi même.

Quelle technologie/langage (et éventuellement framework) ?

Ruby. C'est ma grande découverte de l'année 2014.

Pas de framework pour moi, si je veux faire du web, j'utilise PHP.

Les avantages ?

  • Le combo Tout est objet + . rend le tout super agréable à utiliser. (comparé à PHP ou on a des flèches -> …)
  • C'est simple à apprendre, mais ce n'est pas pour sa que ce n'est pas complet.

Les inconvénients ?

J'imagine que je n'ai pas encore assez explorer le language pour les lister.

Quel éditeur de texte utilisez-vous ?

Sublime text 3, j'aime pas trop les EDI.

Quel type de projet ?

Petits projets dans la console, je n'ai pas vraiment d'idée de gros projet réalisable (je compte juste réaliser un logiciel de backup, pour approfondir la gestion de fichier, dossier, MD5 et autre).

Quel point de vue avez-vous ?

Projet perso uniquement.

Pensez-vous évoluer vers un(e) autre ?

Je ne vois pas vraiment de langage vers lequel évoluer, surtout que je ne me sens pas limité par Ruby.

Quelle technologie/langage (et éventuellement Framework)?

Mon amour de toujours, que je continue à approfondir à mes heures perdues, c'est l'assembleur. Mais mon coup de cœur de l'année 2014, c'est le haskell.

Les plus/avantage moins/inconvénients?

Pour l'assembleur, le "plus" indéniable, c'est qu'il est difficile de faire des programmes plus petits (une fois assemblés) : pour de l'embarqué ou des situations critiques, c'est le dernier recours. Dans certains cas, il est même possible de faire des programmes plus optimisés que du C. En outre, connaître l'assembleur apporte une connaissance appréciable des tréfonds de ta machine.

Les moins ? Ha ha ha ha ! Tout le reste. Natalya dit qu'en C, « pour ré-inventer la roue, il faut redéfinir la géométrie » ? En assembleur, il faut réinventer le cast int. Et les processeurs x86 sont vraiment mal foutus. J'ai commencé, cette année à m'intéresser à l'assembleur ARM, et dans l'ensemble, il est carrément mieux foutu : le seul problème, c'est qu'en l'absence de BIOS, c'est carrément plus hardcore pour coder en dehors d'un OS. Et accessoirement, les principaux OS pour machine ARM (Adroid, iOs, etc.) utilisant une surcouche de machine virtuelle, l'assembleur y est inutilisable.

Quant au haskell, je dirais que son principal avantage, c'est son caractère strictement fonctionnel. C'est sans doute une question de goût, mais quand j'ai découvert le haskell, j'ai eu l'impression de trouver le Graal. Depuis que je me suis mis à la programmation fonctionnelle, je trouve les langages impératifs inélégants et limités, même les super trucs tout objet et compagnie.

Son principal inconvénient ? Son caractère strictement fonctionnel. Parce que du coup, la communication avec le monde extérieur est une vraie plaie. Autant pour faire une bibliothèque qui sera appelée depuis une interface utilisateur écrite dans un autre langage, haskell est un rêve éveillé, autant dès qu'il s'agit ne serait-ce que de communiquer par le biais d'une console, il faut entrer dans le monde ténébreux et contraint du « code impur », comme on l'appelle.

Quel EDI utilisez-vous?

gedit. Je suis un inconditionnel de l'éditeur de texte.

Quel type de projet?

Projets persos, je ne suis pas informaticien de métier.

Pensez-vous évoluer vers un(e) autre?

A priori, pas à moyen terme. Déjà, je vais commencer par bien maîtriser le haskell avant d'envisager de passer à autre chose.

Autre

Spéciale dédicace à Natalya, parce que les vieux langages, ça peut être bien. ^^

+0 -0

La communauté python se porte très bien, j'ai un peu de mal a voir pourquoi tu dis ça. Surtout face a ruby où sortie de rail la communauté est faible

Kje

Je suis pas en expert Python, mais à chaque fois que je voulais faire quelque chose de précis et que je cherchais une librairie, j'en trouvé toujours 20 pour la même chose, dont la moitié n'est pas compatible avec ma version de python, puis ensuite qui n'est plus mise à jour depuis 4 ans, ou ensuite il y a aucune doc. J'exagère un peu, mais j'ai jamais eu ce soucis avec Ruby (je l'ai utilisé rarement), il y a moins de choses de dispo je pense mais ça parait mieux organisé, plus à jour etc … Après c'est peut être c'est juste une impression

Phyrhob est un vieux langage (1993 de mémoire) du coup oui il y a du legacy. Pour autant si tu as 20 libs pour la même chose, il y en aura bien une a jour.

Je ne dis pas que tout est parfait mais globalement au quotient (pro et perso) j'ai pas du tout cette impression. J'ai en général tout ce que je veux et bien maintenue. Mais ça dépend probablement de ce qu'on veut faire.

Ah, un autre adepte de Common Lisp :)

Coucou ! :)

Edit: J'insisterais encore plus sur les défauts de CL. Surtout sur l'hostilité face à toute tentative d'évolution du langage

olzd

Le langage aurait très clairement besoin d'un coup de jeune. Toutefois, je trouve que c'est un défaut de la communauté plutôt qu'un défaut du langage lui-même. La communauté est de très loin le plus gros point noir de CL : elle existe, mais elle a une mentalité… disons… particulière.

Tout n'est pas noir, il y a quelques signes encourageants : de bons livres pour débutants existent, des initiatives récentes comme QuickLisp (package manager à la pip) sont applaudies, et diverses personnes développent des projets comme cl-21 (modernisation du langage compatible avec le standard, qui corrige diverses aberrations gardées pour des raisons historiques).

+0 -0

Quelle technologie/langage (et éventuellement Framework)? Je ne fais qu'un peu de programmation web, en php. J'ai découvert Laravel 4 quand il est sorti, après plusieurs essais d'autres framework (SF2, CI, Cake). Et j'en suis tombé amoureux, tout est tellement intuitif que c'est un bonheur de l'utiliser. Je viens de me mettre à la version 5, et je me réjouis de me plonger dans ses spécificités :)

Les plus/avantage moins/inconvénients? Je ne peux pas comparer réellement avec d'autres langages. J'ai fait un peu de C, que j'ai trouvé très agréable à utiliser. Je me suis frotté à Python, en me focalisant sur Django. Je n'ai pas retrouvé la même saveur qu'avec Laravel, du coup j'ai mis de côté. Temporairement.

Quel EDI utilisez-vous? PHPStorm pour mes projets web, PyCharm CE pour le python, et j'ai toujours Sublime Text 2 sous la main, car des fois, il me manque ^^.

Quel type de projet? Je n'ai que quelques petits projets persos. 2-3 sites pour des amis-connaissances-membres de famille. Sinon, le plus clair de mon temps libre, je développe le site de mon épouse enseignante. Elle peut donner des devoirs à ses élèves avec, etc…

Quel point de vue avez-vous? (utilisation/formation : projet perso, projet professionnel, autre) Projets uniquement personnels :) J'ai un job qui n'a rien à voir avec la technique ou l'informatique. Puis ma femme m'a dit, il y a quelques années : "J'aimerais un site pour mes élèves". Et la fièvre du web s'est emparée de moi :)

Pensez-vous évoluer vers un(e) autre? Pas cette année, Laravel 5 arrive ^^

@leir : quand tu parles d'un site pour que ta femme distribue des documents à ses élèves, tu veux dire qu'il n'y a actuellement aucune plateforme le permettant ?

Si c'est le cas, c'est bien dommage. Peut-être devrais-tu ouvrir ta plateforme maison à d'autres enseignants voire établissements (en rendant éventuellement le projet open-source si tu veux le voir évoluer et être maintenu)… ;)

Au passage, petite question sur Laravel que je n'ai testé qu'assez rapidement : il y a de gros changements entre la v4 et le v5 ?

Pour Laravel, il y a passablement de changements en passant à la V5, mais surtout au niveau de l'organisation des dossiers/fichiers. Pour les nouvelles features, je ne les connais pas encore, je vous redirai quand j'aurai testé. Selon la majorité des développeurs l'utilisant, ces changements apportent réellement quelque chose, mais il faut que je m'y penche :)

Concernant le site de ma femme, au départ, c'était uniquement pour qu'elle puisse partager des liens vers des exercices externes (Wordchamp, tu nous manques…) ou des documents hébergés sur sa Dropbox. Ca c'était en 2010 ^^. Actuellement j'ai pas mal bossé dessus, et elle peut :

  • créer (et éditer) des exercices en WYSIWYG, merci TinyMCE (de type question-réponse, qcm, textes à trous). On arrive gentiment à un millier d'exercices pour le site, dans les branches Français, Allemand, Anglais (élèves de 12 à 15 ans).

  • lier des images à ces exercices, ou des fichiers audio/vidéo ou des liens youtubes, dailymotion etc… pour des compréhensions de textes, ou autre

  • gérer des groupes d'élèves (classes)

  • donner des devoirs à ces groupes (donner un exercice en devoir, avec pourcentage de juste requis, date limite pour le faire, etc…)

  • consulter les résultats des élèves, par groupe ou individuellement. J'ai fait une page où elle peut par exemple imprimer les résultat d'une période (définie par 2 dates), pour tel élève ou groupe, avec le détail des devoirs effectués ou non. La feuille est ensuite à faire signer aux parents (c'est la technique du bâton, mais ça marche plutôt bien). "Du xx.xx.2014, votre fille/fils a effectué x devoirs sur y donnés.". Au début de l'année scolaire, on distribue une fiche explicative pour les parents, pour la grande majorité, ils sont plutôt contents du système, qui permet un suivi.

  • j'avais imaginé également de passer l'ancienne BDD de la bibliothèque de l'établissement, qui a été conçue sous Filemaker, à une version liée au site (avec des QRCode derrière les bouqins, tout ça), mais l'idée n'a pas été acceptée par la direction (bizarrement, aucun soutien de ce côté-là pour le site).

Voilà pour les fonctionnalités jusque-là. J'aimerais bien avoir plus de temps pour bosser dessus, mais avec mon boulot et les enfants, je dégage pas beaucoup de temps libre :) (mais quelle heure est-il bon sang ???).

Le système est prévu pour pouvoir être ouvert à d'autres établissements scolaires, mais pour le moment, ce n'est pas d'actualité. Le site fonctionne bien, plusieurs profs et classes l'utilisent gratuitement (hébergé en mutu sur OVH, ça me coûte pas un bras non plus). Par contre, en début d'année scolaire, pour gérer les nouveaux élèves à entrer, et les questions que j'ai sur le site de la part d'élèves ou de profs, ça me prend pas mal de temps. J'ose pas trop imaginer si c'était ouvert déjà à deux établissements…

Je dois aussi dire que je ne suis pas fier de certaines portions de code, qui sont de mon niveau, c'est à dire très moyennes. Du coup, le site reste un peu fermé sur lui-même pour le moment :)

Pour la petite histoire, les premières versions étaient en PHP vanilla, que j'ai appris justement pour faire ce site. Ce n'était plus possible à maintenir, une catastrophe (c'était le foutoir absolu).

J'ai testé 2-3 framework ensuite, mais j'ai pas accroché. Puis j'ai essayé d'en créer un petit pour répondre à mes besoins, mais c'était trop limité et j'ai perdu pas mal de temps pour le faire. A la sortie de Laravel 4, j'ai testé, et j'ai adoré. La syntaxe était claire et… belle. L'ORM bien pensé, une structure MVC (si on le souhaite) que je comprenais bien, et aussi, une réelle simplicité d'apprentissage. Je pense que comme framework pour débuter, il est assez indiqué. Je dois bien avouer que la sortie du site Laracasts.com m'a bien aidé, la formation y est très didactique. Il y a aussi 2 blogs en français, ici et qui m'ont bien aidé. A côté de ça, les ressources en anglais ne manquent pas actuellement.

Le site a été recodé avec, puis une deuxième fois de fond en comble, et actuellement je compte le passer sous Laravel 5, si j'arrive pour la reprise en septembre (ça va être chaud :)).

EDIT : Si quelqu'un veut un aperçu rapide de Laravel, cette petite vidéo présente quelques bases.

EDIT 2 : comme mentionné par @viki53 ci-dessous, je ne m'étendrai pas plus sur le site en question, c'est HS ici :)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte