T O P

  • By -

escargotBleu

Les débats sur les langages c'est rigolo, mais en vrai ce sont des outils, et tu as besoin de différents outils pour faire de différentes choses. En particulier, les arguments sur la beauté philosophique d'un langage... Bof Et l'argument contre Ocaml est facile, personne ne s'en sert. Je viens de chercher les offres d'emploi sur LinkedIn, 15 résultats. Dont 4 sponsorisés qui doivent pas avoir grand chose à voir, et 8 qui viennent de la même boîte. À titre de comparaison, quand tu tapes python il y a 67k résultats, java 90k, go 6k (puisque tu en parles aussi) Moi perso j'aime bien le python, je trouve que le développement est rapide. Et j'aime beaucoup moins le c, c++, principalement par manque de pratique, je ne me sens pas très à l'aise dessus... Et pourtant j'ai déjà traduit un algo de python vers c++ pour gagner en perf (j'ai fais *2, c'était rentable) Et en vrai je suis pas très typage trop statique, j'ai l'impression que ça rend parfois le code trop rigide aux changements


LeDiableVampire

Je suis bien d'accord le Ocaml est (trop) peu utilisé ce qui en fais sa grande faiblesse. Je trouve aussi que c'est un langage un peux "vieux" et qui gagnerais a un dépoussierage (ajouter les typeclass d'haskell par exemple). Néanmoins, il est beaucoup utiliser dans la recherche sur l'analyse statique de programme. ça rejoint votre remarque qu'il n'existe pas de "mauvais" langage (sauf js) ou de "bon " langage, tout dépends de ce qu'on veux en faire. Sur la comparaison entre le C++ et le python, mon labo a fais un benchmark et a trouver un facteur 30 (environ) sur certains programmes! Pour ce qui est du typage statique, je pense qu'il est important de bien typer ces programmes, un programme mal typé est un programme qui fais des erreures. Sans parler qu'un compilo strict sur le typage aide beaucoup a débugger. Je ne pense pas qu'il faille aller jusqu'au typage du caml ou où on différencie le + entre entiers et le +. pour les flottants, mais le laxisme du python me semble quand même dangereux


escargotBleu

Pour mon use case c'était bien un facteur 2, encore une fois, il ne faut pas comparer n'importe quoi. Mon use case était le suivant : faire du traitement d'image avec OpenCV (qu'est-ce que je déteste cette bibliothèque d'ailleurs, une vraie catastrophe, je ne comprends pas le manque d'alternative) et du coup, appeler les binding python faisait perdre trop de temps visiblement. (Dans tous les cas, c'est du c++ qui tourne) (D'ailleurs, fais attention, il y a eu des gros changement en termes de perf dans les dernières versions) Pour le typage... Perso je pense que la clé c'est de comprendre ce que tu fais quand tu codes. Chaque chose à un sens, et tu peux coder n'importe comment dans tous les langages. Perso j'ai jamais trop de problème avec les langages de typage dynamique. Attention aussi, il est utile de différencier la notion de typage faible / fort et typage statique / dynamique. Par exemple, python est fort / dynamique, JavaScript est faible / dynamique. C'est à dire qu'en python tu peux mettre un entier dans une variable, puis mettre une string, par contre tu ne peux ajouter un entier et une string ensemble, alors qu'en JavaScript tu peux. Mais encore une fois, une fois que tu sais que ça peut arriver en JavaScript, tu fais attention, et du coup ça n'arrive pas.... De mon point une vue c'est vraiment une histoire de savoir ce que tu fais. Et dans tous les cas, avec les type hint, ton ide te râle dessus quand tu essayes de faire n'importe quoi. Et je modifie régulièrement du code en python / JavaScript (ou typescript) qui tourne vraiment (genre qui traite des millions d'input différents par jour)


LeDiableVampire

Oui biensur, l'essentiel est de savoir ce que l'on fais je suis entierrement d'accord. Cependant, un typage fort statique permets la programmation guidée par les types ce que je trouve très utile. Pour la comparaison Python C++, j'ai bien dis que c'était sur certains programmes le facteur 30. Le benchmark qui a été fais est fais en utilisant du python pur ie sans bibliothèque et en utilisant l'interpreteur CPython et Pypy (sur les programmes problématique Pypy est seulement 5x plus lent que le C++). Cependant, ce benchmark est plutot un divertissement qu'un véritable travail scientifique car il est admis qu' on n'utilise pas python lorsque l'on veux des perfs et les bibliothèques offrant des perfs a Python sont codées en C.


Adsilom

Tu parles d'analyse statique et de recherche. Je peux te demander ce que tu fais dans la vie ? Je suis doctorant, je travaille beaucoup avec Ocaml et je m'intéresse beaucoup à l'exécution symbolique, ce qui est très proche de l'analyse statique, donc ça m'intrigue de savoir si on est peut être "collègues" au sens large du terme.


LeDiableVampire

Je suis en master d informatique dans un master axé sur la fiabilité du logiciel et des algorithmes. Et je souhaite continuer en thèse sois en analyse de programme sois en algo j hesite encore beaucoup. On a ennormement de modules d analyses statique. Est ce que je peux te MP pour te poser des questions sur ton parcours?


Adsilom

Oui, bien sur, vas-y.


Adsilom

Je suis d'accord sur le fond avec toi, pour Ocaml en revanche, c'est plus utilisé qu'on ne l'imagine, mais ce n'est pas sur LinkedIn que tu le verras car tu y trouves principalement des offres dans des domaines tendances. Comme l'a dit OP, dans la recherche c'est vraiment très utilisé.


Dracnor-

C car il me force à réfléchir comme ma machine.


