1

yop,


Je sais pas trop où poster, ici ou dans Software, vu qu'il n'y a pas de rubrique 'D'. hehe
http://en.wikipedia.org/wiki/D_%28programming_language%29
Que pensez-vous de ce langage ? En général, les nouveautés (c'est relativement récent D, faut avouer, surtout en version 2, ça date de mi-2010) sont regardées au crible de nos habitudes et préférences.

J'ai lu en plusieurs endroits que D était "le langage de l'avenir", "le langage du futur" etc... (comme pour Java en son temps soit dit en passant).
C'est vrai ? Ca vaut le coup de s'y pencher ? Est-il vraiment très bon ce langage, débarasse-t-il réellement de la complication du C, de la syntaxe abhorrifreuse du C++, des limitations des autres grands langages objets (compilés ou non, .net, java, python, obj-c etc...).

Est-il aussi bien organisé, est-il un bon compromis entre notre raisonnement humain et la machine ?

En clair, ça vaut le coup de l'apprendre ? Vala, dites ce que vous en pensez, je suis preneur d'avis. smile

2

Déjà c'est limité plus ou moins à l'implémentation de Digital Mars. Ensuite pour ce que j'en ai lu quand je suis tombé sur des topics D, ça semble effectivement un bon langage. Néanmoins il ne faut pas se leurer, chaque langage ses spécificités, croire que le D est la panacée est une utopie. Le mieux est encore de l'essayer, et si ça te convient, t'adoptes. Et le jours où ça devient mainstream, tu seras un early-adopter recherché tongue Comme moi avec Erlang...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

3

Sur le papier en tout cas il me paraît très bien (mixins, high-order functions, garbage collection, typage statique fort, pattern matching).
Mais la syntaxe n’est pas très jolie. Et j’ai du mal à trouver des benchmarks pour voir si les compilos actuels sont performants.
Au final, je trouve que, juste en comparant les features sur le papier, Scala est plus intéressant. Après le langage seul ne constitue pas tout : il y a tout un environnement de bibliothèques autour, et là, le choix peut être très différent selon tes besoins. Par exemple, pour dessiner les interfaces graphiques, le meilleur outil que je connaisse est Qt, et il n’est pas vraiment disponible sur une JVM.

Tu peux aussi jeter un coup d’œil à ce que disent les gens sur StackOverflow.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

4

Folco (./1) :
J'ai lu en plusieurs endroits que D était "le langage de l'avenir", "le langage du futur" etc..
Bah, ils disent tous ça hehe
Des langages il en existe des tonnes, y compris certains qui ont de vrais avantages sur les poids lourds du domaine, mais la très grande majorité ne perce jamais.

Si tu étais développeur pro, je dirais que c'est une perte de temps de te former là-dessus, je doute qu'il devienne suffisamment populaire pour que ça te soit utile.
Mais à titre individuel, pourquoi pas ? T'essaies, et si ça te plaît, tu gardes smile
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5

pencil Zerosquare.

Des langages modernes il y en a plein, et D n'est probablement pas le plus intéressant. Il y a plusieurs critères qui entrent en compte lorsqu'on veut juger des langages de programmation, qui vont de l'efficacité d'exécution à la productivité en passant par le système de typage (statique / dynamique) ou encore la richesse des bibliothèques disponibles pour étendre le langage.

Après, les langages c'est un peu comme les religions, chacun a son avis, plus ou moins justifiable, sur la question smile
En ce qui me concerne, je peux te conseiller d'aller voir du côté de Scala pour ce qui se fait de plus moderne en terme d'expressivité, Haxe pour ce qui concerne les langages dynamiques, ou go pour rester un peu plus bas niveau.
So much code to write, so little time.

6

Si tu veux unb language VRAIMENT expressif, je te te conseille le SPL : Shakespeare Programming Language


http://shakespearelang.sourceforge.net/report/shakespeare/shakespeare.html#sec:hello

Hello World:

The Infamous Hello World Program.

Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.


                    Act I: Hamlet's insults and flattery.

                    Scene I: The insulting of Romeo.

[Enter Hamlet and Romeo]

Hamlet:
 You lying stupid fatherless big smelly half-witted coward!
 You are as stupid as the difference between a handsome rich brave
 hero and thyself! Speak your mind!

 You are as brave as the sum of your fat little stuffed misused dusty
 old rotten codpiece and a beautiful fair warm peaceful sunny summer's
 day. You are as healthy as the difference between the sum of the
 sweetest reddest rose and my father and yourself! Speak your mind!

 You are as cowardly as the sum of yourself and the difference
 between a big mighty proud kingdom and a horse. Speak your mind.

 Speak your mind!

[Exit Romeo]

                    Scene II: The praising of Juliet.

[Enter Juliet]

Hamlet:
 Thou art as sweet as the sum of the sum of Romeo and his horse and his
 black cat! Speak thy mind!

[Exit Juliet]

                    Scene III: The praising of Ophelia.

[Enter Ophelia]

Hamlet:
 Thou art as lovely as the product of a large rural town and my amazing
 bottomless embroidered purse. Speak thy mind!

 Thou art as loving as the product of the bluest clearest sweetest sky
 and the sum of a squirrel and a white horse. Thou art as beautiful as
 the difference between Juliet and thyself. Speak thy mind!

[Exeunt Ophelia and Hamlet]


                    Act II: Behind Hamlet's back.

                    Scene I: Romeo and Juliet's conversation.

[Enter Romeo and Juliet]

Romeo:
 Speak your mind. You are as worried as the sum of yourself and the
 difference between my small smooth hamster and my nose. Speak your
 mind!

Juliet:
 Speak YOUR mind! You are as bad as Hamlet! You are as small as the
 difference between the square of the difference between my little pony
 and your big hairy hound and the cube of your sorry little
 codpiece. Speak your mind!

[Exit Romeo]

                    Scene II: Juliet and Ophelia's conversation.

[Enter Ophelia]

Juliet:
 Thou art as good as the quotient between Romeo and the sum of a small
 furry animal and a leech. Speak your mind!

Ophelia:
 Thou art as disgusting as the quotient between Romeo and twice the
 difference between a mistletoe and an oozing infected blister! Speak
 your mind!

[Exeunt]
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

7

8

Sasume (./3) :
Sur le papier en tout cas il me paraît très bien (mixins, high-order functions, garbage collection, typage statique fort, pattern matching).
si c'est juste ça j'ai du mal à y voir quoi que ce soit de même vaguement nouveau, ça doit bien faire 20 ans qu'il y a des langages qui ont tout ça cheeky (bon allez, mettons 15 pour un langage qui a vraiment toutes ces caractéristiques à la fois ^^)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

9

Marrant de voir que le Scala décolle hehe (pis c'est un langage Suisse en plus #fier,pourunefois#)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

10

Sally (./8) :
si c'est juste ça j'ai du mal à y voir quoi que ce soit de même vaguement nouveau, ça doit bien faire 20 ans qu'il y a des langages qui ont tout ça cheeky (bon allez, mettons 15 pour un langage qui a vraiment toutes ces caractéristiques à la fois ^^)
Ça doit être parce que je n’ai pas mis les autres trucs qui me paraissaient évidents : on peut utiliser des variables. On n’est pas obligé de se torturer l’esprit pour écrire en fonctionnel quelque chose qui dans notre intuition est opérationnel (impératif).

Sinon tu pensais à quel langage en particulier ? (parce qu’honnêtement à part Scala je ne vois pas de langage qui a tout ça)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

11

Ben je ne vois pas dans ta liste ce que n'a pas ocaml par exemple ? et je ne pense pas que ce soit le seul, mais bon si c'était pas clair, je ne connais pas du tout le D, je réagissais juste à l'ensemble de caractéristiques que tu as cité, mis en parallèle avec ce que Folco disait avoir lu comme quoi c'était révolutionnaire ou je ne sais quoi ^^ Comme dit nitro, des langages modernes il y en a plein, et j'ajoute : ça fait même longtemps qu'il y en a (d'ailleurs même Scala a déjà 7 ans hein), donc c'est moderne par rapport au C++ par exemple, évidemment, mais la plupart des concepts modernes en question ne sont déjà plus vraiment nouveaux. Après peut-être que le D est révolutionnaire pour une autre raison hein tongue
Folco (./1) :
Je sais pas trop où poster, ici ou dans Software, vu qu'il n'y a pas de rubrique 'D'. hehe.gif
Il y a une rubrique « autre langages de programmation », t'es pas doué embarrassed
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

12

Ah, j’en étais sûr, et tu ne mentionnes même pas Haskell qui est un véritable bijou et qui a pourtant 25 ans… (bon les extensions objet sont apparues plus tard).
Effectivement, les concepts de D n’ont **rien** de nouveau. Mais l’avantage c’est que c’est un langage abordable pour le développeur moyen (contrairement aux langages fonctionnels).
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

13

trifus je pensais aussi à haskell évidemment mais je n'étais pas sûr pour les objets et l'héritage multiple (vu que tu as parlé de mixins) et de plus tu semblais avoir une dent contre les langages fonctionnels purs (cf. ./10) et ocaml intègre de l'impératif...

Bon sinon j'espère que le développeur moyen n'est pas réellement une nouille incapable de comprendre quoi que ce soit à la programmation fonctionnelle, parce que c'est quand même pas bien compliqué. Bon après si on leur a fait boire du java au biberon et qu'on les a formatés à l'impératif pendant toute leur formation ça va sans doute souvent contre leurs *habitudes*, mais de là à être inabordable, je perçois une légère exagération cheeky.

Enfin bref, on est d'accord même si tu as une façon particulièrement agressive d'être d'accord avec les gens cheeky
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

14

Kochise (./2) :
Et le jours où ça devient mainstream, tu seras un early-adopter recherché tongue Comme moi avec Erlang...

I lol'd
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

15

Sally (./13) :
Bon après si on leur a fait boire du java au biberon
Pourquoi j'ai pensé à squalyl et à son futur fils (ou fille) ? grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

16

Je sais pas mais Java c'est en Indonésie et squalyl c'est plutôt la Corée trinon
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

17

Et perosnne ne parle de Rebol ? Ruby ? Squeak/Smalltalk ?

Pourtant ce sont des languages éprouvés
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

18

éprouvé et à la pointe de l'innovation, c'est contradictoire cheeky (c'est bien le problème grin)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

19

Zerosquare (./15) :
Sally (./13) :
Bon après si on leur a fait boire du java au biberon
Pourquoi j'ai pensé à squalyl et à son futur fils (ou fille) ? grin

Et donner du café à boire à son bébé c'est pas franchement recommandé cheeky
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

20

J'espère que mes enfants ne seront pas programmeurs #modtop#

21

Godzil (./17) :
Et personne ne parle de Rebol ? Ruby ? Squeak/Smalltalk ?
Parce qu’on était parti sur des langages statiquement typés (et dont les perfs ne sont pas catastrophiques).
Sally (./13) :
Bon sinon j'espère que le développeur moyen n'est pas réellement une nouille incapable de comprendre quoi que ce soit à la programmation fonctionnelle, parce que c'est quand même pas bien compliqué. Bon après si on leur a fait boire du java au biberon et qu'on les a formatés à l'impératif pendant toute leur formation ça va sans doute souvent contre leurs *habitudes*, mais de là à être inabordable, je perçois une légère exagération cheeky.
Je ne sais pas d’où ça vient, mais je connais très peu de personnes capables d’écrire du fonctionnel strict… Peut-être effectivement que c’est surtout une question d’habitude (à la fac ils nous font faire principalement du Java parce que c’est un des langages les plus simples, et pour les curieux on peut faire un peu de prolog ou de caml, mais seulement dans des UE choisies par les étudiants, et je peux t’assurer que très peu d’entre eux choisissent ça), mais je pense quand même que ça demande plus d’efforts intellectuels que d’écrire de l’impératif (et c’est même pénible quand on doit simuler le fonctionnement impératif en utilisant un paramètre accumulateur dans nos fonctions récursives), et j’ai bien peur que nous soyons plutôt assez souvent des nouilles… (moi le premier hein)
Enfin bref, on est d'accord même si tu as une façon particulièrement agressive d'être d'accord avec les gens cheeky
N’est-ce pas smile
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

22

Cela dit j’imagine que tu dois en côtoyer plus que moi, des informaticiens. Quelles sont tes impressions par rapport à leur maîtrise du fonctionnel ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

23

Oui ben justement, de façon général le monde fonctionne de façon impérative et séquentielle, donc il est plus 'logique' de programmer en Basic. Mais au final c'est un peu comme la différence entre monde quantique et monde cosmique, si à l'échelle d'un micro-processus le mode impératif s'impose naturellement (genre écrire un driver) à l'échelle macro-opératif, le langage fonctionnel semble mieux régir l'ensemble (par exemple le système d'opérateur/superviseur d'Erlang est merveilleux, sans compter la gestion parallèle asynchrone de processus concurrent) Genre gestion financière, de stock, etc...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

24

Euh ça dépend ce que tu appelles un informaticien, mais je côtoie plein de gens qui maîtrisent le fonctionnel ; sinon j'ai vu des étudiants qui n'y comprenaient rien mais ils comprenaient pas forcément mieux le java... après tu as plein de gens qui ne maîtrisent pas le fonctionnel tout simplement parce qu'ils ne s'y intéressent pas (ils pensent que ça ne leur servira à rien en pratique parce que c'est pas utilisé dans l'industrie etc. ; du coup même dans le cas où ils l'apprennent c'est de mauvaise grâce, ils ne cherchent pas vraiment à l'utiliser), mais c'est pas une question de difficulté intrinsèque.

Mais bon j'avoue qu'un langage fonctionnel pur à évaluation paresseuse comme haskell c'est déstabilisant parce que comprendre ce que le programme fait concrètement devient non évident, mais si tu restes dans un langage à évaluation stricte comme ocaml je trouve ça largement intuitif (tu sais exactement dans quel ordre il évalue quoi, en fait c'est tout à fait compatible avec une vision opérationnelle du programme, qui est, il me semble, en général ce que j'ai...) Bref ce n'est pas du style fonctionnel ou impératif que vient la plus ou moins grande difficulté à mon avis. Franchement, pour reprendre ton exemple, entre avoir une variable que tu mets à jour par assignation à chaque itération d'une boucle ou un accumulateur que tu mets à jour en le repassant à chaque appel récursif, c'est exactement la même chose écrite de façon légèrement différente, il n'y en a pas un qui est plus compliqué que l'autre...

e, tu fais (en pseudo-langage foireux)s := ""; i := n; while i > 0 { s := (i % 10) + s; i := i / 10; } return sJe sais pas moi, pour calculer la représentation du nombre n en base 10 par exemplrn s }
ou bienreturn boucle("", n)
where boucle(s, i) = {
  if i > 0 return boucle((i % 10) + s, i / 10)
  else retu
Dans les deux cas tu donnes une valeur initiale à tes deux variables s et i, puis tu entres dans une boucle ou fonction, tu fais un test, s'il est positif tu reboucles ou rappelles récursivement en ayant mis à jour i et s, s'il est négatif tu t'arrêtes et tu renvoies s.
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

25

Et c'est quand même assez vrai... si où on me propose de faire du fonctionnel dans l'industrie je ne vais pas dire non, mais je doute très fortement que ça m'arrive un jour, vu l'inertie du système. Ma seule chance de faire du fonctionnel (en supposant que je le souhaite vraiment) serait de chercher activement une entreprise qui utilise ces technos.
Et puis l'évaluation paresseuse moi je trouve ça bien, ça permet d'exprimer plus facilement des problèmes pour lesquels tu as cherché une solution "mathématique". Mais c'est peut être le cadre scolaire qui me fait dire ça.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

26

Brunni (./25) :
Et c'est quand même assez vrai... si où on me propose de faire du fonctionnel dans l'industrie je ne vais pas dire non, mais je doute très fortement que ça m'arrive un jour, vu l'inertie du système. Ma seule chance de faire du fonctionnel (en supposant que je le souhaite vraiment) serait de chercher activement une entreprise qui utilise ces technos.

http://www.process-one.net/fr/ ? Ils travaillent en Erlang...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

27

Malheureusement le fait qu'il existe une boîte dans le monde qui utilise Erlang, même grande, ne suffit pas à ébranler la vision que j'ai du fonctionnel dans l'industrie. Cela dit, je ne serais pas contre si ça venait à se généraliser, mais au vu de l'inertie du système je n'y crois pas vraiment, c'est tout wink
(Prouve-moi le contraire et fais une grosse boîte qui marche bien avec un soft en Erlang tongue)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

28

http://www.erlang.se/ -> Regarde le logo en haut à gauche, ils l'utilisent dans leur switch

Sinon le chat de Facebook est écrit en Erlang, par exemple. Amazon EC2 aussi...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

29

Je savais pas pour le chat de facebook, intéressant. Je me demande d'ailleurs bien pourquoi ils ont fait ça.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

30

Stagiaire pour sur embarrassed
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.