Bonjour,
Pour changer, j'aimerais apprendre, découvrir un nouveau langage.
Pour le moment, je fais surtout du C#, C++ et javascript (bien plus intéressant qu'il n'y parait), et j'ai aussi touché à php, assembleur, perl (ça c'est un langage qu'il est bien).
Quels sont selon-vous les langages amusant, intéressant (même si on ne fait pas forcément grand chose avec, ou que les perfs ne sont pas au niveau du C, c'est pas trop le problème ;-) ) ?
ps: vous avez le droit de partir dans des trolls, ce qui m'intéresse c'est justement des caractéristiques subjectives concernant les langages ;-)
# Facile
Posté par Yusei (Mastodon) . Évalué à 8.
Et c'est des langages de fainéants, or tout adepte de Perl sait que les trois grandes vertus du programmeur sont la paresse, l'orgueil et l'impatience.
[^] # Re: Facile
Posté par Krunch (site web personnel) . Évalué à 3.
Sinon dans la liste des langage intéressants qu'il faudrait que j'apprenne un jour il y a Erlang, Objective-C et Smalltalk.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: Facile
Posté par Marc Poiroud (site web personnel) . Évalué à 2.
Existe t'il une autre source ?
[^] # Re: Facile
Posté par koxinga . Évalué à 1.
Ca me rappelle que j'apprendrai bien un peu de Ruby un jour ... Encore une chose à faire, pfff ...
[^] # Re: Facile
Posté par Yusei (Mastodon) . Évalué à 2.
[^] # Re: Facile
Posté par CrEv (site web personnel) . Évalué à 1.
Pour lisp, j'ai testé une fois en écrivant un mod pour emacs (mod-masd pour les très rares connaisseurs) mais les parenthèses...
Je ne connaissais pas ces 3 valeurs mais je suis totalement d'accord avec !
[^] # Re: Facile
Posté par JaguarWan . Évalué à 10.
Patience, car il vaut parfois mieux prendre son temps et retravailler son code pour un fix élégant, plutôt que claquer un hack ignoble et continuer son chemin. Ceux qui cèdent à la facilité finissent enterrés vivant sous le cruft ou étouffés avec des spaghetti trop cuits.
Rigueur, pour tenir éviter de faire des fuites de mémoires ou des buffer overflows à tout va, et vérifier les saisies utilisateurs tant que faire se peux. L'étourdi est condamné à endurer les tourments éternels des failles de sécurité.
Humilité, afin de ne pas blamer le code des autres (gcc, la libc, que sais-je ?...) avant son propre code. Combien de fois un brave codeur a-t-il rencontré une segfault dans un malloc() et injustement accusé la libc, alors qu'il faisait un double free() ou un overflow bien gras la procédure d'avant ? Le chemin de l'orgueil rend sourd aux recommandations de ses pairs et mène, sinon à l'ignorance, à l'incompétence.
# Hum
Posté par cougar (site web personnel) . Évalué à 10.
Commence par le français... Il paraît qu'on peut faire pas mal de trucs avec. :)
PS: Pour le troll, je crois que c'est fait !
[^] # Re: Hum
Posté par CrEv (site web personnel) . Évalué à 5.
La prochaine fois j'ouvrirai les yeux avant de me relire...
# Erlang, sans hésitation
Posté par Mickaël Rémond (site web personnel) . Évalué à 5.
C'est amusant et puissant :-)
Mickaël
# Classique
Posté par Dr BG . Évalué à 10.
En vrac, la possibilité de faire de l'itératif, du fonctionnel (surtout), de l'objet. Et des trucs modernes et pratiques comme le GC, l'afférence de type, le polymorphisme, blablabla, etc.
Sinon, dans un autre genre, eiffel est sympa.
[^] # Re: Classique
Posté par Dr BG . Évalué à 6.
Je te préviens, tu en chies pour faire un code qui compile (au début), mais une fois que ça compile, c'est tellement strict que ça roule pas mal ensuite :) Et puis le fonctionnel, c'est dépaysant.
[^] # Re: Classique
Posté par Yusei (Mastodon) . Évalué à 2.
[^] # Re: Classique
Posté par Matthieu Moy (site web personnel) . Évalué à 4.
OCaml fait du polymorphisme au sens où tu peux avoir par exemple une fonction sort de type 'a list -> 'a list, et le 'a est défini au moment de l'appel. C'est grosso-modo l'équivalent des templates de C++.
Il y a aussi des fonctions virtuelles dans les objets, ce qui est en général connu sous le nom de polymorphisme, ou liaison dynamique en C++.
Mais c'est vrai qu'il y a des limitations dans l'orienté objet en OCaml. Par exemple, dynamic_cast<...>(...) n'existe pas, enfin pas sous cette forme.
[^] # Re: Classique
Posté par gasche . Évalué à 1.
Les filtrages de motifs sont aussi très drôles à utiliser, combinés avec les types personnels, etc..
L'extension objet semble assez amusante (mais je ne la connaît que très peu) parce que ça reste du typage statique, ce qui est plutôt dépaysant pour de l'objet.
Et en plus, quand t'es un total guru, tu peux même t'intéresser à camlp4, un espèce de préprocesseur tout marrant qui permet de redéfinir des pans entiers de la syntaxe du langage.
[^] # Re: Classique
Posté par Fanf (site web personnel) . Évalué à 1.
# re
Posté par Sylvain (site web personnel) . Évalué à 10.
[^] # Re: re
Posté par Amand Tihon (site web personnel) . Évalué à 8.
Je crois que c'est fait :)
[^] # Re: re
Posté par lolop (site web personnel) . Évalué à 3.
Donc ça colle.
Plus sérieusement, pour faire des développements amusants, en pensant à ce que l'on veut faire et non à comment il faut le faire rentrer dans les contraintes du langage, Python est vraiment sympa. Sans compter sur ses multiples bibliothèques qui évitent d'avoir à se farcir du code pour des tâches considérées maintenant comme "basiques". Voir aussi du côté de Ruby... paraitrait qu'il s'est inspiré en partie de Python (mais aussi en partie de Perl... et ça j'aime pas trop niveau lisibilité - de temps en temps une écriture moins concise mais immédiatement compréhensible est IMHO plus sympa).
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: re
Posté par Amand Tihon (site web personnel) . Évalué à 5.
Quant à Ruby... j'aurais peut-être appris ce langage si je l'avais découvert avant python. Maintenant que je suis satisfait, je n'ai plus vraiment ce courage.
Et question lisibilité, python est loin d'être toujours évident pour les néophites (je pense en particulier aux générateurs et expressions génératrices, métaclasses, décorateurs, etc). D'ailleurs, mon cerveau refuse toujours d'appréhender le principe de fonctionnement de Twisted, mais je crois que j'ai un problème de compréhension avec l'AOP.
[^] # Re: re
Posté par CrEv (site web personnel) . Évalué à 1.
Exactement, c'est tout à fait dans le style de réponse que j'attendais ;-)
En fait j'aime vraiment le style perl. Le problème, à mon avis, c'est qu'il est plus expresif que pas mal de langages et qu'il faut connaitre certains "mots clé" pour pouvoir lire du perl. Mais une fois un petit apprentissage effectué la lecture est pas mal.
Surtout qu'on peut écrire pas mal de code crade et illisible même dans des langages moins expressifs (dans mon boulot je me tappe du code en C++ à comprendre - pas de doc évidemment - et à intégrer, le problème c'est qu'il y a des fonctions de plus de 4000 lignes, avec des indentations, et donc bloc, de plus de 12 niveau, le tout dans des fichiers allant de 15000 à 45000 lignes. C'est beau tout ça...)
[^] # Re: re
Posté par Jean-Philippe Garcia Ballester (site web personnel) . Évalué à 4.
Tu peux me donner le nom de ta boîte, que je sois sûr de ne jamais y travailler ?
[^] # Re: re
Posté par imalip . Évalué à 2.
# Dans le genre amusant il y a ceux là
Posté par Nicolas Schoonbroodt . Évalué à 5.
Personnellement le Shakespeare Programming Language me semble intéressant. Ou amusant plutot.
[^] # Re: Dans le genre amusant il y a ceux là
Posté par Amine "nh2" Brikci-Nigassa (site web personnel) . Évalué à 0.
GNU's Not Unix / LINUX Is Not Unix Xernel
# Un bon langage orienté-objet
Posté par Snark_Boojum . Évalué à 2.
PS: Ocaml, déjà mentionné dans d'autres commentaires, est aussi très bien.
[^] # Re: Un bon langage orienté-objet
Posté par Mildred (site web personnel) . Évalué à 3.
# Histoire de changer de l'impératif
Posté par Pierre Palatin (site web personnel) . Évalué à 10.
* Forth : ça c'est un langage qu'il est fun. Des règles de bases extremement simples qui permettent de construire des choses évoluées. Pas mal utilisé dans l'embarqué, puisque ça permet d'avoir un interpreteur built-in sur quasi n'importe quoi (genre un micro-controlleur) tout en permettant des manips subtiles (à vue de pif, le "bios" des motherboard à base de Niagara doivent en avoir par exemple). Les bases se voient rapidement avec un tutorial.
* Lisp : globalement, à chaque fois qu'un langage permet un nouveau moyen d'exprimer une concept ou une construction, tu auras toujours un lispeux qui te dira "ouais, on le fait déjà en lisp". Amha d'ailleurs c'est pas complètement faux, à partir du moment où tu ignores les supports syntaxique; perso "Syntax does matter", donc ... Ce qui fait à mes yeux la force de ce langage, c'est le fait de pouvoir facilement manipuler du code (représenté sous forme de liste) à partir d'un morceau de code (toi aussi résoud direct les problèmes d'introspection :) .
* Haskell : parce qu'il est bon de connaitre les langages fonctionnels. Haskell est connu pour être un peu plus "pur" (aheum) que OCaml niveau approche fonctionnelle et beaucoup d'articles de recherche sur les langages utilisent la notation Haskell pour présenter une sémantique. OCaml est aussi bon à connaitre, car il propose qqchose d'extremement réaliste pour un langage fonctionnel (d'aucun dirait "ouais, parce qu'il propose aussi de l'impératif" :) )
* Erlang : Non pas pour son aspect fonctionnel mais pour tout ses aspects redondance, failover, remplacement à chaud, qui donnent un très bonne idée de ce qui est possible de faire (et c'est impressionant) avec un bon support du langage. Pour te faire une idée, tu peux changer du code qui est en train de tourner sans interruption et si jamais la modif est invalide, Erlang repassera sur l'ancienne version sans interruption.
* Prolog : un peu comme pour Forth, l'approche de Prolog est vraiment différente des langages impératif et fonctionnel. C'est pas le langage le plus à la mode, mais il nécessite une manière de penser ses algos assez intéressante je trouve. Et comme toujours ça permet de voir qu'il n'y a pas qu'une seule approche pour exprimer un problème.
Sinon, pour rester dans les impératifs :
* Python, parce que je l'aime bien, qu'il est super clean & régulier
* Ada 95, qui malgré une image un peu vieillotte a un pouvoir d'expression assez peu commun et te fais comprendre des concepts qui restent implicites dans d'autres langages.
Et la lecture de http://lambda-the-ultimate.org/ t'intéressera si tu as envie de suivre un peu ce qui se fait au niveau des langages informatiques.
[^] # Re: Histoire de changer de l'impératif
Posté par CrEv (site web personnel) . Évalué à 1.
En voilà un bon argument ;-)
Pour forth et lisp, je programmais un peu en rpl (reverse polish lisp) un mélange de lisp et de forth (sous hp49)
Lisp est assez intéressant pour ce que j'ai pu en voir (au travers d'emacs).
Erlang à l'air sympa mais ne me tente pas vraiment.
Prolog, j'en ai fais un peu il y a "longtemps" (7-8 ans). Sympa mais pour jouer avec, je ne sais pas trop...
Haskell, pourquoi pas. J'en ai entendu un peu parler au travers de darcs et pugs (une implémentation de perl 6) mais je n'ai jamais essayé.
Par contre, je ne peux pas vraiment dire pourquoi, mais python ne me tente pas vraiment. J'ai été au début séduit par le principe de la construction basée sur l'indentation mais il y a un je ne sais quoi qui ne me plait pas plus que ça...
[^] # Re: Histoire de changer de l'impératif
Posté par Xavier Maillard . Évalué à 5.
Attention le Lisp que tu as vu dans GNU Emacs (donc le emacs lisp) est bien différent du ANSI Common Lisp. Enfin bien différent n'est pas exact, disons qu'il ne supporte pas beaucoup des merveilles du cousin ANSI.
De plus Emacs Lisp est un dérivé de MacLisp qui est apparu bien avant la version ANSI.
Difficile de se faire une opinion sur le common lisp à partir de la simple lecture de emacs lisp.
Tiens un peu de lecture sur le pourquoi du comment :
http://groups.google.fr/group/gnu.emacs.help/browse_thread/t(...)
[^] # Re: Histoire de changer de l'impératif
Posté par CrEv (site web personnel) . Évalué à 1.
Je vais garder ce lien de côté et le lire dès que j'en aurai le temps.
[^] # Re: Histoire de changer de l'impératif
Posté par Christophe Chailloleau-Leclerc . Évalué à 4.
J'ai fait il y'a un moment maintenant (1 an et demi je crois) des tests de plusieurs langages, et j'ai eu comme toi cette impression avec python que "quelque chose ne me plaisait pas". Un petit arrière goût dans la bouche. J'avoue que je ne sais plus précisement quoi, mais j'ai testé ruby après, et je me suis immédiatement dit que ca y'était, j'avais trouvé le bon langage, avec les plus du python, et ce je-ne-sais-plus-quoi qui le rendait plus agréable à mes yeux. Une petite sensation de "j'ai enfin trouvé le langage que je cherchais depuis si longtemps"...
Pour info, ça ne devait pas être quelque chose à aller chercher très loin, au fond du langage, puisque mes tests se basaient sur un petit script de manipulation de fichiers textes pour faire une interface entre deux applis (je suis parti d'une demande d'un client (qq minutes de dev en perl) pour essayer de voir ce que ça donnerait dans d'autres langages, en fait, et voir celui que j'aurais le plus de plaisir à faire).
Bon, depuis... je n'ai plus eu l'occasion de toucher ni l'un ni l'autre, mais... dès que je trouve comment installer ruby/qt4 sous win (ben oui, mon portable pro est encore sous win pour l'instant :( ), je replonge !
[^] # Re: Histoire de changer de l'impératif
Posté par blackshack . Évalué à 3.
Va sur le forum Korundum sur rubyforge.org, il y un a post récent qui décrit comme faire. C'est pas automatique encore, mais cela se fait, je l'ai suivi, et cela fonctionne. Tous les example ne passent pas parfaitement encore (ce qui concerne opengl entre autre) mais tu peux commencer à faire des applis utilisable quand même je pense.
[^] # Re: Histoire de changer de l'impératif
Posté par CrEv (site web personnel) . Évalué à 1.
Je crois que je vais faire dans le même style et tester Ruby alors.
Je ne savais pas qu'il y avait un binding ruby pour qt4, ça m'intéresse pas mal ça.
Je vais suivre les liens dans le message en dessous et voir ça.
# Commentaire supprimé
Posté par Anonyme . Évalué à 6.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Pour perdre du temps
Posté par Amand Tihon (site web personnel) . Évalué à 3.
[^] # Re: Pour perdre du temps
Posté par xumelc . Évalué à 1.
http://fr.wikipedia.org/wiki/Ook!
[^] # Re: Pour perdre du temps
Posté par CrEv (site web personnel) . Évalué à 1.
C'est pas que j'ai pas envie, mais je crois que j'ai encore pas mal de chose à tester avant de tomber sur ces langages ;-)
Mais c'est bien marrant !
[^] # Re: Pour perdre du temps
Posté par Mildred (site web personnel) . Évalué à 2.
http://www.parrotcode.org/languages/
Par exemple : http://homepages.cwi.nl/~tromp/cl/lazy-k.html
# Monty Python's programming langage
Posté par nojhan (site web personnel, Mastodon) . Évalué à 10.
Oui, pensons par nous même !
# Oz
Posté par ɹǝıʌıʃO . Évalué à 2.
[^] # Re: Oz
Posté par benja . Évalué à 2.
Il y a aussi moyen de retrouver le draft qui se balade sur le grand ternet.
[1] http://www.info.ucl.ac.be/~pvr/book.html
# Retour aux sources
Posté par ナイコ (site web personnel) . Évalué à 3.
[^] # Re: Retour aux sources
Posté par B16F4RV4RD1N . Évalué à 3.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: Retour aux sources
Posté par kowalsky . Évalué à 4.
On peut rire de tout, mais il y a des limites...! :)
[^] # Re: Retour aux sources
Posté par Ontologia (site web personnel) . Évalué à 3.
Maintenant, les gosses apprenent à se servir d'un ordinateur avec un ConviMouseKikoololKoin.
Snif.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# sans conteste, GOTO++
Posté par syntaxerror . Évalué à 6.
# Ada ???
Posté par jeje99 . Évalué à 2.
Tout les experts en programmation Temps réel le dirons :-p
[^] # Re: Ada ???
Posté par Maxime (site web personnel) . Évalué à 3.
D'après ce que j'ai compris, son principal interret c'est la fiabilité.
Ma question est : pourquoi des langages comme le C/C++ sont majoritaires ? Est-ce de part leur relative simplicité d'usage ? (ya mieux, ya pire)
[^] # Re: Ada ???
Posté par jeje99 . Évalué à 1.
[^] # Re: Ada ???
Posté par Mildred (site web personnel) . Évalué à 2.
Mais a part ça, c'est un très bon langage je trouve. Et très puissant même si il manque un peu une orientation objet. En fait, il doit me manquer certains points du langage que je n'ai pas appris.
# Put potatoes into the mixing bowl...
Posté par André Rodier . Évalué à 3.
Amuse toi bien...
# Inform / Tads / Hugo...
Posté par B16F4RV4RD1N . Évalué à 3.
C'est pas toujours compliqué, parfois dépaysant, mais c'est sûr que si tu maîtrises déjà un langage de programmation classique, tu risques de trouver cela un peu ennuyeux (dans le sens où tu n'apprendras pas forcément bcp plus). Quoique... Au moins on voit ce que l'on fait rapidement. Et avec certaines langages (notamment glulx qui est une vraie machine virtuelle), il est possible de coder presque n'importe quoi. Quelqu'un a déjà programmé un jeu d'échec et un lecteur d'e-books même si ce n'est pas le but originel du système :)
http://www.ifwiki.org/index.php/Simon_Baldwin
Pour comparer les différents langages de ce style, ceci est la même aventure codée dans chaque système :
http://www.firthworks.com/roger/cloak/index.html
avec bouts de code, transcriptions, exemples complets etc
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
# L'esperanto
Posté par seginus . Évalué à 8.
Si tu veux t'y mettre, je te conseil ce lien :
http://ikurso.esperanto-jeunes.org/
Au choix entre le cours en 10 leçons et kurso de esperanto, je te conseil plutôt le cours en 10 leçon qui est je trouve mieux rédigé.
Après, le programme ikurso est très utile à côté, pour faire des exercices et mémoriser tout ça un peu plus vite.
# PureBasic
Posté par Julien L. . Évalué à 1.
J'ai découvert il y a quelque temps maintenant le PureBasic.
Je l'utilise pour mes petits projets ce qui me permet de gagner pas mal de temps et un nombre de ligne de code considérable (je suis un développeur occasionel) . Un des autres grand avantage c'est la taille des éxécutables ce qui est interessant lorsque l'application doit transiter par un grand nombre de machines en même temps ou sur de petites lignes.
Voici le descriptif que l'on retrouve sur le site de PureBasic :
Le site : http://www.purebasic.com/
# D
Posté par Stibb . Évalué à 1.
Qu'en pensez-vous?
Next step, c'est trouver le moyen de faire un GUI avec Wx (wxd)[3].
[1] http://www.digitalmars.com/d/dcompiler.html
[2] http://en.wikipedia.org/wiki/D_language
[3] http://wxd.sourceforge.net/
[^] # Re: D
Posté par Bapt (site web personnel) . Évalué à 3.
Le langage ressemble beaucoup (selon moi) à du java mélangé avec du C++ ce qui le rend agréable, je trouve, le résultat obtenu après compilation est un bon binaire.
Plein de projets lib sur le portail de projets libre http://www.dsource.org
La majeure partie de ces projet concerne Windows, il est dommage que les linuxiens et autres BSDistes ne s'y intéresse pas plus, wxD marche sous Windows, mais ne compile pas sous FreeBSD par exemple, DUIT les binding gnome/gtk pour D ne sont pas encore fonctionnels non plus, le nombre de bibliothèques libre en D est très pauvre. Heureusement que l'on peut utiliser les bibliothèques C :)
# LOGO
Posté par mammique . Évalué à 3.
En ligne: http://www.fragmentarisch.net/svg/drawingboard.php (SVG)
[^] # Re: LOGO
Posté par CrEv (site web personnel) . Évalué à 1.
J'en garde toujours un bon souvenir ;-)
# Squeak ?
Posté par Miguel Moquillon (site web personnel) . Évalué à 1.
Squeak est un environnement Smalltalk open-source dont l'approche ludique est des plus intéressantes. De plus, Smalltalk permet d'avoir une approche vraiment objet dans la conception de programme, approche qui peut par la suite être réutilisée lorsque l'on programme avec d'autres langages.
Un petit lien qui va bien : http://www.squeak.org
# Merci
Posté par Mildred (site web personnel) . Évalué à 2.
Et pour te conseiller des langages, je dirais Lisaac [1] dont j'ai parlé plus haut. C'est un langage à objets très intéressant même si le compilateur n'est pas open source et encore buggé. Il se compile en C est très efficient apparament.
Sinon, un petit langage de script avec lequel j'ai beaucoup appris, notament cela m'as permis de me mettre au langage C car il existe très peu de bindings vers des bibliothèques (batteries NOT included).
mais il est léger, rapide il paraît, facilement adaptable a ce qu'on veut.
Ce que j'aime bien :
- les fonctions anonymes (qu'on peut passer directement en paramètres a d'autres fonctions)
- le lexical scoping, les upvalues, c'est à dire qu'une fonction qui utilise une variable externe a elle même ira chercher dans le contexte de définition la dite variable plutôt que dans le contexte de l'appel
- les métatables qui permettent de redéfinir plein d'opérations
- ...
Sinon, ce qui m'intéresse beaucoup c'est les langages fonctionnels (dont la pureté permet de se passer de mutex et autres diableries). Le lisp m'intéresse mais comme il paraît que le sommaire est plus long que la référence complète du langage scheme (un lisp allégé) cela ne me donne pas trop envie de l'apprendre.
Et un autre problème, c'est qu'il y a trop de parenthèses, c'est pour ça que je suis en train de développer un lisp-like mais dont les fonctions et macros standard ne pousseraient pas a une orgie de parenthèses.
[^] # Re: Merci
Posté par CrEv (site web personnel) . Évalué à 1.
Lisaac j'avais regardé une fois la doc (ou wiki, je sais plus) mais la syntaxe ne m'avais pas botté (et je trouve que c'est un élément très important d'un langage)
Par contre, le principe des fonctions anonymes sont vraiment pratiques, je les utilisent courrament en javascript et j'adore ça ;-)
Pour lisp, passe par une pile ;-)
et hop les parenthèses disparaitront comme par enchantement :-D
[^] # Re: Merci
Posté par Stibb . Évalué à 1.
[^] # Re: Merci
Posté par Mildred (site web personnel) . Évalué à 2.
# Lambda prolog
Posté par jm trivial (site web personnel) . Évalué à 2.
http://www.lambda-systems.com/prolog/lprolog.htm
et le compilateur qui va bien développé par l'INRIA:
http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/p(...)
J'ai suivi un cours de lambda prolog en master 2, et je m'étais bien éclaté..
[^] # Re: Lambda prolog
Posté par Ontologia (site web personnel) . Évalué à 2.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# XSLT
Posté par Mes Zigues . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.