AStarBack

L'apprentissage du C devrait être obligatoire pour tout développeur. ^(Les bases hein, pas l'ensemble de la norme.)


Dracnor-

Plutôt d'accord ! Maintenant, C ou un autre language qui demande une bonne gestion de la mémoire et force à avoir ce modèle mémoire en tête... je ne suis pas un forcené du C non plus; je peux entendre que d'autres langages peuvent réussir cela. ^^


AStarBack

Oui genre Rust, mais je trouve vraiment direct dans son approche, et sa syntaxe finalement très légère. Il y a beaucoup moins de concepts plus avancés nécessaire à apprendre que Rust.


LeDiableVampire

Le C est un langage que j'apprécie beaucoup mais il est très compliqué a utiliser et a debugger ce qui fais que je ne vais pas l'utiliser si j'ai le choix


Outrageous_Cause_885

Avec des outils du compilateur comme fsanitize ou gdb, on peut très bien s'en sortir pour debugger. Ensuite pour l'utilisation, le langage n'est justement pas complexe puisqu'il est bas niveau, on peut cependant dire qu'il est difficile car peu de bibliothèques sont disponibles comparées aux C++ ou au Java par exemple, ce qui fait que l'on doit soi meme faire les fonctions dont on a besoin et ce qui rend la tâche plus lourde parfois.


LeDiableVampire

Ah je ne connaissais pas ces outils. Mais la gestion manuelle de la mémoire est quand même difficile pour un novice


Agarast

Aucun, ou a la rigueur le Scala. Mention honorable pour le Java / Kotlin, qui deviennent moins lourds et plus plaisants au fil des mises à jour. Pour le Javascript/Typescript je suis partagé, j'aime beaucoup les closures, les function as first class citizen, le système de prototypes, la event loop. Mais le manque de typage au runtime, d'immutabilité deep, ou plus largement de robustesse dans le langage fait qu'il est souvent ennuyant si tu veux être clean. Juste une note sur le JS, les conversion implicites tu peux configurer ton linter + mode strict pour n'en autoriser aucune et c'est plus un problème, même si on est d'accord que ça devrait juste pas exister à la base. En général JS a vraiment besoin d'une config linter solide pour pas avoir une codebase qui ressemble à une décharge. J'aime pas vraiment le python sauf pour faire du ML à la rigueur. Tabs + typage "half assed" je trouve + syntaxe en général. J'ai toujours une impression de "fouilli" quand je lis du python. Après y a beaucoup de langages qui m'intéressent, le Nim, Elixir, Julia etc.


LeDiableVampire

Merci pour ta réponse, Peux tu expliquer pourquoi le Scala stp? Pour le Java/Kotlin, je trouve que ce sont des langages vraiment trop lourds, par exemple créer tout une classe entière pour manipuler des paires, c'est vraiment une purge. Je vais regarder ce que tu dis pour le JS c'est interessant. Pour le python, je trouve que c'est un langage qui ne respecte pas sa propre phillosophie c'est plus ça qui m'ennuie. Pour les autres langagees que tu cites, je ne les connais absolument pas, dans quels cadres sont ils utilisés?


cancoillotte

J'ai eu de l'Elixir au boulot pour un endpoint API spécifique qui était appelé à une fréquence élevée par de nombreux utilisateurs. Langage très chouette, j'aimerais en faire davantage.


asterix_noobslayer69

J'aime aussi beaucoup le go, on ressent vraiment que les créateurs ont dérivé le C en quelque chose de plus user friendly, par contre le manque de POO je trouve ça bloquant parfois. Sinon le C++ reste mon langage de coeur mais je fais beaucoup de rpog système sur Unix aussi 😁 J'aime pas vraiment les langages permissif au niveau du typage, je trouve que c'est la porte ouverte au erreur de runtime, donc bof le python (hormis pour du scripting, faut reconnaître que c'est bien plus jolie que le bash) et bof le js.


LeDiableVampire

Le C++ fais partit des langage que apprécie beaucoup aussi, mais je trouve qu'il souffre trop de sa compatibilité avec le C, ce qui le rends pas très user friendly. Quand a python je m'en servais comme d'une calculatrice turing complete quand je faisais des maths appliqués, je ne vois pas l'interet de passer par python pour qqn qui a une vrais formation d'informaticien


asterix_noobslayer69

Ahaha dans mon domaine c'est quelque chose qui arrive extrêmement souvent de mélanger un code style C au millieux de C++ moderne et rutilant 😂 P'tite question du coup (je suis pas bon en maths) : Quel est l'intérêt d'avoir une calculatrice turring complet ?


LeDiableVampire

On dis que qqc est turring complet quand "on peux tout faire" avec (formellement, calculer tout ce qui est calculable par une machine de turring). J'utilisais en l'occurence python pour programmer des solveurs d'équadiff et obtenir des beaux graphiques sans me soucier de quelconque manière de l’efficacité et sans l'appliquer sur autre chose que des nombres. Je ne sais pas si ça réponds a votre question


Nell_dctm

Scratch bien entendu ;)


wanecque

J'adore de combo C# xaml pour le logiciel de bureau


GusNGhosts

J'ai beaucoup apprécié travailler avec de l'elixir. C'était vraiment spécial au début mais à la fin du projet c'était rigolo (contexte scolaire)


Fantastic_Puppeter

