1

Plein le cul de devoir apprendre 72 langages de programmation, différents parce que machin a voulu simplifier tel truc, mon cul ouais au final c'est un bordel pas possible.
Au cours de la semaine j'ai du utiliser:
Matlab/Scilab C VBasic (que je connaissais déjà.)
Unix/Bash Fortran gnuplot Latex (que j'ai du apprendre)
Tcl Python (que maintenant je vais devoir apprendre)
(Et j'ai fait une impasse sur Perl, refusé d'utiliser le logiciel, ça a mal été pris mais j'en ai trop marre)

Mais merde quoi, je suis pas informaticien et pourtant j'ai l'impression d'en devenir un!
Je sais que tous les relous ici vont me tomber dessus avec leur "ouais mais ça c'est pas pareil que ça" mais je vous assure que quand on y connait rien à la base ça saoule. Chaque fournisseur de logiciel donne la possibilité de scripter ça et ça, vous pouvez personnaliser etc c'est trop génial vous allez voir et à la fin on se retrouve à faire le boulot à leur putain de place, avec à chaque fois un langage différent! C'est pas à moi de faire ces fonctionnalités, je suis utilisateur pas programmeur.

Bon, je me suis énervé un peu mais ça fait du bien de lâcher un coup de gueule, groumf! cheeky

2

Et encore tu aurais pu te coltiner du CAML embarrassed

3

mais on s'en fout des langages, c'est des algos c'est tout.

j'ai jamais compris les gens qui se plaignent de devoir apprendre un nouveau langage de prod.

vous avez jamais remarqué que tous se programment pareil? suffit de connaitre la base de la syntaxe, et de parcourir la doc de ref pour trouver printf et les opérations sur les types et les listes.

en fait je déconne, je veux juste dire que perso ça me dérange pas

4

./1 : ouais, t'as raison, d'ailleurs, je propose de créer un nouveau langage qui les remplacera tous tongue

./3 : pencil ^ ^ (mais j'ai pas envie de toucher à certains langages quand même) Par contre je suis pas d'accord, tous ne se programment pas pareil (exemple le plus flagrant : bash/c/... vs Prolog tongue )
avatar
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi

5

Oué bon c'est pas évident, chaque langage à sa propre logique la plupart du temps, mais aussi des procédures (options) de compilation différent (il faut apprendre quels sont leurs effets) et aussi d'autres méthodes de debug. Dorénavent je m'impose 3 langages max, du plus bas niveau (asm), du moyen niveau (C/C++) et du très haut niveau concurrent distribué à tolérance de panne (Erlang). Je me dit que si je maitrise ces 3 là (qui s'interfacent très bien ensemble) je dois être en mesure de résoudre à peu près tous les problèmes que je vais rencontrer. Sans compter que chacun dispose d'une vaste bibliothèque de librairies variées dans lesquelles je peux piocher au besoin smile

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 :/

6

7

ça vaut pas du bon caml tout ça
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

8

pencil

9

Aaaaaah l'éternel débat.

Indépendamment du fait que les langages d'un ensemble donné ont généralement les mêmes capacités (aux limites de l'API et de la plateforme données, bien sûr ; je parle de capacités algorithmiques), on a quand même des habitudes de lecture qui font qu'on va travailler de façon plus ou moins efficace dans un langage ou dans l'autre.
avatar

10

Ouah, j'ai du relire deux fois pour comprendre wink Et tout ca pour dire... heu pas grand chose non? Le mieux tu connais un language, le plus efficace tu seras avec.

11

Nan, certains langages sont limités dans leur expressivité (les IO aussi). Le CAML ou Haskel sont interressants mais trop académiques, dans ce domaine je leur préfère Erlang car industriel et très bien pourvu coté librairie avec l'OTP. Imagine que t'es un crack en JavaScript, essaye donc d'écrire un driver système ou de faire un jeu OpenGL avec interface SDL... Il faut choisir un minimum ses outil pour leur puissance et leur polyvalence. Parce qu'à ce compte on peut aussi se limiter au Lisp (CLOS : http://fr.wikipedia.org/wiki/Common_Lisp ) qui bien que datant de 1958 (avant le Pascal de 1970) avait déjà prévu tous les outils algo...NIQUE ( topics/117615-ie-ique#2 ) pour résoudre globalement tous les problèmes possibles smile

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 :/

12

En assembleur, on fait tout tongue

13

./1 > le mouvement inverse (qui existe) est tout aussi stupide, c'est à dire tout foutre en l'air pour refaire l'ensemble en un langage et aboutir a un ensemble d'applis qui réponds moins aux besoins utilisateur que les softs remplacés, c'est stupide. Le plus bel exemple étant les décalages dans le gartner... on met une appli frontale en mode web pour la mode et après on s'étonne que les utilisateurs perdent du temps à chaque échange client-serveur pour charger l'écran (qui était en local par le passé)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

14

L'info c'est comme les modes vestimentaires, c'est cyclique : avant c'était des gros serveurs centraux avec des terminaux passifs, puis on a eu des applis de plus en plus développées côté client, maintenant on veut des applis webs où c'est le serveur qui fait le gros du boulot, et dernièrement y'a Google qui veut faire un genre d'ActiveX-like pour faire tourner des applis "lourdes" dans le browser...

On réinvente continuellement la roue, en rajoutant une couche de caoutchouc [abstraction] à chaque fois hehe
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

15

Faut bien les nourrir, les informaticiens smile Un ex-collègue me disait que pendant ses études, un de ses profs d'info lui disait "Dans 2 ans, tout sera écrit..."

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 :/

16

Allez, prions que ça arrête ces conneries, j'aimerais pouvoir commencer à travailler plutôt que d'apprendre sans cesse des langages obscurs.

nEUrOO > A la base c'était juste un cdg en essayant de plotter une simple courbe X-Y dans un logiciel de visualisation de données. J'ai un peu crisé quand j'ai lu dans la doc 'This feature is not implemented yet but you can use Python blablabla'. C'est pas grave si personne comprends grin

C'est pas le premier programme que je vois qui sous prétexte de modularité ne propose pas assez d'options déjà programmées, des trucs basiques qui sont évidents. Sauf que quand on connait pas comment le programmer on perd des heures alors que les développeurs auraient pu le faire beaucoup plus rapidement. Des trucs gratuits à la rigueur on peut pas dire grand chose, on est libre d'utiliser autre chose, mais quand on paye une licence (souvent fort cher vu le service) ça énerve un peu. D'ailleurs je crois que je vais commencer à envoyer des lettres pour gueuler un peu, car si personne ne dit rien ça restera pareil.

17

nEUrOO (./10) :

Ouah, j'ai du relire deux fois pour comprendre wink.gif Et tout ca pour dire... heu pas grand chose non? Le mieux tu connais un language, le plus efficace tu seras avec.


Oué, bon, j'ai le droit de dire des choses pour rien, non ? tongue
avatar

18

Kochise (./11) :
Nan, certains langages sont limités dans leur expressivité (les IO aussi). Le CAML ou Haskel sont interressants mais trop académiques, dans ce domaine je leur préfère Erlang car industriel et très bien pourvu coté librairie avec l'OTP [...]

Oui ben justement j'avoue que j'ai beaucoup de peine à voir comment on peut faire un vrai truc en fonctionnel, et en particulier un driver, des gestions d'IO et autres. Parce qu'ok c'est super élégant pour exprimer des algos tel que quicksort (génial) mais t'as aussi pas mal de trucs faisables en deux lignes en impératif qui requièrent un master pour être écrits ou même relus en fonctionnel. Je me rappelle d'un exercice de notre test de jeudi passé où il fallait bêtement déterminer si une liste était une matrice carrée en Haskell (e.g. [[1, 2], [3, 4]]): tu l'écris "longueur de la liste == longueur de tous les éléments de la liste" mais en fonctionnel c'est une autre histoire...
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

19

ben en scheme :

(fold and (map (lambda (l) (equal? (length l) (length list))) list))

(ie à partir de list, construis une nouvelle liste dont le n-ième élément est "longueur du n-ième élément de list == longueur de list", puis fais le AND de tout ça)

ça doit pas être très différent en haskell. en fait faut juste apprendre à penser en fonctionnel, au début c'est pas évident, mais après c'est tellement plus beau happy
avatar
I'm on a boat motherfucker, don't you ever forget

20

Bon ça pourrait aussi probablement s'écrire de manière encore plus courte puisque and peut prendre un nombre arbitraire arguments.

(and . (map (lambda (l) (equal? (length l) (length list))) list))

Bien sûr, grace à l'absence d'effets de bord, ce code est intrinsèquement parallélisable, il suffit que map (qui est un builtin) soit implémentée de manière parallèle. love
avatar
I'm on a boat motherfucker, don't you ever forget

21

Génial j'avais pas pensé à utiliser map donc je pouvais chercher un moment ^^
J'ai écrit une grosse merde avec des gabarits, un truc genre:
egal [] = False
egal [el] = True
egal ((el: els): super) = taille (el : els) == taille super
avec une fonction taille qui calculait la taille d'un niveau de la liste (en gros, le nombre d'éléments, une liste étant considérée comme un élément).
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

22

Y'a un truc GE-NI-AL en Erlang, c'est la syntaxe binaire http://www.erlang.org/documentation/doc-5.6/doc/programming_examples/bit_syntax.html qui supporte le pattern matching et te permet de de parser à peut près n'importe quoi en claquant juste des doigts, par exemple http://www.postneo.com/2007/08/10/erlang-bit-syntax-and-network-programming ou http://community.livejournal.com/en_dmitriid/5806.html. Avant en C fallait que je me tape des structs et unions à la con avec toute la logique en switch pour extraire les données. En Erlang, tu bailles un grand coup et tu retrouves tous tes petits sans même t'en rendre compte smile

Sinon coté IO hard tu passes par un driver avec http://www.erlang.org/doc/tutorial/c_portdriver.html et http://www.erlang.org/doc/reference_manual/ports.html, mais ça se fait assez bien, et tu contrôles tout du coté Erlang avec un bon module basé sur gen_fsm smile

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 :/

23

Cool vais voir ça smile
Bon j'ai enfin réussi à faire ça:
taille [] = 0
taille (el:els) = 1 + taille els

carre m = all (== taille m) (map taille m)

C'est élégant mais putain ça prend du temps à trouver grin
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

24

l (function l -> List.length l = n) lje connais pas haskell mais en caml :let n = List.length l in List.for_alion [] -> true | l::suite -> List.length l = n && test suite in test l
mais si tu connais pas la fonction for_all tu peux l'écrire à la main :let n = List.length l in
let rec test = funct
(tiens cross 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#

25

Brunni > il y a une fonction length en haskell, pas besoin de réinventer la roue happy

carre list = all (== (length list)) list
avatar
I'm on a boat motherfucker, don't you ever forget

26

moumou > tu as oublié le map ^^

En fait ça correspond à ce que j'ai écrit en caml (je suppose que "all" = "List.for_all" cheeky) sauf que, euh, pourquoi ne pas définir une fonction, comme moi ? cheeky
ah je crois que je comprends : c'est parce que haskell est paresseux c'est ça ? donc en fait "map taille m" ne va pas calculer la taille de tous les éléments ?

_all (( = ) (length m)) (map length m)
en caml on peut écrire la même chose :open List
let carre m = for
bon ça marche mais c'est un peu nul parce que ça calcule (peut-être inutilement) la taille de *tous* les éléments de la liste (quand il évalue le map) et ensuite seulement ça va évaluer le for_all et faire les tests. Mais haskell ne fait pas ça je suppose (c'est call-by-need, donc il ne calcule effectivement la longueur qu'au moment de tester l'égalité, c'est bien ça ?)

t carre m = for_all (compose (( = ) (length m)) length) m
(par contre ce qui poutre vachement plus c'est bien sûr :let compose f g x = f (g x)
le
trilove
ength m) *** length) m
ou avec un opérateur :let ( *** ) f g x = f (g x)
let carre m = for_all (( = ) (l
trilove²)
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#

27

Mou2> ha ben tiens, je connaissais pas cette fonction smile mais si on l'avait apprise l'exercice aurait eu moins d'intérêt, déjà que donner un cinquième de la note sur 3 misérables lignes ... ben voilà quoi grin
On vient de commencer en fait, genre 2 - 3 semaines je sais plus.
Sally> Oui, Haskell est paresseux wink
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

Je suis quand même déçu que t'es pas appris PERL c'est vachement bien le PERL (je n'aurais pas dis ca y'a un 1 an. Mais la je l'aime ... presque grin
avatar
https://air-gaming.com/tests/ si vous voulez de la bonne lecture :=)

29

[cite] melbou (./1) :
Plein le cul de devoir apprendre 72 langages de programmation, différents parce que machin a voulu simplifier tel truc, mon cul ouais au final c'est un bordel pas possible.
Au cours de la semaine j'ai du utiliser:
Matlab/Scilab C VBasic (que je connaissais déjà.)
Unix/Bash Fortran gnuplot Latex (que j'ai du apprendre)
Tcl Python (que maintenant je vais devoir apprendre)
(Et j'ai fait une impasse sur Perl, refusé d'utiliser le logiciel, ça a mal été pris mais j'en ai trop marre)
À la rigueur, ça se comprend qu'il y ait plusieurs langages de programmation, mais c'est vrai que c'est assez chiant quand tu en as pas mal qui se ressemblent, avec des objectifs très similaires (genre PHP, Perl, Ruby, Python : tu peux plus ou moins faire la même chose avec ces quatre-là)


(et condoléances pour LaTeX, tu verras, c'est super bien pour perdre quelques heures de temps en temps)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

30

Ouais je sais, c'est assez relou dès que tu commences à regarder de trop près ce que tu veux obtenir. Mais si tu changes pas les styles c'est pas 'trop' compliqué. Là j'ai chopé un template de rapport qui marche bien, je vais l'utiliser en attendant une formation sur Latex (pour le monitorat, et c'est à l'ENS wink).