Les langages fonctionnelles devaient remplacer tout mais bon aujourd'hui encore c'est le C, C++, java, C#, fortran, python, perl, ruby qui dominent et tres tres largement
Alors d'une part, ça a déjà été dit, mais si on regarde Java et C#, de plus en plus de constructions venant des langages fonctionnels s'incrustent. La construction « foreach » (et ses variantes) vient directement des constructions type « mapcar » en Lisp par ex. Ensuite, Perl par exemple a, dès le début [1], proposé des constructions initialement inventées dans les langages fonctionnels (« mapcar » donc, mais aussi les fermetures transitives, etc.).
Mieux encore: il existe des langages dérivés du C (je pense notamment à Cilk et sa « suite » Cilk++) qui permettent la programmation parallèle en rajoutant un minimum de constructions au langage. Et devine quoi ? Ça passe principalement par la construction d'algos « divide-and-conquer » [2]. La notion de récursivité en algorithmique est essentielle, et même naturelle pour tout un tas de structures de données (je pense notamment aux arbres). Lisp, par exemple, permet (tout comme OCaml) de construire aussi bien des boucles que de faire de la récursion (Scheme est purement fonctionnel si je ne me trompe pas, donc le cas est un peu à part). L'important est de piger comment structurer sa pensée, décomposer une action complexe en actions élémentaires simples. Le langage ne changera rien à ça.
[1] Bon en fait non, mais au moins depuis Perl 5.x, et peut-être 4.x, si quelqu'un peut m'aider à retrouver les dates...
[2] désolé, je ne connais pas la formule adéquate en français — « diviser et conquérir » ? « dichotomique » ?
Je suis partagé en ce qui concerne le langage à utiliser pour un premier cours d'algo/programmation. Il y a quelques années, j'aurais sans doute dit comme toi: Python, Perl (oui je sais, plein de gens trouvent ça caca, mais moi j'aime), ou Ruby me semblaient de bons candidats. Et puis à partir de 2004-2005 y'a eu la petite révolution des architectures multicœur. Et depuis je me dis que l'important, ce serait plutôt, quel que soit le langage, de donner de bonnes bases d'algorithmique à tout le monde (au moins pour les algos « fondateurs »), de façon à ce que le programme soit relativement facilement parallélisable. Selon moi cela signifie aborder les algorithmes un peu différemment, et ça passe par des langages différents. Par exemple, à l'université de Rice (Houston, TX), ils utilisent un langage appelé CnC (Concurrent Collection), qui « découple » la description de l'algorithme (les étapes de calcul) et la programmation proprement dite de chaque étape. CnC est juste un langage de description qui rend explicite les dépendances de données entre les étapes d'un algorithme. Suivant l'implémentation faite de CnC (Intel a l'implémentation de référence, écrite en C++, et qui repose sur Threading Building Blocks; Rice a une implémentation en Java de CnC; il existe une implémentation pour Haskell; etc.), on doit écrire l'étape dans un langage impératif, de façon séquentielle. L'idée est de rendre correctement modulaire ses algorithmes, mais de ne pas utiliser de constructions parallèles explicites (seules les dépendances de données, de type producteur-consommateur, sont exprimées).
Du coup, l'expert dans un domaine (physique, bio, méca...) exprime son algo sous forme d'étapes, programme lesdites étapes dans un langage « séquentiel » (C/C++, Java, Haskell, ...), et plus tard, un expert en optimisation (un infoteux donc) pourra, s'il le faut, optimiser chaque étape, forcer un ordonnancement spécifique entre les étapes pour rendre l'application plus rapide, etc.
Évidemment, ça ne résout pas le problème de « quel langage séquentiel choisir », mais ça force à repenser l'enseignement-même de l'algorithmie. Concernant Scheme, LISP, etc., j'ai vu des linguistes aller de la linguistique pure vers la reconnaissance vocale (donc au départ, pas de formation informatique à proprement parler), etc., et user de combinaisons entre Java et LISP assez étranges, et ils ne s'en portaient pas plus mal. Je pense que le problème de LISP ou Scheme n'est pas le langage (et il faudrait arrêter un peu de se focaliser là-dessus); il s'agit plus de la manière dont le langage est enseigné. Quand j'ai lu que le bouquin dont il est question ici a été écrit par un agrégé de maths, je me suis dit « encore un bouquin qui ne servira qu'aux informaticiens/théoriciens ». Je pense que ça me plairait beaucoup comme bouquin hein, c'est juste que je pense que beaucoup de gens (infoteux compris) détestent la programmation fonctionnelle parce qu'elle est enseignée par des gens un chouïa trop matheux. Bien sûr, les langages fonctionnels ont une origine qui s'y prêtent, mais quand on y pense, Fortran aussi, et pourtant ...
Bref. L'auteur de ce journal n'avait visiblement pas l'étudiant moyen en tête lorsqu'il a écrit sa bafouille, et pensait clairement à un futur informaticien. Et dans ce cadre-là, je pense que ce genre de bouquin passe parfaitement.
De plus j'ai bien dit qu'il devait savoir se servir d'un langage et que le scheme est absolument inexistant dans la physique, les maths et les autres matieres scientifiques que l'informatique.
Oui ben à ce propos. Justement, comme LISP, OCaml, et tout un tas de langages fonctionnels ne font pas partie des canons de l'industrie, on se retrouve avec des physiciens qui ne connaissent QUE Fortran et C++ et qui implémentent (avec moultes difficultés) des analyseurs syntaxiques et préprocesseurs pour des langages pour domaines spécialisés/spécifiques (DSL) plutôt que d'écouter un de mes anciens collègues qui se proposait de leur montrer comment implémenter simplement [1] les mêmes DSL en OCaml (qui pourtant est un langage qui s'y prêterait bien plus, tout comme LISP ou Scheme).
[1] Attention, « simplement » ne signifie pas que ça ne prend pas de temps à tester, valider, etc.
Désolé, côte Est. Nous recherchons des stagiaires en compilation ou écriture de « runtime systems » (si quelqu'un a une bonne traduction à proposer, je suis preneur). Si tu penses que c'est dans tes cordes et que ça t'intéresse, tu peux me contacter en message privé.
Oui enfin, là il me semble évident que le monsieur se permet d'être plus cool que pour une « vraie lettre de motivation qui lèche bien tout partout », car il sait qu'on est « entre nous ». Et je trouve ça très bien : si j'étais intéressé par ce genre de profil, je demanderais sans doute via message privé quelque chose de plus formel (pour pouvoir montrer à mes collègues non-geeks qui ont un pouvoir de décision pour ce genre de trucs).
Manque de bol, j'ai bien besoin de stagiaires pour cet été, mais je suis aux USA, et ce n'est absolument pas le profil que je recherche. :-/
Je ne suis pas d'accord. Enfin, plus exactement, la notion de valeur ajoutée a parfaitement sa place. Je n'ai pas les études en tête, mais certains de mes profs de génie logiciel nous rappelaient en permanence 2 choses :
Facilement 50% des projets informatiques échouent et sont annulés au cours de leur mise en œuvre (parfois juste à la fin, une fois qu'ils ont été vérifiés, mais finalement ne passent pas à cause de la validation, qui aurait dû marcher, sauf que les syndicats n'avaient pas été mis au courant qu'une nouvelle pointeuse allait être mise en place et ... PAF, aplu système de pointage révolutionnaire).
Au moins jusqu'au milieu des années 90, les gains en productivité offerts par l'outil informatique par rapport aux méthodes manuelles plus classiques étaient marginaux, voire provoquaient une perte de productivité¹.
Maintenant je ne veux pas dire que l'informatique ne rend pas la vie plus pratique dans de nombreux domaines : certains problèmes ne peuvent être résolus dans un temps raisonnable qu'à l'aide d'outils informatique (je pense aux problèmes liés à l'ingénierie mécanique par exemple). Les réseaux sociaux (et parmi eux, je me permets d'inclure IRC comme étant le précurseur) ont développé tout un tas de possibilités d'interactions entre les gens (il suffit de bien choisir quel réseau nous convient, en fonction de ce que l'on cherche).
En fait je pense que là où l'informatique permet des « gains de productivité », c'est justement dans les domaines où l'on ne pouvait virtuellement rien faire avant que l'informatique existe (et où donc le gain de productivité est proche de l'infini).
¹ D'ailleurs, je crois bien qu'un journal sur linuxfr avait fini par déboucher sur un fil de discussion où il était question des gains illusoires en productivité apportés par l'informatique.
Mon collègue passe son temps à faire des schémas pour expliquer les idées qu'il a sur sa tablette. On peut difficilement faire moins actif. Autant je doute fortement que la prise de note soit un jour aisé sur ce genre de trucs (mais bon, je peux me tromper), autant pour tout ce qui est dessin fait à la va-vite, c'est génial : si j'avais ce genre de trucs je pense que je ne passerais plus un temps fou à chercher où j'ai bien pu foutre ce !@#$ de schéma que j'avais fait sur un bloc-note (sauf qu'entre temps, j'ai rempli ledit bloc-notes, que mes dessins se mélangent avec d'autres notes de choses qui n'ont rien à voir, tout ça).
Bref, j'ai vu l'utilisation que certains en font, celle que moi j'en ai fait aussi, et je trouve ça plutôt cool. Couple ça avec le fait que nous passons notre temps à lire des PDF d'articles de recherche: entre 5 et 20 pages en moyenne (donc pas trop trop long, et supportable pour ce genre d'écrans), c'est vraiment pratique.
Maintenant, ça reste ce que j'appelle un « beau jouet » : c'est cool, c'est pratique, mais clairement pas indispensable.
CentOS ne fait absolument pas d'ombre à Red Hat. J'ai eu à installer certains softs pour mon ancien labo (softs proprios), qui, s'ils ne détectaient pas une Red Hat, refusaient purement et simplement de s'installer. Par paresse (j'aurais pu regarder dans les nombreux scripts d'install et tenter de changer certains trucs), j'ai préféré installer une CentOS. Après tout, j'allais avoir d'autres softs du même éditeur à installer, donc bon.
Maintenant, nous n'avions pas besoin de support. Ça tombe bien, CentOS n'en fournit pas. Si nous en avions eu besoin, nous aurions évidemment regardé du côté de Red Hat. Je vois vraiment CentOS comme une version stable (au sens de Debian) de Fedora. Puisque Red Hat ne la fournit plus, on la cherche ailleurs. :)
Je me servais régulièrement de « lastseen » aussi, même avec mes visites quotidiennes, pour une seule raison : couplé avec le fait que je pouvais voir quels journaux avaient de nouveaux commentaires, je pouvais faire du suivi sur les journaux/dépêches déjà visités, le tout regroupé en un même endroit.
Je suis assez d'accord. Maintenant, j'estime que contrairement au lycée (où il faut être neutre à tout prix pour des raisons évidentes — même si c'est jamais totalement le cas, voire pas du tout parfois), à la fac un prof peut avoir un avis ouvertement « biaisé », tant que c'est clair qu'il ne s'agit que de son avis, et dans ce cas, orienter son discours en faveur des LL et donner les « bons » arguments. :)
Après bien sûr, il ne s'agirait pas de faire un cours de rhétorique sur comment convaincre son chef d'utiliser les LL, mais au final ça reviendrait au même.
« La seule chose que l'ingenieur a besoin c'est de comprendre la GPL. » Ça dépend. Par exemple, s'il s'agit seulement d'utilisation de logiciels, GPL/BSD/LGPL/CeCILL/whatever, du moment que ça garantit le droit d'utiliser le logiciel dans un contexte commercial, on s'en fout.
S'il s'agit de développement fait à partir d'une base logicielle libre sous GPL (ou LGPL), alors il vaut mieux en connaître les tenants et aboutissants dès le départ. Bref, l'important du point de vue ingénierie dans ce cas est la partie « légale ». Et c'est là que le côté « idéologique » (et « ethique ») peut faire surface, car du coup tu te retrouves à devoir expliquer que le soft, t'as les sources et tout, tu peux le modifier, ce qui te permet de le tailler comme il faut pour tes besoins, mais que si jamais tu le diffuses, tu dois fournir les sources à ceux à qui tu l'as diffusé.
Et ça, même si quelque part, je trouve ça parfaitement normal (dans le cas de LGPL/GPL), ben pas mal de gens en entreprise trouvent que ça l'est pas (normal). Après tout, OK, ils ont eu la base de code pour rien, ils ont « juste » eu à l'améliorer/la packager/rajouter un gros logo et ne rien toucher d'autre, alors pourquoi ils devraient rediffuser le fruit de leur dur labeur [1] à tout un chacun hein ? [2]
Je ne suis pas certain que faire une formation « pour » les logiciels libres en université soit le bon endroit, mais parler des différents modèles logiciels et de la façon dont les licences fonctionnent, etc., dans des cours de droit liés aux logiciels, oui, je pense que c'est une bonne idée.
Après, les modèles basés sur l'exploitation de logiciels libres ont suffisamment de différences avec les modèles traditionnels pour que là encore, quelques heures de cours pour expliquer les spécificités de chacun soient un plus. Expliquer en quoi la publication des modifications d'un soft libre peut aider tout le monde à mutualiser les coûts, par exemple, c'est quelque chose d'important. Expliquer que dans ce cas, si une boite veut faire de l'argent sur la solution logicielle qu'elle vend, il faudra faire dans le multi-licence, mais que ça a aussi ses pièges, c'est important aussi.
[1] Un consultant en pub/comm' payé 40 000€/mois, mais ça va, parce qu'il n'a travaillé qu'une semaine officiellement, donc on lui doit juste 10 000€.
[2] Et là aussi, il faut rappeler que ben non, le logo ils ont le copyright, et qu'il n'est pas sous (L)GPL...
Que dire alors des rushes d'un concert de Nine Inch Nails que Trent Reznor a diffusés sur le net ? 450Gio de données librement téléchargeables. Je suis un fan de NiN, et pour une fois dans ma vie, je peux avoir accès à tout ces trucs : il faut que je paie un machin pro ?
— sauvegarde automatique (incrémentale, dernière version sur disque dur externe, tous les jours, extinction du dit disque dur, envoi d’un mail de rapport
— actions diverses et variées après le démarrage du système, à la (dé)connexion réseau, sur des évènement ACPI, etc. (QoS, pare-feu, réglages du matériel)
C'est le genre de truc que tu établis une fois pour toutes, ou en tout cas que tu changes rarement. A-t-on vraiment besoin d'un script pour ça ? Ou plus exactement, en quoi scripter serait-il meilleur que clicouiller dans ce cas (à supposer que dans les deux cas on connaisse bien son système, les raccourcis clavier, etc, et que donc on ne perde pas de temps inutilement) ?
— surveillance de modifications sur des répertoires et des fichiers, scriptage pour des actions diverses et variées dont l’enregistrement d’un mail comme spam ou ham, surveillance de log pour bannir une IP et envoi d’un mail, et très prochainement je pense l’utiliser pour savoir quand faire une synchro. (j’aime beaucoup inotify, y’a un équivalent Win?) ;
Ça par contre je suis intéressé aussi de savoir comment on ferait ça sous Windows.
— actions diverses et variées après le démarrage du système, à la (dé)connexion réseau, sur des évènement ACPI, etc. (QoS, pare-feu, réglages du matériel) ;
— suivi du débit réseau.
Ça par contre, je suis quasiment certain que c'est possible en scriptant (sur NT4 la commande « net » était un peu la commande à tout faire pour pas mal de choses qui touchaient à ce dont tu parles). Il y a aussi tout un tas de répertoires/fichiers qui servent justement pour des « triggers » du même genre que ce que tu décris.
[1] En pratique, j'ai fait presque que ça sur cette news, tellement les gens ont montré une méconnaissance des systèmes Windows en général (et pourtant, je suis moi-même totalement has-been, mais les quelques heures de formation que j'ai eues y'a bientôt 10 ans sur NT4 m'ont bien montré que oui, on scripte grave sous Windows quand y'a besoin).
Bon, faut bien faire la distinction entre deux types d'admins Windows hein:
- les mecs qui ont appris à cliquer partout
- les informaticiens
La première catégorie se contente de savoir utiliser des outils tout clicka-convis. La deuxième a appris à programmer/scripter/etc., et utilise les outils adéquats pour faire des tâches d'admin. Donc comme je le disais avant, il est possible d'utiliser le shell pour scripter tout un tas de trucs depuis un moment (même si le shell de NT4/Win2K/WinXP est par défaut bien pourri), il est possible d'utiliser Perl et Python depuis au moins 10 ans sur Windows pour scripter plein de trucs, etc.
Les bons admins Windows (ceux que j'appelle « les informaticiens ») coûtent aussi cher que les admins UNIX, parce qu'on leur reconnaît les mêmes compétences (tant théoriques que pratiques), simplement sur des OS différents.
Je ne suis pas d'accord. Je comprends pourquoi une entreprise voudrait en général un truc efficace, le plus efficace, et tant pis si c'est propriétaire ou pas (à cause des coûts, de la disponibilité de support/main d'œuvre déjà qualifiée sur le marché, etc.).
Donc en bref : c'est toujours une question de court terme Vs moyen/long terme, de disponibilité de fonds, de compétences déjà présentes dans la boite, et aussi d'image de la boite.
Si une boite annonce « nous utilisons les logiciels libres parce que [raison X] et [raison Y] », tout en mettant l'accent sur le côté éthique/entraide, ça peut [1] en inciter certains à préférer les services de cette boite plutôt qu'une autre.
Enfin, oui, je suis d'accord, il ne faut pas être aveuglé par le « tout libre » dans une boite, parce que si tu utilises que tu logiciel libre mais que tu es dans un secteur mal desservi par celui-ci, ta boite sera peut-être 100% libre, mais sans doute aussi 100% morte au bout de quelques mois (sauf à avoir des mecs super forts qui codent les patches, les soumettent, font des rapports de bugs...). Cependant, il ne faut pas non plus tomber dans l'autre extrême en disant « le libre n'a pas sa place dans les boites, ailleurs que sur des serveurs [2] », car y'a tout un tas de logiciels libres parfaitement viables (sous win et linux) qui permettent de bosser correctement.
[1] Potentiellement hein, c'est comme pour le commerce équitable, tout le monde n'achète pas de café équitable, même si on lui explique à grands renforts de pub que vraiment, c'est plusse mieux.
[2] Spéciale casse-dédi à Zénitram, avec légère déformation/amplification/répétition de ses propos. ;-)
Là-dessus je suis tout à fait d'accord. J'avais eu droit à quelques heures de formation en admin sur NT4 (y'a maintenant un bail), et si on nous avait montré comment rajouté au cas par cas des utilisateurs en clicouillant, très vite, il s'agissait de savoir utiliser le shell (pourri à l'époque) pour rajouter directement des listes d'utilisateurs, en utilisant les bonnes commandes.
J'avais regardé le code source de Minix 3 à l'époque de sa sortie. Le code est très simple à comprendre. Une des raisons est entre autre l'absence de multithreading. Officiellement c'était parce que « personne ne les utilise sérieusement et efficacement de toute manière ».
Évidemment c'est une manière bien pratique de dire « nous n'avons pas eu le temps de les implémenter et ça va tout casser si c'est mal utilisé »... :-)
Mmmh non. Au départ on avait VisualAge par IBM (une belle merde). C'était gratuit (au moins pour la version Java), mais je ne suis pas certain que ça ait jamais été libre. Eclipse est arrivé plus tard.
L'auteur du journal a passé du temps pour la config aux petits oignons, et c'est bien ça qu'il manque à Linux pour supplanter le Windows aux petits oignons fournis (ou supposons que la vente liée soit éliminée: proposé) avec la machine.
Lorsque mes parents achètent un nouvel ordinateur, je me retrouve malgré tout à devoir leur configurer un minimum Windows. Pourquoi ?
- Parce qu'ils préfèrent de loin le Firefox que je leur ai installé, et qu'ils ont peur de tout casser s'ils l'installent eux-mêmes (bon, mon père a du apprendre tout seul du fait que j'étais pas dispo et désormais il a moins peur... mais tout de même);
- Parce qu'ils sont habitués au Thunderbird que j'ai installé, et qu'ils ne savent pas importer leurs mails d'un ordinateur à l'autre;
- Parce qu'ils ont besoin de VLC (car Windows Media Player plantouille de temps en temps, et du coup n'est pas fiable);
- Parce que certains softs pas libres et Windows-only ont besoin d'être installés.
Je sais qu'avec mon papounet d'amour, je pourrais (peut-être) réussir à lui apprendre à mettre les bons raccourcis où il veut (il a déjà essayé, avec des résultats variables, car il ne comprend pas parfaitement ce qui se passe avec la création des raccourcis). Avec ma mère c'est juste pas possible. Il lui faut tout noter pour tout logiciel, et pour toute manip' dudit logiciel.
Du coup il est bien plus simple de personnaliser le bureau du WinXP ou Win7 de mes parents, avec de bonnes grosses icones au milieu du bureau (pas sur la barre de lancement, les icones sont trop petites de toute manière, et mes parents sont encore tout confus quant aux fois où il faut simple-cliquer ou double-cliquer, et du coup ils double-cliquent par défaut).
Résultat: quand j'ai tenté l'expérience de mettre Linux sur feu l'ordinateur de mon père (une Ubuntu), comme les principaux logiciels utilisés sont les mêmes (FF,TB,VLC, et même OOo), il n'a pas trop eu de mal à s'adapter. Dommage que je n'aie pas eu le temps de réinstaller Linux sur leurs nouvelles machines, parce que ça m'a été réclamé (en dual boot).
Je ne parle pas de doc « complète » du soft; juste de doc en début de fonction et dans les parties critiques d'un code. Et comme les gens (surtout dans le libre) ont tendance à changer des trucs, ben si je change quelque chose dans le code, je dois prendre la peine de modifier les commentaires existants pour qu'ils reflètent le nouveau comportement.
Maintenant, ça n'empêche pas d'avoir quelqu'un d'autre proposant une doc de plus haut niveau, mais avoir le minimum vital à portée de clavier, ça aide quand même vachement beaucoup.
[^] # Re: Par pitie
Posté par lasher . En réponse au journal Du livre "Premiers cours de programmation en Scheme". Évalué à 2.
Alors d'une part, ça a déjà été dit, mais si on regarde Java et C#, de plus en plus de constructions venant des langages fonctionnels s'incrustent. La construction « foreach » (et ses variantes) vient directement des constructions type « mapcar » en Lisp par ex. Ensuite, Perl par exemple a, dès le début [1], proposé des constructions initialement inventées dans les langages fonctionnels (« mapcar » donc, mais aussi les fermetures transitives, etc.).
Mieux encore: il existe des langages dérivés du C (je pense notamment à Cilk et sa « suite » Cilk++) qui permettent la programmation parallèle en rajoutant un minimum de constructions au langage. Et devine quoi ? Ça passe principalement par la construction d'algos « divide-and-conquer » [2]. La notion de récursivité en algorithmique est essentielle, et même naturelle pour tout un tas de structures de données (je pense notamment aux arbres). Lisp, par exemple, permet (tout comme OCaml) de construire aussi bien des boucles que de faire de la récursion (Scheme est purement fonctionnel si je ne me trompe pas, donc le cas est un peu à part). L'important est de piger comment structurer sa pensée, décomposer une action complexe en actions élémentaires simples. Le langage ne changera rien à ça.
[1] Bon en fait non, mais au moins depuis Perl 5.x, et peut-être 4.x, si quelqu'un peut m'aider à retrouver les dates...
[2] désolé, je ne connais pas la formule adéquate en français — « diviser et conquérir » ? « dichotomique » ?
[^] # Re: Par pitie
Posté par lasher . En réponse au journal Du livre "Premiers cours de programmation en Scheme". Évalué à 7.
Je suis partagé en ce qui concerne le langage à utiliser pour un premier cours d'algo/programmation. Il y a quelques années, j'aurais sans doute dit comme toi: Python, Perl (oui je sais, plein de gens trouvent ça caca, mais moi j'aime), ou Ruby me semblaient de bons candidats. Et puis à partir de 2004-2005 y'a eu la petite révolution des architectures multicœur. Et depuis je me dis que l'important, ce serait plutôt, quel que soit le langage, de donner de bonnes bases d'algorithmique à tout le monde (au moins pour les algos « fondateurs »), de façon à ce que le programme soit relativement facilement parallélisable. Selon moi cela signifie aborder les algorithmes un peu différemment, et ça passe par des langages différents. Par exemple, à l'université de Rice (Houston, TX), ils utilisent un langage appelé CnC (Concurrent Collection), qui « découple » la description de l'algorithme (les étapes de calcul) et la programmation proprement dite de chaque étape. CnC est juste un langage de description qui rend explicite les dépendances de données entre les étapes d'un algorithme. Suivant l'implémentation faite de CnC (Intel a l'implémentation de référence, écrite en C++, et qui repose sur Threading Building Blocks; Rice a une implémentation en Java de CnC; il existe une implémentation pour Haskell; etc.), on doit écrire l'étape dans un langage impératif, de façon séquentielle. L'idée est de rendre correctement modulaire ses algorithmes, mais de ne pas utiliser de constructions parallèles explicites (seules les dépendances de données, de type producteur-consommateur, sont exprimées).
Du coup, l'expert dans un domaine (physique, bio, méca...) exprime son algo sous forme d'étapes, programme lesdites étapes dans un langage « séquentiel » (C/C++, Java, Haskell, ...), et plus tard, un expert en optimisation (un infoteux donc) pourra, s'il le faut, optimiser chaque étape, forcer un ordonnancement spécifique entre les étapes pour rendre l'application plus rapide, etc.
Évidemment, ça ne résout pas le problème de « quel langage séquentiel choisir », mais ça force à repenser l'enseignement-même de l'algorithmie. Concernant Scheme, LISP, etc., j'ai vu des linguistes aller de la linguistique pure vers la reconnaissance vocale (donc au départ, pas de formation informatique à proprement parler), etc., et user de combinaisons entre Java et LISP assez étranges, et ils ne s'en portaient pas plus mal. Je pense que le problème de LISP ou Scheme n'est pas le langage (et il faudrait arrêter un peu de se focaliser là-dessus); il s'agit plus de la manière dont le langage est enseigné. Quand j'ai lu que le bouquin dont il est question ici a été écrit par un agrégé de maths, je me suis dit « encore un bouquin qui ne servira qu'aux informaticiens/théoriciens ». Je pense que ça me plairait beaucoup comme bouquin hein, c'est juste que je pense que beaucoup de gens (infoteux compris) détestent la programmation fonctionnelle parce qu'elle est enseignée par des gens un chouïa trop matheux. Bien sûr, les langages fonctionnels ont une origine qui s'y prêtent, mais quand on y pense, Fortran aussi, et pourtant ...
Bref. L'auteur de ce journal n'avait visiblement pas l'étudiant moyen en tête lorsqu'il a écrit sa bafouille, et pensait clairement à un futur informaticien. Et dans ce cadre-là, je pense que ce genre de bouquin passe parfaitement.
[^] # Re: Par pitie
Posté par lasher . En réponse au journal Du livre "Premiers cours de programmation en Scheme". Évalué à 3.
Oui ben à ce propos. Justement, comme LISP, OCaml, et tout un tas de langages fonctionnels ne font pas partie des canons de l'industrie, on se retrouve avec des physiciens qui ne connaissent QUE Fortran et C++ et qui implémentent (avec moultes difficultés) des analyseurs syntaxiques et préprocesseurs pour des langages pour domaines spécialisés/spécifiques (DSL) plutôt que d'écouter un de mes anciens collègues qui se proposait de leur montrer comment implémenter simplement [1] les mêmes DSL en OCaml (qui pourtant est un langage qui s'y prêterait bien plus, tout comme LISP ou Scheme).
[1] Attention, « simplement » ne signifie pas que ça ne prend pas de temps à tester, valider, etc.
[^] # Re: et dans la lettre de motivation...
Posté par lasher . En réponse au journal Licence pro et stage ... :/. Évalué à 2.
Désolé, côte Est. Nous recherchons des stagiaires en compilation ou écriture de « runtime systems » (si quelqu'un a une bonne traduction à proposer, je suis preneur). Si tu penses que c'est dans tes cordes et que ça t'intéresse, tu peux me contacter en message privé.
[^] # Re: Humpf
Posté par lasher . En réponse à l’entrée du suivi plein d'erreur 500 ce matin. Évalué à 2 (+0/-0).
Yopla,
Je viens de tenter de poster un message (prévisualisation passée), et j'ai récupéré un code 500 en retour. :-/
[^] # Re: et dans la lettre de motivation...
Posté par lasher . En réponse au journal Licence pro et stage ... :/. Évalué à 10.
Oui enfin, là il me semble évident que le monsieur se permet d'être plus cool que pour une « vraie lettre de motivation qui lèche bien tout partout », car il sait qu'on est « entre nous ». Et je trouve ça très bien : si j'étais intéressé par ce genre de profil, je demanderais sans doute via message privé quelque chose de plus formel (pour pouvoir montrer à mes collègues non-geeks qui ont un pouvoir de décision pour ce genre de trucs).
Manque de bol, j'ai bien besoin de stagiaires pour cet été, mais je suis aux USA, et ce n'est absolument pas le profil que je recherche. :-/
[^] # Re: Durée de vie des OS
Posté par lasher . En réponse à la dépêche Petites brèves : RHEL 4.9, Scientific Linux 6.0 et CentOS 4.9. Évalué à 3.
Honnêtement je ne me souviens plus. Mais Wikipedia (EN) a une jolie entrée sur le sujet : Productivity paradox.
[^] # Re: Durée de vie des OS
Posté par lasher . En réponse à la dépêche Petites brèves : RHEL 4.9, Scientific Linux 6.0 et CentOS 4.9. Évalué à 4.
Je ne suis pas d'accord. Enfin, plus exactement, la notion de valeur ajoutée a parfaitement sa place. Je n'ai pas les études en tête, mais certains de mes profs de génie logiciel nous rappelaient en permanence 2 choses :
Maintenant je ne veux pas dire que l'informatique ne rend pas la vie plus pratique dans de nombreux domaines : certains problèmes ne peuvent être résolus dans un temps raisonnable qu'à l'aide d'outils informatique (je pense aux problèmes liés à l'ingénierie mécanique par exemple). Les réseaux sociaux (et parmi eux, je me permets d'inclure IRC comme étant le précurseur) ont développé tout un tas de possibilités d'interactions entre les gens (il suffit de bien choisir quel réseau nous convient, en fonction de ce que l'on cherche).
En fait je pense que là où l'informatique permet des « gains de productivité », c'est justement dans les domaines où l'on ne pouvait virtuellement rien faire avant que l'informatique existe (et où donc le gain de productivité est proche de l'infini).
¹ D'ailleurs, je crois bien qu'un journal sur linuxfr avait fini par déboucher sur un fil de discussion où il était question des gains illusoires en productivité apportés par l'informatique.
[^] # Re: Et pendant ce temps
Posté par lasher . En réponse au journal Numérobis : encore une révolution !. Évalué à 3.
Mon collègue passe son temps à faire des schémas pour expliquer les idées qu'il a sur sa tablette. On peut difficilement faire moins actif. Autant je doute fortement que la prise de note soit un jour aisé sur ce genre de trucs (mais bon, je peux me tromper), autant pour tout ce qui est dessin fait à la va-vite, c'est génial : si j'avais ce genre de trucs je pense que je ne passerais plus un temps fou à chercher où j'ai bien pu foutre ce !@#$ de schéma que j'avais fait sur un bloc-note (sauf qu'entre temps, j'ai rempli ledit bloc-notes, que mes dessins se mélangent avec d'autres notes de choses qui n'ont rien à voir, tout ça).
Bref, j'ai vu l'utilisation que certains en font, celle que moi j'en ai fait aussi, et je trouve ça plutôt cool. Couple ça avec le fait que nous passons notre temps à lire des PDF d'articles de recherche: entre 5 et 20 pages en moyenne (donc pas trop trop long, et supportable pour ce genre d'écrans), c'est vraiment pratique.
Maintenant, ça reste ce que j'appelle un « beau jouet » : c'est cool, c'est pratique, mais clairement pas indispensable.
[^] # Re: Marrant
Posté par lasher . En réponse au journal L'engagement de Red Hat envers l'open source. Évalué à 5.
CentOS ne fait absolument pas d'ombre à Red Hat. J'ai eu à installer certains softs pour mon ancien labo (softs proprios), qui, s'ils ne détectaient pas une Red Hat, refusaient purement et simplement de s'installer. Par paresse (j'aurais pu regarder dans les nombreux scripts d'install et tenter de changer certains trucs), j'ai préféré installer une CentOS. Après tout, j'allais avoir d'autres softs du même éditeur à installer, donc bon.
Maintenant, nous n'avions pas besoin de support. Ça tombe bien, CentOS n'en fournit pas. Si nous en avions eu besoin, nous aurions évidemment regardé du côté de Red Hat. Je vois vraiment CentOS comme une version stable (au sens de Debian) de Fedora. Puisque Red Hat ne la fournit plus, on la cherche ailleurs. :)
[^] # Re: lastseen
Posté par lasher . En réponse à la dépêche Nouvelle version de LinuxFr.org. Évalué à 5.
Salut,
Je me servais régulièrement de « lastseen » aussi, même avec mes visites quotidiennes, pour une seule raison : couplé avec le fait que je pouvais voir quels journaux avaient de nouveaux commentaires, je pouvais faire du suivi sur les journaux/dépêches déjà visités, le tout regroupé en un même endroit.
[^] # Re: regle ou exception
Posté par lasher . En réponse à la dépêche Les formations diplômantes en logiciel libre en 2011. Évalué à 2.
Après bien sûr, il ne s'agirait pas de faire un cours de rhétorique sur comment convaincre son chef d'utiliser les LL, mais au final ça reviendrait au même.
[^] # Re: regle ou exception
Posté par lasher . En réponse à la dépêche Les formations diplômantes en logiciel libre en 2011. Évalué à 1.
S'il s'agit de développement fait à partir d'une base logicielle libre sous GPL (ou LGPL), alors il vaut mieux en connaître les tenants et aboutissants dès le départ. Bref, l'important du point de vue ingénierie dans ce cas est la partie « légale ». Et c'est là que le côté « idéologique » (et « ethique ») peut faire surface, car du coup tu te retrouves à devoir expliquer que le soft, t'as les sources et tout, tu peux le modifier, ce qui te permet de le tailler comme il faut pour tes besoins, mais que si jamais tu le diffuses, tu dois fournir les sources à ceux à qui tu l'as diffusé.
Et ça, même si quelque part, je trouve ça parfaitement normal (dans le cas de LGPL/GPL), ben pas mal de gens en entreprise trouvent que ça l'est pas (normal). Après tout, OK, ils ont eu la base de code pour rien, ils ont « juste » eu à l'améliorer/la packager/rajouter un gros logo et ne rien toucher d'autre, alors pourquoi ils devraient rediffuser le fruit de leur dur labeur [1] à tout un chacun hein ? [2]
Je ne suis pas certain que faire une formation « pour » les logiciels libres en université soit le bon endroit, mais parler des différents modèles logiciels et de la façon dont les licences fonctionnent, etc., dans des cours de droit liés aux logiciels, oui, je pense que c'est une bonne idée.
Après, les modèles basés sur l'exploitation de logiciels libres ont suffisamment de différences avec les modèles traditionnels pour que là encore, quelques heures de cours pour expliquer les spécificités de chacun soient un plus. Expliquer en quoi la publication des modifications d'un soft libre peut aider tout le monde à mutualiser les coûts, par exemple, c'est quelque chose d'important. Expliquer que dans ce cas, si une boite veut faire de l'argent sur la solution logicielle qu'elle vend, il faudra faire dans le multi-licence, mais que ça a aussi ses pièges, c'est important aussi.
[1] Un consultant en pub/comm' payé 40 000€/mois, mais ça va, parce qu'il n'a travaillé qu'une semaine officiellement, donc on lui doit juste 10 000€.
[2] Et là aussi, il faut rappeler que ben non, le logo ils ont le copyright, et qu'il n'est pas sous (L)GPL...
[^] # Re: O Canada !
Posté par lasher . En réponse au journal Neutralité d'internet, téléscopage. Évalué à 5.
[^] # Re: Le troll deux-en-un
Posté par lasher . En réponse à la dépêche Les formations diplômantes en logiciel libre en 2011. Évalué à 3.
[^] # Re: Système réseau etc.
Posté par lasher . En réponse à la dépêche Les formations diplômantes en logiciel libre en 2011. Évalué à 3.
— sauvegarde automatique (incrémentale, dernière version sur disque dur externe, tous les jours, extinction du dit disque dur, envoi d’un mail de rapport
— actions diverses et variées après le démarrage du système, à la (dé)connexion réseau, sur des évènement ACPI, etc. (QoS, pare-feu, réglages du matériel)
C'est le genre de truc que tu établis une fois pour toutes, ou en tout cas que tu changes rarement. A-t-on vraiment besoin d'un script pour ça ? Ou plus exactement, en quoi scripter serait-il meilleur que clicouiller dans ce cas (à supposer que dans les deux cas on connaisse bien son système, les raccourcis clavier, etc, et que donc on ne perde pas de temps inutilement) ?
— surveillance de modifications sur des répertoires et des fichiers, scriptage pour des actions diverses et variées dont l’enregistrement d’un mail comme spam ou ham, surveillance de log pour bannir une IP et envoi d’un mail, et très prochainement je pense l’utiliser pour savoir quand faire une synchro. (j’aime beaucoup inotify, y’a un équivalent Win?) ;
Ça par contre je suis intéressé aussi de savoir comment on ferait ça sous Windows.
— actions diverses et variées après le démarrage du système, à la (dé)connexion réseau, sur des évènement ACPI, etc. (QoS, pare-feu, réglages du matériel) ;
— suivi du débit réseau.
Ça par contre, je suis quasiment certain que c'est possible en scriptant (sur NT4 la commande « net » était un peu la commande à tout faire pour pas mal de choses qui touchaient à ce dont tu parles). Il y a aussi tout un tas de répertoires/fichiers qui servent justement pour des « triggers » du même genre que ce que tu décris.
[1] En pratique, j'ai fait presque que ça sur cette news, tellement les gens ont montré une méconnaissance des systèmes Windows en général (et pourtant, je suis moi-même totalement has-been, mais les quelques heures de formation que j'ai eues y'a bientôt 10 ans sur NT4 m'ont bien montré que oui, on scripte grave sous Windows quand y'a besoin).
[^] # Re: Système réseau etc.
Posté par lasher . En réponse à la dépêche Les formations diplômantes en logiciel libre en 2011. Évalué à 3.
- les mecs qui ont appris à cliquer partout
- les informaticiens
La première catégorie se contente de savoir utiliser des outils tout clicka-convis. La deuxième a appris à programmer/scripter/etc., et utilise les outils adéquats pour faire des tâches d'admin. Donc comme je le disais avant, il est possible d'utiliser le shell pour scripter tout un tas de trucs depuis un moment (même si le shell de NT4/Win2K/WinXP est par défaut bien pourri), il est possible d'utiliser Perl et Python depuis au moins 10 ans sur Windows pour scripter plein de trucs, etc.
Les bons admins Windows (ceux que j'appelle « les informaticiens ») coûtent aussi cher que les admins UNIX, parce qu'on leur reconnaît les mêmes compétences (tant théoriques que pratiques), simplement sur des OS différents.
[^] # Re: regle ou exception
Posté par lasher . En réponse à la dépêche Les formations diplômantes en logiciel libre en 2011. Évalué à 4.
Donc en bref : c'est toujours une question de court terme Vs moyen/long terme, de disponibilité de fonds, de compétences déjà présentes dans la boite, et aussi d'image de la boite.
Si une boite annonce « nous utilisons les logiciels libres parce que [raison X] et [raison Y] », tout en mettant l'accent sur le côté éthique/entraide, ça peut [1] en inciter certains à préférer les services de cette boite plutôt qu'une autre.
Enfin, oui, je suis d'accord, il ne faut pas être aveuglé par le « tout libre » dans une boite, parce que si tu utilises que tu logiciel libre mais que tu es dans un secteur mal desservi par celui-ci, ta boite sera peut-être 100% libre, mais sans doute aussi 100% morte au bout de quelques mois (sauf à avoir des mecs super forts qui codent les patches, les soumettent, font des rapports de bugs...). Cependant, il ne faut pas non plus tomber dans l'autre extrême en disant « le libre n'a pas sa place dans les boites, ailleurs que sur des serveurs [2] », car y'a tout un tas de logiciels libres parfaitement viables (sous win et linux) qui permettent de bosser correctement.
[1] Potentiellement hein, c'est comme pour le commerce équitable, tout le monde n'achète pas de café équitable, même si on lui explique à grands renforts de pub que vraiment, c'est plusse mieux.
[2] Spéciale casse-dédi à Zénitram, avec légère déformation/amplification/répétition de ses propos. ;-)
[^] # Re: Système réseau etc.
Posté par lasher . En réponse à la dépêche Les formations diplômantes en logiciel libre en 2011. Évalué à 4.
[^] # Re: Minix
Posté par lasher . En réponse à la dépêche L'année 2010 du Hurd. Évalué à 3.
Évidemment c'est une manière bien pratique de dire « nous n'avons pas eu le temps de les implémenter et ça va tout casser si c'est mal utilisé »... :-)
[^] # Re: Minix
Posté par lasher . En réponse à la dépêche L'année 2010 du Hurd. Évalué à 1.
[^] # Re: Trac ?
Posté par lasher . En réponse à la dépêche ChiliProject: Redmine forké. Évalué à 1.
---> [ ]
[^] # Re: oui mais le logiciel privateur, c'est pareil
Posté par lasher . En réponse au journal It's a Long Way to the Top (If You Wanna Rock 'n' Roll). Évalué à 1.
[^] # Re: avocat du diable...
Posté par lasher . En réponse au journal GNU/Linux est-il prêt pour le grand-père?. Évalué à 2.
Lorsque mes parents achètent un nouvel ordinateur, je me retrouve malgré tout à devoir leur configurer un minimum Windows. Pourquoi ?
- Parce qu'ils préfèrent de loin le Firefox que je leur ai installé, et qu'ils ont peur de tout casser s'ils l'installent eux-mêmes (bon, mon père a du apprendre tout seul du fait que j'étais pas dispo et désormais il a moins peur... mais tout de même);
- Parce qu'ils sont habitués au Thunderbird que j'ai installé, et qu'ils ne savent pas importer leurs mails d'un ordinateur à l'autre;
- Parce qu'ils ont besoin de VLC (car Windows Media Player plantouille de temps en temps, et du coup n'est pas fiable);
- Parce que certains softs pas libres et Windows-only ont besoin d'être installés.
Je sais qu'avec mon papounet d'amour, je pourrais (peut-être) réussir à lui apprendre à mettre les bons raccourcis où il veut (il a déjà essayé, avec des résultats variables, car il ne comprend pas parfaitement ce qui se passe avec la création des raccourcis). Avec ma mère c'est juste pas possible. Il lui faut tout noter pour tout logiciel, et pour toute manip' dudit logiciel.
Du coup il est bien plus simple de personnaliser le bureau du WinXP ou Win7 de mes parents, avec de bonnes grosses icones au milieu du bureau (pas sur la barre de lancement, les icones sont trop petites de toute manière, et mes parents sont encore tout confus quant aux fois où il faut simple-cliquer ou double-cliquer, et du coup ils double-cliquent par défaut).
Résultat: quand j'ai tenté l'expérience de mettre Linux sur feu l'ordinateur de mon père (une Ubuntu), comme les principaux logiciels utilisés sont les mêmes (FF,TB,VLC, et même OOo), il n'a pas trop eu de mal à s'adapter. Dommage que je n'aie pas eu le temps de réinstaller Linux sur leurs nouvelles machines, parce que ça m'a été réclamé (en dual boot).
[^] # Re: En tant que BSDiste je me permets de participer au troll
Posté par lasher . En réponse au journal Linux ou POSIX ?. Évalué à 3.
Maintenant, ça n'empêche pas d'avoir quelqu'un d'autre proposant une doc de plus haut niveau, mais avoir le minimum vital à portée de clavier, ça aide quand même vachement beaucoup.