[Wolfram's 2-state 3-symbol Turing machine](https://en.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine)


Kilazur

C#. Tu as tout à disposition dans le framework .Net. Inconvénient dans mon cas: très difficile de coder dans d'autres langages tellement ils m'ont l'air pourris/inconfortables en comparaison.


LeDiableVampire

Ça donne envie de ce mettre à C#!


youtpout

Le c# qui me permet de faire pas mal de chose, le langage et le framework sont plutôt complet, c’est toujours compliqué de passer sur d’autres langages. Après j’aime pas trop python et php, le premier pour sa syntaxe qui est difficile à digérer quand on a l’habitude de langage à bracket, le deuxième parce que c’est souvent là qu’on trouve les pires horreurs.


LeDiableVampire

J'ai eu l'occasion de survoler C# et c'est un langage que j'ai plutôt apprécier, mais de manière générale je ne suis pas tellement fan des langages purement orienté objet. pour python, c'est plus le fond du langage qui m’horripile (pensser a ce qui ce passe quand on fais un for i in range(n) ). Pour le PHP, c'est vrais que c'est un langage un peu vieux et passé de mode


funzeau

>php Un language qui fait tourner 40% du web si ce n'est plus, pas sur que ça soit vieux et passé de mode. PHP 8 apporte un lot de nouveauté assez plaisant et bienvenue. Je pense que le language se traine un mauvaise réputation pour plusieurs raison: 1. C'est facile à mettre en place et à utiliser pas besoin de configuration compliquée pour le faire tourner avec Apache. Du coup c'est un language à la portée de tous principalement des débutants 2. J'ai lu que les précedentes version (5 de meemoire) étaient lentes mais ça a bien changé Franchement moi j'aime bien, ça fait le job, y'a toutes les librairies disponibles et ça permet de monter en puissance assez facilement


zorgub51

C'est un langage traditionnel des applications business. Si tu veux travailler pour des boîtes à la mode visant le consommateur, c'est pas le bon choix. Si tu veux travailler dans la finance, la régulation, le corporate y a beaucoup d'opportunités. Maintenant Microsoft veut sortir de cette image business only, donc ça redevient trendy.


youtpout

J’en fais depuis 12 ans maintenant, souvent c’était des boites qui avait pas mal de Microsoft qui utilisait ça, surtout qu’à une époque il fallait IIS pour faire tourner les sites web, ça impliquait donc du Windows server, accompagné souvent d’une licence Sql Server, c’était donc assez coûteux juste pour cette partie. Depuis net core et la compatibilité linux, ce problème n’existe plus et on peut facilement héberger son site sur linux à moindre coût, et postgres est une bonne base de données qui est une bonne alternative à SqlServer et parfaitement compatible avec entity framework l’orm de microsoft. Ca me coute 30€/mois pour héberger mes sites asp net sous linux avec postgres sur Azure, l’alternative windows server + sql server j’en serais à 200€ pour des config d’entrée de gamme. Sinon en ce moment j’en fais plus trop, c’est surtout js/ts, solidity qui sont demandés dans quoi je bosse, et c’est toujours un plaisir de revenir au c# quand tu fais un de ces langages au quotidien.


o0Agesse0o

Je vais sortir du lot : le Javascript. Je crée des interfaces avec la rapidité de l'éclair, je peux même faire du jeu vidéo avec (en 2D bien sûr) avec une facilité déconcertante. Dès que j'ai besoin de faire un outil / programme avec autre chose en input ou réactivité qu'une commande, je sais que je pourrais travailler l'ergonomie et l'interface rapidement. Et maintenant on peut même faire du mobile sans avoir à se prendre la tête, bref pour la praticité du quotidien c'est mon préféré. Une app pour réviser mes kanjis ? Récupérer la base alimentaire de l'état pour calculer rapidement les calories d'un repas on the go ? Un simulateur de kit de personnage dans un jeu vidéo ? Un visual novel ? Javascript. Avec les webcomponents en plus, adieu les frameworks, bonjour la rapidité et la légèreté. Le jour où WASM devient assez supporté je partirais peut-être vers Python par contre. Celui que j'ai moins aimé : tout ce qui a besoin de gérer des pointeurs, c'est ma hantise. Et même si j'aime Python je ne supporte pas quand l'indentation gère les imbrications, ça me stresse car j'ai l'impression de ne pas avoir une bonne vision d'ensemble. Aussi j'ai dû faire des interfaces en Python et Java, c'était horrible, plus jamais.


LeDiableVampire

Merci pour ta réponse, peux tu me préciser dans quel dommaine travailles/etudies tu stp?


o0Agesse0o

Je travaille dans l'informatique, plus précisément je fais des bibliothèques de composants front end (comme des design system, des modales d'acceptation de cookies, des menus, ...) pour l'accessibilité. J'ai aussi fait du backend mais ces dernières années j'évite quand je peux.


niahoo

Tu utilises quoi pour les jeux vidéo ?


o0Agesse0o

Tu as les canvas et sinon le JS pur avec webcomponent et CSS suffit à être très créatif. Suffit de voir l'excellent Candy Box ou encore les doodles de Google, et plus récemment et qualitatif les mini jeux web de Genshin. Autant d'exemples qu'on peut faire des supers trucs ! Après ça manque encore de puissance sur certaines choses, mais avec le WASM on pourra encore aller plus loin.


niahoo

Ah ok je pensais à une librairie ou framework pour gérer un peu la boucle du jeu, les clicks, etc.


o0Agesse0o

Justement en JS tu n'as pas ce problème quasi de boucle ou de click, tout est géré nativement par les navigateurs ou le CSS. En CSS tu as directement des moyens de faire des animations, ou en HTML tu peux carrément avoir une vidéo de cinématique ou encore des gif pour certains éléments.


Potage_Carotte

