18:51:18
AlphaZeta
mais bon si c'est pour avoir un socle commun, je suis prêt à abandonner cette feature
18:51:48
AlphaZeta
même si c'est pas incompatible avec l'impératif (Swift a un système de curryfication justement)
18:53:52
@Emeric
L'idée de Pratonus plus haut covient à tout le monde ?
18:54:15
AlphaZeta
bah du coup ok
18:54:48
Ludoviking
c'est quoi déjà son idée
18:54:51
Ludoviking
???
18:55:03
@Emeric
18:42:43 - Praetonus: L'idéal ça serait peut être comme déjà dit plusieurs fois de lancer un atelier par paradigme. On pourrait commencer par un socle commun avec uniquement la structure générale du programme de posée (AST et génération de code) et peut être quelques éléments du langage (comme les fonctions qui je pense se retrouvent partout)
18:55:49
Ludoviking
je suis ok
18:56:32
AlphaZeta
ok
18:58:55
Praetonus
Ou en fait, ça pourrait être fun de faire un langage avec le plus de features possibles (points bonus pour les incohérences et redondances notables)
18:59:21
AlphaZeta
ouais pas mal
18:59:34
→ malnuxstarck est entré
18:59:58
AlphaZeta
ça va être le bordel mais balek après tout, c'est pas fait pour être utilisé en industrie
19:02:52
AlphaZeta
concurrent functional/imperative hybrid aspect/object/actor oriented logic programming language
19:03:11
@Emeric
Ca fait rêver ! ^^,
19:03:20
malnuxstarck
Grave !
19:03:33
thizanne
Praetonus
19:03:33
thizanne
praetonus: si je demande une team pour un langage orienté acteurs, on me jette des tomates ?
19:03:54
thizanne
non, on te dit que pourquoi t'aurais besoin de l'autorisation de carnufex pour t'en occuper
19:04:04
AlphaZeta
tout paradigme est la bienvenue
19:04:33
thizanne
meanwhile après cet après-midi de discussion, qui a écrit une ligne de code ?
19:04:56
carnufex
Tu es pressé, thizanne ?
19:05:09
carnufex
J’attendrais plutôt ça d’un jus de fruit…
19:05:15
thizanne
non, moi je m'en fiche un peu
19:05:27
AlphaZeta
carnufex: ;D
19:05:29
dinosaure
je pense que vous êtes toujours face à un non-problème que la majorité des gens ici n'arrive pas à concretement comprendre
19:05:30
thizanne
comme je l'ai dit plus haut, implémenter un langage ça me prendrait une heure ou deux
19:05:45
Ludoviking
Je propose la creation d'un nouveau paradigme (non je rigole déjà que c'est dur de faire un langage)
19:05:46
thizanne
mais ça m'empêche pas de vous faire remarquer que vous prenez les choses dans le mauvais ordre
19:06:34
AlphaZeta
figurez vous que j'ai découvert un langage encore en alpha privée qui a inventé un paradigme
19:06:35
carnufex
J’ai pour habitude de réfléchir avant de coder, mais chacun son truc, hein…
19:06:46
← Sandlayth est parti du salon ("WeeChat 1.3")
19:06:53
AlphaZeta
http://www.luna-lang.org/
19:07:02
AlphaZeta
inspiré de Haskell un peu
19:07:10
thizanne
de « réfléchir »
19:07:11
dinosaure
carnufex: j'espère que tu as définis la sémantique opérationnel de ton langage alors avant de l'implémenter
19:07:11
thizanne
bonne blague
19:07:57
dinosaure
et que tu l'as prouver en Coq, après tout, il faut être sûr de se que l'on fait avant de taper une ligne de code, non ?
19:08:35
dinosaure
(surtout dans le cadre d'un atelier où la marge d'erreur est plus qu'acceptable
19:08:56
→ sandhose est entré
19:09:47
AlphaZeta
ouais donc, Luna c'est super cool
19:10:04
AlphaZeta
le paradigme ça s'appelle la programmation orientée catégories
19:10:16
AlphaZeta
ya pas encore de doc dessus, c'est eux qui l'ont inventé
19:10:21
Ludoviking
alphazeta C'est vrai que ça à l'air cool
19:10:47
AlphaZeta
j'ai parlé à la team un peu, ils sont sympa en plus
19:11:52
→ polaron est entré
19:12:35
← malnuxstarck a quitté (Quit: J'aime les agrumes.)
19:12:58
thizanne
lol luna
19:13:03
thizanne
ça existe depuis quoi ce genre de chose
19:13:05
thizanne
40 ans ?
19:13:46
AlphaZeta
de ?
19:13:50
AlphaZeta
le nom "luna" ?
19:14:00
thizanne
"salut tu peux programmer en connectant des blocs graphiques"
19:14:05
AlphaZeta
ha
19:14:08
→ Invoc_Fatal est entré
19:14:10
thizanne
turns out personne fait ça quand on sait coder
19:14:12
← The_programmeur a quitté (Quit: J'aime les agrumes.)
19:14:14
AlphaZeta
nan ça c'est juste l'IDE
19:14:16
thizanne
parce que dsl mais c'est beaucoup moins pratique
19:14:27
AlphaZeta
moi je parle du langage
19:14:33
AlphaZeta
l'IDE on s'en bas les couilles
19:14:44
AlphaZeta
(je l'ai testé c'est cool quand même)
19:15:00
AlphaZeta
mais le truc innovateur c'est le langage
19:15:21
AlphaZeta
ils se vantent pas avoir inventé la programmation en connectant des blc graphiques
19:15:37
thizanne
ouais ben
19:15:52
thizanne
y'a beaucoup de lignes avec des jolies couleurs pour présenter des trucs qui existent déjà dans 45 langages différents
19:16:02
thizanne
et 3 lignes « oui on a inventé un paradigme mais on dit rien dessus »
19:16:22
thizanne
ce qui est exactement l'inverse de ce qu'on attendrait d'un projet de recherche sérieux (puisqu'ils disent que c'est ce qu'ils font)
19:17:10
AlphaZeta
leur langage permet d'inférer pas trop salement des accesseurs partiels
19:17:19
AlphaZeta
c'est cool
19:17:26
thizanne
c'est quoi un accesseur partiel
19:17:39
AlphaZeta
getter appliqué partiellement
19:17:52
thizanne
c'est à dire
19:18:02
AlphaZeta
tu vois les lens en haskell ?
19:18:08
thizanne
de nom
19:18:16
thizanne
montre moi du code
19:18:21
AlphaZeta
bah c'est ça mais en primitive
19:18:48
← Invoc_Fatal a quitté (Quit: J'aime les agrumes.)
19:18:51
AlphaZeta
https://github.com/ekmett/lens/blob/master/examples/Pong.hs
19:19:22
thizanne
il faut 233 lignes de haskell pour me montrer en quoi cette propriété de luna est cool ? :'
19:20:26
AlphaZeta
http://newartisans.com/2012/11/getting-started-with-lenses/
19:21:09
thizanne
non mais je m'en fiche des lenses
19:21:16
AlphaZeta
bon regarde
19:21:19
thizanne
j'ai déjà lu des trucs dessus, j'ai pas utilisé parce que j'ai jamais eu besoin
19:21:25
AlphaZeta
imagine j'ai un langage OO
19:21:32
AlphaZeta
avec une classe Personne et un attribut nom
19:21:42
← Bouli1515 a quitté (Quit: J'aime les agrumes.)
19:21:50
AlphaZeta
j'ai potentiellement plusieurs classes qui ont définissent un attribut nom
19:22:20
AlphaZeta
mais pourtant, Luna peut inférer quelque chose comme personnes.sortBy (.name)
19:22:26
thizanne
ok
19:22:28
AlphaZeta
mais pourtant, Luna peut inférer quelque chose comme `personnes.sortBy (.name)`
19:22:28
thizanne
alors attends 2 secondes
19:22:50
AlphaZeta
dsl habitude encore
19:23:03
AlphaZeta
c'est pas grand chose pour faire un langage entier
19:23:09
AlphaZeta
mais Luna a d'autres features
19:23:35
thizanne
http://gallium.inria.fr/~remy/ftp/objective-ml!popl97.pdf
19:23:36
thizanne
1997
19:23:48
AlphaZeta
ça permet à des utilisateurs novices de faire un fonctionnel pur sans devoir connaître toute la théorie derrière
19:24:10
thizanne
depuis quand y'a besoin de connaître « toute la théorie derrière »
19:24:45
AlphaZeta
nan mais genre faut être à l'aise avec les foncteurs, foncteurs applicatifs et monades
19:24:47
AlphaZeta
nan mais genre faut être à l'aise avec les foncteurs, foncteurs applicatifs et monades
19:24:48
thizanne
(le papier que j'ai linké qui a donc 20 décrit exactement un typage des objets qui permet « de typer quelque chose comme sortBy .name même si plusieurs classes ont un attribut name)
19:24:51
AlphaZeta
ptain fais chier
19:24:52
thizanne
(qui a donc 20 ans)
19:24:55
thizanne
mais donc il faut pas
19:25:06
thizanne
sur ce je dois y aller
19:25:12
thizanne
(mais non il faut pas*)
19:25:22
AlphaZeta
j'ai pas encore lu ton papier
19:25:28
AlphaZeta
jvais regarder ça
19:25:56
AlphaZeta
mais Luna déduit automatiquement l'opération à faire pour appliquer, entre (<$>), ($), (<*>), etc...
19:25:58
thizanne
c'est probablement pas la meilleure introduction au système des objets de caml, lis plutôt le chapitre correspondant RWO
19:26:07
AlphaZeta
ok
19:26:12
thizanne
ouais ben luna
19:26:47
thizanne
ça a très clairement l'air d'être « on a fait une interface jolie pour des concepts vieux de 25 ans pour essayer de faire comprendre aux idiots qui font du javascript que le non-typage c'est une idée pourrie »
19:26:50
thizanne
ce qui est déjà louable
19:27:22
thizanne
mais niveau progrès scientifique, c'est pas parce qu'on utilise des noms qui font innovation qu'on a avancé
19:27:36
AlphaZeta
1) Why did you choose a special "Type in Monad" syntax rather than a classic parametrized type syntax as in Haskell ?
19:27:37
AlphaZeta
That's because Luna allows to apply functions expecting pure arguments to effectful values (i.e. the compiler chooses whether to use equivalents of $, <$> or <*>, depending on the effects the function and argument are wrapped in). This makes monads somewhat special, and different from ordinary datatypes. This is best illustrated by the List monad.
19:27:37
AlphaZeta
List has an each method that converts a standard "container" type into a "monad" one, e.g. if x :: [Int] then we have x.each :: Int in List. Now you can write x.each.succ, which would be an equivalent of succ <$> x in Haskell. Note that you cannot write x.succ directly, as that would mean trying to call the method succ of List (which obviously isn'
19:27:37
AlphaZeta
t there).
19:28:01
thizanne
oui ok
19:28:07
thizanne
donc ça c'est genre la base des objets
19:28:27
AlphaZeta
oui mais en fonctionnel pur
19:28:32
→ Bouli1515 est entré
19:28:42
thizanne
non en fait c'est même la base de la programmation
19:28:59
thizanne
« vous pouvez pas écrire [1; 2] + 1 lol parce que vous pouvez pas faire une liste + 1 »
19:29:09
thizanne
« mais vous pouvez écrire map [1; 2] (+1) ! »
19:29:11
thizanne
« révolution »
19:29:18
thizanne
« programmation orientée catégories »
19:29:49
AlphaZeta
c'est pas ça qu'il explique
19:30:02
thizanne
c'est ça qu'il dit
19:30:06
AlphaZeta
pas que
19:30:20
thizanne
dans ce que tu as écrit, si
19:30:50
AlphaZeta
4) How can you write "lst = [0..random]" ? Isn't "random" an IO action (or at least a monadic action) ?
19:30:50
AlphaZeta
Yes, random is a monadic action. The system I've described in 1) applies here. We have random :: Int in Random, so [0..random] :: [Int] in Random.
19:31:43
thizanne
alors
19:32:09
thizanne
si c'est juste « quand j'ai Int in M je sais utiliser l'int »
19:32:25
thizanne
je sais pas si c'est un détail de syntaxe ou une mauvaise idée
19:32:45
AlphaZeta
c'est juste des bind et des <*> implicites
19:32:54
thizanne
ok et donc
19:32:58
thizanne
[0..[1]]
19:33:06
thizanne
ça fait [0; 1] j suppose
19:33:08
thizanne
(magie !)
19:33:16
AlphaZeta
ouep
19:33:17
thizanne
et [0..(1, 1)] ?
19:33:26
thizanne
ça peut faire 3 choses différentes
19:33:30
AlphaZeta
non
19:33:39
thizanne
ben ça peut choisir le premier
19:33:42
thizanne
choisir le deuxième
19:33:48
AlphaZeta
`(,) a` est un foncteur sur la seconde valeur du tuple
19:33:50
thizanne
ou prendre les deux et renvoyer un tuple de deux lites
19:33:54
thizanne
sur ce afk
19:33:58
← thizanne a quitté (Quit: J'aime les agrumes.)
19:34:08
AlphaZeta
syndrome du trou du cul cynique
19:35:03
dinosaure
élégant
19:35:23
AlphaZeta
https://fr.wikipedia.org/wiki/%C3%89tat_de_trou_du_cul_cynique
19:36:00
dinosaure
c'est pas une vraie raison de décrire une personne comme ça
19:36:10
dinosaure
mais bon
19:36:33
AlphaZeta
c'est une référence, pas méchant
19:37:33
AlphaZeta
le sarcasme à outrance c'est chiant quand même
19:38:20
dinosaure
j'ai connu pas mal de gens comme lui et des biens pires, et puis après, même si la forme n'est pas la meilleur qui soit, on se rend compte qu'ils ont pas tort
19:38:39
AlphaZeta
nan mais en soi il a pas tort
19:39:15
AlphaZeta
j'ai pas dit que les points que j'ai évoqué étaient révolutionnaires
19:39:49
dinosaure
et a fortiori, j'ai appris à fermer ma gueule quand je savais pas (ou vaguement) quelque chose
19:40:34
AlphaZeta
moi je pense que c'est mieux d'essayer de participer au débat même si tu sais pas grand chose
19:40:40
AlphaZeta
tant que tu sais reconnaitre que t'as tort
19:40:45
← Bouli1515 a quitté (Quit: J'aime les agrumes.)
19:41:09
AlphaZeta
j'ai aucun mal à reconnaitre que j'ai tort, sauf quand on me parle sur un ton cynique
19:41:26
← klafyvel a quitté (Ping timeout: 121 seconds)
19:41:43
AlphaZeta
comme ça on apprend 10x plus
19:42:01
@Emeric
Hmmm, je crois que certains loggent cette conversation...
19:42:05
AlphaZeta
surtout que j'ai des arguments encore, mais il a afk
19:42:07
AlphaZeta
pas grave
19:45:50
→ ZamenWolk est entré
19:46:51
AlphaZeta
salut ZamenWolk
19:47:43
ZamenWolk
Salut ! J'ai vu le topic sur le forum, je suis venu faire un petit tour :) Je connais pas trop IRC, je suis en train de découvrir ça plus le projet ^^,
19:48:43
→ Smooth_6132 est entré
19:52:20
→ Smooth_62435 est entré
19:52:33
Smooth_62435
salut
19:52:52
AlphaZeta
yo
19:54:12
← Smooth_6132 a quitté (Quit: J'aime les agrumes.)