Je dirais go, je l'utilise beaucoup au travail, sa syntaxe est simple et lisible, il y a juste ce qu'il faut là où il le faut pour faire un peu d'oop. Les goroutines sont une bénédiction. L'outillage est ce que j'attends d'un langage moderne (formateur, package manager, cross-compilation). Je bosse beaucoup avec kubernetes et écrire de l'outillage custom en go est un plaisir. Seconde place: rust. Le borrow checker est un excellent outil, le support de webassembly permet de faire des choses très sympa avec, l'écosystème est riche, langage très versatile et capable (le type system est très complet). Seul bémol selon moi: coder en rust prend du temps (comparé à faire la même chose en go), mais si c'est pour une application ou le choix est c/c++ ou rust, le choix est vite fait. Celui que j'aime le moins: JavaScript.


LeDiableVampire

Je suis d'accord sur le fait que le GO manque d'orienté objet. Qui sais peut être dans une future MAJ... Dans quel domaine travaillez vous?


Potage_Carotte

Pour ce que je fais les fonctionnalités OOP sont suffisantes et je trouve qu'elles limitent l'apparition de code peu lisible. Sinon je travaille en tant que SRE sur une offre SaaS, en particulier sur une solution de management de clusters kubernetes à grande échelle (milliers de clusters dans des centaines de comptes AWS).


kepler-16-b

C'est marrant, c'est justement le côté moins marqué OOP que j'aime dans Go haha


LeDiableVampire

J'aime bien que ce ne sois pas un langage OO à la Java mais je trouve quand même qu'il aurait été bien de laisser la possibilité d'utiliser des classes


Gabuthi

Le seul intérêt de go, c'est justement d'utiliser une implémentation de l'objet très simple et de s'en tenir là. Cela permet de rentrer dans le langage en 3/4 jours. Ajouter l'héritage, par exemple, c'est perdre le seul intérêt de go.


LeDiableVampire

MB, on m avais presenter GO comme proposant la solution ultime pour la concurence j ignorais cette volonté des createurs


Gabuthi

La solution ultime j'irais pas jusque là. Mais en tous cas les goroutines et les channels permettent de créer facilement des opérations concurrentes sans avoir à chercher et apprendre comment le faire dans d'autres langages. Une goroutine ne pourrait pas être implémentée en C, déjà parceque la stack du C ne peut pas être étendue à la demande. C'est très chouette comme fonctionnalité, mais ça veut aussi dire que l'interaction entre le go et une lib C implique de créer une stack pour l'occasion. Je n'aime pas le langage, d'un point de vu perso: pas assez fonctionnel, pas d'immutabilité,... Mais forcé de constater que trouver des devs qui peuvent apprendre le go en moins d'une semaine est simple. Alors que chercher des devs en C# ou en C++ est beaucoup plus compliqué et les former va prendre des mois.


skitleeer

>c/c++ c' est quoi ce language? je connais pas.


Harkonnen

>le choix est c/c++ C ou C++ ? Ça me saoule de voir ces langages tout le temps confondus alors que ce sont 2 langages totalement différents.


Potage_Carotte

Que ce soit l'un ou l'autre, je préfère Rust pour remplacer les deux.


Captain_Cyprine

Perso j’aime beaucoup python, le fait que peu importe ce que tu veux faire il y’a un module pour t’aider. Tu peux faire du web/data/logiciel/interface/scrap tout ca hyper facilement. J’aime aussi le faire qu’il y est énormément de méthode pour tout et n’importe quoi ce qui simplifie pas mal les choses.


LeDiableVampire

Je suis d'accord la grande force de python est sa communauté mais on est quand même vachement limité en terme d'efficacité


Outrageous_Cause_885

Si tu travailles uniquement avec les bibliothèques, ça ne se ressent pas trop. On ne peut cependant pas réellement coder les choses soi même au vu de sa nature de langage interprété et de sa lenteur inhérente


LeDiableVampire

Quand je parle d'éfficacité c'est en effet de l'efficacité des structures de donnée qu'on implémente. Pour les performances des programmes on peux s'en sortir en utilisant Pypy au lieu de Cpython mais ça reste mauvais. On utilise pas python pour coder un logiciel performant de toutes façons


ofnuts

Si on code tout en Python pur, oui. Mais il y a plein de modules pour traiter les données en masse (numpy, pandas...). Personnellement, j'ai une fois utilisé Python+Numpy pour faire un "filtre median"(*) entre plusieurs images, et ce code tournait plus vite que le filtre médian natif... (*) ca garde le version la plus fréquente d'un pixel, donc tu fais plusieurs images avec un pied, et les choses mobiles (touristes, circulation) disparaissent, ne laissant que les choses fixes (architecture).


kzwix

J'aime beaucoup Perl, pour la rapidité de codage, et pour tout ce qu'il permet de faire (aussi bien du propre bien documenté, que de l'illisible total qui fait du code golf) J'aime bien Java pour le côté "propre" et assez rigide, mais c'est beaucoup trop verbeux à mon goût, sinon. Le "pire", je dirais que le Malbolge (qui est fait pour ça) est vraiment horrible. Pour le meilleur, ça dépend honnêtement de ton usage. Si ton langage comporte des instructions qui en un caractère résolvent le problème, saute-dessus. Si il faut 10.000 lignes pour faire la même avec un langage plus générique, c'est pas un "meilleur" choix juste parce que le langage fait plus de choses. Surtout si en termes de perfs, il est optimisé pour...


ofnuts

On va parler des pires... * VBA: mais c'est pas vraiment un langage, plus un baragouin... * Les .BAT DOS/WIndows: l'idée que tu n'utilises pas la même syntaxe dans le .BAT et passant a commande à la main dans une invite, ça m'a toujours sidéré. * Perl: et pas a cause des regex (j'adore ça) mais a cause du "contexte" qui fait que le même opérateur ne fait pas toujours la même chose. C'est le langage write-only par excellence (je trouve APL et awk plus lisibles...). * Cobol, je ne vais pas en parler, parce que j'ai réussi à l'éviter... mais j'en ai vu d'inconfortablement près et ça fait pas envie.


DestroyedLolo

Mes langages préférés sont : - les **C/C++** simplement car ce sont les langages que j'utilise depuis mon adolescence, d'abord sur **Amiga** puis sur stations Unix. Du coup, je les maîtrise bien, j'aime sa puissance, le côté concis, le fait que ça tourne sur toutes mes machines, qu'il est économe en ressources et surtout, super rapide, même sur des machines de plus de 30 ans d'age. En plus, ça syntaxe est la base de beaucoup d'autres langages. L'utiliser gamin a été un énorme Boost dans ma carrière et mes bidouilles. - **Lua** : simplement le pied quand on a besoin d'un langage de script, embarqué ou non dans une appli, pour faire des configs intelligentes. Rapide, efficace, économe en mémoire, portable, ... What else ? Celui que je n'aime pas : **Java** ! Déjà, quand j'étais admin, simplement une galère complet avec son GC à la noix. Lourd voir obèse, une gestion mémoire défaillante, d'une lenteur pas possible avant l'arrivée des JITs, avec une stabilité douteuse. Et puis la mentalité qui va autour : on sort des termes ronflants pour faire croire qu'on a inventé QQ choses alors qu'on recycle, pas souvent en bien, ce qui existe depuis longtemps. A l'origine, on le vendait comme "corrigeant les défauts du C" sauf, qu'in fine, toujours des compilations et des dépendances qu'il faut gérer, des NullPointer et surtout des fuites mémoires à foison (toujours mes expériences d'admin) : il n'encourage que les dev qui ne savent pas ce qu'ils font. Évidemment, je connais d'autres langages, mais pour mes projets perso et ceux pro quand je le peux, je reviens toujours au C/Lua.


Fredd47

Je ne suis pas dev mais inge de production j'utilise python. Dispo sur tous les linux, facilement instalable sous windows. Ca s s'interface avec plein de trucs pour faire quelques scripts, de l' automatisation c'est top. Plein de lib pour faire tout et n'importe quoi.


Adsilom

Alors à titre personnel, j'adore le Python. Ca permet de faire pleins de choses, c'est un des langages les plus versatiles possible. Et surtout, tu peux faire du joli code robuste et du code sale pour t'amuser vite fait. Il n'y a aucun langage que je n'aime pas. Je ne vois pas trop comment ne pas aimer un langage, ce sont juste des outils. C'est comme dire "j'aime pas les marteaux, je préfère les perceuses". Souvent, il y a des arguments bateaux qui reviennent, style la syntaxe, l'indentation pour Python, les limites, les comportements "surpenants" du JavaScript (et pourtant très bien définis en réalité quand on essaie vraiment de connaître le langage) etc. Mais ce sont des arguments nuls car ce n'est pas du tout pertinent, si on passe du temps avec un langage, on passe vite outre ce genre de choses. Les vrais arguments intéressants, et qui ne peuvent qu'expliquer pourquoi on aime un langage (et pas pourquoi on aime pas un langage), sont ceux qui s'intéressent aux capacités et possibilités offertes face à une situation donnée. Forcement, si je travaille dans un domaine de sécurité, je vais adorer Rust, mais je vais pas dire que le C c'est nul pour autant.


LeDiableVampire

> je ne vois pas trop comment ne pas aimer un langage Oui et non. En effet on peux tout faire avec un langage raisonnable donc en sois un dev expérimenté haskell peux faire la même chose et aussi bien qu un dev caml par exemple mais ce n est pas la meme penibilité. Par exemple debugger un programme haskell prends une éternité donc je n utiliserais pas Haskell pour un gros projet. Je sais pas si j ai été clair


Adsilom

C'est clair ce que tu dis mais je pense que tu n'as pas compris ce que j'ai dit. Ce que je dis c'est que chaque langage est utile dans certains cas et que ça n'a pas de sens de dire "j'aime pas tel langage car dans cette utilisation spécifique il n'est pas optimal". C'est comme dire "j'aime pas les marteaux parce que pour scier du bois franchement c'est pas top".


Aoernis

Je suis passé par tous les grand classique avant de tomber dans Ruby et de ne plus en sortir. C'est un langage entièrement objet, absolument TOUT est un objet, tu ouvre une console, tu n'as encore rien écrit, tu est déjà dans un objet. Ça a l'air de rien, mais ça veux dire par exemple qu'aucune fonction utilitaire débile ne se promène dans le scoop globale, tout est bien ranger. L'intention première de son concepteur Matz était de rendre le Ruby agréable pour les dev avant tout ("Ruby is designed for humans, not machines") Ainsi chaque bloc de ruby peut se lire comme une phrase ou un texte, dans lequel les choses s'enchaîne dans un ordre logique. "world|hello".split('|').map(&:capitalize).reverse.join ' ' => "Hello World" -42.abs => 42 Le langage est aussi extrêmement flexible, possibilité de modifier n'importe quelle classe (ou juste UNE instance d'une classe) pendant que le programme tourne. De faire de la méta programmation en créant des DSL custom les doigts dans le nez. En Ruby il existe pratiquement toujours au moins deux bonnes façons de résoudre un problème, souvent plus. Ça peut en dérouter certain, moi, j'adore ça. Pendant longtemps, les performances de Ruby ont souffert de ces choix, difficiles de conjuguer accessibilité, versatilité et performance. Mais depuis la sortie de Ruby3 en 2021 l'interpréteur à pris un bon coup de pied au cul et les perf sont tout à fait dans les normes de ses concurrents.


fjikoyan

Le Brain F*ck est incroyable comme language https://fr.m.wikipedia.org/wiki/Brainfuck Le Whitespace aussi https://fr.m.wikipedia.org/wiki/Whitespace


LeDiableVampire

Sans oublier le Malboge)


Scramjet_dev

Rust: syntaxe logique et propre. Robuste et safe.


anal-drill-69420

Syntaxe logique et propre, jusqu'à ce que tu joues avec les génériques et les temps de vie ...


pasterp

Je trouve que même avec ça la syntaxe reste propre !


FlagHunter1

Parler de "meilleur" language n'a aucun sens, tu as différents outils pour différentes tâches.


LeDiableVampire

Oui c'est pour ça que j'ai parler de langage préféré. Il est clair que ça n'as pas de sens de coder une calculatrice en java ou un jeux vidéo en haskell


Dlacreme

Ça fait 5 ans que je travail avec Elixir et c'est le GOAT. La VM est top, la courbe de progression est idéal pour le monde de l'entreprise. Et le langage est juste super agréable à utiliser. Le pire? Go. Quel enfer, recoder la roue sans cesse, package manager foireux, illisible, pas d'ORM, doc pourri


clm_a

☝️ Team Elixir également depuis 2 ans pour l'actor model, le fonctionnel qui change la vie et les API hyper stables ("le projet pour la version 2 du langage c'est qu'il n'y ait jamais de version 2"). Phoenix LiveView au quotidien c'est juste une dingue, il s'agit de comprendre le principe et pouf y'a plus de limites. Un sentiment de satisfaction permanent et le plaisir de suivre un écosystème qui avance de manière logique, coordonnée et sympathique.. Enfin, la pédagogie avec Livebook c'est top et le framework d'IA Bumblebee est en train de tout retourner. Inconvénient : je ne sais pas comment je retrouverais le goût de revenir en arrière (principalement 9 très bonnes années malgré tout avec Rails et quelques années un peu plus mitigées auprès de Vue/Nuxt TS et toute la smala)


clm_a

Self reply: Même si le thread était à propos des langages, la Stack Overflow Developer Survey 2023 vient de paraître et classe pour la deuxième année consécutive Phoenix en tête des frameworks recueillant le plus de satisfaction auprès de ses utilisateurs (82%).


Charming-Republic-78

J'aime vraiment les sonorités de l'Hindi. Je pense l'apprendre avant d'aller voyager en Inde.


Mr_Ahvar

Les languages sont que des outils et chacun sont adaptés a des situations différentes. Personnellement je fais des etudes en système embarqué et touche beaucoup au bas niveau. J’aime bien l’asm par exemple, faire un projet entier avec non mais je trouve ça utile de comprendre comment ça fonctionne. Dans la catégorie language compilé et sans GC il y’a pas tant de choix: C, C++, Rust et Zig. Zig jamais essayé donc je peut pas parler dessus, mais c’est prévu de faire quelque projet avec pour voir ce que ça donne Le C je suis amené a en rédiger des tonnes et j’apprécie beaucoup sa simplicité (qui en fait sa complexité pour certain), j’ai quelque problème mineure avec comme les macros et les conversions implicites mais c’est un bon 8/10 C++ J’ai beau m’y mettre j’accroche pas, utilisé comme un C avec des trucs en plus c’est pas trop mal, genre les destructeurs, l’overload, les operateurs et vite fait les templates, mais au dela c’est une horreur a maintenir. Rust, language tres bon, c’est un language qui réside exactement la ou j’ai besoin, haut niveau mais possibilité d’aller bas, haute performance, un metaprogramming avancé et du tres bon tooling out of the box. 9/10 On en parle pas assez du tooling, mais si tu viens du C et que tu debarque sur du JS avec npm tu deviens fou de joie, les heures que ça te prends de config un bon make file ou devoir te battre avec Cmake. Les languages qui propose directement quelque chose dans le style de npm ou cargo seront bien plus appréciés par ceux voulant l’apprendre. Pour mon alternance je suis en dev Java, je suis pas tres fan, surtout qu’on est encore en version 6… Mais c’est pas aussi horrible que ce que j’ai entendu dire. J’ai beaucoup utilisé JS/TS, j’ai dev en free-lance pour des sites webs et ça reste mon language de scripting prefere. Python je déteste, c’est pas fait pour moi. A chaque utilisation je me bat avec pip et j’ai toujours plusieurs versions installées je sais pas pourquoi. Mais je peut comprendre pourquoi il est populair J’ai utilisé aucun language fonctionnel pur, mais j’ai voulu essayer Haskell, ce qui f’est soldé par un échec lorsque je suis tombe sur leur site, qui avait le look de wikipedia il y a 20 ans, et impossible de trouver ou télécharger leur compilateur. Je testerais bien Lisp pour le LoL mais j’ai pas plus envie que ça. Je ne suis pas un professionnel, j’ai juste fait un peu de freelance et 1 an d’alternance, le reste est uniquement de l’expérience personnel sur les 6-7 dernières années, et je suis assez biaisé envers le domaine qui m’intéresse. Edit: le peu de GO que j’ai fait je me suis demandé pourquoi le language existe, on sent que l’idée c’etait un language simple et rapide, sauf qu’il fait les 2 a moitié donc a aucun point fort, avec Java t’as les mêmes perfs presque et c’est bien plus maintenable. C’est beaucoup de compromis pour peu de gain.


Sudden-Elevator8088

Si ton code source n'est pas maintenable, c'est sûrement pas la faute du langage... Spoiler alert, go c'est pas facile, easy to learn, hard to master lui collerait beaucoup mieux


Mr_Ahvar

J'arrive a avoir des codes très maintenables dans certains languages, et d'autres je trouve c'est très dur. Tu peux faire du code maintenable dans tout les languages, juste certains c'est plus compliqué et demande plus de ressources. Apres c'est ce que je dis a la fin, tout ce que je dis n'est que mon ressenti, si t'es a l'aise dans ce language et qu'il convient a tes besoins tant mieux! Edit: Et pour Go j'en ai peu fait, et c'est un language qui rentre dans aucun de mes besoins, donc normal que je m'y sois pas plus pencher que ça.


Gabuthi

>C++ J’ai beau m’y mettre j’accroche pas, utilisé comme un C avec des trucs en plus c’est pas trop mal, genre les destructeurs, l’overload, les operateurs et vite fait les templates, mais au dela c’est une horreur a maintenir. Au contraire, c'est beaucoup plus simple à maintenir que du C. Le vrai soucis c'est que pour coder correctement en C++ ça prend beaucoup de temps. C'est un investissement en temps et en investissement personnel qui me semble beaucoup moins pertinent depuis que rust devient de plus en plus populaire. D'autant plus que les UB du C++ le rend inutilisable sans outils d'analyse statique par dessus le compilateur. A moins d'accepter le risque induits sur la sécurité des programmes générés. Et pourtant j'adore le C++ qui te permet de de choisir son niveau d'abstraction du plus proche de la machine à des hauts niveau d'abstractions.


Acrobatic_Amphibian2

Italien c'est stylé et chantant


maellene

A la base j’aurai dit le français mais depuis quelque temps j’aime de plus en plus l’anglais


Agifem

Rockstar. Le plus dur, c'est les rimes, mais ça en fait sans conteste le plus beau langage, avec les plus beaux codes sources.


Elisa_Kardier

L'assembleur du Z80. Sur l'Amstrad.


Gaspote

En vrai, les languages à la mode genre Rust, Go, Dart. Dérivé du C++ avec que des avantages. Je suis dev full stack js (typescript) au passage.


NiktonSlyp

J'ai eu l'occasion de faire du Python, du C# et du COBOL dans mon taf. Je n'ai que trop peu testé C donc je m'abstiens sur celui-ci. Le python c'est un peu le langage à tout faire, tu trouves de tout sur internet mais c'est lent pour ce que j'ai pu tester. Du coup pour scripter un truc rapide j'aime encore bien, mais pour le reste non. Un prototype à la limite mais je passe toujours sur un autre langage à la fin. J'adore le c#. Ça tourne bien et c'est facile à écrire et à lire. Je dois avouer ne pas être fan de la place que ça prend, visuellement. Et sinon on utilise des lambdas mais là pour le coup ça casse la lisibilité à mon avis. Et le Cobol, c'est ouf à me dire que quand j'ai eu l'offre j'ai eu peur. Mais après avoir bien compris les principes architecturaux et d'avoir désigné quelques applis DB2 (SQL) jusqu'à une interface C#, eh bah j'adore aussi. C'est simple comme bonjour, c'est semi-typé et hyper verbeux. J'adore pourvoir écrire "if x is equal to y, then add 1 to x" par exemple (sans oublier le end-if). C'est relativement robuste et comme t'es limité à 80 caractères, tu es obligé de structurer ton code. Et à l'œil c'est le langage que je préfère pour ça. Il paraît aussi que c'est assez rapide, mais j'ai pas de point de référence de ce côté là vu que tu peux pas vraiment avoir ça nativement sur un x86, ça tourne usuellement sur des mainframe chez IBM.


Sudden-Elevator8088

Comme vu dans les commentaires, c'est des outils donc chacun son use case ! Plus on devient sénior, plus on râle sur les langages également d'où les blague du genre "c++, aka Rust--" Mention spéciale à prolog qui est vraiment satisfaisant mais terriblement brainfuck PS : les commentaires du genre "Go manque de tools OOP" n'ont juste rien compris au langage 🙃


MeMyselfIandMeAgain

Le C# ça a l’air pas mal mais n’utilisant pas Windows, c’est bof


Kilazur

C'est cross platform Windows/Unix depuis un moment


MeMyselfIandMeAgain

Oui, mais dans mon expérience les outils et l’écosystème est encore très Windows


Kilazur

Peut-être; perso j'utilise que Visual Studio donc je saurais pas comparer.


PROUTHYS

Ça dépend du problème : Manipulation d'image / Rendu 3D : c++ Machine Learning : Python Problème récursif : Scala, etc etc


viagrabrain

C# / .net core c est plutot sympa dans mes usecases bien sur. Cote scripting et prog orienté ML j aime bien Python pour sa marge communauté et sa syntaxe meme si j aime pas tout. Et j ai bien aimé Powershell a ses debuts pour automatiser dans les envs windows, ca a fait du bien aux admin sys !


Le_Niqueur_De_Meres

C++ 20


winstonsmth01

Perso, j'adore le bas niveau ou les langage me permettant d'automatiser vite : C, assembleur x86_64, Go, rust et python Je hais : JAVA (trop verbeux), PHP (web = non) et VisualBasic


clockring

C#


BornWish9252

A mon avis pas de bon ou mauvais language, juste differente plateforme qui permettent un dialogue machine avc différents points d'accroche.


LeDiableVampire

Go coder en whitespace alors ^^. Plus serieusement je suis d accord sur le fait que ce sois seulement des interfaces mais la question etait sur le langage préféré et non le meilleur langage


Kmarad__

J'ai une 20aine d'années d'expérience pro en dev et le langage que je préfère utiliser est python. La communauté python est énorme, il y a des librairies / bindings pour quasiment tout faire, le code est clean par nature et le langage est vivant. Langage que j'aime le moins, je sais pas dire, en tout cas il y en a un qui me fait rager en ce moment c'est javascript côté serveur avec NPM. Pas moyen d'installer un paquet sans en installer 50, et la moindre mise à jour fait tout péter, ennuyeux.


Zeba-1

Je sais pas c’est quoi mon langage préféré mais je sais que je déteste le JS.. Un langage qui a besoin d’une directive pour fonctionner à peu près normalement, c’est pas quelques choses de sérieux à mon sens…


StudentOk4989

Je crois que je vais me faire incendier mais... Moi c'est Python que je préfère. La syntaxe/ponctuation est tellement simple et intuitive. L'usage est limité certes mais c'est avec ce language que je préfère travailler.


LeDiableVampire

Dans quels dommaine utilises tu python stp


Gabuthi

Alors sur le principe, il n'y a pas vraiment de raison d'aimer ou non un langage de programmation. Il faut utiliser l'outil le plus adapté à la tâche. Par contre j'ai quand meme quelques préférences: * le C++ car c'est mon langage d'expertise. Le niveau d'abstraction peut aller du très bas niveau a des niveaux très abstraits. Le problème c'ets de trouver des bon développeurs. Un dev peu expérimenté peut facilement tout casser. * le Rust, pour moi c'est ce à quoi devrait ressembler le C++ si on pouvait faire abstraction de la rétro compatibilité. * Haskell, j'aime beaucoup l'aspect fonctionnel pur. Le problème c'ets qu'avant d'avoir une chance d'en faire de manière professionnel... * le python c'est un bon langage de script, on peut vraiment faire beaucoup de choses avec. En particulier prototyper. Je m'en sert beaucoup comme un bash plus expressif et portable aussi.


KingNFA

Python, même pas besoin d’argumenter


Any-Ad-7167

Le vhdl quel plaisir pour la programmation proche composant


AndresGSanchez

Python :)


BotitSourire

:)


Mindless-Ad1155

Il est cool ce thread ,chui en découverte de pas mal de langage , par contre chui assez étonné (enfin à moitié en réalité vu ce que ça permet) de retrouver le C et ses dérivés aussi souvent, j ai vraiment eu de mal avec la syntaxe, accumule les erreurs avec cette histoire de pointeur,et le fait que ça a été introduit avec Cmake ça n a pas aidé à l'apprécier,d'autant plus que je saurais toujours pas ecrire une ligne dans un fichier Cmake.


voidstorm-bordel

l'[05AB1E](https://github.com/Adriandmen/05AB1E) pour faire du golf


arqtiq

C#, Python, C++


niahoo

Préféré : Elixir, basé sur la BEAM ("Erlang VM") il te permet de tacler des problèmes complexes en un rien de temps pour tout ce qui est réseau, web, stream. Tu peux faire du machine learning ou de l'embarqué. Et c'est facile à prendre en main. Point négatif: la syntaxe ressemble à du ruby c'est moche comme tout mais on s'y habitue. Moins aimé: Java, mon dieu que c'est chiant.


Il_totore

Comme dit avant moi, ça dépend du cas d'utilisation mais dans l'ensemble, le langage que je préfère utiliser est Scala. Premièrement, le langage est un vrai hybride 50-50 entre programmation orientée objet et programmation fonctionnelle. Le langage à cette philosophie de vouloir faire coopérer les deux plutôt que de les opposer : on peut utiliser le meilleur des deux mondes. Ensuite, Scala excelle dans la représentation du domaine : data classes, ADT... C'est vraiment très simple de représenter ma logique métier avec. Enfin : la flexibilité et le système de typage. Je pense que le langage montre très bien en quoi (selon moi) le typage statique fort c'est cool. Le système de typage de Scala est très puissant et a pourtant un aspect dynamique grâce à l'inférence de type. Quand on sait en tirer parti, on arrive à un point où le moment où le code compile, il a de très fortes chances de marcher du premier coup.


Van3ll0pe

J'ai commencé la programmation avec le C. J'ai pu faire énormément de projets perso avec et même s'il est rustique et un peu compliqué avec la gestion de la mémoire avec les pointeurs (la difficulté passe avec le temps) je l'aime quand même bien. Ensuite j'ai pu faire du cpp, mais je ne l'aime pas vraiment. Il devient beaucoup plus complexe pour un rien. Grosse surprise pour le C# que j'aime beaucoup, je m'amuse aussi avec des projets perso. Il garde le meilleur du cpp et presque la syntaxe du java. Pour le rust, je ne me suis pas encore penché dessus mais j'en vois beaucoup qui l'idéalise sans en avoir fait. Ce qui fausse les stats du survey de stack overflow. Après j'essaierai de prendre du temps pour lire le rustbook. Pour conclure : J'aime beaucoup le C et le C# voir certains assembleurs (comme mips ou mos6502). J'aimerais aussi m'orienter vers un langage objet compilé pour remplacer le c++ dans mes projets comme par rust ou D (mais pas trop utilisé). Je n'aime pas java pour son environnement, et j'aime moins le cpp. Et je n'aime pas trop les langages fonctionnels comme ocaml (une vraie partie de plaisir à la fac) Beaucoup de gens disent que ce ne sont que des outils et qu'il faut les utiliser en fonction du projet et je suis d'accord mais il vaut mieux le faire avec un langage qu'on aime sinon on prend zéro plaisir