Langages de programmation – quelques liens
Cette page n'a (vraiment!) pas la prétention d'être exhaustive,
et liste un certain nombre de langages de programmation et de concepts leur
étant associés, qu'il s'agisse de projets expérimentaux
ou d'implémentations commerciales. Si vous êtes curieuses ou curieux...
Parmi les dossiers généraux, vous
trouverez des liens sur :
Il existe évidemment d'autres ressources dans Internet, dont le Dictionary
of Programming Languages disponible sur http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl,
et l'OverAPI (une collection de Cheat Sheets pour divers langages) sur
http://overapi.com/
Section « A »
Langages dans cette section : ActionScript,
Ada, Agda, Agenda,
قلب,
Algol 58,
Algol 60,
Algol 68,
Alice, AmbientTalk,
AMPL, ANI,
Ante, APL,
Arc, Arduino,
ArnoldC, ASP,
ASP .NET, Assembleur,
ATS, Avail, AWK, Axum
ActionScript
Auteur : Gary Grossman
Langage de scripting de la plateforme Flash. Dialecte de ECMAScript.
Ada
Auteur :
Jean
Ichbiah
Le langage Ada a été présenté comme le choix des
militaires et comme une solution pour joindre performance
et sécurité. Voir aussi le dialecte
Spark.
- Un Wiki sur ce langage : http://en.wikipedia.org/wiki/Ada_%28programming_language%29
- Standard officiel :
http://www.ada-auth.org/standards/
- Justification des choix faits :
- Le standard 2005 du langage est ratifié :
http://www.ada-europe.org/Ada_2005_Press_Release.pdf
- Interfaces abstraites en Ada : http://www.adacore.com/wp-content/files/attachments/ifaces_ae06.pdf
- Le retour d'Ada? http://gcn.com/articles/2008/04/11/the-return-of-ada.aspx
- écrire du logiciel sécuritaire : http://www.adacore.com/2008/04/08/gem-30/
- Rédaction de programmes à haute performance en Ada :
http://www.ddj.com/hpc-high-performance-computing/207800151
- L'histoire et le développement de ce langage : http://www.computerworld.com.au/article/223388/-z_programming_languages_ada
- Programmation
fonctionnelle en Ada : http://okasaki.blogspot.com/2008/07/functional-programming-inada.html
- En route vers Ada 2012 : http://www.ada-auth.org/standards/ada12.html
- Le compilateur Ada générant du code machine plus performant
que du code écrit manuellement en langage d'assemblage?
http://www.seas.gwu.edu/~adagroup/sigada-website/lawlis.html
- Ada est important, selon Robert Dewar en 2008 :
http://www.mil-embedded.com/articles/id/?3277
- Programmation concurrente avec
Ada, par Thomas Løcke en 2012 : http://blogs.fsfe.org/thomaslocke/2012/05/17/concurrent-ada-programming/
- Le standard ISO pour Ada 2012
est officiellement approuvé :
- L'évolution d'Ada, par Edmond Schonberg em 2013 :
http://electronicdesign.com/dev-tools/whats-difference-ada-then-and-now
-
Programmation par contrats avec Ada 2012, un
texte de Rober Dewar en 2013 :
http://www.drdobbs.com/architecture-and-design/ada-2012-ada-with-contracts/240150569
-
Il semble que le code de logiciels sur avions de Boeing soit essentiellement
écrit en Ada :
http://archive.adaic.com/projects/atwork/boeing.html
-
Site faisant la promotion d'Ada, et offrant divers ancrages pédagogiques :
http://getadanow.com/
-
Qui utilise Ada? Michael B. Feldman collige des cas d'utilisation en
2014 :
http://www.seas.gwu.edu/~mfeldman/ada-project-summary.html
-
Survol d'Ada 2012, par Benjamin M. Brosgol en
2012 :
http://cotsjournalonline.com/articles/view/102810
-
Gérer des objets persistantsà travers des références maison, texte de Maxim Reznik et Nicolas Setton en
2015 :
http://blog.adacore.com/use-ref-types-to-persistent-object
-
Ce qu'on peut apprendre d'Ada, selon Sean T. Allen en
2016 :
http://www.monkeysnatchbanana.com/2016/02/22/learning-from-ada/
-
Exemple de système temps réel
embarqué avec Ada, par Jorge Real en 2017 :
https://blog.adacore.com/writing-on-air
-
Aimer Ada pour son système de types, un texte de 2017
par Riccardo Bernardini :
https://dev.to/pinotattari/reasons-for-loving-ada-720
-
En 2018, Courtney E. Howard rapporte qu'Ada
demeure un langage prisé dans le monde de l'aérospatiale :
https://www.intelligent-aerospace.com/articles/2018/05/system-complexity-safety-security-drive-continued-adoption-of-ada-spark-in-aerospace-and-defense.html
-
En 2019, Steve Klabnik parle de son aventure
dans l'apprentissage d'Ada :
https://words.steveklabnik.com/learning-ada
-
Utiliser Ada pour développer du logiciel audio, article de
2017 par Gustavo Hoffmann et Raphaël Amiard :
https://www.electronicdesign.com/embedded-revolution/assessing-ada-language-audio-applications
-
Un programme Ada constituant une
preuve formelle d'une propriété mathématique, par Joffrey Huguet en
2019 :
https://blog.adacore.com/using-spark-to-prove-255-bit-integer-arithmetic-from-curve25519
-
Écrire un service REST
avec Ada, par Justin Grant en 2019 :
https://imagine27.com/rest-service-with-ada/
Agda
Auteur : Ulf Norel
Langage fonctionnel avec types dépendants,
qui ressemble un peu à un outil de démonstration de
preuves.
Agenda
Auteur : Alexander Walz
Langage de script et procédural
à vocation éducative.
قلب
Auteur : Ramsey Nasser
Un langage de programmation où les instructions s'expriment en calligraphie
arabe.
Algol 58
Auteurs : plusieurs, dont John
Backus, Peter
Naur et John McCarthy
Langage procédural, ancêtre du très important Algol 60.
Algol 60
Auteur : plusieurs, dont John
Backus,
C.A.R.
Hoare et Peter
Naur.
Le langage Algol 60, avec son descendant direct Algol 68,
est l'un des langages les plus importants de l'histoire. Sa notation inspire
encore celle du pseudocode utilisé aujourd'hui.
Algol 68
Auteurs : Adriaan van Wijngaarden (entre autres)
Le langage Algol 68, successeur d'Algol 60,
est l'un des langages ayant influencé une importante quantité
de langages contemporains. Certains ne jurent encore que par lui aujourd'hui...
Alice
Auteurs : Wanda Dann et Dennis Cosgrove
Langage proposant un environnement interactif 3D et susceptible de servir à
la fois à des fins éducatives et à
la génération d'animations.
AmbientTalk
Auteur : Tom Van Cutsem, Stijn Mostinckx, Jessie Dedecker et Wolfgang
De Meuter
Langage OO
axé vers la concurrence, la téléphonie mobile et
les réseaux de capteurs. Met de l'avant un paradigme de programmation
ambiante.
AMPL
Auteurs : Robert Fourer, David M. Gay et Brian
W. Kernighan
Langage de modélisation mathématique.
ANI
Auteur : Mark Henderson?
Langage axé sur la multiprogrammation,
au sens où les programmeurs ne séquencent pas explicitement leur
code (le compilateur le fait). Les objets y communiquent à travers des
tuyaux (Pipes), ce qui provoque un séquencement, mais outre
cela, deux énoncés distincts y sont présumés exécutables
en parallèle.
Ante
Auteur : J. Fecher?
Langage
fonctionnel qui se dit « de bas niveau ».
APL
Auteur : Kenneth
E. Iverson.
Langage de programmation axé sur le traitement de tableaux et reposant
sur une notation mathématique (on y programmait avec un clavier spécial).
Ce langage est important sur le plan de l'intérêt historique. Son
nom signifie littéralement A Programming Language.
- Le volume séminal, par l'auteur lui-même : http://www.jsoftware.com/papers/APL.htm
- http://en.wikipedia.org/wiki/APL_%28programming_language%29
- http://groups.engin.umd.umich.edu/CIS/course.des/cis400/apl/apl.html
- Compilateurs gratuits : http://www.thefreecountry.com/compilers/apl.shtml
- Guide de programmation (de 1978) : http://www.bitsavers.org/pdf/ibm/apl/G320-6103-0_APL_Programming_Guide_May78.pdf
- http://arcanesentiment.blogspot.com/2010/12/whats-so-cool-about-apl.html
- Une histoire d'APL, par Len Shustek en 2012 :
http://www.computerhistory.org/atchm/the-apl-programming-language-source-code/
- Les qualités d'APL, mises en relief par Scott Locklin en
2013 :
http://scottlocklin.wordpress.com/2013/07/28/ruins-of-forgotten-empires-apl-languages/
- Implémentation GNU d'APL :
http://www.gnu.org/software/apl/
- Le compilateur APEX :
http://www.snakeisland.com/apexup.htm
- Compilateur APL vers C# :
http://sharparrays.com/toolkit.htm
- Le langage APL et son rôle dans l'introduction de divers symboles, un
texte de John D. Cook en 2014 :
http://www.johndcook.com/symbols/2014/02/apl/
- APL, c'est un peu le bonheur, selon Bernard Legrand (traduit par Sylvia Camacho) en 2006 :
http://archive.vector.org.uk/art10011550
- Apprendre APL en dix minutes (!), par Yan Cui en
2015 :
http://theburningmonk.com/2015/06/fear-and-loathing-with-apl/
- Le jeu de la vie en APL? Simple :
https://twitter.com/seesharp/status/69537417250816409
- Ensemble d'idiomes avec APL, colligés en 1987 par
Alan J. Perlis et Spencer Rugaber :
http://cpsc.yale.edu/sites/default/files/files/tr87.pdf
- Ne pas avoir peur d'APL, texte de 2015 par Yan
Cui :
https://theburningmonk.com/2015/06/fear-and-loathing-with-apl/
- Schémas de
conception avec APL, présentation d'Aaron Hsu en 2017 :
https://sway.com/b1pRwmzuGjqB30On
- Débuter avec APL, un texte de 2017 par Aaron
W. Shu :
https://www.sacrideo.us/getting-started-with-apl/
- En 2018, Oleksandr Kaleniuk fait un plaidoyer pour une
renaissance d'APL :
http://wordsandbuttons.online/apl_deserves_its_renaissance_too.html
- Texte de 2020 par Aaron W. Hsu, qui se demande
si APL et mort... et pense que non, mais qu'on est passé près du trépas :
https://www.sacrideo.us/is-apl-dead/
- En 1982, Michael S. Montalbano donne sa vision personnelle de l'histoire du langage APL (accompagné de compléments d'information par
Curtis A. Jones en 2013) :
https://ed-thelen.org/comp-hist/APL-hist.html
Arc
Vous pouvez l'essayer en ligne
Le Arc
Challenge met de l'avant un problème associé au Web
et y demande une solution simple à l'aide d'un langage choisi par celles
et ceux qui souhaitent relever le défi.
Parmi les solutions proposées, on trouve :
Auteurs : Paul
Graham et Robert Morris
Langage fonctionnel, dialecte de Lisp. On lui associe
le Arc Challenge (voir l'encadré) que cherchent à relever
des programmeurs sur différentes plateformes et avec divers outils.
Arduino
Auteur : Tom Igoe
Un langage destiné principalement aux microcontrôleurs.
Histoire et culture du Arduino :
ArnoldC
Auteur : Lauri Hartikka
Si vous avez toujours voulu un programme dont le ton est viril...
ASP
Auteur : plusieurs personnes.
Langage utilisé dans Internet pour la génération de pages,
principalement côté serveur. On lui préfère maintenant
ASP .NET.
Auteur : Scott Guthrie
Langage utilisé dans Internet pour la génération de pages,
principalement côté serveur. A remplacé ASP.
Technique :
Assembleur
Plus un concept qu'un langage, donc voir ici.
ATS
Auteurs : plusieurs personnes
Un langage multi-paradigme, avec une syntaxe semblable à celle des langages
fonctionnels, qui met l'accent sur son système de types.
Avail
Auteurs : l'équipe décrite sur
http://www.availlang.org/about-us/team/index.html
Langage multiparadigme voué à la « programmation articulée ».
AWK
Auteurs : Alfred V. Aho, Peter Weinberg, Brian
W. Kernighan (le nom du langage provient des noms de ses auteurs)
Un langage orienté vers la transformation de chaînes de caractères.
Axum
Auteur : plusieurs personnes.
Langage compilé pour une machine virtuelle
et mettant l'accent sur la multiprogrammation.
Section « B »
Langages dans cette section : B,
Bard, Bash, Basic,
BCPL,
Beef,
Befunge,
BitC, Blockly,
Bloom, bodyfuck, Bondi, Boo,
Boomerang, Boose,
Bosque,
Braid,
Brain,
brainfuck, BrainLess,
BS
B
Auteur : Ken
Thompson (on lui associe aussi Dennis
M. Ritchie)
Le langage B est un ancêtre du très important langage
C, donc de plusieurs autres langages listés sur cette page.
Bard
Auteur : Mikel Evins
Langage qui semble s'apparenter à Clojure
entre autres choses (on n'en sait que peu à son sujet pour le moment).
Bash
Auteur : Brian Fox (mais Chet Ramey en assure l'entretien)
Langage de script et interpréteur de commandes (Shell) bien
connu dans le monde Unix et Linux.
- http://www.computerworld.com.au/article/222764/a-z_programming_languages_bash_bourne-again_shell/
- http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29
- En 2014, Maarten Billemont propose un guide pour bash :
http://guide.bash.academy/
- http://symkat.com/90/understanding-bash-history/
- http://mywiki.wooledge.org/BashPitfalls
- http://rawsyntax.com/post/8778534130/learn-bash-remove-commands-from-your-history
- Les bases :
- Ce que tous les programmeurs bash devraient savoir, de l'avis de Robin Houston
en 2012 : http://bosker.wordpress.com/2012/02/12/bash-scripters-beware-of-the-cdpath/
- Calculs numériques avec bash, selon Mark Dominus en
2012 : http://blog.plover.com/prog/spark.html
- Un Cheat Sheet pour la commande history :
http://www.catonmat.net/download/bash-history-cheat-sheet.pdf
- En 2012, quelques commandes que Russell Power aurait aimé
connaître plus tôt dans sa carrière :
http://rjpower.org/wordpress/bash-isms-i-wish-i-knew-earlier/
- Faire en sorte que bash affiche le résultat de la plus récente commande
exécutée, texte de 2013 :
http://david.newgas.net/return_code/
- Quelques pièges de bash :
http://bash.cumulonim.biz/BashPitfalls.html
- Améliorer son expérience avec bash, par Robert
Muth en 2012 :
http://robertmuth.blogspot.ca/2012/08/better-bash-scripting-in-15-minutes.html
- Programmation défensive avec bash, par Kfir Lavi en
2012 :
http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/
- Un script qui se modifie lui-même avec bash,
par Robert Copelard en 2012 :
http://bobcopeland.com/blog/2012/10/goto-in-bash/
- Coup d'éclat en 2016, à partir de quand
Microsoft Windows 10 intégrera
bash de manière native :
- Écrire un
service Web avec bash, par Henry Snopek en
2017 :
https://hackernoon.com/a-web-service-written-in-pure-bash-2af847902df1
- La commande history de bash, expliquée par Kaitlyn Parkhurst en 2011 :
http://www.symkat.com/understanding-bash-history
- En 2017, Julia Evans donne quelques trucs pour ne pas se mettre dans le
pétrin avec bash :
http://jvns.ca/blog/2017/03/26/bash-quirks/
Basic
Auteurs : John George Kemeny et Thomas Eugene Kurtz
Langage impératif qui se voulait
suffisamment simple pour être appris et utilisé par des débutants.
Plusieurs dialectes en ont été dérivés au fil des
années, dont Small Basic : http://msdn.microsoft.com/en-us/beginner/ff384126.aspx
BCPL
Auteur :
Martin Richards
Langage impératif ayant entre autrs l'insigne honneur d'être l'ancêtre direct
du langage B, et donc d'être l'ancêtre indirect du langage
C.
Beef
Auteur : BeefDev?
Langage compilé en code natif, inspiré de C#,
qui vise à intégrer vitesse et saine gestion de la mémoire.
Befunge
Auteur : Chris Sperrey
Langage étrange, construit de manière à être aussi difficile à compiler que
possible. Version
impérative de
Flobnar
BitC
Auteurs : Jonathan Shapiro, Swaroop Sridhar et M. Scott Doerrie
Langage fonctionnel supportant la
mutabilité des états, capable de programmation système,
syntaxiquement semblable à Scheme et pour
lequel certaines caractéristiques peuvent être formellement vérifiées.
Blockly
Auteur : Neil Fraser
Langage avec lequel on programme en assemblant des structures de contrôle
sous la forme de pièces de casse-tête.
Bloom
Auteur : Joseph M. Hellerstein (je pense)
Langage qui met de l'avant la conjecture
CALM, ou Consistency as Logicial Monotonicity.
bodyfuck
Auteur : Nik Hanselmann
Langage de programmation gestuel implémentant
brainfuck par une sorte de danse. Sérieusement.
Bondi
Auteur : Barry Jay
Langage mettant l'accent sur le Pattern Matching.
Boo
Auteur : Rodrigo B. De Oliveira
Langage OO
compilé pour une machine virtuelle
et mettant l'accent sur la possibilité de procéder par Duck
Typing.
Boomerang
Auteur : Benjamin
C. Pierce
Un langage bidirectionnel de traitement de données textuelles ad
hoc, à partir de lentilles... (voir aussi Harmony)
Boose
Auteur : pas clair... Bjarne
Stroustrup? Herb
Sutter?
Un dérivé de C++... disons (portez attention à la date
de publication de l'article).
Bosque
Auteur : Mark Marron
Langage
fonctionnel, inspiré de TypeScript
et de ML, qui cherche à éviter la complexité qui,
selon ses auteurs, découle de reliquats de
programmation impérative (p. ex. : les répétitives, les états mutables).
Braid
Auteur : Josh Sharp
Langage qui ressemble syntaxiquement à Reason,
mais transpile à du code Go
Brain
Auteur : Luiz Fernando Peres
Un langage ésotérique basé sur brainfuck
brainfuck
Auteur : Urban Müller.
Un langage de programmation étrange,
très minimaliste, qui ne comprend que huit instructions (des symboles
de ponctuation).
- http://en.wikipedia.org/wiki/Brainfuck
- brainfuck serait inspiré d'un langage nommé P''. Pour des détails, voir ce
texte de 2016 par Andrew Buntine :
https://dev.to/buntine/p---the-original-brainfck-and-mother-of-the-turing-tarpits
- Un compilateur brainfuck rédigé...
en brainfuck : http://code.google.com/p/awib/
- Le jeu de
la vie, écrit en brainfuck : http://www.linusakesson.net/programming/brainfuck/
- awib, un compilateur
brainfuck écrit en brainfuck... http://awibiswritteninbrainfuck.blogspot.com/2010/04/announcing-awib-02.html
- Un interpréteur brainfuck en deux lignes
de code C : http://j.mearie.org/post/1181041789/brainfuck-interpreter-in-2-lines-of-c
- Un compilateur juste à temps pour brainfuck en C, expliqué en
détail, par Erik Dubbelboer en 2012 :
http://blog.dubbelboer.com/2012/11/18/brainfuck-jit.html
- Un interpréteur brainfuck construit à l'aide du préprocesseur du langage
C, par Ferdinand Bachmann :
https://github.com/Ferdi265/preprocessor_brainfuck
- Machine de Turing en brainfuck : http://work.damow.net/random/bf-turing/
- Interpréteur brainfuck écrit en brainfuck, par Mavek :
https://github.com/maviek/bfbf
- S'amuser avec brainfuck en attendant l'avion : un interpréteur
brainfuck en Python, texte de Iddo Friedberg
en 2011 : http://bytesizebio.net/index.php/2011/11/06/brainfk-while-waiting-for-a-flight/
- De la stéganographie avec brainfuck, par Imran Nazar en
2011 : http://imrannazar.com/Steganography-with-Brainfuck
- Sémantique de module avec brainfuck, par Matías Giovanni en 2011 :
http://alaska-kamtchatka.blogspot.com/2011/11/modular-semantics-for-brainfuck.html
- compilateur
brainfuck pour LLVM, par
Jeremy Roman en 2012 :
http://www.jeremyroman.com/2012/12/11/building-a-brainfuck-compiler-with-llvm
- Un processeur microprogrammé en brainfuck, par Gergő érdi en 2013 :
http://gergo.erdi.hu/blog/2013-01-19-a_brainfuck_cpu_in_fpga/
- En 2013, Kory Becker décrit un programme qui apprend à programmer, qui dont les
programmes générés sont en brainfuck :
http://www.primaryobjects.com/CMS/Article149.aspx
- Développer un environnement de développement pour brainfuck, texte de Stephen Malone en 2013 :
http://malone.cc/posts/lhbs_1.html
- Implémenter brainfuck par
métaprogrammation avec des
templates de
C++, par
Michael Speer en 2013 :
https://github.com/knome/metabrainfuck/blob/master/bf.cpp
- Un ordinateur implémentant brainfuck (à bas prix!), par
Johan von Konow en 2013 :
http://vonkonow.com/wordpress/2013/09/my-first-brainfuck-computer/
- Compiler du code brainfuck en code Java...
avec un programme brainfuck (avec awib – voir plus haut), texte de Mats Linander en 2014 :
http://www.hakkalabs.co/articles/compiling-brainfuck-to-java-in-brainfuck
- Les structures de contrôle en brainfuck, expliquées par Mats Linander en
2016 :
http://calmerthanyouare.org/2016/01/14/control-flow-in-brainfuck.html
- Proposition d'extension de brainfuck à un nombre plus élevé de dimensions,
par Dagan Martinez :
https://github.com/Property404/hdbf
- Un ordinateur conçu spécifiquement pour brainfuck, par Sang-Woo Jun en 2016 :
http://people.csail.mit.edu/wjun/papers/sigtbd16.pdf
- Introduction à brainfuck, proposée par Raphael Boukara en
2016 :
http://blog.klipse.tech/brainfuck/2016/12/17/brainfuck.html
- Le dialecte SBrain, par Leo Tindall, augmente le vocabulaire pour le
moins restreint de brainfuck, le faisant passert de huit à
32 symboles, pour faciliter l'écriture d'algorithmes génétiques :
https://silverwingedseraph.net/programming/2017/04/16/sbrain-an-extension-of-brainfzck.html
- Texte de 2020 où Kirill (je ne connais pas son
nom de famille) explique qu'il a en quelque sorte appris le langage
d'assemblage en écrivant des compilateurs brainfuck :
https://github.com/pretzelhammer/rust-blog/blob/master/posts/too-many-brainfuck-compilers.md
BrainLess
Auteur : Shakti Misra
Langage résultant d'une explication par son auteur du processus de développement
d'un langage de programmation simple.
BS
Auteur : Mark Rendle
Langage étrange qui a été conçu explicitement pour rendre difficile la
tâche de programmer.
Section « C »
Langages dans cette section : C,
Caja, Caml,
Carbon, Carnap,
Carp,
Céu,
Ceylon, Chapel, Chicken, Church, Circa,
Circle,
Citrine,
Clay, Clean, Clojure,
ClojureScript,
Cobalt, COBOL,
Cobra, Coconut, CoffeeScript,
Common Lisp, Compute,
Converge,
Copper,
Coq, CPC,
Crack, Cryptol,
Crystal,
CSP, Cx,
Cyclone, C!, C#,
Cω, C++,
C+=, C--
C
Auteur : Dennis
M. Ritchie (on lui associe aussi Brian
W. Kernighan)
Le langage C est l'un des plus importants langages de programmation, sur le
plan historique comme au quotidien. Certains prétendent que, pour prétendre
savoir programmer, il faut savoir programmer en C. Simple, sans filet, fortement
répandu (entre autres dû à ses liens avec Unix),
c'est sans doute le Lingua Franca des langages de programmation.
J'ai localisé la plupart des liens sur ce langage dans une section à part
entière :
Caja
Auteur : Mark S. Miller
Langage permettant de sécuriser le code JavaScript.
Caml
Auteur : gens de l'INRIA?
Langage multiparadigmatique. On connaît surtout OCaml.
Carbon
Auteur :
Chandler Carruth,
Richard Smith et Kate Gregory (entre autres)
Langage qui se présente comme un successeur expérimental possible à
C++, sur le plan technique comme sur le plan
de la gouvernance.
Carnap
Auteur : à vérifier
Le lien ne répondait pas aux dernières nouvelles : http://www.carnap.info/
Carp
Auteur : Erik Svedäng
Variante syntaxique de Lisp avec gestion
manuelle de la mémoire et des copies d'objets
Céu
Auteur : Francisco Sant'Anna
Langage qui vise à permettre la programmation réactive, synchrone et
structurée.
Ceylon
Auteur :
Gavin King
Un langage compilé pour la JVM
et qui met l'accent sur le développement par équipe.
Chapel
Auteur : Bradford L. Chamberlain (je pense)
Langage mettant l'accent sur le parallélisme
Chicken
Auteur : Torbjörn Söderstedt
Langage de programmation étrange, où tout se programme à l'aide d'un seul
mot... Le mot chicken. Sans blagues.
Church
Auteurs : Noah D. Goodman, Vikash K. Mansinghka, Daniel M. Roy, Keith
Bonawitz et Joshua B. Tenenbaum
Langage de
programmation probabiliste.
Circa
Auteur : Andrew Fischer
Langage mettant l'accent sur la rétroaction immédiate dans le
développement de jeux, et plus généralement sur le Live
Coding..
Circle
Auteur : Sean Bax
Langage basé sur C++, mais avec un mécanisme
@meta pour faire en sorte que certaines instructions soient exécutées à
la compilation. Le nom du langage vient d'ailleurs du symbole
@ qui y évoque... un cercle
Citrine
Auteur : Gabor de Mooij
Langage OO
inspiré syntaxiquement de Smalltalk,
et mettant l'accent sur la lisibilité des sources, dans l'optique d'en
faciliter l'entretien à moyen et à long terme.
Clay
Auteur : KS Sreeram
Langage mettant l'accent sur la généricité.
Clean
Auteur : plusieurs individus.
Langage fonctionnel qu'on compare
à Haskell.
Clojure
Auteur : Rich
Hickey.
Langage
fonctionnel et dynamique,
syntaxiquement inspiré de Lisp, et
s'exécutant sur la JVM et
sur le CLR.
Pédagogie et essentiels :
- http://clojure.org/
- http://groups.google.com/group/clojure
-
http://aphyr.com/posts/301-clojure-from-the-ground-up-welcome
- Apprendre Clojure en quinze minutes... Peut-être, du moins... Par Adam
Bard en 2013 :
http://adambard.com/blog/clojure-in-15-minutes/
-
http://clojure-doc.org/articles/tutorials/introduction.html
- Clojure pour débutant(e)s :
http://www.braveclojure.com/
- Un Cheat Sheet : http://clojure.org/cheatsheet
- http://www.fogus.me/static/preso/clj1.1+/
- http://github.com/richhickey/clojure-clr
- Réécrire Clojure en Clojure : http://blog.n01se.net/?p=41
- http://clojuredocs.org/quickref/Clojure%20Core
- http://blog.fogus.me/2011/03/07/the-joy-of-the-joy-of-clojure/
- http://fronx.posterous.com/how-to-learn-clojure-effectively
- http://blog.fogus.me/2011/10/14/why-clojure-doesnt-need-invokedynamic-but-it-might-be-nice/
- http://blog.carbonfive.com/2011/10/20/up-and-running-with-clojure/
- http://tech.puredanger.com/2011/10/20/real-world-clojure/
- De l'avis de Rich
Hickey lui-même, le futur de Clojure se situerait dans le développement
mobile, du moins si on se fie à cette entrevue de
2012 : http://www.infoworld.com/d/application-development/clojure-inventor-hickey-now-aims-android-189105
- Un tutoriel pour Clojure, destiné aux programmeurs qui ne connaissent
que peu ou pas Lisp, par Moxley Stratton en
2012 : http://moxleystratton.com/clojure/clojure-tutorial-for-the-non-lisp-programmer
- Présentation de Clojure par Andrew Jones en
2012 : http://www.andrewhjon.es/142343729
- Projet de documentation par la communauté :
http://clojure-doc.org/
- En 2013, Vsevolod Dyomkin écrit sur Clojure et la complexité (entre autres sujets) :
http://lisp-univ-etc.blogspot.kr/2011/11/clojure-complexity.html
- Réécriture du classique
Structure and
Interpretation of Computer Programs en Clojure :
http://sicpinclojure.com/
- Apprendre Clojure lorsqu'on sait déjà programmer à l'aide de quelques
autres langages, un texte de Michael Dippery en 2014 :
http://monkey-robot.com/2014/05/clojure-a-retrospective/
- Selon Dmitri Sotnikov en 2014, la principale difficulté de
la programmation avec Clojure est le besoin de trouver de nouvelles manières
de résoudre des problèmes :
http://yogthos.github.io/ClojureDistilled.html
- En 2015, Julian Gamble explique pourquoi,
selon lui, vous devriez utiliser Clojure :
http://www.informit.com/articles/article.aspx?p=2464444
Code « performant » :
Critiques :
Idées et opinions générales :
- http://thecleancoder.blogspot.com/2010/08/why-clojure.html
- http://groups.google.com/group/clojure/browse_thread/thread/ffcd4bc722852b4?hl=en
- http://wiki.jvmlangsummit.com/Clojure_Keynote
- http://www.tbray.org/ongoing/When/200x/2009/12/01/Clojure-Theses
- http://tech.puredanger.com/2010/12/31/a-year-of-clojure/
- http://ericlavigne.wordpress.com/2011/01/30/a-tour-of-the-clojure-landscape/
- http://batsov.com/Clojure/Java/2011/05/12/jvm-langs-clojure.html
- Introduire Clojure dans une entreprise : http://oobaloo.co.uk/introducing-clojure-to-an-organisation
- Ajouter un système de types optionnel à Clojure :
- Selon Michael O. Church en 2013, Clojure serait un très bon langage de type JFDI
(Just
F***ing Do It) :
https://docs.google.com/presentation/d/15-7qFy6URdE7Owi2LitkQI_OHBu1AFWPUwHxgBc-O4E/
- En 2014, Eric Normand indique que Clojure est
plus
impératif que
déclaratif :
http://www.lispcast.com/clojure-is-imperative
- Adam Bard, dans ce teste de 2014, se dit
d'avis que programmer avec Clojure n'est pas réservé aux génies :
http://adambard.com/blog/clojure-is-not-for-geniuses/
- Texte de 2015 expliquant pourquoi l'auteur
privilégie Clojure, malgré un préjugé a priori défavorable envers
Lisp :
http://blog.venanti.us/why-clojure/
- En 2015, Steve Shogren présente six raisons « inhabituelles » pour lesquelles Clojure est un délice à ses yeux :
http://deliberate-software.com/unusual-reasons-why-clojure-is-a-delight/
- Clojure est-il en mesure de tenir la route sous pression? En
2015, Marc Phillips explique que Walmart utilise Clojure et que ça se
passe très bien, même lors d'un
Black Friday :
http://blog.cognitect.com/blog/2015/6/30/walmart-runs-clojure-at-scale
- À propos de la beauté de Clojure, texte de 2015
par Owen Rees-Hayward :
http://owenrh.me.uk/blog/2015/08/24/
- Écrire du code Clojure qui soit moins rebutant, un texte sur la
refactorisation patr Adam Bard en 2015 :
http://adambard.com/blog/write-friendlier-clojure/
- Comment lire du code écrit en Clojure, selon Ricardo J. Méndez en 2017 :
http://numergent.com/2017-01/Reading-Clojure.html
- En 2017, Nicholas Bardy explique pourquoi il fait le choix de Clojure :
http://lambdafunk.com/2017-01-31-why-clojure/
- Texte de 2017 dans lequel Sean Walker présente
ce qu'il décrit comme un « monolithe majestueux » en Clojure :
https://medium.com/@swlkr/a-majestic-monolith-in-clojure-38097e35f03d
Technique :
- Organisation d'un projet de développement avec Clojure, par Kyle Kingsbury en 2014 :
http://aphyr.com/posts/311-clojure-from-the-ground-up-logistics
- Les entrées/ sorties avec Clojure : http://nakkaya.com/2010/06/15/clojure-io-cookbook/
- Des acteurs
en Clojure?
- http://gregslepak.posterous.com/clojures-n00b-attraction-problem
- http://programmingzen.com/2010/07/09/thoughts-on-clojure/
- Développer et déployer une petite
application Web : http://mmcgrana.github.com/2010/07/develop-deploy-clojure-web-applications.html
- http://blog.jayfields.com/2010/07/clojure-destructuring.html
- Trampolines et Clojure : http://groups.google.com/group/clojure/browse_frm/thread/6257cbc4454bcb85/7d5fd827cd549080#7d5fd827cd549080
- Créer des archives JAR exécutables
pour Clojure : http://asymmetrical-view.com/2009/06/22/executable-clojure-jars.html
- Les vertus de la paresse : http://debasishg.blogspot.com/2010/05/laziness-in-clojure-some-thoughts.html
- Les collections : http://www.infoq.com/articles/in-depth-look-clojure-collections
- Clojure et les états : http://clojure.org/state
- Clojure et les transitoires : http://clojure.org/transients
- Clojure et la validation, par Logan Campbell en 2013 :
http://logaan.github.io/clojure/validations/vlad/2013/11/25/what-to-look-for-in-validations.html
- Clojure et les protocoles :
- Implémenter A*
en Clojure : http://clj-me.cgrand.net/2010/09/04/a-in-clojure/
- http://blog.fogus.me/2010/09/28/thrush-in-clojure-redux/
- http://cleancode.se/2010/10/17/what-is-clojure-good-at.html
- http://cemerick.com/2010/11/02/continuous-deployment-of-clojure-web-applications/
- http://www.learningclojure.com/2011/02/advice-to-newbie.html
- http://blog.jayfields.com/2011/02/clojure-truthy-and-falsey.html
- Configurer la journalisation avec Clojure : http://blog.malcolmsparks.com/?p=37
- Réduction d'arité (catamorphisme)
avec Clojure : http://blog.darevay.com/2011/08/briefly-the-arity-reduce-pattern-in-clojure/
- Clojure et les macros :
- Résoudre ce qu'on nomme l'Expression
Problem en Clojure, selon Stuart Sierra en 2010 :
http://www.ibm.com/developerworks/java/library/j-clojure-protocols/
- En 2011, Chris McBride discute des portées
dynamiques et lexicales en Clojure : http://info.rjmetrics.com/blog/bid/51652/Lexical-vs-Dynamic-Scope-in-Clojure
- Texte de 2010 listant sept règles à
suivre pour programmer en Clojure : http://twoguysarguing.wordpress.com/2010/07/26/7-rules-for-writing-clojure-programs/
- Utiliser Clojure avec Swing, un texte de Stuart Sierra en
2010 : http://stuartsierra.com/2010/01/06/heating-up-clojure-swing
- Les automates sous-jacents à core.async, décrit et exploré par Huey Petersen
en 2013 :
http://hueypetersen.com/posts/2013/08/02/the-state-machines-of-core-async/
- Clojure et les refs, pour les cas où le
programme requiert de multiples identités pour une même entité, par Scott Feeney en
2014 :
https://scott.mn/2014/02/09/playing_with_refs/
- Structures de données en Clojure :
- Décompiler un programme Clojure, par Guillermo Winkler en
2014 :
http://blog.guillermowinkler.com/blog/2014/04/13/decompiling-clojure-i/
- La réification avec Clojure, par Eric Normand en
2014 :
http://www.lispcast.com/reification
- Transducteurs :
- Construire des services à grande échelle avec Clojure, par Joseph Wilk en
2014 :
http://blog.josephwilk.net/clojure/building-clojure-services-at-scale.html
- Programmer en Clojure avec des entités mutables, les transients,
selon Jean Niklas L'orange :
http://hypirion.com/musings/understanding-clojure-transients
- En 2013, Michael O. Church affirme que Clojure
va outrepasser les frontières de la JVM et du « simple » langage de programmation :
http://michaelochurch.wordpress.com/2013/08/07/why-clojure-will-win/
- Explication du démarrage d'un projet avec Clojure, par Carin Meier en
2015 :
https://howistart.org/posts/clojure/1
- Les bons côtés / les saines pratiques avec Clojure, par Allen Rohner en
2016 :
https://rasterize.io/blog/clojure-the-good-parts.html
- L'implémentation Clojerl, qui s'exécute sur la
machine virtuelle d'Erlang :
https://github.com/clojerl/clojerl
Parallélisme et multiprogrammation
en Clojure : Multiprogrammation--Liens.html#langage_Clojure
ClojureScript
Auteur : Fogus (aussi connu sous le nom
de Mike)
Pas tant un langage qu'un
compilateur de Clojure
et vers JavaScript, mais bon, c'est plus simple
de le mettre ici pour s'y retrouver.
Cobalt
Auteur : Mchael J. Haywoods
Langage à la fois OO
et
fonctionnel destiné à la JVM. Vise à couvrir les mêmes
besoins que Scala, mais en accroissant la productivité des programmeuses et
des programmeurs.
COBOL
Voir Langages/COBOL--Liens.html
Cobra
Auteur : Chuck Esterbrook
Un langage syntaxiquement semblable à Python mais qui se veut multiparadigmatique et qui donne accès à des concepts de plusieurs autres langages.
Coconut
Auteur : Evan Hubinger
Langage fonctionnel qui se veut un sur-ensemble de Python,
et qui transpile vers Python.
CoffeeScript
Auteur : Jeremy Ashkenas
Petit langage qui, une fois compilé, se transforme en JavaScript.
- http://jashkenas.github.com/coffee-script/
- Introduction au langage, par Aseem Kishore en 2013 :
http://aseemk.com/blog/intro-to-coffeescript
- Livres en ligne :
- http://gfxmonk.net/2010/07/04/defer-taming-asynchronous-javascript-with-coffeescript.html
- Pourquoi vous le détesterez (humour) : http://www.slideshare.net/tim.lossen.de/coffeescript-7-reasons-you-are-gonna-hate-it
- http://www.infoq.com/news/2010/08/coffeescript
- http://amix.dk/blog/post/19612
- http://buhrmi.tumblr.com/post/5371876452/how-coffeescript-makes-jquery-more-fun-than-ever
- Un compilateur JavaScript vers CoffeeScript :
http://ricostacruz.com/js2coffee/
- http://issuu.com/autotelicum/docs/smooth_coffeescript
- http://robots.thoughtbot.com/post/9251081564/coffeescript-spartan-javascript
- Un dialecte de CoffeeScript nommé contracts.coffee
et supportant la programmation par contrats : http://disnetdev.com/contracts.coffee/
- Combiner jQuery et CoffeeScript pour obtenir l'outil
du futur pour les interfaces personne/ machine, selon Bruce Eckel en
2011 : http://www.artima.com/weblogs/viewpost.jsp?thread=335011
- Comprendre l'affectation : http://blog.carbonfive.com/2011/09/28/destructuring-assignment-in-coffeescript/
- Selon Michael Woloszynowicz en 2011, utiliser
CoffeeScript signifie abandonner JavaScript :
http://www.w2lessons.com/2011/11/coffeescript-means-giving-up-on.html
- Utiliser Node.js avec CoffeeScript, par Nagy Zoltán
en 2011 : http://abesto.net/node-js-express-and-coffeescript
- Modèles déclaratifs en CoffeeScript, par Thomas Parslow en
2011 : http://almostobsolete.net/declarative-models-in-coffeescript.html
- Écrire du CoffeeScript efficacement, par Esa-Matti Suuronen en
2011 : http://esa-matti.suuronen.org/blog/2011/11/28/how-to-write-coffeescript-efficiently/
- Profiter des espaces blancs en CoffeeScript, par Reginald Braithwaite en
2011 : https://github.com/raganwald/homoiconic/blob/master/2011/11/sans-titre.md#readme
- Expressions régulières en CoffeeScript, par Elijah Manor en
2012 : http://www.elijahmanor.com/2012/02/regular-expressions-in-coffeescript-are.html
- Implémenter un ORM avec CoffeeScript, par Ryan Lefevree en 2013 :
- Les trampolines en CoffeeScript, le bien et le moins bien. Texte de
Charles Hugues en 2014 :
https://medium.com/programming-ideas-tutorial-and-experience/8eee8afb41df
Critiques :
- Selon Andrew Brehaut en 2011, les compréhensions
de listes de CoffeeScript sont incorrectes : http://brehaut.net/blog/2011/coffeescript_comprehensions
- En 2011, Ryan Florence raconte pourquoi il peut
être préférable de ne pas utiliser CoffeeScript, en décrivant
la distance (à son avis) entre le code écrit et la lisibilité
pour un programmeur, dans des cas concrets : http://ryanflorence.com/2011/2012/case-against-coffeescript/
- En 2011, Armin Ronacher critique le Implicit
Scoping de CoffeeScript : http://lucumr.pocoo.org/2011/12/22/implicit-scoping-in-coffeescript/
- La gestion de la portée des variables dans ce langage fait damner
Jesse Donat, du
moins si on se fie sur ce texte de 2013 :
http://donatstudios.com/CoffeeScript-Madness
- Dans ce texte de 2012, Manuel Cerón indique qu'à son
avis, CoffeeScript est un langage conçu pour simplifier l'écriture du code,
mais qui en complique la lecture en contrepartie :
http://ceronman.com/2012/09/17/coffeescript-less-typing-bad-readability/
- La perception, plutôt positive, qu'a Ruoyo Sun de ce langage, en
2013 :
http://ruoyusun.com/2013/03/17/my-take-on-coffeescript.html
- La gestion un peu folle de la portée des variables en CoffeeScript et
JavaScript, par Reginald Braithwaite en 2013 :
http://raganwald.com/2013/07/27/Ive-always-been-mad.html
- En 2014, Jeff Walker est d'avis que
CoffeeScript n'est pas une solution aux problèmes de
JavaScript :
http://www.walkercoderanger.com/blog/2014/03/coffeescript-isnt-the-answer/
Outils :
Common Lisp
Voir Lisp.
Compute
Auteur : User:Orange?
Langage étrange qui résulte en
des programmes qui dénotent une « certaine » intelligence...
Converge
Auteur : Laurence Tratt
Langage tirant son inspiration à plusieurs sources et se proposant comme
une alternative pour les programmeuses et les programmeurs frustrés par leur
langage de prédilection. En particulier, supporte la
métaprogrammation statique.
Copper
Auteur : Marc Kerbiquet
Langage impératif avec
système de types statique et généricité.
Coq
Auteur : Benjamin Werner
À la fois
langage fonctionnel et outil interactif. Vise à assister les gens dans leurs démarches de
preuves formelles.
CPC
Auteurs : Juliusz Chroboczek et Gabriel Kerneis
Langage inspiré de C et mettant l'accès
sur la multiprogrammation à
l'aide de threads
très légers.
Crack
Auteur : Michael Muller
Langage de scripting qui se compile en code machine et vise ainsi une
exécution plus rapide.
Cryptol
Auteurs : Jeffrey R. Lewis et Brad Martin?
Un DSL axé sur les algorithmes
de chiffrement.
Crystal
Auteur : Juan Wajnerman?
Langage compilé en code natif mais avec une syntaxe inspirée de celle de
Ruby.
CSP
Auteur : C. A. R. Hoare
Langage servant surtout àdécrire la communication entre des processus
séquentiels.
Cx
Auteur : des gens de Synflow
Langage qui vise à rapprocher le design de composants matériels et les
informaticien(ne)s
Cyclone
Auteurs : un groupe d'auteurs identifiés sur
https://cyclone.thelanguage.org/wiki/People/
Langage proche du langage C, mais sous une forme
beaucoup moins permissive.
C!
Auteur : Marwan Burelle (je pense)
Langage inspiré par C et mettant l'accent sur
la programmation système, mais avec extensions pour accentuer la productivité,
entre autres quelques-unes se rapprochant de la POO.
C#
Auteur : Anders Hejlsberg
Langage OO
compilé pour en langage intermédiaire
pour une machine virtuelle du modèle
.NET telle que le
CLR.
Pédagogie :
../Sujets/Divers--cdiese/pedagogie.html
Trucs et techniques :
../Sujets/Divers--cdiese/pedagogie.html#technique
Considérations de versions :
../Sujets/Divers--cdiese/pedagogie.html#versions
Conversions de ou vers C# :
- Convertir de Java à C# :
- Convertir de C# (entre autres) à Java :
- Compiler de Lisp à C# :
- Convertir de JSON
à C# :
Critiques :
../Sujets/Divers--cdiese/pedagogie.html#critiques
Cω
Auteurs : Nick Benton, Gavin Bierman, Luca Cardelli,
Erik Meijer, Claudio
Russo, Wolfram Schulte
Langage expérimental, axé sur la résolution de problèmes
de concurrence.
C++
Auteur : Bjarne
Stroustrup
Langage compilé, orienté vers la programmation
système, qui se veut multiparadigme, couvrant à la fois la programmation
procédurale, la programmation
orientée objet et la programmation
générique. Notez que les articles techniques sur le langage
C peuvent souvent (pas toujours; mieux vaut lire avec
discernement!) servir aussi en C++.
La bibliothèque standard
Parce que, dans la vie, il n'y a pas que la STL...
La STL
Généralités :
Conteneurs et itérateurs :
Caracteristiques-Cplusplus--Liens.html#conteneurs_iterateurs
Les adaptateurs tels que std::mem_fun :
Critiques :
Boost
Voir ../Sujets/Divers--cplusplus/outils-compilateurs.html#boost
C+=
Auteurs : Eris Blastar,
inspiré d'Ari Schlesinger
Langage féministe. Ce langage semble être proposé sur une base
humoristique, mais il y a quand même eu un effort de design, de recherche et
des outils de produits alors ce n'est pas sans intérêt.
C--
Auteurs : une équipe travaillant avec Simon
Peyton-Jones
Langage qui se veut une sorte d'assembleur portable
pour faciliter l'écriture d'autres langages.
Section « D »
Langages dans cette section : D,
Dao,
Dart, daScript, Deca, Delphi,
Dhall,
Dio,
Dminor, DRAKON, Duck, Dylan.
D
Auteur : Walter
Bright
Langage compilé, orienté vers la programmation
système, qui se veut multiparadigme, couvrant à la fois la programmation
procédurale, la programmation
orientée objet et la programmation
générique.
- Introduction au langage D :
- En 2016, Michael Parker explique comment
contribuer à l'amélioration du langage D :
http://dlang.org/blog/2016/07/20/the-why-and-wherefore-of-the-new-d-improvement-proposal-process/
- Survol du langage D, par Ferdynand Górski en 2013 :
http://fgda.pl/post/8/a-look-at-the-d-programming-language
- Wiki sur ce langage : http://en.wikipedia.org/wiki/D_%28programming_language%29
- Liste des caractéristiques du langage D : http://www.digitalmars.com/d/2.0/comparison.html
- Histoire de ce langage : http://www.computerworld.com.au/article/253741/-z_programming_languages_d
- Programmation fonctionnelle avec D :
Paradigmes-programmation--Liens.html#programation_fonctionnelle_langage_D
- Le présent de D, selon Mike Karlesky en 2010 : http://spin.atomicobject.com/2010/06/30/d-little-language-that-could/
- La concurrence avec D, selon Andrei
Alexandrescu en 2010 : http://www.informit.com/articles/printerfriendly.aspx?p=1609144
- Texte de 2011 par David Simcha sur D, la concurrence et le parallélisme : http://davesdprogramming.wordpress.com/2011/04/07/7/
- Porter D sur un Macintosh, un texte de Walter
Bright en 2009 : http://drdobbs.com/tools/214502253
- Les littéraux définis par les utilisateurs en langage D, par Walter
Bright en 2011 :
http://drdobbs.com/blogs/tools/229401068
- D pour les programmeurs .NET :
http://www.galador.net/codeblog/post/2011/05/20/D-for-NET-programmer.aspx
- Texte de Peter Alexander sur D et l'immuabilité (mais prudence, car les remarques sur C++
sont parfois basées sur une compréhension incorrecte de la syntaxe) :
http://poita.org/index.php/blog/1-latest-news/67-thoughts-on-immutability-in-d
- De l'avis d'Abscissa (?) en 2011, si vous souhaitez
être efficaces en D, n'utilisez pas un tableau pour implémenter
une pile : https://www.semitwist.com/articles/article/view/don-t-use-arrays-as-stacks
- Qualifications de types en D, par Walter
Bright en 2011 : http://drdobbs.com/blogs/cpp/231902461
- Résoudre l'énigme
d'Einstein en D, par Leonardo Maffi en 2011 :
http://www.fantascienza.net/leonardo/ar/einstein_riddle.html
- Les intervalles, ou Ranges, en D : http://ddili.org/ders/d.en/ranges.html
- Un livre en ligne sur les templates de D, par Philippe Sigaud en
2012 : https://docs.google.com/viewer?url=https://github.com/PhilippeSigaud/D-templates-tutorial/blob/master/dtemplates.pdf?raw%3Dtrue&pli=1
- Utiliser les fonctions évaluées à la compilation pour
accélérer le calcul d'un cosinus, par Danny Arends en
2012 :
http://www.dannyarends.nl/index.cgi?p=blog&viewDetailed=00029
- D et la progammation par contrats : http://dlang.org/dbc.html
- Uniformisation des conventions d'appel avec D :
- Quelques particularités techniques intéressantes du langage
D, répertoriées par Michael Larouche en
2012 : http://michaellarouche.wordpress.com/2012/05/12/cool-features-of-the-d-language/
- Les types Voldemort, qui ne peuvent être nommés :
- Appels de fonctions :
- Utiliser l'instruction import de D pour intégrer
des données à un programme dès la compilation, un texte
de 2012 : http://www.gamedev.net/blog/1140/entry-2254294-compiling-data-into-a-d-executable/
- Contribuer à la bibliothèque standard de D, l'expérience
de Joe Wakeling en relatée en 2012 :
http://braingam.es/2012/07/sampling-d/
- Quelques exemples de programmation
générique avec D, par Andrei
Alexandrescu en 2011 : http://www.slideshare.net/andreialexandrescu1/generic-programming-galore-using-d
- Écrire un petit noyau
en langage D : http://wiki.osdev.org/D_Bare_Bones
- Interopérabilité de D avec COM,
par Lio Lunesu en 2012 : http://lunesu.com/index.php?/archives/126-Modern-COM-Programming-in-D.html
- Intégrer D et C :
- Texte de 2012 par
Walter
Bright expliquant pourquoi D, par défaut, initialise les
nombres
à virgule flottante à NaN plutôt qu'au zéro
du type visé :
http://www.drdobbs.com/article/print?articleId=240005723&siteSectionid=cpp
- Programmation par composants en D, texte de Walter
Bright en 2012 :
http://www.drdobbs.com/architecture-and-design/component-programming-in-d/240008321
- Quelques mythes à propos de D, par Nick Sabalausky en
2012 : http://semitwist.com/articles/article/view/dispelling-common-d-myths
- En 2012, Benjamin Thaut explique comment faire
une mise à jour dynamique de code D :
http://3d.benjamin-thaut.de/?p=25
- Définir des formats « maison » pour les chaînes de caractères avec D :
http://wiki.dlang.org/Defining_custom_print_format_specifiers
-
Programmation fonctionnelle avec D, texte d'Andreas Zwinkau en
2013 :
http://beza1e1.tuxen.de/articles/functional_D.html
-
Des
singletons en D, un texte de David Simcha en 2013 :
http://davesdprogramming.wordpress.com/2013/05/06/low-lock-singletons/
-
Combiner énumération et union
en D de manière sécuritaire, un texte
de 2013 :
http://www.deadalnix.me/2013/05/10/type-safe-tagged-union-in-d-programming-language/
-
Les templates avec D, un texte de Gary Willoughby en 2013 :
http://nomad.so/2013/07/templates-in-d-explained/
-
Programmer en D avec composants et intervalles :
http://wiki.dlang.org/Component_programming_with_ranges
-
Fouiller dans un graphe à l'aide d'intervalles, par Peter Alexander en
2014 :
http://poita.org/2014/01/09/range-based-graph-search-in-d.html
-
Traitement d'images avec D, texte de Vladimir Panteleev en 2014 :
http://blog.thecybershadow.net/2014/03/21/functional-image-processing-in-d/
-
Selon cet article de 2014 par Cade Metz, D serait
le meilleur langage dont vous n'avez jamais entendu parler :
http://www.wired.com/2014/07/d-programming-language/
-
Quelques perles de la bibliothèque standard de D, répertoriées par Gary Willoughby :
-
Un template qui ne fait rien, par Vladimir Panteleev en 2015 :
http://blog.thecybershadow.net/2015/04/28/the-amazing-template-that-does-nothing/
-
À propos de la taille des exécutables compilés avec D, par Vladimir Panteleev en
2015 :
http://blog.thecybershadow.net/2015/05/05/is-d-slim-yet/
-
D et les types dépendants, texte de 2015 par Dee
Mon :
http://www.infognition.com/blog/2015/dependent_types_in_d.html
-
Métaprogrammation avec D :
Paradigmes-programmation--Liens.html#metaprogrammation_langage_D
-
Écrire un système de clavardage avec D, par Sönke Ludwig en
2016 :
https://vibed.org/blog/posts/a-scalable-chat-room-service-in-d
-
Exécuter un jeu écrit en D dans un
fureteur, texte de 2016 par Sebastien
Alaiwan :
http://code.alaiwan.org/wp/?p=103
Cas d'espèces :
Critiques :
Dao
Auteur : Limin Dalbert Fu
Langage de
Scripting ayant pour objectif de simplifier certaines tâches
communes de programmation tout en demeurant extensible.
Dart
Auteurs : Lars
Bak et Gilad
Bracha
Langage développé chez Google et mettant l'accent sur la programmation
structurée pour le Web.
- http://www.dartlang.org/
- http://www.dartlang.org/docs/technical-overview/index.html
- Le SDK de Dart :
- La spécification officielle de la version 0.01
du langage : http://www.dartlang.org/docs/spec/dartLangSpec.pdf
- Depuis 2014, Dart est un standard ECMA :
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-408.pdf
- http://www.theregister.co.uk/2011/09/09/google_dart_web_programming_language/
- http://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming
- Le but semble être d'éventuellement remplacer JavaScript
(pas une mince affaire!) :
- http://www.extremetech.com/computing/99175-google-dart-unveiled-farewell-javascript
- http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html
- http://dartinside.com/2011/dart-bashing/
- http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Unsoundness/
- http://www.infoq.com/articles/google-dart
- http://journal.stuffwithstuff.com/2011/10/21/wrapping-my-head-around-optional-typing/
- Implémenter le Null-Safety pour Dart? Une proposition de
Robert
Nystrom en 2011 : http://journal.stuffwithstuff.com/2011/10/29/a-proposal-for-null-safety-in-dart/
- Pourquoi Dart opère sur le code source directement plutôt que
sur un format intermédiaire, de l'avis de Florian Loitsch en
2011 : http://www.dartlang.org/articles/why-not-bytecode/
- En 2012, Dart est encore jeune et, à
l'approche d'une étape nommée Milestone
1, quelques changements importants sont prévus. Texte de
Robert
Nystrom : http://www.dartlang.org/articles/m1-language-changes/
- Reportage de Jon Brodkin en 2012 laissant
entendre que Dart serait « prêt pour le vrai monde » :
http://arstechnica.com/information-technology/2012/10/googles-bid-to-fix-javascript-dart-is-ready-for-the-real-world/
- Les mixin avec Dart, texte de
Gilad
Bracha en 2012 :
http://www.dartlang.org/articles/mixins/
- Entrevue avec Lars
Bak portant sur ce langage :
http://www.theregister.co.uk/2013/01/18/google_dart_interview/
- L'état de Dart en 2013, par Jonathan Edwards :
http://alarmingdevelopment.org/?p=748
- Est-ce que Dart est le futur du Web? Todd Hoff donne des indications à cet
effet dans ce texte de 2013 :
http://highscalability.com/blog/2013/3/20/dart-is-it-the-future-of-the-web.html
- En 2013, Thomas Schranz explique pourquoi son entreprise migre vers Dart :
http://www.ramen.io/post/46936028144/we-are-switching-to-dart-why
- Dart et les snapshots, pour accélérer le démarrage des applications, un texte de Siva Annamalai en 2013 :
http://www.dartlang.org/articles/snapshots/
- En 2013, Dart a atteint le seuil de la version
1.0 et est devenu un standard ECMA :
- En 2013, Dart s'engage dans un processus de
standardisation ECMA :
http://blog.chromium.org/2013/12/ecma-forms-tc52-for-dart-standardization.html
- Les bons côtés de Dart, un texte de Cody Casterline en
2014 :
http://blog.nfnitloop.com/2014/04/27/1430/
- Dans ce texte de 2013, Nadir Muzaffar se dit
d'avis que Google est sur le point de pousser Dart en tant que langage
privilégié de développement sur Android :
http://nadirmuzaffar.blogspot.ca/2013/08/future-of-google-dart.html
- À partir de la version 1.8, Dart supporte les
enum. Texte d' Anders Thorhauge Sandholm en 2014 :
http://news.dartlang.org/2014/11/dart-18-library-improvements-and.html
- Calculs numériques avec Dart, texte de 2013
par John Mccutchan :
https://www.dartlang.org/articles/numeric-computation/
- Échanges sur la standardisation de Dart, par Seth Ladd en 2015 :
http://www.dartosphere.org/2015/01/30/dart-language-evolution-discussed-in-ecma-tc52-.html
- En 2015, l'équipe de développement de Dart a
pris la décision de compiler le code Dart en JavaScript,
pour en maximiser l'utilité. À propos de ce changement de direction :
- Texte de 2015 par Thomas Schranz, qui décrit les penseurs
derrière Dart :
https://www.blossom.co/blog/who-is-behind-dart
- Sur Android, Dart aurait pour objectif la génération de programmes sans la
moindre trace de Java, et s'exécutant à 120 fps,
si on en croit cet article de Rom Amadeo en 2015 :
http://arstechnica.com/gadgets/2015/05/googles-dart-language-on-android-aims-for-java-free-120-fps-apps/
- Le langage de macros de Dart, selon Brian Slesinsky en 2015 :
https://docs.google.com/document/d/1-We05W0xsd5hTWGsTDCY6pibf2EmmTAsm-4EhIFZoOA/preview?sle=true
- Dart expliqué à l'aide d'exemples, par John P. Ryan :
http://johnpryan.github.io/dartbyexample/
- Permettre des effets de bord dans un programme Dart, texte d'
Erik
Meijer, Kevin Millikin et
Gilad Bracha en 2015 :
https://queue.acm.org/detail.cfm?id=2747873
- En 2016, Filip Hracek se joint à l'équipe de Dart et explique son choix :
https://medium.com/@filiph/why-i-m-joining-the-dart-team-of-all-places-d0b9f83a3b66
- Dans ce texte de 2016, Frederic Lardinois
relate le « retour » de Dart :
https://techcrunch.com/2016/10/26/googles-dart-programming-language-returns-to-the-spotlight/
- Compiler des programmes Dart à l'aide de LLVM,
une expérience relatée par Erik Corry en 2017 :
https://medium.com/@erik_68861/dart-on-llvm-b82e83f99a70
- En 2017, Dart se donne un
système de types, comme l'explique
David Morgan :
https://medium.com/dartlang/dart-gets-a-type-system-6bd3121772de
- Quelques outils pratiques pour manipuler des tableaux avec Dart, par
Jermaine Oppong en 2018 :
https://codeburst.io/top-10-array-utility-methods-you-should-know-dart-feb2648ee3a2
- En 2018, Deven Joshi présente Dart et ses
particularités :
https://medium.com/@dev.n/the-dart-language-and-its-peculiarities-e46c27def825
- Comme le rapport Michael Thomsen en 2020, Dart
peut être compilé en code natif à partir de la version
2.6 :
https://medium.com/dartlang/dart2native-a76c815e6baf
- Texte de 2020 par
Robert
Nystrom, qui explique le
null-Safety
avec Dart :
https://medium.com/dartlang/why-nullable-types-7dd93c28c87a
- Mesurer la vitesse d'exécution de programmes écrits en Dart, par Vyacheslav Egorov en
2021 :
https://mrale.ph/blog/2021/01/21/microbenchmarking-dart-part-1.html
- En 2022, Michael Thomson rapporte détaille
la stratégie de null-Safety
qui prend effet à partir de Dart version 3 :
https://medium.com/dartlang/the-road-to-dart-3-afdd580fbefa
Critiques :
Outils :
daScript
Auteur : des individus de Gaijin Entertainment
Langage de script destiné à l'automatisation de tâches côté serveur, et
conçu pour le monde du jeu vidéo.
Deca
Auteur : Eli Z. Gottlieb
Langage de programmation système, présenté comme un assembleur
de haut niveau.
Delphi
Auteur : Danny Thorpe (et Anders Hejlsberg)
Un dérivé syntaxique de Turbo Pascal avec environnement de développement visuel.
Diacho
Auteur : aucune idée (les articles sont signés « admin »)
Langage statiquement typé qui vise la haute performance, la programmation
système et la facilité d'écriture pour les programmeurs.
Dhall
Auteur : Fabrizio Ferrai
Langage spécialisé dans la programmation de configurations, et qui n'a pas
la prétention d'être généraliste. Dans les mots de son auteur :
« You can think of Dhall as: JSON + functions + types + imports »
Dio
Auteur : (je n'en sais rien)
Langage compilé en code natif qui repose sur
LLVM. Le
langage se veut efficace (évitant certains cas où d'autres langages auraient
recours à de l'allocation dynamique de mémoire) et sécuritaire (imposant
certains tests, par exemple dans les cas où une variable pourrait être
null), mais n'a pas la prétention d'être simple, annonçant le recours à
plusieurs mots clés.
Dminor
Auteur : Microsoft Research?
Un langage de modélisation de données basé sur le langage
M.
DRAKON
Auteur : Vladimir Parondzhanov
Langage de programmation visuel et
temps réel, utilisé dans le domaine de l'aérospatiale.
Duck
Auteur : Greg Tourville et Hiroyuki Sano
Un langage de programmation qui veut faciliter l'adéquation entre ce qui
est écrit et ce qui est fait (le Duck Typing).
Dylan
Auteur : pas clair (un groupe chez Apple, à l'origine)
Langage qui se veut multiparadigme, couvrant à la fois la programmation
fonctionnelle et la programmation
orientée objet. Ressemble un peu à Scheme
et à Common Lisp.
Section « E »
Langages dans cette section : E,
ECMAScript, Eero,
efene, Eff, Eiffel,
ELENA,
Elixir, Elm,
Elvish, Emerald,
Emoticon, Enchilada,
EnerJ,
Enterprise,
Entropy, EO,
Epigram, Epoch,
Erasmus, Eriskay,
Erlang, Escher,
Eve, Ezhil
E
Auteurs : Mark S. Miller et Dan Bornstein (entre autres).
À l'origine, un langage OO
axé
vers le développement de systèmes répartis sécuritaires.
ECMAScript
Voir JavaScript.
Eero
Auteur : Andreas Arvanitis
Dialecte d'Objective-C destiné à
être exécuté sur LLVM.
efene
Auteur : à déterminer...
Un langage qui se veut syntaxiquement proche de Java,
C++ ou C#, mais
qui se compile pour la machine virtuelle
ERTS du langage Erlang.
Eff
Auteur : Andrej Bauer et Matija Pretnar
Un langage fonctionnel de programmation par effets (le mot effet ici faisant référence aux changements d'états).
Eiffel
Auteur : Bertrand Meyer
Langage OO
influent, porteur de plusieurs concepts importants dans l'approche OO
contemporaine (en particulier la programmation par contrats).
ELENA
Auteur : Alex Rakov
Langage OO
dynamique, incluant des mécanismes de passage de messages entre objets.
Elixir
Auteur : José Valim
Langage s'exécutant sur la machine virtuelle
ERTS d'Erlang. Vise à offrir un support solide
à la métaprogrammation et au
développement de systèmes répartis.
- http://elixir-lang.org/
- https://github.com/josevalim/elixir
-
http://kukuruku.co/hub/erlang/introduction-to-elixir
- http://blog.plataformatec.com.br/2011/06/elixir-v0-3-0-released/
- Les objectifs que vise le design d'Elixir, exposés par José Valim en
2013 :
http://elixir-lang.org/blog/2013/08/08/elixir-design-goals/
- Texte de Joe
Armstrong en 2013, relatant son expérience avec ce
langage :
http://joearms.github.io/2013/05/31/a-week-with-elixir.html
- Selon Devin Torres en 2013, l'attrait d'Elixir n'est pas attribuable à sa
syntaxe :
http://devintorr.es/blog/2013/06/11/elixir-its-not-about-syntax/
- Texte de 2013 par Geoffrey Grosenbach à l'effet qu'Elixir est
un langage vraiment pensé pour des programmeuses et des programmeurs :
http://blog.pluralsight.com/elixir-is-for-programmers
- Écrire un Pattern Matcher en Elixir, par
Dave
Thomas en 2014 :
http://pragdave.me/blog/2014/02/12/pattern-matching-and-parsing/
- Texte de 2015 où Teemu Harju explique pourquoi il a
fait d'Elixir son principal langage de programmation :
http://blog.teemu.im/2015/01/25/thoughts-about-elixir/
- Parallélisme avec Elixir,
par Robert Sosinski en 2015 :
http://www.reactive.io/tips/2015/02/03/introduction-to-parallel-computing-with-elixir/
- Programmation « orientée rails de chemin de fer » avec Elixir, une manière
de visualiser le déroulement de l'exécution d'un programme, selon Zohaib Rauf
en 2015 :
http://zohaib.me/railway-programming-pattern-in-elixir/
- Selon Brian Cardarella en 2015, on vient à Elixir pour la
syntaxe, mais on y reste pour toutes sortes d'autres raisons :
http://reefpoints.dockyard.com/2015/04/08/elixir-come-for-the-syntax-stay-for-everything-else.html
- En 2015, Marius Herring décrit la conception
d'un Chat Room avec Elixir :
http://www.deadcoderising.com/2015-06-09-try-something-different-with-elixir/
- Du Pattern Matching de données binaires avec Elixir, article de 2015
par
Zohaib Rauf :
http://zohaib.me/binary-pattern-matching-in-elixir/
- Texte d'Evan Miller en 2016 sur les HTML
templates d'Elixir :
http://www.evanmiller.org/elixir-ram-and-the-template-of-doom.html
- Récursivité
avec Elixir, par Nikola Novakovic en 2016 :
- Quelques trucs intéressants à propos d'Elixir, de l'avis de Ryan Flach en
2016 :
https://dev.to/ryanflach/fun-things-in-elixir
- Le grand potentiel d'Elixir, par Adrian Philipp en
2016 :
http://adrian-philipp.com/post/why-elixir-has-great-potential
Elm
Auteur : Evan Czaplicki
Langage fonctionnel axé sur
la programmation pour le Web.
- http://elm-lang.org/
- http://elm-lang.org/Examples.elm
- Explication de ce que signifie la « programmation fonctionnelle
réactive » dans ce langage : http://elm-lang.org/learn/What-is-FRP.elm
- Se débarrasser des rappels (des Callbacks), qualifiés par Evan
Czaplicki de « goto contemporain » dans ce texte de 2012 :
http://elm-lang.org/learn/Escape-from-Callback-Hell.elm
- Passer du modèle
impératif au modèle
fonctionnel avec Elm, par Tobias Hermann en 2013 :
https://github.com/Dobiasd/articles/blob/master/switching_from_imperative_to_functional_programming_with_games_in_Elm.md
- Déboguer un programme Elm implique pouvoir faire des opérations telles que
Pause, Rewind, Replay...
http://debug.elm-lang.org/
- Des tableaux immuables, expliqués par Evan Czaplicki en
2014 :
http://elm-lang.org/blog/announce/0.12.1.elm
- Développement Web
accéléré, texte de 2014 :
http://elm-lang.org/blog/Blazing-Fast-Html.elm
- Voyager dans le temps avec un programme Elm, par Michael James en
2014 qui montre comment il est possible de reculer dans le temps pour
retracer l'exécution d'un programme écrit avec ce langage :
http://elm-lang.org/blog/Introducing-Elm-Reactor.elm
- Le langage Elm sur la frontière de la
programmation fonctionnelle, une présentation de Richard Feldman en
2014 :
https://presentate.com/rtfeldman/talks/the-functional-frontier-elm
- Scott Kensell, en 2014, se présente comme un
puceau de
programmation fonctionnelle apprenant Elm :
http://scottkensell.com/fp-virgin-learns-elm.html
- Texte d'Evan Czaplicki en 2015 et qui porte
que le sujet de la production de messages d'erreurs de compilation destinés
aux humains :
http://elm-lang.org/blog/compiler-errors-for-humans
- Utiliser Elm pour représenter la factorisation de
nombres premiers, par Ruslan Shestopalyuk
en 2015 :
http://blog.ruslans.com/2015/07/prime-factorization-elms.html
- Faire du compilateur son assistant, par Evan Czaplicki en 2015 :
http://elm-lang.org/blog/compilers-as-assistants
- « Elm dans le vrai monde », des cas d'espèces avec ce langage relatés par
Ossi Hanhinen en 2016 :
http://futurice.com/blog/elm-in-the-real-world
- En 2016, Elm se sépare de la
programmation réactive et passe à un autre paradigme. Texte d'Evan
Czaplicki :
http://elm-lang.org/blog/farewell-to-frp
- Utiliser Elm au travail, par Evan Czaplicki en 2016 :
http://elm-lang.org/blog/how-to-use-elm-at-work
- En 2016, Richard Feldman présente Elm comme un
langage « bâti sur la réactivité » :
https://www.infoq.com/articles/language-reactivity-with-elm
- Texte de 2016 par Brad Grzesiak, qui se dit d'avis qu'Elm
permet d'exprimer un
schéma de conception MVC
plus près de l'intention derrière cette pratique que ce que permettent la
plupart des langages :
http://bendyworks.com/blog/elm-frontend-right-now-updated-for-0-18
- En 2017, Ivan Pantić montre comment il a utilisé Elm pour résoudre un problème très
concret (mais ne semble pas emballé) :
https://pantas.net/elm_in_practice/
- Pour sa part, Christian Charukiewicz semble satisfait d'avoir utilisé Elm dans un contexte de
production, comme l'indique ce texte de 2017 :
https://charukiewi.cz/posts/elm/
- Apprendre à utiliser Elm pour dynamiser des pages Web, par Rajat S en
2018 :
https://blog.bitsrc.io/getting-started-with-elm-language-for-web-apps-49418c6adc17
- Développer des Shaders avec Elm, par Jappie Klooster en
2018 :
https://jappieklooster.nl/elm-on-fire-shaders-in-elm.html
Critiques :
Elvish
Auteur : Qi Xiao
À l'image de bash,
à la fois un langage de programmation et un environnement interactif
Emerald
Auteurs : Andrew P. Black, Norman C. Hutchinson, Eric B. Jul et Henry M. Levy
Un langage OO
porté
sur la conception de systèmes répartis.
Emoticon
Auteur : Michael Champanis
Un langage étrange basé sur...
des émoticônes!
Enchilada
Auteur : Robbert van Dalen
Ce langage est un projet de recherche reposant sur la prémisse que l'information
est indestructible, donc que les données sont immuables.
EnerJ
Auteur : Adrian Sampson
Un langage basé sur Java mais avec pour principal objectif de réduire la
consommation énerg¸étique sur l'appareil en ex¸écutant les programmes.
Enterprise
Auteur : Juan Lulkin
Langage étrange, non déterministe et (selon son auteur) trop statiquement
typé, destiné à avoir un effet disruptif sur les marchés
Entropy
Auteur : Daniel Temkin
Langage étrange mettant l'accent sur
la décrépitude des données...
EO
Auteur : Yegor Bugayenko
Langage orienté objet,
qui se veut « le futur des
langages orientés objets ».
Epigram
Auteurs : Connor McBride et James McKinna
Un langage fonctionnel expérimental, utilisant des types dépendants.
Epoch
Auteur : Mike Lewis
Langage axé sur le parallélisme pour la pleine utilisation d'ordinateurs
à plusieurs processeurs ou à plusieurs coeurs.
Erasmus
Auteurs : Peter Grogono et Brian Shearing
Langage orienté vers les processus concurrents en interaction.
Eriskay
Auteurs : John Longley et Nicholas Wolverson
Un langage OO
fortement typé, basé sur la sémantique des jeux.
Erlang
Auteurs : Joe
Armstrong et Michael
Williams
Langage
fonctionnel axé sur la communication à partir d'un paradigme
d'acteurs, et avec accent sur la
résilience et sur la tolérance
aux pannes.
Essentiels :
../Sujets/Divers--erlang/pedagogie.html#essentiel
Dialectes et implémentations particulières :
../Sujets/Divers--erlang/pedagogie.html#dialectes
Idées et opinions :
../Sujets/Divers--erlang/pedagogie.html#idees_opinions
Critiques :
../Sujets/Divers--erlang/pedagogie.html#critiques
Technique :
../Sujets/Divers--erlang/pedagogie.html#technique
Machine virtuelle
ERTS :
Machines-virtuelles--Liens.html#erts
Escher
Auteur : Petar Maymounkov
Langage qui ne prétend pas décrire une machine de Turing, préconisant
plutôt la programmation par urgences et disparitions d'événements, ou
« programmation par métaphores pures ».
Eve
Auteur : Joshua Cole
Langage de programmation « destiné aux humains ».
Ezhil
Auteur : Muthiah Annamalai
Langage de programmation
impératif, qui permet de programmer à l'aide de caractères et de mots
Tamil.
Section « F »
Langages dans cette section : F, Factor,
Falcon, False, Fancy,
Fantom, Feather,
Felix,
Fexl, Finch, FL,
Flash, Flex,
Flix,
Flobnar,
Flow, FORMAC, Forth,
Fortran, Fortress,
FP, Free, Frege,
Frenetic, Frink,
Fun, FunLOFT, fun4j,
Funnel, Futhark, F#, F*,
F3
F
Auteur : Stevan Apter
Extension concaténative et
fonctionnelle du langage False.
Factor
Auteur : Slava Pestov
Langage concaténatif, représentant les programmes comme une série de mots (de fonctions) manipulant une pile de références à des valeurs dynamiquement typées.
En particulier :
Articles techniques :
Critiques :
Falcon
Auteur : Giancarlo
Niccolai
Langage destiné à une machine
virtuelle, qui se veut multiparadigme.
False
Auteur : Wouter van Oormerssen
Langage concaténatif
se voulant très simple. programmation_concatenative
Fancy
Auteur : Christopher Bertels
Langage sémantiquement proche de Ruby et
syntaxiquement proche de Smalltalk.
Fantom
Auteur : Brian Frank et Andy Frank.
Langage OO
destiné à être compilé pour plusieurs machines
virtuelles, dont le CLR et la
JVM.
Feather
Auteur : Brian Edds (pas sûr du nom)
Langage qui n'a pas recours au tas (Heap), dans le but de permettre
de réaliser des programmes pour systèmes à faibles ressources
(comme par exemple des systèmes embarqués) par programmation
fonctionnelle.
Felix
Auteurs : John Skaller et Erick Tryzelaar
Langage de script « le plus rapide au monde » (selon
ses auteurs).
Fexl
Auteur : Patrick Chkoreff
Langage fonctionnel, basé sur des
fonctions dites pures, donc sans effets de bord.
Finch
Auteur :
Robert
Nystrom
Langage OO
inspiré de Smalltalk, Self et JavaScript.
FL
Auteurs : John Backus, John Williams et Edward Wimmers.
Langage fonctionnel (FL signifie Function Level). A inspiré le langage J.
Flash
Auteur : des gens de Macromedia (maintenant Adobe)
Langage qui est en fait une plateforme de développement multimédia axée vers le Web. Son langage de script est ActionScript, mais on y trouve aussi Flex.
Ça semble être la fin pour Flash, en 2011
(au moins pour les appareils mobiles) :
- http://www.zdnet.com/blog/perlow/exclusive-adobe-ceases-development-on-mobile-browser-flash-refocuses-efforts-on-html5-updated/19226
- http://blogs.adobe.com/conversations/2011/11/flash-focus.html
- http://www.bbc.co.uk/news/technology-15648899
- http://blog.deconcept.com/2011/11/12/flash-is-dead-long-live-the-internet/
- Un mouvement pour se débarrasser de Flash : http://occupyflash.org/
- Il faut mettre cela en perspective, selon Ben Garney en
2011 : http://blog.bengarney.com/2011/11/21/flash-player-a-declining-asset/
- La plateforme Flash serait mourante, selon Tim Anderson en
2011 : http://www.itjoblog.co.uk/2011/11/dying-platforms.html
- Et un autre, en 2013 :
http://blogs.unity3d.com/2013/04/23/sunsetting-flash/
- Les voix se font encore plus insistantes en 2015,
avec la désactivation d'office de Flash dans certains
fureteurs, comme le rapporte Dan Rowinski :
http://arc.applause.com/2015/07/14/flash-vulnerability-html5-replacement/
- Les impacts de la mort de Flash sur les fournisseurs de contenu, par Vijay
Balan en 2015 :
http://techcrunch.com/2015/08/23/farewell-to-flash-what-it-means-for-digital-video-publishers/
- En 2016, Dave Yin spécule que la mort maintes
fois annoncée de Flash surviendra dans l'année en cours :
http://www.itworldcanada.com/article/will-flash-be-dead-by-end-of-2016/383347
- Vers la fin 2016,
Chrome commencera à bloquer Flash, comme l'indique cet
article de Jacob Kastrenakes :
http://www.theverge.com/2016/5/15/11679394/chrome-to-block-flash-later-2016
(c'est officiel, à partir de la version 53 :
https://www.engadget.com/2016/08/09/google-chrome-blocking-flash/)
- Adobe ne supportera plus Flash à partir de 2020.
Dans cet article de 2017, David Robinson examine
la suite des choses, incluant les prochains langages susceptibles de
disparaître :
https://stackoverflow.blog/2017/08/01/flash-dead-technologies-might-next/
- En 2020, même le site d'Adobe cesse de
supporter Flash :
https://www.adobe.com/products/flashplayer/end-of-life.html#
Technique :
Flex
Auteur : Adobe
Langage axé sur le développement de clients riches pour le Web.
Critiques :
Flix
Auteurs : Ondřej Lhoták, Magnus Madsen et quelques autres
Langage fonctionnel
et
logique, qui se présente comme une sorte de « SQL
sur
stéroïdes »
Flobnar
Auteur : Chris Sperrey
Langage étrange, construit de manière à être aussi difficile à compiler que
possible. Version
fonctionnelle de
Befunge.
Flow
Auteur : une équipe chez Area9.
Langage
fonctionnel ayant un penchant pour la production d'interfaces Web.
Auteure : Jean E. Sammet
Langage de manipulation symbolique, inspiré de Fortran
Forth
Auteur : Charles H. Moore.
Un langage minimaliste axé sur le développement de mots et leur agencement. Mieux connu dans le monde des systèmes embarqués.
- http://www.computerworld.com.au/article/250530/-z_programming_languages_forth/
- http://en.wikipedia.org/wiki/Forth_%28programming_language%29
- Un manuel en ligne : http://home.iae.nl/users/mhx/sf.html
- Une livre en ligne de près de 200 pages,
par Stephen Pelc : http://www.mpeforth.com/arena/ProgramForth.pdf?_
- Penser en Forth : http://thinking-forth.sourceforge.net/
- Apprendre Forth, par Nick Morgan en 2015 :
http://skilldrick.github.io/easyforth/
- Automates à états finis en Forth : http://dec.bournemouth.ac.uk/forth/jfar/vol7/paper1/paper.html
- http://www.forth.org/fd/FDcover.html
- http://www.retroprogramming.com/2011/03/efficiency-in-forth.html
- http://www.forth.org/lost-at-c.html
- Un (long) essai de l'auteur du langage, datant de 1970,
nommé Programming in a Problem-Oriented Language et qui donne
un aperçu de sa philosophie : http://www.colorforth.com/POL.htm
- Une expérience personnelle de Forth et des machines à piles :
http://www.yosefk.com/blog/my-history-with-forth-stack-machines.html
- Penser en Forth, par James Hague en 2008 :
http://prog21.dadgum.com/33.html?_
- Un tout petit interpréteur pour un sous-ensemble de Forth, par John
Metcalf en 2012 :
http://www.retroprogramming.com/2012/09/itsy-documenting-bit-twiddling-voodoo.html
- Appliquer la méthodologie de Forth à la programmation en général, par Jeff
Fox en 2001 :
http://www.ultratechnology.com/method.htm
- En 2015, Phil Eaton propose une initiation à
la programmation à l'aide d'une pile avec Forth :
http://blog.eatonphil.com/2015/04/06/introduction-to-stack-based-languages-with-and-elementary-debugging-in-forth/
- Construire un Forth pour une architecture inhabituelle, texte de
2015 :
https://moonforth.github.io/
- Quelques sujets avancés en programmation avec Forth :
http://www.mosaic-industries.com/embedded-systems/sbc-single-board-computers/freescale-hcs12-9s12-c-language/instrument-control/forth-language-program-development
- Dans ce texte de 2016, Rick Carlino décrit
Forth comme une expérience d'apprentissage :
http://rickcarlino.com/2016/11/03/forth-as-a-learning-experience/
- En 2017, Elliot Williams décrit Forth comme le
langage idéal pour les hackers :
http://hackaday.com/2017/01/27/forth-the-hackers-language/
- Felix Winkelmann expose sa compréhension de la philosophie derrière
Forth :
http://www.call-with-current-continuation.org/articles/forth.txt
Outils :
Fortran
Voir Langages/Fortran--Liens.html
Fortress
Auteur : Guy
Steele et plusieurs amis du Programming Language Research Group
Langage présenté à l'origine comme un Java
pour scientifiques, avec des facilités de calcul puissantes et une syntaxe
plus proche de celle rencontrée dans le monde des mathématiques.
Beaucoup d'idées novatrices ici. Un projet extrêmement
intéressant, mais qui est désormais clos...
FP
Auteur : John Backus.
Langage fonctionnel (FP signifie Function Programming). Ancêtre du langage FL.
Free
Auteur : Adam McDaniel
Dans les mots (paraphrasés) de son auteur, Free est « un langage terrible
qui vise la génération de code dans un langage encore pire ». En
Free, il est possible d'écrire à n'importe quel endroit en mémoire, ce qui
rend certains types de plantage presque impossibles.
Frege
Auteur : Ingo Wechsung
Langage fonctionnel inspiré par
Haskell, dont le fruit de la compilation
est destiné à la
JVM.
Frenetic
Auteurs : Walter Robert J. Harrison, Nate Foster et un groupe de travail.
Langage de programmation orienté réseau, et offrant des abstractions
primitives en ce sens.
Frink
Auteur : Alan Eliasen
Langage proposant une nouvelle métaphore de calcul et de manipulation
d'unités de mesure. Ça semble très intéressant comme
truc.
Fun
Auteur : Marcus Westin
Langage destiné à la génération en temps réel de documents pour le Web, un peu comme l'est PHP.
FunLOFT
Langage axé sur la concurrence.
fun4j
Auteur : Thomas Mahler
Un langage fonctionnel (une variante de Lisp) dont
les programmes sont destinés à être exécutés
sur la JVM et à s'intégrer
harmonieusement avec les outils Java.
Funnel
Auteur : Martin Odersky
Langage basé sur les Functional Nets, mélange de programmation fonctionnelle et de réseaux de Pétri.
Futhark
Auteurs : Troels Henriksen et Cosmin E. Oancea (entre autres)
Langage fonctionnel visant à générer du code destiné à une exécution
parallèle sur un
GPU
F#
Auteur : Don
Syme.
Langage
fonctionnel visant la plateforme .NET.
- Le Wiki : http://en.wikipedia.org/wiki/F_Sharp_programming_language
- Un « Wikilivre » : http://en.wikibooks.org/wiki/F_Sharp_Programming
- Livre en ligne :
https://www.gitbook.com/book/swlaschin/fsharpforfunandprofit/details
- Livre en ligne de Robert Pickering : https://www.syncfusion.com/resources/techportal/ebooks/fsharp
-
http://tiny-giant-books.com/blog/f-tips/
- Une fondation pour assurer la promotion de F# :
http://fsharp.org/
- Aborder la plateforme .NET
d'une perspective F#, par Jacqueline Homan en
2016 :
https://www.pluralsight.com/blog/software-development/tutorial-f-sharp
- Un guide pour comprendre le compilateur F# :
https://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html
- Les spécifications officielles de F# :
- Pourquoi F#?
- Rédiger un interpréteur
Scheme
en F# : http://blogs.msdn.com/b/ashleyf/archive/2010/01/15/fscheme-0-0-0.aspx
- http://www.simple-talk.com/opinion/geek-of-the-week/don-syme-geek-of-the-week/
- http://www.theregister.co.uk/2010/04/19/microsoft_f_sharp/
- Un blogue de trucs de programmation dans ce langage : http://fsharpcode.blogspot.com/
- Guide de survie avec F# : http://www.ctocorner.com/fsharp/book/
- Petit défi de programmation : http://richardminerich.com/2010/04/the-ted-neward-f-folding-challenge/
- Fonctions en tant que valeurs : http://msdn.microsoft.com/en-us/library/dd233158.aspx
- Formater les sources pour le Web : http://tomasp.net/articles/fswebsnippets-intro.aspx
- à propos des performances atteintes avec F# sur une XBox 360 :
http://sharp-gamedev.blogspot.com/2010/12/on-performance-of-f-on-xbox-360.html
- http://bartoszmilewski.wordpress.com/2011/01/05/using-f-sequences-and-pipelines/
- Champs d'application : http://blogs.msdn.com/b/dsyme/archive/2011/01/12/f-for-energy-trading-and-energy-portfolio-optimization.aspx
- Simulations physiques en F# : http://fixplz.blourp.com/blog/=phys
- Mots clés et syntaxe de base du langage : http://lorgonblog.wordpress.com/2009/02/08/the-basic-syntax-of-f-keywords-and-constructs/
- http://tomasp.net/blog/fsharp-variations-joinads.aspx
- Définir un langage à pile à même F# : http://blogs.msdn.com/b/ashleyf/archive/2011/04/21/programming-is-pointless.aspx
- Mêler du code F# et du code C# :
http://www.voyce.com/index.php/2011/05/09/mixing-it-up-when-f-meets-c/
- Remplacer des goto par des appels récursifs
mutuels : http://sharp-gamedev.blogspot.com/2011/08/forgotten-control-flow-construct.html
- Programmer avec des séquences asynchrones en F# : http://tomasp.net/blog/async-sequences.aspx
- Les Tail Calls en F# : http://blogs.msdn.com/b/fsharpteam/archive/2011/07/08/tail-calls-in-fsharp.aspx
- En 2012, Francesco De Vittori relate ses expériences
avec F# sur ce qu'il qualifie de « vrais projets » :
- En 2012, Michael Perkins présente son
exploration personnelle de F# : http://graybeardprogrammer.com/?p=1
- Consommer un fichier binaire avec F#, par Luis Diego Fallas en
2012 :
http://langexplr.blogspot.ca/2008/10/using-f-computation-expressions-to-read.html
- Fournisseurs de types :
- Programmation Stateful avec F#, un texte de Matthew Manela en
2013 :
http://matthewmanela.com/blog/functional-stateful-program-in-f/
- Apprentissage automatique avec F# :
http://fsharp.org/machine-learning/
- En 2013, Simon Tyler Cousins émet l'opinion que les bogues n'aiment pas
F# :
http://www.simontylercousins.net/journal/2013/3/7/why-bugs-dont-like-f.html
- Les monoïdes en F#, selon Scott Wlaschin en 2013 :
http://fsharpforfunandprofit.com/posts/monoids-without-tears/
- Le Pattern Matching en F# :
- Utiliser F# avec Xamarin, une
plateforme
.NET à code ouvert :
http://developer.xamarin.com/guides/cross-platform/fsharp/fsharp_support_overview/
- Explication du Currying et de l'application partielle de
fonctions avec F#, par Ankit Solanki en 2014 :
http://blog.cleartax.in/fsharp-functions-explained-currying-and-partial-application/
- Texte de Jef Claes en 2015 sur l'étude statistique, à l'aide de F#, des
caractéristiques de temps de réponse d'un
service Web :
http://www.jefclaes.be/2015/01/averages-are-not-good-enough-f.html
- Quelques mauvaises habitudes que les programmeuses et les programmeurs F#
n'ont pas, selon Yan Cui en 2015 :
https://www.airpair.com/f%23/tips-n-tricks/seven-ineffective-coding-habits-many-fsharp-programmers-dont-have
- Utiliser le système de types de
F# pour réaliser du Domain-Driven Design, présentation par Scott
Wlaschin en 2015 :
http://fr.slideshare.net/ScottWlaschin/domain-driven-design-with-the-f-type-system-functional-londoners-2014
- Quelques trucs chouettes à propos de F#, rapportés par Robin Ridderholt en 2015 :
http://www.myeyeson.net/nifty-things-in-f/
- Tester un programme écrit en F#, par Scott Wlaschin en 2015 :
http://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work-3/
- Penser de manière non-linéaire pour profiter de CUDA avec F#, un texte de
Boris Kogan en 2015 :
http://viralfsharp.com/2015/09/08/non-linear-thinking-with-cuda/
- Ce qui s'annonce pour F# 4.1 :
https://blogs.msdn.microsoft.com/dotnet/2016/07/25/a-peek-into-f-4-1/
- Texte de 2016 qui spécule que F# soit le
langage idéal pour fouiller dans le Web :
http://biarity.me/2016/11/23/Why-F-is-the-best-langauge-for-web-scraping/
- En 2017, Jonathan Banashek donne un exemple de
ce qu'il nomme les « applications universelles » en F# :
http://banashek.com/posts/20170204-a-brief-peek-at-universal-fsharp.html
- Dans ce texte de 2017, Eirik Tsarpalis décrit le style
de programmation Point-Free, où les
programmes sont des compositions de fonctions :
https://eiriktsarpalis.wordpress.com/2017/04/02/programming-in-the-point-free-style/
- Survol de F# 4.1, par Jonathan Allen en 2017 :
https://www.infoq.com/articles/FSharp-4.1
- Appliquer des techniques OO
savec F#, texte de 2017 par Edgar Sánchez :
https://medium.com/@edgarsanchezg/f-is-a-first-functional-language-but-being-multi-paradigm-it-can-handle-classes-objects-fd9ede7a2cc9
Critiques :
F*
Auteurs : Nikhil Swamy, Juan Chen, Cedric Fournet, Pierre-Yves Strub,
Karthikeyan Bharagavan, et Jean Yang
Langage basé sur F# et inspiré
de ML mais axé vers la programmation sécuritaire
de systèmes répartis.
F3
Auteur : Chris Oliver
Le nom signifie Form Follow Function. Langage axé vers le développement d'interfaces personne/ machine.
Section « G »
Langages dans cette section : Gambas,
GEC, Glass, Glitch,
Go,
Golo, Goo,
Gosu, Grain,
Gravity, Groovy,
Guile, Gura, Guru.
Gambas
Auteur : Benoît
Minisini
Ce langage se présente comme presque Basic,
mais sans être un clone de Basic.
GEC
Auteurs : Microsoft Research
Un DSL axé sur l'ingénierie de cellules vivantes.
Glass
Auteur : Gregor Richards
Langage étrange conçu pour que sa syntaxe, en particulier sa notation
postfixée, soit si étrange que personne n'oserait s'en servir.
Glitch
Auteurs : Sean McDirmid et Jonathan Edwards
Langage où le temps et pris en charge, pour donner une impresssion de
simultanéité.
Go
Auteurs :
Robert Griesemer, Rob Pike and Ken Thompson et plusieurs autres...
Un dérivé lointain de C, fait par des
gens de chez Google, avec des idées plutôt intéressantes...
Liens d'ordre général sur le langage :
../Sujets/Divers--go/index.html
Culture et pédagogie :
../Sujets/Divers--go/pedagogie.html
Critiques : ../Sujets/Divers--go/pedagogie.html#critiques
Golo
Auteur : Julien Ponge
Langage dynamique dont les programmes s'exécutent sur la
JVM.
Goo
Auteur : Jonathan Bachrach
Langage OO
et dynamique. Dérivé de Scheme et de Dylan.
Gosu
Auteur : Scott McKinney
Langage OO
reposant sur la JVM.
Grain
Auteur : Oscar Spencer
Langage d'inspiration fonctionnelle,
conçu pour être compilé en WebAssembly
Gravity
Auteur : Marco Bambini
Langage « embarqué » qui repose sur une
machine virtuelle à
registres.
Groovy
Auteur : James Strachan
Un langage dynamique compilé pour la JVM.
Guile
Auteur : Neil Jerram et beaucoup d'autres.
Implémentation de Scheme, mais sans « gentil
dictateur ». Le nom signifie
GNU's Ubiquitous
Intelligent Language for Extensions.
Gura
Auteur : Yutaka Saito
Langage OO
où la programmation est orientée vers la manipulation d'itérateurs.
Guru
Auteur : Aaron Stump?
Un langage fonctionnel dont les programmes peuvent être vérifiés
à la manière de preuves mathématiques.
Section « H »
Langages dans cette section : H, Hack, Halide,
Harlan,
Harmony, Haskell,
haXe, Heron,
Hilbert, Hodor,
Hume, Humus,
Hy,
HyperCard, HyperTalk.
H
Autrice : Christine Dodrill
Langage essentiellement inutile (ne fait que deux trucs, au moment d'écrire
ceci, et les deux impliquent afficher la lettre 'h'),
mais qui se veut un exercice de style.
Hack
Auteurs : Bryan O'Sullivan, Julien Verlaguet et Alok Menghrajani
Compétiteur direct de PHP, écrit en
OCaml, ce langage vise à dynamiser le contenu des
pages Web. S'exécute typiquement sur
HHVM.
Halide
Auteur : Jonathan Ragan-Kelley?
Langage axé sur le traitement d'images et la photographie numérique.
Harlan
Auteur : Erik Holk
Langage déclaratif dont la syntaxe est inspirée de celle de
Lisp. Axé sur
la programmation pour le GPU.
Harmony
Auteur : Benjamin
C. Pierce
Un langage orienté vers les opérations bijectives et interreliées,
à partir de lentilles... (voir aussi Boomerang)
Haskell
Auteurs :
Paul Hudak
et Simon
Peyton-Jones
Langage fonctionnel fortement typé
et très en vogue. La qualité de son système de types est souvent citée en
exemple, et il en va de même pour l'élégance du langage dans son ensemble.
J'ai localisé la plupart des liens sur ce langage dans une section à part
entière :
haXe
Auteurs : pas clair, mais sans doute des gens parmi http://haxe.org/com/people
Langage multiplateforme et à code ouvert.
Outils et produits :
Heron2
Auteur : Christopher
Diggins
Langage OO
axé sur le développement à grande échelle.
Hilbert
Auteur : Kazuki Tanaka
Un langage orienté vers la résolution de problèmes mathématiques, et dont
la syntaxe peut rappeler celle de TEX
Hodor
Auteur : des gens de Hummingbird Technologies
Langage de programmation étrange, publié un 1er avril (!), qui vise une syntaxe minimale. Suffit de voir les exemples pour le
constater
Hume
Auteurs : pas clair, mais je parierais sur Greg Michaelson et Kevin
Hammond (avec une équipe, bien sûr)
Dans les mots de ses auteurs, « Hume (Higher-order Unified
Meta-Environment) is a strongly typed, mostly-functional language with an
integrated tool set for developing, proving and assessing concurrent,
safety-critical systems ».
Humus
Auteur : Dale Schumacher
Un langage se disant purement basé acteurs.
Hy
Auteur : Paul Tagliamonte (entre
autres)
Langage proche de Lisp mais vivant dans le monde de
Python.
HyperCard
Voir HyperTalk.
HyperTalk
Auteur : Dan Winkler
Langage de script, de type impératif,
associé à la technologie HyperCard.
Section « I »
Langages dans cette section :
Idris, Imba, Inform,
Insect,
INTERCAL,
IntercalScript, Io, Ioke,
IPLANG,
Irken,
IRP, Isla,
Ivory.
Idris
Auteur : Edwin Brady
Langage fonctionnel avec types dépendants.
Imba
Auteur : Sindre Aarsaether
Se veut une jonction entre Ruby et
le Framework React, compilé vers
JavaScript.
Inform
Auteur : Graham
Nelson
Un langage permettant de décrire des fictions interactives à
partir du langage naturel.
Insect
Auteur : David Peter
Langage de programmation offrant un soutien direct à la représentation des
unités de mesure physiques.
INTERCAL
Auteur : Donald R.Woods
Un langage de programmation étrange dans
lequel l'opération mathématique primitive est l'entremêlement
de bits entre deux entier. On y trouve des opérations sur des trits
(unités ternaires, en comparaison avec les bits, qui sont des unités
binaires) et des expressions comme COMEFROM
(plutôt que GOTO).
IntercalScript
Auteur : Robert Grosse
Un langage de script qui, sans avoir de similitude syntaxique réelle avec
INTERCAL, est un langage qui semble construit
pour être difficile à utiliser...
Io
Auteur : Steve Dekorte
Langage s'apparentant à plusieurs langages bien connus (Lisp, Lua, Self, Smalltalk)
Ioke
Auteur : Ola Bini
Langage orienté prototype, inspiré de Lisp
et de Ruby, mais compilant pour exécution
sur la JVM. Deviendra manifestement
Seph.
IPLANG
Auteur : Iain Dunning
Langage ésotérique où les programmes sont exprimée sont la forme d'un
problème d'optimisation binaire. Le fruit de la résolution du problème
d'optimisation est traduit en brainfuck avant
d'être exécuté.
Irken
Auteur : aucune idée
Dialecte simplifié de Scheme avec syntaxe inspirée de
ML et typage statique.
IRP
Auteur : Gregor Richards
Un langage de programmation étrange dans
lequel les opérations sont basées sur... les interactions entre
humains.
Isla
Auteur : Mary Rose Cook.
Langage de programmation pour enfants. Je dois vous avouer avoir souri quand
j'ai constaté que syntaxiquement, ce langage est similaire à Thot,
que mes étudiants et moi avons conçu entre
2005 et 2010 environ.
Ivory
Auteurs : James Bielman, Thomas DuBuisson, Trevor Elliott, Pat Hickey, John Launchbury, Lee Pike et d'autres.
Langage basé sur Haskell et destiné au développemet de systèmes embarqués.
J
Auteurs : Kenneth Iverson et Roger Hui
Langage axé sur les calculs numériques. Inspiré par
APL, mais avec une syntaxe ne reposant que
sur les caractères ASCII.
Critiques :
Jai
Auteur : Jonathan Blow
Langage inspiré de C, mais avec une tournure plus
moderne, et qui se veut une alternative à C++
pour le développement de jeux vidéos.
Java
Auteur : James Gosling (entre autres)
Langage OO
fort influent.
Raccourcis :
Notez que l'achat de Sun Microsystems par Oracle a brisé plusieurs liens Web officiels sur le langage. Cela explique l'attrition dans les liens que j'avais accumulés au fil des ans.
Bases, culture et pédagogie :
../Sujets/Divers--java/pedagogie.html
Outils fondamentaux et technologies périphériques :
../Sujets/Divers--java/Outils.html
À propos de Java 7 :
../Sujets/Divers--java/Evolution-Java.html#java7
À propos de Java 8 :
../Sujets/Divers--java/Evolution-Java.html#java8
À propos de Java 9 :
../Sujets/Divers--java/Evolution-Java.html#java9
Dialectes
Le dialecte FGJω, qui vise à ajouter au langage des
constructeurs paramétriques de types :
Le dialecte Joe-E, orienté sécurité :
JavaScript
Auteur : Brendan Eich
Langage fonctionnel très,
très utilisé dans le monde du
développement Web.
Aussi connu sous le nom ECMAScript, mais le
nom JavaScript demeure (de loin) la plus populaire des deux appellations (d'ailleurs,
à propos des tensions entre les deux, voir le projet Harmony sur https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html).
Typiquement utilisé dans les pages Web, donc côté client
des applications Web.
Général :
../Sujets/Web/JavaScript-Intro.html#liens
Histoire : ../Sujets/Web/JavaScript-Intro.html#liens_histoire
Critiques :
../Sujets/Web/JavaScript-Intro.html#liens_critiques
Apprendre et comprendre JavaScript :
../Sujets/Web/JavaScript-Intro.html#liens_pedagogie
Historique :
../Sujets/Web/JavaScript-Intro.html#liens_histoire
Futur :
../Sujets/Web/JavaScript-Intro.html#liens_futur
Le JavaScript Object Notation (JSON) :
../Sujets/Web/Developpement-Web.html#json
Le dialecte Low-Level JavaScript (LLJS), pour celles et ceux qui visent
à programmer en JavaScript mais souhaitent les performances associées
à du code natif : http://mbebenita.github.com/LLJS/
Le dialecte JSX, qui impose à JavaScript un système
de types statique et met l'accent sur l'approche OO :
http://jsx.github.com/
Jinx
Auteur : James Boer
Langage de script
qui s'intègre à même du code C++.
Joy
Auteur : Manfred von Thun
Un langage dit
concaténatif, basé sur la mécanique d'une
pile.
JSOL
Auteur : Clark DuVall
Langage de programmation dont les programmes peuvent être représentés
entièrement en format
JSON. Voir aussi PSOL.
Julia
Auteur : Viral Shah, Jeff Bezanson, Stefan Karpinski et Alan Edelman
Un langage
dynamique construit pour générer des binaires à « haute
performance » sur LLVM. Ses concepteurs
se disent influencés par leur expérience avec Matlab. Ses auteurs ont gagné un
chic prix en 2018 :
http://news.mit.edu/2018/julia-language-co-creators-win-james-wilkinson-prize-numerical-software-1226
- http://julialang.org/
- http://julialang.org/manual/
- En 2018, Julia franchit un seuil et atteint la
version 1.0 :
https://julialang.org/blog/2018/08/one-point-zero
- http://julialang.org/blog/2012/02/why-we-created-julia/
- Entrevue avec Stefan Karpinski à propos de Julia, par Klint Finley en
2014 :
http://www.wired.com/wiredenterprise/2014/02/julia/?cid=co18025234
- Présentation des forces de Julia, par Nic Werneck (?) en
2018 :
- Faire de la statistique avec Julia, par John Myles White en
2012 :
http://www.johnmyleswhite.com/notebook/2012/12/02/the-state-of-statistics-in-julia/
- Des agrégats efficaces avec Julia, texte de Jeff Bezanson en 2013 :
http://julialang.org/blog/2013/03/efficient-aggregates/
- Métaprogrammation avec Julia :
Paradigmes-programmation--Liens.html#metaprogrammation_langage_Julia
- En 2014, Evan Miller déclare avoir la foi en
Julia, qui lui permet d'abattre le mur entre l'abstraction de haut niveau et
les considérations de haute vitesse auxquelles s'adressent habituellement les
langages de bas niveau :
http://www.evanmiller.org/why-im-betting-on-julia.html
- Utiliser Julia sur le Google Computing Engine, texte de Julia Ferraioli en
2014 :
http://www.blog.juliaferraioli.com/2014/01/julia-on-google-compute-engine-working.html
- Interfacer Julia et Python, par Leah Hanson
en 2014 :
http://blog.leahhanson.us/julia-calling-python-calling-julia.html
- Impressions très positives de Stephen Malone en 2014 :
http://eyeballtrees.com/posts/julia-impressions.html
-
Métaprogrammation avec Julia, texte de Jacob Quinn en 2014 :
http://quinnj.github.io/2014/06/19/data-structures-as-code-the-joys-of-meta-programming/index.html
- En 2014, John Myles White relate son
expérience à JuliaCon :
http://www.johnmyleswhite.com/notebook/2014/06/30/my-experience-at-juliacon/
- Calculs vectoriels avec Julia, par Arch D. Robinson en
2014 :
https://software.intel.com/en-us/articles/vectorization-in-julia
- Algèbre linéaire avec Julia, selon Alex H. Woods en
2015 :
http://alexhwoods.com/2015/08/22/linear-algebra-in-julia/
- Dans ce texte de 2015, John Myles White
explique pourquoi, selon lui, les DataFrames de Julia sont lents :
http://www.johnmyleswhite.com/notebook/2015/11/28/why-julias-dataframes-are-still-slow/
- Le modèle d'exécution usuel avec Julia est la
compilation juste à temps
(JIT), mais il est aussi possible de compiler un programme Julia avant de
l'exécuter (Ahead-of-Time, AOT) comme
l'explique Jameson Nash dans ce texte de 2016 :
http://juliacomputing.com/blog/2016/02/09/static-julia.html
- Julia, présenté par Alan Edelman en 2016 :
https://sinews.siam.org/DetailsPage/tabid/607/ArticleID/744/Julia-A-Fast-Language-for-Numerical-Computing.aspx
- Tirer profit de Julia pour des calculs numériques à haut volume (du
Number Crunching), par JS Hysing en 2016 :
https://medium.com/@jshysing/the-julia-programming-language-for-number-crunching-87faad52ce08
- Comment les gens de la finance profitent de Julia, texte de
2016 par Anthony Malakian :
http://www.waterstechnology.com/waters/feature/2476518/the-infancy-of-julia-an-inside-look-at-how-traders-and-economists-are-using-the-julia-programming-language
- En 2016,
Graydon Hoare
décrit Julia en ses
mots :
https://graydon2.dreamwidth.org/189377.html
- Des indices maison pour les tableaux en Julia, par Tim Holy en
2017 :
https://julialang.org/blog/2017/04/offset-arrays
- En 2017, Avik Sengupta et Simon Byrne décrivent leur expérience de transactions financières et boursières automatisées avec Julia :
https://juliacomputing.com/blog/2017/08/22/algorithmic-trading.html
- Programmer pour un
GPGPU avec Julia et
CUDA, par Mike Innes en 2017 :
http://mikeinnes.github.io/2017/08/24/cudanative.html
- Apprentissage automatique avec Julia, par Mike Innes et plusieurs autres
en 2017 :
https://julialang.org/blog/2017/12/ml&pl
- Les opérations Broadcast Fusion de Julia, texte de
2018 par Matt Bauman :
https://julialang.org/blog/2018/05/extensible-broadcast-fusion
- La désérialisation « zéro copie » en Julia, par Jamie Brandon en
2018 :
http://scattered-thoughts.net/blog/2018/08/28/zero-copy-deserialization-in-julia/
- Comparer la vitesse d'accès à un élément avec une expression
map et une répétitive avec Julia, par Dean Marwick en
2019 :
http://dm13450.github.io/2019/04/17/MapLoopPerformance.html
- En 2019, Aurelio Amerio présente des
techniques d'optimisation
avec Julia :
https://techytok.com/code-optimisation-in-julia/
- Composition avec Julia, par Lyndon White en 2020 :
https://white.ucc.asn.au/2020/02/09/whycompositionaljulia.html
- Texe de 2020 qui explique comment utiliser
Julia comme une sorte de calculatrice haut-de-gamme à la ligne de commande :
https://krasjet.com/rnd.wlk/julia/
- Les fonctions en Julia, expliquées en 2020 par
Karthikeyan A K :
https://data-science-with-julia.gitlab.io/2020/11/28/functions.html
Critiques :
- Opinion d'un utilisateur de Matlab, en 2012 :
http://2pif.info/op/julia.html
- Opinion quelque peu joviale, par John Myles White en
2012 : http://www.r-bloggers.com/julia-i-love-you/
- En 2012, Paul Krill relate que Julia se veut
le C des scientifiques : http://www.infoworld.com/d/application-development/new-julia-language-seeks-be-the-c-scientists-190818?page=0,0
- Dans ce texte de 2014, Dan Luu explique que
Julia est vraiment très bien... mais pas pour lui :
http://danluu.com/julialang/
- En 2016, Victor Zverovich explique pourquoi
il abandonne Julia :
http://zverovich.net/2016/05/13/giving-up-on-julia.html
- En 2017, Christopher Rackauckas relate son expérience plutôt positive avec Julia :
http://www.stochasticlifestyle.com/like-julia-scales-productive-insights-julia-developer/
- En 2018, Chris Stokel-Walker présente Julia comme le Boucle
d'Or des langages de programmation :
https://increment.com/programming-languages/goldilocks-language-history-of-julia/
- En 2018, le
MIT
présente Julia comme un langage en croissance, selon Nick Heath :
https://www.techrepublic.com/article/is-julia-the-next-big-programming-language-mit-thinks-so-as-version-1-0-lands/
- Quelques raisons d'utiliser Julia :
https://ucidatascienceinitiative.github.io/IntroToJulia/Html/WhyJulia
- Présentation constructive de Julia :
https://jott.live/markdown/julia
- En 2022, Yuri Vishnevsky explique pourquoi il ne se sent
plus confortable de recommander Julia :
https://yuri.is/not-julia/
Jumbala
Auteur : Jori
Dubrovin
Un langage pour décrire des automates UML.
Section « K »
Langages dans cette section K,
kabas,
Kal,
Karmasphere DP, Katana,
Kermeta, Kernel,
Kit,
Kitten,
Ko,
Kodu, Koka, Kotlin.
K
Auteur : Arthur Whitney
Langage de programmation système mêlant la programmation
fonctionnelle et des éléments qui évoquent le langage
APL, incluant la capacité de traiter efficacement
des vecteurs de données.
kabas
Auteur : Christof Kaser
Langage de programmation pour débutant(e)s.
Kal
Auteur : Robert Zimmerman
Un langage qui se veut une alternative à JavaScript, mais dont la compilation génère du code
JavaScript.
Karmasphere DP
Auteur(s) : à déterminer...
Langage mettant l'accès sur le parallélisme des données
et les structures de données aux opérations non bloquantes.
Katana
Auteur : Belo Horizonte
Un langage se prêtant à la programmation système mais conçu
pour ressembler à du
JavaScript compilé en code natif.
Kermeta
Auteur : Franck Fleurey
Ce langage se présente comme un environnement de métaprogrammation basé sur un DSL orienté
objet.
Kernel
Auteur : John N. Shutt
Dialecte de Lisp inspiré de Scheme
Kit
Auteur : Ben Morris
Langage qui se veut approprié pour le développement de jeux, et qui vise la
transpilation en code C.
Kitten
Auteur : Jon Purdy
Langage statiquement typé, axé sur la programmation
fonctionnelle et
concaténative.
Ko
Auteurs : Ewout Prangsma et Joseph Jacks
Langage fonctionnel sans états mutables, générique mais construit sur le
run-time de Go
Kodu
Auteur : Microsoft Research (Matt MacLaurin?)
Langage à visées pédagogiques, visuel et axé vers
le 3D. Permet de programmer la console XBox. Repose
sur la plateforme XNA.
Koka
Auteur : Dann Leijen
Langage
fonctionnel séparant les fonctions pures des calculs ayant des effets
de bord. Le type des fonctions y indique la présence ou non d'effets
de bord, facilitant pour le
compilateur le raisonnement sur les impacts de chacune
d'elles.
Kotlin
Auteur : Andrey Breslav
Langage à système de types statique, destiné à
la JVM.
- https://thestrangeloop.com/sessions/the-kotlin-programming-language
- Apprendre Kotlin en quelques minutes :
https://learnxinyminutes.com/docs/kotlin/
- Tutoriel pas mal du tout :
https://kotlinlang.org/docs/tutorials/koans.html
- Entrevue avec Andrey Breslav en 2013 :
http://www.oracle.com/technetwork/articles/java/breslav-1932170.html
- http://www.artima.com/weblogs/viewpost.jsp?thread=335110
- En 2012, Igor Drobiazko présente quelques
exemples de petits programmes en Kotlin : http://blog.tapestry5.de/index.php/2012/01/25/hello-kotlin/
- http://github.com/strangeloop/2011-slides/raw/master/Breslav-Kotlin.pdf
- http://blog.jetbrains.com/kotlin/2012/03/kotlin-m1-candidate/
- En 2012, Kotlin devient un projet à code
ouvert :
- Selon Mike Gouline en 2014, Kotlin serait à
Android ce que Swift est à iOS :
http://blog.gouline.net/2014/08/31/kotlin-the-swift-of-android/
- Utiliser Kotlin sur Android dans une optique de
programmation réactive, textes de
Cédric
Beust en 2015 :
- Écrire du code qui évolue avec le langage Kotlin, par Ilya Gorbunov en 2015 :
http://blog.jetbrains.com/kotlin/2015/06/kotlin-evolves-how-to-keep-your-code-up/
- Exploration de la bibliothèque standard de Kotlin, proposée par
Cédric
Beust en 2015 :
http://beust.com/weblog/2015/10/30/exploring-the-kotlin-standard-library/
- En 2015, Nat Pryce relate ses premières
expériences avec Kotlin :
http://natpryce.com/articles/000815.html
- Séance de questions / réponses avec Andrey Breslav, en
2016 :
https://dzone.com/articles/a-qa-with-andrey-breslav-on-kotlin
- Nouveauté avec Kotlin 1.0+, selon Dimitry Jemerov en
2016 :
http://blog.jetbrains.com/kotlin/2016/04/kotlin-post-1-0-roadmap/
- Rouler un dé avec Kotlin, par Nicolas Fränkel en
2016 :
https://blog.frankel.ch/rolling-dice-kotlin
- Nombres à virgule
flottante avec Kotlin, expliqués par Nicolas Fränkel en
2016 :
https://blog.frankel.ch/fixing-floating-point-arithmetics-with-kotlin/
- Le « bien » et le « moins bien » avec Kotlin, de l'
avis de AJ Alt en
2016 :
https://medium.com/keepsafe-engineering/kotlin-the-good-the-bad-and-the-ugly-bf5f09b87e6f
- En 2016, Mark Galea montre comment écrire des
arbres de décision avec Kotlin :
http://cloudmark.github.io/Decision-Trees/
- Le sens du mot val en Kotlin, par Artem Zinnatullin en
2016 :
https://artemzin.com/blog/kotlin-val-does-not-mean-immutable-it-just-means-readonly-yeah/
- Écrire du code idiomatique avec Kotlin, par Denis Trailin en
2016 :
http://code.hootsuite.com/writing-kotlin-idiomatic-code/
- Composition de fonctions par voie d'extensions et d'opérateurs, un texte
de 2016 par Daniele Conti :
https://medium.com/@fourlastor/composing-functions-in-kotlin-with-extensions-and-operators-76a499f5b4b7
- En 2016, Kenneth Ford propose d'utilise Kotlin
pour nettoyer le code Java :
https://medium.com/@kford55/kotlin-why-i-feel-its-useful-in-a-java-only-code-base-206bdb37c79
- Les atouts de Kotlin, décrits en 2016 par
Jasper Sprengers :
https://blog.codecentric.de/en/2016/04/kotlins-killer-features/
- En 2017, Andrey Breslev explique comment utiliser Kotlin en mode natif,
donc sans machine virtuelle :
https://blog.jetbrains.com/kotlin/2017/04/kotlinnative-tech-preview-kotlin-without-a-vm/
- Inventaire de bonnes pratiques avec Kotlin, colligé par Philipp Hauer :
https://blog.philipphauer.de/idiomatic-kotlin-best-practices/
- En 2017, Hadi Hariri explique comment utiliser Kotlin sur un Raspberry
Pi :
http://hadihariri.com/2017/04/09/kotlin-on-raspberry-pi/
- Introduction à Kotlin, série d'articles par Jussi Hallila en
2017 :
Produits dérivés :
Section « L »
Langages dans cette section :
Leaf, Legit, Lily, Limbo,
Linden, Links,
Lisaac, Liskell,
Lisp, littleb,
Lobster,
Logo, LOLCODE,
Loop, Lox, Lua,
Luna, Lux.
Leaf
Auteur : Edaqa Mortoray
Projet personnel de son auteur, qui cherche à atteindre ce qui serait à ses
yeux un « langage idéal ».
Legit
Auteur : Sebastian Morr
Langage étrange, basé... sur des commandes git.
Lily
Auteur : Jesse Ray Adkins
Langage mettant l'accent sur la sécurité et l'expressivité
Limbo
Auteurs : Sean Dorward, Phil Winterbottom et Rob
Pike
Un langage qui aurait influencé Go :
Linden
Auteur : Linden Labs
Langage de script servant entre autres
au développement dans le monde virtuel Second
Life.
Links
Auteurs : Ezra Cooper, Sam Lindley, Philip Wadler et Jeremy Yallop
Langage axé sur la génération d'applications Web, produisant tous les tiers requis d'un seul coup.
Lisaac
Auteurs : Benoit Sonntag et Xavier Oswald?
Se veut un successeur de Self.
Liskell
Auteur : Clemens Fruhwirth
Langage fonctionnel, avec la syntaxe de Lisp et la sémantique de Haskell.
Lisp
Voir Langages/Lisp--Liens.html
littleb
Auteur : Aneil Mallavarapu
Un langage niche mettant l'accès sur des modèles mathématiques
complexes constitués de petits modules réutilisables. Semble être
utilisé surtout par des gens qui gravitent autour de la biologie et des
sciences de la vie.
Lobster
Auteur : Wouter van Oortmerssen
Langage axé sur le développement de jeu vidéo, et offrant plusieurs
fonctionnalités adaptées à ce type de développement.
Logo
Auteur : Seymour
Papert
Langage à vocation pédagogique, célèbre pour ses
opérations guidant la
tortue, par laquelle des formes pouvaient être tracées à
l'écran (ou ailleurs).
LOLCODE
Auteur : Adam
Lindsay
Un langage de programmation étrange dont
les primitives sont basées sur les mots brefs que s'échangent
les gens, typiquement par clavardage ou dans des messages textes sur téléphone
cellulaire.
Loop
Auteur : Dhanji R. Prasanna.
Langage
fonctionnel s'exécutant sur la JVM
et profitant des processeurs à plusieurs coeurs.
Lox
Auteur :
Robert
Nystrom
Langage par lequel l'auteur explique comment écrire un
interpréteur dans
une série d'articles à saveur
pédagogique.
Lua
Auteurs : Roberto Ierusalimschy, Waldemar Celes et Luiz Henrique de Figueiredo
Langage de scripts, prisé en particulier dans le monde des jeux vidéos.
Critiques :
Luna
Auteurs : des gens de New Byte Order?
Langage fonctionnel offrant une métaphore duale de code en tant que texte
et en tant que visualisation graphique.
Lux
Auteur : Eduardo Julian
Langage qui se veut une sorte de Lisp mais avec système de types statique,
susceptible d'être exécuté sur la
JVM ou transpilé en
JavaScript.
Section « M »
Langages dans cette section : M,
Magpie, Malbolge,
Mantle,
Marelle, Mathematica,
Mercury, Metalua,
Metamine,
Metaphors,
min,
miniKanren,
Mint,
Mirah, ML,
Modula II ,
MoonScript, Mouse,
Mumps,
Mun,
Myrddin, Mythryl,
M#.
M
Auteur : Microsoft Research?
Langage de modélisation de données, qui semble avoir surtout
servi à titre de DSL expérimental duquel est né le langage Dminor.
Magpie
Auteur :
Robert
Nystrom
Langage OO
dynamiquement typé, similaire à Python
et à Ruby. L'auteur réfléchit
son langage à haute voix dans ses publications, ce qui rend ses écrits
plutôt intéressants.
Malbolge
Auteur : Ben Olmstead
Langage de programmation étrange dont la syntaxe a été conçue pour rendre
presque impossible la rédaction de programmes utiles.
Mantle
Auteur : AMD
Langage mettant l'accent sur l'affichage.
Marelle
Auteur : Lars Yencken
Langage axé sur la programmation
déclarative
et logique.
Mathematica
Auteur : Stephen
Wolfram
À la fois un logiciel de résolution de problèmes mathématiques
et un langage de programmation orienté vers la résolution de tels
problèmes.
Mercury
Auteur : Zoltán Somogyi
Langage déclaratif, à la manière de Prolog, de même que fonctionnel et fortement typé, à la manière de Haskell ou de ML.
Metalua
Auteur : Fabien?
Un dialecte de Lua mettant l'accent sur la métaprogrammation statique.
Metamine
Auteur : ymte?
Un langage qui se veut purement déclaratif.
Metaphors
Auteur : Victoria
Livschitz
Pas tant un langage qu'une réflexion sur ce que les langages devraient
être, du moins de l'avis de l'auteur.
min
Auteur : Fabio Cevasco
Langage construit sur la base de Nim, qui se veut à la fois
fonctionnel et
concaténatif.
miniKanren
Auteur : Will Byrd
Langage de type DSL
destiné à la
programmation logique
Mint
Auteur : Szikszai Gusztáv
Langage de scripting visant la rédaction d'applications monopages pour le Web
Mirah
Auteur : Charles
Oliver Nutter
Un dérivé de JRuby, dialecte de
Ruby destiné à la
JVM.
ML
Auteur : Robin
Milner
Langage fonctionnel « impur »
(car tolérant les effets de bord) facilitant l'inférence dynamique
de types.
- Le Wiki : http://en.wikipedia.org/wiki/ML_%28programming_language%29
- Le Standard ML Family, un projet de développement pas la
communauté : http://sml-family.org/
- Technique de transformation de types pour fins de transfert et d'interopérabilité :
- Mécaniser la métathéorie du langage : http://www.cs.cmu.edu/~rwh/papers/tslf/full.pdf
- Le langage Successor ML, qui prétend que le ML standard est mort :
http://successor-ml.org/index.php?title=Main_Page
- HaMLet, une implémentation qui se veut fidèle au ML standard
de 1997 : http://www.mpi-sws.org/~rossberg/hamlet/
- Des composants dynamiques pour ML : http://www.ps.uni-saarland.de/Papers/abstracts/missing-link.pdf
- Une critique des templates de C++,
avec proposition d'amélioration en ML : http://www.kuro5hin.org/story/2003/5/26/22429/7674
- ML et les monades : http://existentialtype.wordpress.com/2011/05/01/of-course-ml-has-monads/
- Trier avec ML, un texte de Jeremy Kun en 2013 :
http://jeremykun.com/2013/04/07/a-sample-of-standard-ml-and-the-treesort-algorithm/
- En 2015, Andreas Rossberg oeuvre à unifier les
dialectes de ML sous un même chapiteau, nommé 1ML :
http://www.mpi-sws.org/~rossberg/1ml/
- Série d'articles par
Eric
Lippert en 2016, portant sur ce qui, au coeur
de ML, décrit les fondements des systèmes
de types, en particulier ceux de l'inférence de types, de la plupart des
langages fonctionnels :
Dialectes :
Modula II
Auteur : Niklaus
Wirth
Langage impératif inspiré
de Pascal. Longtemps utilisé pour l'enseignement
de la programmation.
MoonScript
Auteur : Leaf Corcoran
Langage de scripting dont le fruit de la compilation est du code Lua.
Mouse
Auteur : Peter Grogono
Petit langage reposant fortement sur une pile d'exécution.
Mumps
Auteur : Neil Pappalardo
Langage généraliste, produit du milieu de la santé, qui facilite la
représentation de tables dans des bases de données par des entités indicées
primitives.
Mun
Auteur : un groupe de bénévoles qui se présente comme The Mun Team
Langage qui dit viser le remplacement de Lua
dans le monde du jeu.
Myrddin
Auteur : Ori Bernstein
Langage « jouet » de prime abord, mais qui vise à permettre de programmer tout près du
matériel, tout en garantissant un Type Safety
maximal.
Mythryl
Auteur : Cynbe?
Langage orienté plaisir (de programmer), selon son auteur principal.
M#
Auteur : Joe Duffy (et son équipe)
Langage se voulant une sorte de « C# pour
programmation système », et dont la structure est pensée pour faciliter
l'analyse statique. Semble émerger du projet expérimental
Midori. Attention :
le nom M# n'est pas officiel.
Section « N »
Langages dans cette section : Nemerle,
nesC, NESL, Newspeak,
Newsqueak, Ni, Nice,
Nil, Nim, Nimrod,
Nominine, none, Noop,
Nothing,
NOVA.
Nemerle
Auteurs : Kamil Skalski, Michal Moskal, Prof. Leszek Pacholski et Pawel
Olszta (note : Michal et Pawel devraient se terminer par un « l »
traversé d'un court trait diagonal, mais je ne trouve pas le symbole
pour cette lettre pour le moment)
Langage compilé pour le CLR
de .NET,
combinant des facilités OO
et fonctionnelles.
nesC
Auteurs : Eric Brewer, David Culler, David Gay, Phil Levis, Rob von Behren
et Matt Welsh
Langage qui est en fait une extension du langage C
supportant le modèle d'exécution du système d'exploitation
TinyOS, surtout utilisé
sur des réseaux de petits noeuds.
NESL
Auteurs : Guy E. Blelloch
Langage voué à la programmation parallèle.
Newspeak
Auteur : Gilad
Bracha
Langage OO, descendant
direct de Smalltalk et de Self.
Newsqueak
Auteur : Rob Pike
Langage orienté vers la multiprogrammation par processus concurrents.
Ni
Auteur : Göran Krampe
Langage intégrant des concepts de Smalltalk,
Nim et REBOL entre
autres sources
Nice
Auteur : Daniel Bonniot
Langage OO
visant la production de programmes contenant moins de bogues...
Nil
Auteur : Sacha René Lieb
Langage de programmation nihiliste, tiens. Extrêmement efficace pour
les tâches qu'il doit résoudre...
Nim (autrefois Nimrod)
Auteur : Andreas Rumpf
Langage qui se veut une combinaison de la lisibilité de Python, l'expressivité de Lisp et la
vitesse d'exécution de C.
- http://force7.de/nimrod/
- https://launchpad.net/nimrod
- http://joejacob.co.in/nimrod-language/
- http://www.devtopics.com/nimrod-obscure-programming-language-of-the-month/
-
http://nimrod-code.org/index.html
- Selon Steve Donovan en 2013, Nimrod serait en
quelque sorte le retour à l'avant-scène de Pascal (ou, plus précisément, d'ObjectPascal) :
http://steved-imaginaryreal.blogspot.co.uk/2013/09/nimrod-return-of-pascal.html
- Nimrod et la
métaprogrammation :
Paradigmes-programmation--Liens.html#metaprogrammation_langage_Nimrod
- En 2013, Dominik Picheta décrit Nimrod :
http://picheta.me/articles/2013/10/about-nimrods-features.html
- Texte de 2013 par Ivan Voras, expliquant ce
que son auteur apprécie de Nimrod :
http://ivoras.sharanet.org/blog/tree/2013/Oct-2013-10-05.what-i-like-about-the-nimrod-programming-language.html
- Les Type Classes de Nimrod, expliquées en
2014 :
http://vocalbit.com/posts/exploring-type-classes-in-nimrod.html
- En 2014, Andreas Rumpf explique en quoi Nimrod est un langage de
programmation système :
http://www.drdobbs.com/open-source/nimrod-a-new-systems-programming-languag/240165321
- En 2014, Geet Dugal nous invite à envisager
utiliser Nimrod :
http://geetduggal.wordpress.com/2014/03/03/consider-nimrod/
- Survol de Nim, proposé par Göran Krampe en 2014 :
http://goran.krampe.se/2014/10/20/i-missed-nim/
- En 2014, Maurizio Tomasi relate son expérimentation avec
Nimrod :
http://ziotom78.blogspot.ca/2014/01/experiments-with-nimrod.html
- Texte de 2014 par Dennis Felsing sur ce qui fait de Nim un
langage spécial :
http://hookrace.net/blog/what-is-special-about-nim/
- Dennis Felsing, dans cet texte de 2015,
explique ce qu'il aime de Nim :
http://hookrace.net/blog/what-makes-nim-practical/
- En 2015, Denis Felsing explique comment il
démarre un nouveau projet avec Nim :
http://howistart.org/posts/nim/1
- En 2015, Grzegorz Adam Hankiewicz souhaite au revoir à Nim et
explique pourquoi :
https://gradha.github.io/articles/2015/02/goodbye-nim-and-good-luck.html
- Texte de 2017 par Araq (?), qui décrit le
virage de Nim vers un modèle qui ne repose plus sur la
collecte d'ordures :
https://nim-lang.org/araq/destructors.html
- Implémenter la commande yes, bien connue des
utilisatrices et des utilisateurs de
Linux, à l'aide de Nim, un
texte amusant par Valts Liepiņš en 2018 :
https://nim-lang.org/blog/2018/01/22/yes-command-in-nim.html
- Regard positif porté sur Nim par Steve Kellock en
2018 :
https://totallywearingpants.com/posts/nim-underdog/ (avec un survol de
quelques particularités-clés de ce langage sur
https://totallywearingpants.com/posts/nim-language-highlights/)
- Optimiser avec Nim, selon Chris Smith en 2018 :
https://chameth.com/2018/12/09/over-the-top-optimisations-in-nim/
- Texte de 2019 par Nari Miran qui décrit des mécanismes de Nim
permettant de programmer dans ce langage sans avoir recours à une collecte
d'ordures traçante :
https://nim-lang.org/araq/ownedrefs.html
- Importer des fonctions d'un module avec Nim, par Nari Miran en
2019 :
https://narimiran.github.io/2019/07/01/nim-import.html
- Exceptions basées
sur des goto, par Nari Miran en
2020 :
https://nim-lang.org/araq/gotobased_exceptions.html
- Du tracé de rayons avec Nim, selon Mamy Ratsimbazafy en 2020 :
https://nim-lang.org/blog/2020/06/30/ray-tracing-in-nim.html
Nominine
Auteur : Thomas M. Farrelly
Langage OO
se voulant très simple.
none
Auteur : Leonard Ritter
Langage où les expressions imbriquées sont la manière privilégiée
d'exprimer une idée, et qui a été pensé spécifiquement pour le développement
de jeux.
Noop
Auteur : plusieurs personnes.
Langage OO
compilé de manière à s'exécuter sur une machine
virtuelle., qui cherche à encourager les bonnes pratiques et programmation
et à décourager les mauvaises.
Nothing
Auteur : Peter van Eerten
Langage étrange mettant l'accès sur le Bug-Free Programming. Un
programme Nothing ne contient effectivement jamais de bogues. La difficulté
est d'adapter ses attentes à ce qu'offre le programme
NOVA
Auteurs : Alex Collins, Dominik Grewe, Vinod Grover, Sean Lee et Adriana Susnea.
Langage fonctionnel axé sur le
parallélisme des données.
Section « O »
Langages dans cette section : Oak, Oberon,
Objective-C,
ObjectPascal,
Oblivion, OCaml,
Odin,
OMeta, ooc, Opa,
Orc, Oz.
Oak
Auteur : Adam McDaniel
Langage qui se présente comme une « alternative plus portable » au langage
C.
Oberon
Auteur : Niklaus
Wirth
Langage impératif inspiré
de Modula-II.
Objective-C
Auteurs : Tom
Love et Brad
Cox.
Langage OO
très important sur les plateformes Apple
telles que le Macintosh et le iPhone.
- http://en.wikipedia.org/wiki/Objective-C
- http://developer.apple.com/Mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html
- http://cocoadevcentral.com/d/learn_objectivec/
- http://www.macresearch.org/cocoa_for_scientists
- http://cocoasamurai.blogspot.com/2010/01/understanding-objective-c-runtime.html
- http://www.mikeash.com/pyblog/friday-qa-2009-03-13-intro-to-the-objective-c-runtime.html
- http://www.mikeash.com/pyblog/friday-qa-2009-04-24-code-generation-with-llvm-part-2-fast-objective-c-forwarding.html
- http://blog.ablepear.com/2010/04/objective-c-tuesdays-local-variables.html
- http://spin.atomicobject.com/2010/04/07/migrating-to-closures-in-objective-c
- http://www.mikeash.com/pyblog/friday-qa-2010-04-16-implementing-fast-enumeration.html
- http://cocoawithlove.com/2010/07/is-virtual-machine-for-cocoa.html
- http://cocoawithlove.com/2010/08/alternative-objective-c-object.html
- http://blog.ablepear.com/2010/09/creating-guid-or-uuid-in-objective-c.html
- http://blog.ablepear.com/2010/10/objective-c-tuesdays-replacing-in.html
- http://interfacelab.com/objective-c-memory-management-for-lazy-people/
- Objective-C après quelques mois d'utilisation, commentaires de
Mario Sangiorgio en
2013 :
http://blog.mariosangiorgio.com/2013/01/02/my-troubled-relationship-with-objective-c-and-ios-development/
- Techniques pour écrire moins de code : http://inessential.com/2011/08/04/less_code_less_effort
- Les blocs :
- Espaces nommés et constantes en Objective-C : http://www.mikeash.com/pyblog/friday-qa-2011-08-19-namespaced-constants-and-functions.html
- Automatisation de la gestion des ressources avec Objective-C : http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html
- Selon Daniel Jalkut, en 2011, Objective-C est
le langage : http://www.red-sweater.com/blog/2256/objective-c-is-the-language
- Réflexions sur Objective-C après une dizaine d'années
d'utilisation, par Matt Nunogawa en 2011 :
http://www.amattn.com/2011/10/15/the_disposition_of_objective-c.html
- Utiliser Objective-C sous Windows,
un texte de Paul Silisteanu en 2012 : http://solarianprogrammer.com/2012/03/21/clang-objective-c-windows/
- Littéraux avec Objective-C, texte de 2012 par
Mike Ash : http://www.mikeash.com/pyblog/friday-qa-2012-06-22-objective-c-literals.html
- Quelques trucs avec Objective-C, colligés par Mattt Thompson en
2012 :
http://www.nshipster.com/reader-submissions-new-years-2013/
- Sept péchés mortels des programmeuses et des programmeurs Objective-C, par Ash
Furrow en 2012 :
http://ashfurrow.com/blog/seven-deadly-sins-of-modern-objective-c
- Les différentes saveurs de pointeurs nuls en Objective-C, par Mattt
Thompson en 2013 :
http://nshipster.com/nil/
- Saines pratiques avec Objective-C :
http://www.objc.io/
- En 2013, Aaron Hillegass et Mikey Ward expliquent les variables et les types avec Objective-C :
http://www.informit.com/articles/article.aspx?p=2161675
- Un truc pour que les fichiers Objective-C deviennent auto-exécutables, par
Nicolas Bouilleaud en 2013 :
http://bou.io/HowToWriteASelfCompilingObjectiveCFile.html
- Le « Objectivist-C », une approche radicale à la programmation en
Objective-C proposée par Jaymie Strecker en 2012 :
http://fdiv.net/2012/04/01/objectivist-c
- Écrire du code Objective-C un peu comme un écrirait du code
Smalltalk, une proposition de Soroush Khanlou en
2014 :
http://khanlou.com/2014/05/smalltalky-control-structures/
- Utiliser Objective-C pour écrire des scripts, texte de
2014 :
http://blog.manbolo.com/2014/06/01/shell-scripting-with-objectivec
- Programmer avec Grand Central Dispatch, série d'articles par Dave
Rahardja en 2014 :
http://www.humancode.us/2014/07/28/intro-to-gcd.html
- Qu'en est-il d'Objective-C en 2015? Texte de
Jordan Morgan :
https://medium.com/the-traveled-ios-developers-guide/objective-c-in-2015-3cb7dab3690c
- Les propriétés atomiques ou non, expliquées par Yogev Sitton en
2017 :
https://medium.com/@YogevSitton/atomic-vs-non-atomic-properties-crash-course-d11c23f4366c
-
Programmation impérative en OCaml, par Martina Lui en
2018 :
https://thealmarty.com/2018/06/12/imperative-programming-in-ocaml/
Critiques :
ObjectPascal
Auteur : Larry Tesler
Langage sous-jacent à TurboPascal,
variante OO
de Pascal.
Oblivion
Auteur : Josh Weinstein
Langage dont la compilation génère des images SVG.
https://github.com/jweinst1/Oblivion
OCaml
Auteur :
Xavier
Leroy
De son vrai nom Objective Caml, langage
fonctionnel mais avec un support pour l'approche OO
.
- http://caml.inria.fr/index.en.html
- http://godi.camlcity.org/godi/why.html
- Démarrer avec OCaml :
- http://caml.inria.fr/pub/docs/oreilly-book/
- Divers articles sur le design de ce langage :
http://www.hxa.name/notes/note-hxa7241-20151108T1107Z.html
- http://okmij.org/ftp/Computation/caml-shift.pdf
- http://rwmj.wordpress.com/2009/08/04/ocaml-internals/
- http://ambassadortothecomputers.blogspot.com/2010/03/inside-ocaml-objects.html
- http://on-ruby.blogspot.com/2006/10/author-interview-joshua-sm_116161451874815021.html
- En 2010, Yaron Minsky propose d'utiliser OCaml comme langage
de script : http://ocaml.janestreet.com/?q=node/80
- Un Cheat Sheet : http://www.ocamlpro.com/code/2011-06-03-cheatsheets.html
- Un type universel? http://ocaml.janestreet.com/?q=node/95
- L'heure d'adopter OCaml est-elle venue? Une opinion de Yaron Minsky, en
2011 : http://queue.acm.org/detail.cfm?id=2038036
- En 2012, Andrew Ruef explique pourquoi il faut,
selon lui, adopter OCaml : http://www.mimisbrunnr.net/~munin/blog/why-ocaml.html
- Comment OCaml vérifie les types, un texte détaillé de
2013 :
hhttp://okmij.org/ftp/ML/generalization.html
- Optimiser avec OCaml :
Optimisation--Liens.html#langage_OCaml
- En 2014, Andrew Herron explique pourquoi on
devrait utiliser OCaml dès maintenant :
http://spyder.wordpress.com/2014/03/16/why-ocaml-why-now/
- Introduction à OCaml, par Mads Hartmann en 2014 :
http://mads379.github.io/ocaml/2014/11/13/ocaml-briefly.html
- Texte de 2015 par Alain Frisch, expliquant les
tableaux de nombres à
virgule flottante avec OCaml :
http://www.lexifi.com/blog/about-unboxed-float-arrays
- En 2014, texte mettant de l'avant pourquoi
l'auteur estime qu'il est temps d'utiliser OCaml :
https://spyder.wordpress.com/2014/03/16/why-ocaml-why-now/
- Programmation système sous Unix
à l'aide d'OCaml, un livre en ligne par
Xavier
Leroy et Didier Rémy, en
2014 :
https://ocaml.github.io/ocamlunix/
- OCaml expliqué aux sceptiques, par Keith Waclena :
http://www2.lib.uchicago.edu/keith/ocaml-class/home.html
- Introduction à OCaml, riche en exemples, par Fredrik Dyrkell en
2015 :
http://www.lexicallyscoped.com/2015/06/06/intro-to-ocaml.html
-
Programmation fonctionnelle avec OCaml :
Paradigmes-programmation--Liens.html#programmation_fonctionnelle_langage_OCaml
-
En 2014, Jeff Meister explique pourquoi son entreprise
utilise OCaml :
http://tech.esper.com/2014/07/15/why-we-use-ocaml/
-
Série d'articles par
Eric
Lippert en 2016, alors qu'il expérimente avec
OCaml pour écrire sa propre version du jeu
Zork, destiné à s'exécuter
sur une Z-Machine (les
liens sont dans la section sur la Z-Machine)
- Améliorer l'inlining avec OCaml, par Jane Street en
2016 :
https://blogs.janestreet.com/flambda/
- Implémenter des Type Classes modulaires, texte de Shayne Fletcher
en 2017 :
https://accu.org/index.php/journals/2445
- OCaml et le Framework Rails,
qu'on associe normalement à Ruby, texte de
2019 par Jasim A. Basheer :
https://protoship.io/blog/rails-on-ocaml/
- Tutoriel à propos de la programmation parallèle sur mes machines
multi-coeurs en OCaml :
https://github.com/ocaml-multicore/parallel-programming-in-multicore-ocaml/tree/draft
Critiques :
Outils et dialectes :
Odin
Auteur : Ginger Bill
Langage qui vise à remplacer C, rien de moins.
OMeta
Auteur : Alessandro Warth
Langage OO
pour reconnaissance de patterns.
ooc
Auteur : Amos Wenger
Langage qui se dit fonctionnel et OO, sorte d'hybride syntaxique
de plusieurs langages, dont la compilation produit du code C99.
Opa
Auteur : des gens chez MLState
Langage axé vers l'infonuagique et les systèmes répartis
sur le Web.
Orc
Auteur : Jayadev
Misra
Langage orienté vers l'orchestration de services dans les systèmes
répartis
Oz
Auteur : Gert Smolka
Langage multiparadigmatique mettant l'accent sur la multiprogrammation.
Section « P »
Langages dans cette section : P,
Parasail,
Pascal, Pawn,
Pepper3, Perl,
Pharo,
PHP, Pi,
Picat,
Piet, Pike, PlayScript,
POET,
PogoScript,
Pointless,
Pony,
Postscript, Potion,
Processing, Prolog, pSather, Pseudocode,
PSOL,
Pure, Purity,
Pyret, Python.
P
Auteurs : Ankush Desai et Pantazis Deligiannis
Langage mettant l'accent sur la programmation événementielle et la communication asynchrone entre automates.
Parasail
Auteur : Tucker
Taft
Langage axé sur le développement de programmes exploitant le
parallélisme. Le code est automatiquement divisé en tout petits
blocs, nommés PicoThreads, et tout s'y passe en parallèle
par défaut.
Pascal
Auteur : Niklaus
Wirth
Langage impératif, longtemps
associé de près à l'enseignement
de la programmation.
Pawn
Auteur : pas clair (des gens de ITB CompuPhase)
Langage de script, utilisé dans plusieurs jeux populaires.
Pepper3
Auteur : Andy Balaam
Langage multiparadigme, qui vise entre autres à faciliter la création de
types et le déploiement.
Perl
Auteur : Larry Wall
Un langage « complètement sauté », qui fait des miracles avec des
riens, mais qui n'est pas le plus simple d'approche avec plus de cent opérateurs,
des tas de raccourcis et un mantra selon lequel « Il y a plusieurs
façons de faire chaque chose » (There's more than one
way to do it, TMTOWTDI).
En ce sens, Perl va à contresens de Python, qui prétend le contraire
(qu'il ne devrait y avoir qu'une seule manière évidente de faire
chaque chose). Perl est particulièrement puissant pour ce qui tient du
traitement de chaînes de caractères, du Pattern Matching.
Puisque Perl 6 sera prêt à Noël,
mais reste à voir quel Noël, un calendrier
de l'Avent décrit les nouvelles idées de ce langage. . à
bien des points de vue, Perl est philosophiquement opposé à Python.
- Site officiel : http://www.perl.com/
(pour télécharger la version la plus récente : http://www.perl.com/download.csp)
- Perl pour débutants :
http://perl-begin.org/
- Apprendre Perl par exemples, selon Matthew Might en
2014 :
http://matt.might.net/articles/perl-by-example/
- Une entrevue avec Larry
Wall sur Perl : http://www.computerworld.com.au/index.php?q=article/270267/-z_programming_languages_perl&fp=&fpid=
- La page Web de Larry
Wall sur Perl : http://www.wall.org/~larry/perl.html
- Perl contemporain : http://www.modernperlbooks.com/drafts/modern_perl/chapter_01.html
- L'an 2012 marque le 25e
anniversaire de Perl :
http://news.perlfoundation.org/2012/12/the-first-twenty-five-years.html
- Enseigner le Perl moderne, selon Gabor Szabo en 2011 :
http://szabgab.com/how-to-teach-modern-perl.html
- Qu'est-ce que le Perl contemporain? http://perlgeek.de/blog-en/perl-tips/what-is-modern-perl.html
- Pourquoi Perl?
- Perl et les expressions régulières :
- Perl et les opérateurs :
- Un vecteur multidimensionnel pleinement implémenté sans aucune
répétitive : http://github.com/LastOfTheCarelessMen/Vector/blob/master/lib/Vector.pm
- Sur la manipulexité et la « Whipuptitude »
(sans blagues) : http://use.perl.org/~ziggy/journal/26131
- Perl s'explique en apocalypses
et en exégèses.
La documentation officielle s'explique à partir de ces deux concepts :
http://feather.perl6.nl/syn/
- Les (souvent délicieux) discours de Larry
Wall sur le State of the Onion : http://www.perlfoundation.org/perl6/index.cgi?state_of_the_onion
- Écrire des jeux avec Perl et SDL :
http://arstechnica.com/gaming/news/2006/02/games-perl.ars
- Il ne faut pas perdre la foi... http://perlmonks.org/?node_id=563050
- Perl et XML : http://www.ibm.com/developerworks/xml/library/x-xmlperl1.html?ca=dgr-lnxw01XML-Simple
- Perl et les graphiques : http://www.ibm.com/developerworks/opensource/library/os-perlgdchart/?ca=dgr-lnxw01Perl-GD-Charts
- Perl et la plateforme .NET :
- Perl et le Framework Rails,
qu'on associe normalement à Ruby :
http://www.bbc.co.uk/blogs/radiolabs/2007/11/perl_on_rails.shtml
- Pourquoi les administrateurs détestent Perl : http://www.oreillynet.com/onlamp/blog/2008/08/why_corporates_hate_perl.html
- Perl pour Windows (un Wiki) : http://win32.perl.org/wiki/index.php?title=Main_Page
- Un livre électronique sur Perl : http://hop.perl.plover.com/book/
- Cours accéléré sur Perl : http://usestrict.net/2009/05/23/perl-crash-course-pragmas-perl-modules-and-cpan/
- Implémentation de Perl en Haskell :
http://www.pugscode.org/
- Une instruction amusante : le Don't, http://search.cpan.org/~dconway/Acme-Don-t-1.01/t.pm
- Plusieurs font de la poésie
en Perl, mais ce poème particulier a une très vilaine réputation :
http://en.wikipedia.org/wiki/Black_Perl
- Pourquoi Perl n'est pas près de disparaître : http://ostatic.com/blog/guest-post-why-perl-isnt-going-away-soon-or-ever
- http://jjnapiorkowski.vox.com/library/post/communicating-value-this-is-our-world-and-perl-is-my-choice.html
- http://curiousprogrammer.wordpress.com/2010/08/31/perl-compiler-speed-its-fast/
- http://www.modernperlbooks.com/drafts/modern_perl/chapter_01.html
- Écrire du Perl en latin... http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html?t=1
- http://www.perl.com/pub/2007/12/06/soto-11.html
- Il ne faut apparemment pas mêler Perl et armement nucléaire :
http://www.foo.be/docs/tpj/issues/vol2_1/tpj0201-0004.html
- http://f00li5h.pin21.com/blog/Examples-of-using-dispatch-tables-in-perl.html
- Ce n'est pas toujours la faute de Perl : http://blog.nu42.com/2010/12/dont-blame-perl-for-all-ugly-code.html
- http://www.onyxneon.com/books/modern_perl/index.html
- Perl, et être cool ou pas : http://blogs.perl.org/users/su-shee/2011/01/and-suddenly-youre-hip.html
- Écrire des tests pour Perl avec Test::More :
http://blogs.lessthandot.com/index.php/WebDev/ServerProgramming/writing-perl-tests-with-test
- http://blogs.perl.org/users/jeffrey_kegler/2011/01/why-i-stuck-with-perl.html
- http://blog.sam-pointer.com/2011/02/07/i-keep-arriving-back-at-perl
- Obfuscation de code Perl (comme si c'était nécessaire,
dirons les plus vilaines et les plus vilains parmi vous) : http://www.stunnix.com/prod/po/overview.shtml
- Une liste de One-Liners en Perl : http://www.catonmat.net/download/perl1line.txt
- Le plaisir de Perl, texte à saveur historique de Andrew Leonard en
2012 : http://www.salon.com/1998/10/13/feature_269/
- En 2009, John Graham Cumming a mis en ligne
une pétition pour obtenir des excuses formelles du gouvernement britannique
quant au traitement réservé à Alan
Turing. Cette pétition, qui fut un succès et qui porta fruit,
avait de particulier de mettre en relief que certaines célébrités
l'avaient signé. En 2012, Cumming révèle
le code Perl derrière cette pétition : http://blog.jgc.org/2012/07/perl-script-powered-alan-turing.html
- Utiliser Perl pour les tests, texte de 2012 :
http://www.modernperlbooks.com/mt/2012/08/why-i-use-perl-testing.html
- En 2013, Dietrich Schmitz parle de Perl comme
du langage que tous souhaitaient déclarer « mort » :
http://www.linuxadvocates.com/2013/03/perl-language-everybody-wants-to.html
- Texte d'Allison Randall qui, en 2013, aime
toujours Perl :
http://allisonrandal.com/2013/03/31/mythbusters-why-i-still-love-perl/
- En 2011, Lincoln Stein explique comment Perl a sauvé, selon lui, le
Human Genome Project :
http://www.bioperl.org/wiki/How_Perl_saved_human_genome
- Utiliser Perl comme un meilleur [insérer ici le nom de l'outil],
par John D. Cook en 2013 :
http://www.johndcook.com/blog/2013/08/20/perl-as-a-better/
- Des fermetures avec Perl, texte de 2013 :
http://www.manchicken.com/2013/general/gist-of-the-day-perl-closure-extravaganza.html
- Écrire du code Perl lisible et qu'il est par la suite possible
d'entretenir, par A. Sinan Unur en 2013 :
http://programming.oreilly.com/2013/12/can-one-write-readable-and-maintainable-perl.html
- En 2014, il devient possible d'utiliser des
signatures de fonctions avec Perl. Texte à ce sujet de David Farrell :
http://perltricks.com/article/72/2014/2/24/Perl-levels-up-with-native-subroutine-signatures
- La fonction split de Perl et sa polyvalence,
par David Farrell en 2014 :
http://perltricks.com/article/121/2014/10/24/Perl-s-versatile-split-function
- Perl présenté comme le langage de programmation ultime, par Thomas Jaspers
en 2015 :
https://blog.codecentric.de/en/2015/09/perl-the-ultimate-programming-language/
-
Métaprogrammation avec Perl :
Paradigmes-programmation--Liens.html#metaprogrammation_langage_Perl
- Les variables prédéfinies de Perl :
http://perldoc.perl.org/perlvar.html
À propos de Perl 5 :
À propos de Perl 6 :
- Qu'est-ce que Perl 6?
- Introduction à Perl 6, proposée par Naoum
Hankache : http://perl6intro.com/
- Différences entre Perl 5 et Perl 6 :
http://design.perl6.org/Differences.html
- Le développement de Perl 6 progresse...
http://www.oreillynet.com/onlamp/blog/2008/01/what_the_perl_6_and_parrot_hac.html
(mais il y a des discussions serrées... http://www.perlmonks.org/?node_id=836349)
- Un tableau périodique des opérateurs de Perl 6 :
http://www.ozonehouse.com/mark/blog/code/PeriodicTable.html
- Pourquoi Perl 6 est différent des
autres langages : http://blogs.perl.org/users/leon_timmermans/2010/04/why-perl-6-is-different.html
- Historique de Perl 6 : http://use.perl.org/~masak/journal/40451
- http://perlgeek.de/blog-en/perl-6/perl-6-in-2009.html
- Amusant : http://www.axis-of-aevil.net/archives/img/2003_08/p6_cover.jpg
- Le processus de RFC pour Perl
6 : http://www.perl.com/lpt/a/482
- Plonger dans Perl 6 : http://perlbuzz.com/2010/08/diving-into-perl-6.html
- Perl 6 est-il encore un Perl? http://perlbuzz.com/2010/08/what-to-say-to-perl-6-isnt-perl-any-more.html
- Déboguer une grammaire Perl 6 :
http://perlgeek.de/en/article/debug-a-perl-6-grammar
- http://strangelyconsistent.org/blog/extending-the-syntax-of-perl6
- Réflexions sur Haskell et Perl 6 :
http://loveandhotsauce.net/nowhere/opinions/perl6haskell.html
- Perl 6 en 2010 :
http://perlgeek.de/blog-en/perl-6/perl-6-in-2010.html
- Perl 6 en 2011 :
http://perlgeek.de/blog-en/perl-6/perl-6-in-2011.html
- Les macros en Perl 6 : http://strangelyconsistent.org/blog/macros-what-are-they-really
- La métaprogrammation avec Perl
6, un texte de 2011 : http://perl6advent.wordpress.com/2011/12/14/meta-programming-what-why-and-how/
- En 2013, Carl Masäk met en relief que Perl 6 est maintenant aussi « vieux » que l'était Perl lorsque les travaux sur Perl 6 ont été amorcés :
http://strangelyconsistent.org/blog/perl6-is-now-half-as-old-as-perl
- Réflexions sur Perl 6 et Unicode,
texte de
2013 :
http://rdstar.wordpress.com/2013/07/22/some-thoughts-on-unicode-in-perl-6/
- L'état de Perl 6 :
http://perl6.guide/
- Apprendre à faire des One-Liners avec Perl 6
tout en s'amusant, par David Farrell en 2014 :
http://perltricks.com/article/136/2014/11/20/Get-started-with-Perl-6-one-liners
- Le vieux gag veut que Perl 6 soit livré à
Noël, mais qu'on ne sache pas Noël de quelle année... Mais enfin, en
2015, Larry
Wall aurait annoncé Perl 6 pour Noël
2015 :
- Quelques truc chouettes à propos de Perl 6
(et, accessoirement, à propos de ... COBOL!), par
Curtis Poe en 2015 :
http://blogs.perl.org/users/ovid/2015/02/a-little-thing-to-love-about-perl-6-and-cobol.html
- Texte de 2015 par Moritz Lenz expliquant
pourquoi il semble si ardu d'écrire un compilateur pour Perl 6 :
http://perlgeek.de/blog-en/perl-6/2015-why-hard.html
- Verra-t-on Perl 6 d'ici la fin de
2015? Oui, si on en croit Larry
Wall dans cette entrevue :
http://www.linuxvoice.com/interview-larry-wall/
- S'amuser avec Perl 6, par Dave Rolsky en
2015 :
http://blog.urth.org/2015/11/29/perl-6-is-fun/
- Présentation portant sur ce qu'il est possible de faire avec Perl 6,
par Pete Evstratov en 2016 :
http://tpm2016.zoffix.com/#/
- En 2016, Curtis Poe décrit Perl 6
comme le « Game of Thrones » des langages de programmation :
http://techbeacon.com/why-perl-6-game-thrones-programming-languages
- Manipuler des flux à l'aide de Perl, texte de 2016 :
http://emdeha.github.io/2016/04/06/perl-streams
- Les jonctions « certifiées par Schrödinger » de Perl 6,
décrites en 2016 :
http://perl6.party/post/Perl-6-Schrodinger-Certified-Junctions
- En 2017, Evan Miller offre un survol de Perl 6 :
http://www.evanmiller.org/a-review-of-perl-6.html
- Survol éclair des meilleurs mécanismes de Perl 6,
selon Tyler Slimkemann (je spécule sur le nom de famille) en
2019 :
https://aearnus.github.io/2019/04/03/a-whirlwind-tour-of-perl6-s-best-features
- Le given de Perl 6,
présenté comme une sélective (switch) sur
stéroïdes par Matéu (son nom de famille m'échappe) en 2019 :
https://tenesianu.blogspot.com/2019/05/perl-6s-given-switch-on-steroids.html
- Article amusant de Damian Conway en 2019, qui
montre que parfois, avec Perl 6, une tâche infinie
peut représenter moins d'effort qu'une tâche finie, prenant exemple sur la
génération de nombres premiers :
http://blogs.perl.org/users/damian_conway/2019/07/infinite-work-is-less-work.html
- Faudrait-il renommer Perl 6?
À propos de Perl 7 :
« What's wrong with perl? It combines all the worst aspects of
C and Lisp: a billion different sublanguages in one monolithic executable. It combines the power of
C with the readability of
PostScript » –
Jamie Zawinski (source)
Critiques :
- http://perlbuzz.com/2011/04/slipping-away.html
- Les didacticiels de Perl ne sont pas tout à fait bons (je paraphrase),
texte de 2011 : http://blogs.perl.org/users/mithaldu/2011/10/perl-tutorials-suck-and-cause-serious-damage.html
- Quelque chose de pas gentil : un comparatif de Perl avec « Quorom »
et « Randomo », deux langages générés
aléatoirement...
- Texte de 2004 par Steve Yegge, qui rend
hommage à ce « langage ancien » qu'est Perl :
https://sites.google.com/site/steveyegge2/ancient-languages-perl
- Cette recherche de 2011 par Andreas Stefik, Susanna Siebert, Melissa Stefik et Kim Slattery laisse croire
qu'apprendre la programmation avec Perl serait aussi difficile qu'apprendre la
programmation avec un langage créé de manière purement aléatoire (ouille!) :
http://ecs.victoria.ac.nz/foswiki/pub/Events/PLATEAU/Program/plateau2011-stefik.pdf
- Pourquoi Perl n'a pas gagné, un texte de 2014 :
http://outspeaking.com/words-of-technology/why-perl-didnt-win.html
- La chute de Perl, un langage autrefois prometteur, par Conor Myhrvold en
2014 :
http://www.fastcolabs.com/3026446/the-fall-of-perl-the-webs-most-promising-language
- Selon Curtis Poe en 2016, Perl n'est pas un
mauvais langage, mais a une mauvaise réputation dû aux débutantes et aux
débutants du Web qui s'en servaient auparavant :
http://techbeacon.com/perl-not-dead-it-was-early-web-novices-gave-it-bad-name
- Est-ce une critique ou n'est-ce que de l'humour? Toujours est-il que le
1er
avril 2019 (oui, attention à la date!), Colin
McMillen prétend que la plupart des taches de peinture sont en pratique des
programmes Perl valides :
https://famicol.in/sigbovik/
- Quelques mythes qui circulent à propos de Perl 6,
selon Tyler Limkemann en 2019 :
https://aearnus.github.io/2019/07/06/perl-6-is-cursed
- Texte semi-humoristique de Colin McMillen en 2019, qui met de l'avant que 93%
des
taches de peinture seraient aussi des programmes Perl valides :
https://famicol.in/sigbovik/
- Selon The HFT Guy en 2019, Perl
serait mourant et susceptible de disparaître dans quelques années :
https://thehftguy.com/2019/10/07/perl-is-dying-quick-could-be-extinct-by-2023/
- Enjeu culturel important pour la communauté entourant Perl, soit le
respect du code de conduite et la gestion ds comportements toxiques :
Pharo
Auteurs : une équipe faite de Marcus Denker, Stephane Ducasse, Sven Van Caekenberghe, Notbert Hartl, Guille Polito et Esteban Lorenzano
Langage
OO intégrant
IDE et langage pour offrir
« une expérience immersive »
PHP
Auteur : Rasmus Lerdorf
Langage de script OO
très répandu
sur le Web. Son nom signifie Hypertext Preprocessor, mais signifiait
à l'origine Personal Home Page.
- http://www.php.net/
- http://www.phpbuilder.com/
- http://www.phpdeveloper.org/
- http://en.wikipedia.org/wiki/PHP
- Un dépôt de classes : http://www.phpclasses.org/
- Des schémas de conception : http://www.phpclasses.org/browse/class/108.html
- Texte évolutif, dédié à la programmation en PHP moins dogmatique :
http://www.phpthewrongway.com/
- Un coup d'oeil sur PHP 6 :
- Le futur de PHP : http://www.ibm.com/developerworks/opensource/library/os-php-future/?ca=dgr-lnxw01PHP-Future
- PHP à haute performance (date de 2003) :
http://talks.php.net/show/hpp
- Une présentation intitulée Large Scale PHP, par l'auteur
du langage (date de 2004) : http://talks.php.net/show/lt2004-lamp/0
- Le mythe de l'échelonnabilité de PHP (date de
2003) : http://onjava.com/pub/a/onjava/2003/10/15/php_scalability.html
- À propos des Frameworks : http://www.noupe.com/php/discussing-php-frameworks.html
- hhttp://www.techmug.com/php-basics-for-beginners/
- Les constantes magiques de PHP : http://www.corephparticle.com/magic-constants-in-php/
- Vous utilisez PHP? Ouache! (un article positif, malgré les apparences) :
http://blog.mailchimp.com/ewww-you-use-php/
- Cédric
Beust, en 2011, aime PHP : http://beust.com/weblog/2011/08/09/i-like-php/
- Et si PHP était britannique? http://www.addedbytes.com/blog/if-php-were-british/
- Des commandements pour la programmation en PHP, par Thomas Buck en
2013 :
http://biasedphp.com/php-commandments
- Formaliser PHP :
- Un possible futur pour PHP, selon Frank Karlitschek en 2014 :
http://karlitschek.de/2014/10/a-possible-future-for-php/
- Sur la base de l'utilisation de PHP chez Facebook, ce texte de James Somers en
2015 décrit comment l'utilisation d'un langage de programmation peut
influencer le cheminement et les pratiques d'une entreprise :
http://www.technologyreview.com/review/536356/toolkits-for-the-mind/
- Comment Tumblr utilise PHP 7, texte de 2016 :
https://engineering.tumblr.com/post/152998126990/php-7-at-tumblr
- En 2014, Josh Sherman insiste sur l'importance
de maintenir ses outils logiciels à jour :
https://joshtronic.com/2014/01/13/your-stack-is-outdated/
- L'état de PHP en 2019, un portrait proposé par
Brent (son nom de famille m'échappe) :
https://stitcher.io/blog/php-in-2019
Un sondage sur l'utilisation de PHP : http://www.interaktonline.com/Support/Articles/Details/?id_art=11
Critiques :
- http://www.steike.com/code/php-must-die/
- (critique constructive) http://www.mailchimp.com/blog/ewww-you-use-php/
- Oups! (un problème similaire est survenu avec Java)
- Les comparaisons booléennes en PHP : http://imgur.com/7unV7
- Critique positive de gens qui préfèrent PHP : http://blog.liip.ch/archive/2011/02/24/why-we-stick-to-php.html
- http://www.phpsadness.com/
- La syntaxe des fermetures en PHP : http://linepogl.wordpress.com/2011/07/09/on-the-syntax-of-closures-in-php/
- En 2011, Gwynne Raskind explique qu'à
son avis, PHP vieillit mal : http://phpadvent.org/2011/cracks-in-the-foundation-by-gwynne-raskind
- Le langage PHP compliquerait le raisonnement, de l'avis de James O'Beirne
en 2012 : http://jameso.be/2012/02/11/language-matters.html
- De l'avis de Alex Munroe en 2012, PHP serait
un fractal de mauvais design : http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/
- Position de
Jeff Atwood, en 2012, à savoir
qu'il s'agit d'un outil terrible mais que c'est gratuit et que ça sert.
Comme il le dit lui-même (citation saisie en juin
2012), « The great crime of PHP is its utter banality.
Its continued propularity is living proof that quality is irrelevant; cheap
and popular and everywhere always wins » :
http://www.codinghorror.com/blog/2012/06/the-php-singularity.html
(en retour, certains comme Marco Arment, en 2012,
admettent être dépendants envers PHP, malgré ses nombreux
défauts : http://www.marco.org/2012/06/29/php-addiction...
Son argument se tient : remplacer PHP, soit, mais par quoi, et à
quel coût sur le plan de l'apprentissage de l'alternative?)
- En 2012, Fabien Potencier est d'avis que PHP
est un bien meilleur langage que bien des gens ne le croient : http://fabien.potencier.org/article/64/php-is-much-better-than-what-you-think
- PHP doit mourir, un texte de 2013 :
http://software-gunslinger.tumblr.com/post/47131406821/php-is-meant-to-die
- En 2014, Josh Lockhart décrit ce qu'il
qualifie de « nouveau PHP » :
http://programming.oreilly.com/2014/03/the-new-php.html
- Pourquoi PHP est-il si mauvais? Critique de 2014 :
http://whydoesitsuck.com/why-does-php-suck/
- PHP version 7 :
- PHP, un langage aux usages suspects? Ben voyons... Texte de Remy Porter en
2015 :
http://thedailywtf.com/articles/truely-representative
- En 2016, Keith Adams explique la décision de
son entreprise de traiter PHP comme un langage sérieux :
https://slack.engineering/taking-php-seriously-cf7a60065329
- En 2019, Joe Watkins annonce PHP 8 et un
mécanisme de compilation JIT :
https://blog.krakjoe.ninja/2019/03/php-gr8.html
Technique :
Outils et variantes :
Pi
Auteurs : Roman Knöll, Mira Mezini et Felix Wolff
Langage qui ne repose que sur une seule structure : le pattern.
Picat
Auteur : Bo Yuan Zhou
Pour programmer par une combinaison de règles et d'acteurs.
Piet
Auteur : David Morgan-Mar
Langage de programmation étrange où
l'on développe à partir d'images colorées plutôt
qu'avec du texte. Le nom est inspiré du peintre abstrait Piet
Mondriaan.
Pike
Auteur : Fredrik Hübinette
Langag de
programmation dynamique avec une syntaxe inspirée de celle de langages
tels que C ou Java.
PlayScript
Auteurs : plusieurs personnes chez Zynga
Langage de scripting qui
se base sur ActionScript et se mêle à du code C#.
POET
Auteur : Qing Yi
Signifiant Parameterized Optimizations for Empirical Tuning, ce langage vise à
faciliter la traduction de programmes d'un langage de programmation à un
autre, le tout dans une optique d'optimisation.
PogoScript
Auteur : Tim Macfarlane
Langage qui vise à produire des programmes lisibles, et dont la compilation
résulte en du JavaScript.
Pointless
Auteur : Avery N. Nortonsmith
Langage fonctionnel
présenté par son auteur comme « ce langage que j'aurais aimé apprendre quand
j'ai commencé à programmer »
Pony
Auteur : Sylvan Clebsch
Langage OO
soutenant un modèle de
programmation par acteurs.
Critiques :
PostScript
Auteurs : John Warnock et Chuck Geschke
Langage orienté vers la disposition du contenu d'une page, et utilisé pour générer des documents destinés à des imprimantes, mais il s'agit bel et bien d'un langage de programmation.
Potion
Auteur : _why the Lucky Stiff?
Langage qui sépare les données des expressions...
Processing
Auteurs : Ben
Fry et Casey
Reas
Un dialecte à code ouvert de JavaScript,
pour créer des animations et des interactions 2D à partir de la
balise canvas de
HTML5. On y écrit non
pas des programmes mais bien des Sketches.
Prolog
Auteur : Alain Colmerauer
Langage déclaratif et
logique.
- http://en.wikipedia.org/wiki/Prolog
-
http://www.learnprolognow.org/index.php
- La puissance de Prolog, selon Markus Triska : https://www.metalevel.at/prolog
- Tutoriel : http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html
- Les dix premiers concours de Prolog : http://dtai.cs.kuleuven.be/ppcbook/
- Interpréteur Lisp
en Prolog : http://stud4.tuwien.ac.at/~e0225855/lisprolog/lisprolog.html
- Un préprocesseur Prolog : http://www.clip.dia.fi.upm.es/~logalg/slides/F_ciaopp_iclp99_tut/F_ciaopp_iclp99_tut.html
- Qui a tué Prolog? Texte de 2010 : http://vanemden.wordpress.com/2010/08/21/who-killed-prolog/
- http://www.gprolog.org/
- http://coliveira.net/software/a-short-introduction-to-prolog/
- Introduction « gentille » à Prolog, par Bernardo Pires en
2013 :
https://bernardopires.com/2013/10/try-logic-programming-a-gentle-introduction-to-prolog/
- http://cs.union.edu/~striegnk/learn-prolog-now/lpnpage.php?pageid=online
- Apprendre Prolog, par Nick Knowlson en 2012 :
http://nickknowlson.com/blog/2012/02/05/seven-languages-week-3-day-1/
- Les débuts de Prolog en Hongrie, un témoignage de Peter Szeredi en
1994 :
http://dtai.cs.kuleuven.be/projects/ALP/newsletter/nov04/nav/articles/szeredi/szeredi.html
- S'amuser avec Prolog, texte de Vadim Comanescu en
2014 :
http://vadimcomanescu.wordpress.com/2014/02/25/having-some-fun-with-prolog/
- En 2014, Jason Gowan explique comment on peut
utiliser Prolog pour générer des données de tests :
http://jesg.github.io/testing/2014/12/20/test-data-generation-with-prolog.html
- Résolution de problèmes avec Prolog, un texte de Ruslan Shestopalyuk en
2015 :
http://blog.ruslans.com/2015/01/on-puzzles-prolog-and-problem-solving.html
- Le cas particulier du problème de
l'anniversaire de Cheryl, résolu par
Prolog, texte et code de John Feminella en 2015 :
http://jxf.me/entries/cheryls-birthday/
- Analyser un arbre généalogique avec Prolog, par Doug Blank en
2015 :
https://gramps-project.org/2015/05/using-prolog-to-analyze-your-family-tree/
- Introduction à la programmation avec Prolog, par Mathias Chilling en
2017 :
https://www.matchilling.com/introduction-to-logic-programming-with-prolog/
- En 2018, Ahmed T. Youssef explique comment résoudre un
meurtre avec Prolog :
https://xmonader.github.io/prolog/2018/12/21/solving-murder-prolog.html
- Comment bloguer de manière contemporaine à propos de Prolog, selon Yehonathan Sharvit en 2019 :
https://blog.klipse.tech/prolog/2019/01/01/blog-prolog.html (l'auteur
utilise un greffon nommé Klipse
pour transformer des exemples statiques en exemples interactifs)
- Le dialecte Racklog, un Prolog écrit en Racket,
par Dorai Sitaram en 2019 :
https://plt.eecs.northwestern.edu/snapshots/current/pdf-doc/racklog.pdf
- Programmer pour le Web avec SWI Prolog, selon Monolune (?) en
2020 :
https://www.monolune.com/web-programming-in-swi-prolog/
- En 2014, Mike James montre comment interfacer
une base de données avec Prolog :
https://www.i-programmer.info/programming/artificial-intelligence/1331-database-the-prolog-way.html
- Un livre en ligne par Peter Flach :
https://book.simply-logical.space/
- Des exercices avec Prolog, incluant les solutionnaires :
- Résoudre un Sudoku radicalement difficile en Prolog, par Benjamin Congdon
en 2020 :
https://benjamincongdon.me/blog/2020/05/23/Solving-the-Miracle-Sudoku-in-Prolog/
- En 2021, David Strohmaier explique pourquoi il estime sage d'apprendre Prolog :
http://dstrohmaier.com/why-learn-prolog-in-2021/
pSather
Auteur : Jerry Feldman?
Dialecte de Sather axé vers la multiprogrammation.
Pseudocode
On en fait tous, et il y a plusieurs formalismes. Conséquemment,
ce qui suit n'est vraiment pas exhaustif, et ne correspond pas au standard
que j'applique dans mes cours.
PSOL
Auteur : Charles DuVall
Version plus lisible pour des humains du langage
JSOL (voir d'ailleurs ce dernier pour des détails).
Pure
Auteur : Albert
Gräf
Langage basé sur la substitution d'expressions. Son ancêtre est
le langage Q.
Purity
Auteur : Phil Freeman?
Langage
fonctionnel s'exécutant sur le CLR
de .NET.
Pyret
Auteurs : Daniel Patterson et Joe Gibbs Politz (entre autres)
Langage à vocation pédagogique, dont la syntaxe s'inspire de celle de
Python.
Python
Auteur : Guido
van Rossum, gentil dictateur.
Liens généraux sur le langage :
../Sujets/Divers--python/index.html
Critiques :
../Sujets/Divers--python/pedagogie.html#critiques
Technique :
../Sujets/Divers--python/pedagogie.html#technique
Q
Auteur : Albert
Gräf
Langage fonctionnel et interprété
mettant l'accent sur les équations mathématiques. Son descendant
direct est le langage Pure.
Notez qu'il existe aussi un langage de
définition de données nommé Q.
QBasic
Auteurs : plusieurs personnes
Variante de Basic axée sur l'apprentissage
rapide (le « Q » signifie Quick Learning).
Qi
Auteur : Mark Tarver
Lamgage fonctionnel inspiré de Lisp mais offrant quelques fonctionnalités plus pointues.
QML
Auteur : Jonathan Grattage
Lamgage fonctionnel et quantique
de programmation.
Quipper
Auteur : Peter Selinger
Langage de programmation quantique.
Quorum
Auteurs : Andreas Stefik, Evan Pierzina, et Kerry Ritter
Langage qui préconise le « design par évidence », au sens où tout y
sera débattu et approuvé par la communauté et sera intégré s'il semble
scientifiquement éprouvé que cela s'avère pertinent.
Q#
Auteurs : une équipe de Microsoft Research
Langage de programmation destiné aux ordinateurs quantiques
Section « R »
Langages dans cette section : R,
Racket, Rascal,
Reason,
REBOL,
Red,
Refal,
Rexx, RhoScript,
Rockstar, Roy,
RPG, Ruby,
Rust, RZ.
R
Auteurs : Robert Gentleman et Ross Ihaka (R
et R, d'où le nom du langage)
Un langage qui vise à simplifier les calculs statistiques.
- http://www.r-project.org/
- John D. Cook explique le langage R aux programmeuses et aux programmeurs : http://www.johndcook.com/R_language_for_programmers.html
- Les bons morceaux de R :
- En 2017, Cecilia Lee propose une introduction
à la programmation en R :
https://cecilialee.github.io/blog/2017/12/05/intro-to-r-programming.html
- Programmation avancée en R, par Hadley Wickham :
http://adv-r.had.co.nz/
- http://www.mayin.org/ajayshah/KB/R/index.html
- http://paulbutler.org/archives/why-r-doesnt-suck/
- http://radfordneal.wordpress.com/2010/08/15/two-surpising-things-about-r/
- http://www.red-r.org/
- http://4dpiecharts.com/2011/01/10/really-useful-bits-of-code-that-are-missing-from-r/
- Prédire la consommation d'espace disque avec R : http://lpenz.github.com/articles/df0pred-2/index.html
- Parallélisme avec R : http://blog.revolutionanalytics.com/2011/03/parallel-processing-in-r-for-windows.html
- Comment Google utilise R pour améliorer l'efficacité de sa
publicité : http://blog.revolutionanalytics.com/2011/08/google-r-effective-ads.html
- Quelle est la proportion du
compilateur R qui est rédigée
en R (en 2011)? http://www.r-bloggers.com/how-much-of-r-is-written-in-r/
- Une évaluation du design du langage R, par Floréal Morandat,
Brandon Hill, Leo Osvald et Jan Vitek en 2012 :
http://www.cs.purdue.edu/homes/jv/pubs/ecoop12.pdf
- Une liste de ce que peut faire R, compilée par David Smith en
2012 : http://blog.revolutionanalytics.com/2012/07/a-big-list-of-the-things-r-can-do.html
- Des tests unitaires en R, texte de
Gary Sieling en 2012 :
http://garysieling.com/blog/unit-testing-with-r
- En 2012, Jonathan Callahan explique comment appeler du code
C à partir d'un
programme R :
http://www.r-bloggers.com/using-r-callhello/
- Statistiques élémentaires avec R, par Chi Yau en 2013 :
http://www.r-tutor.com/elementary-statistics
-
Programmation orientée objet avec R, par Tom Barker :
- R et les bases de données, par Grant Hutchison en
2014 :
http://www.ibm.com/developerworks/data/library/techarticle/dm-1402db2andr/index.html
- R et les expressions
régulières, par John D. Cook :
http://www.johndcook.com/r_language_regex.html
- Selon John Mount en 2014, les facteurs, au
sens mathématique du terme, ne sont pas vraiment des citoyens de première
classe du langage R :
http://www.win-vector.com/blog/2014/09/factors-are-not-first-class-citizens-in-r/
- Une initiation à l'analyse de données avec R, proposée par François Briatte et Ivaylo Petev en
2013 :
http://f.briatte.org/teaching/ida/index.html
- Réduire la consommation de mémoire d'un programme écrit en R, texte de
Greg Lamp en 2014 :
http://blog.yhathq.com/posts/reducing-your-r-memory-footprint-by-7000x.html
- Bases de la programmation avec R, par Casimir Saternos en 2015 :
https://www.simple-talk.com/dotnet/software-tools/r-basics/
- Apprendre R par une série d'exercices proposés par Onno Dijt en
2016 :
http://r-exercises.com/2016/07/22/start-here-to-learn-r/
- En 2016, David Smith nous offre un guide sur
R, mais destiné aux pirates :
http://blog.revolutionanalytics.com/2016/09/pirates-guide-to-r.html
- Optimiser du code R, par John D. Cook en 2016 :
http://www.johndcook.com/blog/2016/10/18/speeding-up-r-code/
- Les matrices avec R, par Sumit Rajguru en 2019 :
https://www.codeinfo.net/matrices-in-r/
- Apprendre R par des exemples (beaucoup d'exemples, d'ailleurs), par Xijin Ge, Jianli Qi et Rong Fan en
2021 :
https://gexijin.github.io/learnR/index.html
Outils associés :
Racket
Auteurs : plusieurs
personnes
Langage syntaxiquement inspiré de Scheme,
avec un penchant manifeste pour la production visuelle.
Rascal
Auteur(e)s : des membres du
SWAT Group
Langage de métaprogrammation
visant à aider l'intégration de programmes écrits dans plusieurs langages
Reason
Auteur : des gens oeuvrant chez Facebook
Langage qui se veut un hybride entre OCaml et
JavaScript
REBOL
Auteur : Carl Sassenrath
Langage multi-paradigme mettant l'accent sur l'échange de données
dans un système réparti. Le nom REBOL
signife Relative Expression
Based Object Language.
Red
Auteur : Nenad Rakocevic
Langage à la fois
fonctionnel et
impératif, qui est aussi son
propre métalangage.
Refal
Auteur : ValentinTurchin
Langage dont le nom signifie Recursive Functions Algorithmic Language, ce
qui décrit bien son approche.
Rexx
Auteur : Mike Cowlishaw
Un langage de scripts offrant des facilités
avancées de traitement de chaînes de caractères.
RhoScript
Auteur : Nicholas Carlini
Langage axé sur la concision des programmes.
Rockstar
Auteur : Dylan Beattie
Langage à typage dynamique, où la programmation se fait à partir de paroles
de chansons rock des années '80.
https://github.com/dylanbeattie/rockstar
Roy
Auteur : Brian McKenna
Dialecte de JavaScript avec
système
de types statique.
RPG
Auteur : IBM
Langage de haut niveau, surtout utilisé sur des plateformes IBM pour la
génération de rapports (d'où son nom, le Report Program Generator).
Sa syntaxe est inspirée de l'époque où la programmation se faisait à l'aide de
cartes perforées.
Ruby
Auteur : Yukihiro Matsumoto
Langage dynamique et
OO. On lui associe beaucoup
le cadriciel (Framework) Rails, ce qui explique qu'on parle habituellement
de Ruby on Rails.
Généralités :
Critiques :
- Pourquoi Ruby ne deviendra pas Mainstream, selon Cédric
Beust : http://beust.com/weblog2/archives/000382.html
- Quelqu'un qui a quitté Ruby pour revenir à PHP :
http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html
- http://lenni.info/blog/2010/07/thoughts-about-rails-from-a-django-guy/
- http://ducktypo.blogspot.com/2010/08/why-inheritance-sucks.html
- http://www.mikeperham.com/2010/11/22/the-ruby-stdlib-is-a-ghetto/
- http://www.mikeperham.com/2010/11/25/ruby-stdlib-is-a-ghetto-pt-2/
- Les paquetages et le développement communautaire (ça semble
être un réel problème) : http://www.lucas-nussbaum.net/blog/?p=617
- http://blog.stevecoast.com/what-the-hell-is-happening-to-rails
(et une réplique : http://metautonomo.us/2011/06/14/wth-is-happening-to-rails-ill-tell-you/)
- Ruby n'est pas très gentil quand il interopère avec
gcc : http://timetobleed.com/the-broken-promises-of-mrireeyarv/
- Tout cela semble plus simple à mettre en branle sous Microsoft
Windows que sous Mac OSX,
selon un texte de 2011 : http://blog.jitbit.com/2011/11/trying-rails-mac-confessions-of-net.html
- Il semble qu'il soit préférable d'éviter des chaînes
de plus de 23 caractères en Ruby, selon
Pat Shaughnessy en 2012 : http://patshaughnessy.net/2012/1/4/never-create-ruby-strings-longer-than-23-characters
- Il existe des langages dont la grammaire est plus simple à analyser,
comme en discute cet article de 2013 :
http://programmingisterrible.com/post/42432568185/how-to-parse-ruby
- Selon ce texte de 2013, Ruby bénéficierait de l'ajout d'interfaces à son
système
de types :
http://engineering.nulogy.com/posts/i-wish-ruby-had-interfaces
- Dans ce texte de 2013, Fred Ross offre une
critique détaillée de Ruby, sous plusieurs aspects :
http://madhadron.com/a-criticism-of-ruby
- En 2013, John Moses se questionne à savoir si
Ruby est mourant :
http://jmoses.co/2013/12/21/is-ruby-dying.html
- Texte de Brian Vanloo en 2014 mettant de
l'avant dix erreurs typiques de programmeurs Ruby (avec Rails) :
http://www.toptal.com/ruby-on-rails/top-10-mistakes-that-rails-programmers-make
- Textes d'Avdi Grimm :
- En 2015, Jared Friedman explique pourquoi il
n'utiliserait par Rails dans une « nouvelle » compagnie :
http://blog.jaredfriedman.com/2015/09/15/why-i-wouldnt-use-rails-for-a-new-company/
- En 2016, Rob Robinson déclare que
Rails est un
outil du passé :
https://medium.com/@deathdisco/today-i-accept-that-rails-is-yesterday-s-software-b5af35c9af39
- Ce texte de 2016 est ce par quoi Piotr Solnica
indique qu'il en a assez de Rails :
http://solnic.eu/2016/05/22/my-time-with-rails-is-up.html
Technique :
- Utiliser Ruby sans fureteur : http://www.clarkware.com/cgi/blosxom/2006/04/04#HeadlessApp
- Développer en Ruby avec Eclipse :
- Développer en Ruby sur MacOS X :
http://developer.apple.com/tools/rubyonrails.html
- Utiliser le moteur de persistance Active Record : http://www.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord
- Collecte d'ordures
sous Ruby :
- http://github.com/raganwald/homoiconic/blob/master/2010/04/blocks.md
- Métaprogrammation
avec Ruby :
Paradigmes-programmation--Liens.html#metaporogrammation_langage_Ruby
- Le nouvel (en date de juillet 2010) écosystème
de Ruby : http://ducktypo.blogspot.com/2010/06/new-ruby-ecosystem.html
- http://www.artima.com/weblogs/viewpost.jsp?thread=294984
- Écrire un compilateur en Ruby, étape par étape :
http://www.hokstad.com/compiler
- L'outil #haml, qui transforme une partie des fichiers Rails en Haiku :
http://haml-lang.com/
- http://iggy.nu/8-reasons-i-love-ruby
- Les mots clés and et
or : http://avdi.org/devblog/2010/08/02/using-and-and-or-in-ruby/
- Multiprogrammation avec Ruby : Multiprogrammation--Liens.html#langages_ruby
- La méthode method_missing() : http://rubylearning.com/blog/2010/10/07/do-you-know-rubys-chainsaw-method/
- Implémenter Ruby en Lisp : http://jng.imagine27.com/articles/2010-10-07-084756_ruby_subset_implementation.html
- Passer des blocs sans utiliser &block :
http://mudge.github.com/2011/01/26/passing-blocks-in-ruby-without-block.html
- Écrire un moteur de collecte
d'ordures plus performant : http://engineering.twitter.com/2011/03/building-faster-ruby-garbage-collector.html
- Design de code avec Ruby, selon Steve Klabnik en 2011 :
http://blog.steveklabnik.com/2011/09/06/the-secret-to-rails-oo-design.html
- Abuser de la syntaxe de Ruby : http://metacircus.com/hacking/2011/09/07/lispy-abuse-of-ruby-syntax.html
- Abuser du langage tout entier : https://www.destroyallsoftware.com/blog/2011/one-base-class-to-rule-them-all
- Une syntaxe proche de celle des foncteurs
avec Ruby : http://www.codelord.net/2011/10/18/til-ruby-classes-that-look-callable/
- Surcharger #nil pour générer un
Null-Object
serait une mauvaise pratique, selon Paul Rosania en 2011 :
http://paul.rosania.org/writings/2011/11/09/dont-overload-nil/
- L'injection
de dépendances en Ruby, selon Kresimir Bojcic en
2011 : http://kresimirbojcic.com/2011/11/19/dependency-injection-in-ruby.html
- Le caractère de soulignement en Ruby permet de faire de la magie,
du moins si on en croit Paul Battley en 2012 :
http://po-ru.com/diary/rubys-magic-underscore/
- Utiliser Ruby pour modifier Ruby, par Charles Nutter en
2012 :
http://blog.headius.com/2012/11/refining-ruby.html
- Texte de James Coglan en 2013 expliquant le
fonctionnement des appels de méthodes avec Ruby :
http://blog.jcoglan.com/2013/05/08/how-ruby-method-dispatch-works/
- Gestion des signaux avec Ruby, texte de Jesse Storimer en
2013 :
http://rubysource.com/the-self-pipe-trick-explained/
- Profiter du Duck Typing et des conversions implicites, par Victor
Arias en 2013 :
http://victorarias.com.br/2013/08/10/quacking-the-duck.html
- Quelques « bons trucs » de programmation avec Ruby, par Mat Sadler en 2013 :
- Lire une touche au clavier de manière non-bloquante, sur
Unix comme sur
Windows, par Muriel Salvan
en 2014 :
http://blog.x-aeon.com/2014/03/26/how-to-read-one-non-blocking-key-press-in-ruby/
- Réduire le recours au hashage en Ruby, par Charles Nutter en
2012 :
http://blog.headius.com/2012/09/avoiding-hash-lookups-in-ruby.html
- L'opérateur Flip-Flop de Ruby, expliqué par Nithin Bekal en
2014 :
http://nithinbekal.com/posts/ruby-flip-flop/
- Ruby et le Double-Splat, par Kasper Timm Hansen en 2015 :
https://dev.firmafon.dk/blog/drat-ruby-has-a-double-splat/
- La variable $_ de Ruby, expliquée par Rob
Miller en 2015 :
https://robm.me.uk/ruby/2015/10/31/dollar-underscore.html
- Un parser de Ruby écrit en Ruby et décrit en 2016 :
http://accidentallyquadratic.tumblr.com/post/139210135602/ruby-parser-gem
- Ruby et les portées, par Daniel P. Clarke en 2016 :
http://blog.codeship.com/a-deep-dive-into-ruby-scopes/
- En 2016, Julia Evans explique comment
espionner le comportement d'un programme Ruby :
http://jvns.ca/blog/2016/06/12/a-weird-system-call-process-vm-readv/
- Texte de 2016 par Jesus Castello, expliquant
comment utiliser Ruby pour consommer des données binaires :
https://dzone.com/articles/parsing-binary-data-formats
-
http://innig.net/software/ruby/closures-in-ruby.rb
À propos de Rails :
L'implémentation JRuby,
qui s'exécute sur la JVM :
L'implémentation
IronRuby, qui s'exécute sur le CLR
(et sur le DLR) de la
plateforme .NET,
mais qui vit des jours pour le moins difficiles :
Un interpréteur expérimental nommé
Rubinius :
L'implémentation Topaz, qui est écrite en Python :
Fructose, un sous-ensemble de Ruby qui compile en code PHP :
Rust
Auteur :
Graydon Hoare
et Aaron
Turon
Langage multiparadigmatique, axé sur la concurrence et sur la sécurité.
Cousin de Go.
- http://wiki.github.com/graydon/rust/
- http://wiki.github.com/graydon/rust/language-faq
- https://doc.rust-lang.org/book/
- Diverses ressources pour Rust, colligées par Harris Brakmic :
https://rust.zeef.com/harris.brakmic
- Textes d'introduction :
- une brève introduction à Rust, proposée en
2012 :
http://winningraceconditions.blogspot.ca/2012/09/rust-1-primer.html
- une « introduction amicale » à Rust, par Tim Chevalier en 2013 :
http://catamorphism.org/Writing/Rust-Tutorial-tjc.pdf
- une semaine avec Rust, texte d'opinion par Karl Matthias en
2013 : http://relistan.com/a-week-with-mozilla-rust/
- en 2013, Neil Brown décrit Rust en
mettant l'accent sur ses caractéristiques axées sur la programmation
sécuritaire :
http://lwn.net/Articles/547145/
- introduction à Rust par Alex Munroe en 2012 :
http://me.veekun.com/blog/2012/11/17/a-little-bit-rusty/
- présentation de Rust par Steve Klabnik, en 2013 :
http://words.steveklabnik.com/a-30-minute-introduction-to-rust
- apprendre Rust par exemples, par Jorge Aparicio :
http://rustbyexample.github.io/
- les objectifs du design de C++, selon la
prespective de Rust. Un texte de Patrick Walton en 2010 :
http://pcwalton.blogspot.ca/2010/12/c-design-goals-in-context-of-rust.html
- apprendre Rust en une trentaine de minutes, texte de
2014 :
http://doc.rust-lang.org/master/intro.html
- premiers pas avec Rust, texte de 2014 :
- apprendre Rust en 45 minutes, par Matej Ľach en
2014 :
http://www.matej-lach.me/rust-basics/
- en 2014, Prasoon Shukla explique Rust aux débutant(e)s :
http://blog.prasoonshukla.com/rust-for-beginners
- en 2015, Steve Klabnik estime que l'on en est
à un bon moment pour apprendre Rust :
https://www.codementor.io/learn-programming/now-good-time-learn-rust
- dans ce texte de 2015, Steve Klabnik offre ce
qu'il dit être une « introduction alternative » à Rust :
http://words.steveklabnik.com/a-new-introduction-to-rust
- un premier contact avec Rust :
- http://smallcultfollowing.com/babysteps/blog/categories/rust/
- http://www.readwriteweb.com/hack/2010/11/mozilla-designing-programming-language-rust.php
- http://www.bluishcoder.co.nz/2011/03/31/a-quick-look-at-the-rust-programming-language.html
- http://pcwalton.blogspot.com/2011/04/road-ahead-for-rust.html
- http://dl.dropbox.com/u/4186469/rust-all-hands-w2011.pdf
- Créer un projet avec Rust, texte de 2014 :
http://hydrocodedesign.com/2014/04/24/practicality-with-rust/
- De nouvelles répétitives for,
un texte de Brian Anderson en 2012 : http://brson.github.com/rust/2012/04/05/new-for-loops/
- Rust et les pointeurs :
- Réflexion sur la mutabilité héritée avec Rust,
qui discute d'intégrer le concept de temps et de changement à
travers le temps dans le système de types
du langage. Par Nicholas D. Matsakis en 2012 :
http://smallcultfollowing.com/babysteps/blog/2012/07/24/generalizing-inherited-mutability/
- Une entrevue avec Graydon Hoare,
en 2012 : http://www.infoq.com/news/2012/08/Interview-Rust
- Les traits avec Rust :
- Rust et ses « types fantômes », selon Chris
Double en 2013 :
http://bluishcoder.co.nz/2013/08/15/phantom_types_in_rust.html
- Réflexions sur Rust, textes de 2012 :
- Gestion d'erreurs :
../Sujets/Developpement/Pratique-programmation.html#gestion_erreurs_Rust
- Dans ce texte de 2012, Armin Ronacher discute du « ; » en Rust :
http://lucumr.pocoo.org/2012/10/18/such-a-little-thing/
- Le langage Rust expliqué aux programmeurs
C++ :
- Le langage Rust expliqué aux adeptes de la
programmation fonctionnelle :
- Les « types propriétaires » avec Rust, expliqués par Tim Chevalier qui se
questionne dans ce texte de 2013 à savoir s'ils en valent la peine :
http://tim.dreamwidth.org/1784423.html
- Gestion de la mémoire avec Rust :
Gestion-memoire--Liens.html#langage_Rust
- Intégrer du code Rust à un module Ruby, texte
de 2013 :
http://brson.github.com/2013/03/10/embedding-rust-in-ruby/
- La compagnie Samsung se joint à Mozilla pour développer Rust. Texte de
Seth Rosenblatt en 2013 :
http://reviews.cnet.com/8301-3514_7-57577639/samsung-joins-mozillas-quest-for-rust/
- Vitesse d'exécution de programmes Rust :
- En 2013, Graham King explique ce qu'il a
appris de Rust :
http://www.darkcoding.net/software/rust-what-i-learnt-so-far/
- Raisonner à propos du tas avec Rust, un texte de John Bender en 2013 :
http://johnbender.us/2013/04/14/reasoning-about-the-heap-in-rust/
- Texte de Tobby McGuire en 2013, portant sur la surcharge d'opérateurs avec
Rust :
http://maniagnosis.crsr.net/2013/04/operator-overloading-in-rust.html
- En 2013, Tom Lee explique les
trait, les structs et les
impls en Rust :
http://tomlee.co/2013/05/traits-structs-and-impls-in-rust/
- Le type Option<T> et la gestion du concept-même de pointeur nul, par Nick
Desaulniers en 2013 :
http://nickdesaulniers.github.io/blog/2013/05/07/rust-pattern-matching-and-the-option-type/
- Garantir la sécurité de la mémoire, une présentation de Nicholas D.
Matsakis en 2013 :
http://smallcultfollowing.com/babysteps/pubs/2013.07.17-NEU.pdf
- Appeler des fonctions C d'un programme Rust, par
Chris Double en 2013 :
http://bluishcoder.co.nz/2013/08/08/linking_and_calling_rust_functions_from_c.html
- Texte de Linsey Kuper en 2013 sur les
« méthodes par défaut » :
http://composition.al/blog/2013/08/26/default-methods-and-negative-diffstats/
- Rust et les pointeurs, par Steve Klabnik en 2013 :
http://words.steveklabnik.com/pointers-in-rust-a-guide
- Responsabilité sur les pointés avec Rust, texte de
2015 par Chris Morgan :
http://chrismorgan.info/blog/rust-ownership-the-hard-way.html
- L'expressivité de Rust, relatée par Steve Klabnik en
2013 :
http://words.steveklabnik.com/rust-is-surprisingly-expressive
- Utiliser Rust pour enseigner la programmation, cas vécu relaté par David
Evans en 2013 :
http://rust-class.org/pages/using-rust-for-an-undergraduate-os-course.html
- En 2013, Brian Anderson annonce la fin des
piles segmentées avec Rust :
https://mail.mozilla.org/pipermail/rust-dev/2013-November/006314.html
- Démarrer un ordinateur avec Rust, selon Eric Holk en
2013 :
http://blog.theincredibleholk.org/blog/2013/11/18/booting-to-rust/
- Écrire un compilateur JIT
avec Rust, texte de 2014 :
http://hydrocodedesign.com/2014/01/17/jit-just-in-time-compiler-rust/
- Rust et les entrées/ sorties, par Jeffery Olson en 2014 :
http://blog.safaribooksonline.com/2014/01/23/file-io-rust/
- Compiler un programme Rust pour l'exécuter sur un
GPU, par Eric Holk en
2012 :
http://blog.theincredibleholk.org/blog/2012/12/05/compiling-rust-for-gpus/
- Rust et les macros, par Damien Radtke en 2014 :
http://damienradtke.com/using-and-abusing-macros/
- Polymorphisme de haut niveau et Rust, texte de 2014 :
http://hydrocodedesign.com/2014/04/02/higher-kinded-types/
- Rust et les expressions
régulières, texte de 2014 par Andrew Gallant :
http://blog.burntsushi.net/rust-regex-syntax-extensions
- Faire en sorte que Rust soit prêt pour le
Web :
http://arewewebyet.com/
- En 2014, Steve Klabnik affirme que que la
documentation de Rust est sur le point de s'améliorer drastiquement... car il
s'en occupera personnellement :
http://words.steveklabnik.com/rusts-documentation-is-about-to-drastically-improve
- Le sens du mot unsafe de Rust, décrit par Huon Wilson
en 2014 :
http://huonw.github.io/2014/07/24/what-does-rusts-unsafe-mean.html
- Apprendre Rust, par Urban Hafner :
- les tâches et les messages, textes de 2014 :
- Selon Nicholas D. Matsakis en 2014, Rust se
stabilise et se rapproche d'une version 1 :
http://blog.rust-lang.org/2014/09/15/Rust-1.0.html
- En 2014, Armin Ronacher suggère de poser un
regard neuf sur Rust :
http://lucumr.pocoo.org/2014/10/1/a-fresh-look-at-rust/
- Rust et les macros :
- Voir la stabilité comme un livrable à part entière pour Rust, selon
Aaron
Turon et Niko Matsakis en 2014 :
http://blog.rust-lang.org/2014/10/30/Stability.html
- Si vous utilisiez proc avec Rust, vaudrait
mieux chercher une alternative, selon Nicholas D. Matsakis en
2014 :
http://smallcultfollowing.com/babysteps/blog/2014/11/26/purging-proc/
- Rust, les collections et la programmation générique, par Alexis
Beingessner en 2014 :
http://cglab.ca/~abeinges/blah/rust-generics-and-collections/
- Démarrer ce système autoréférentiel qu'est Rust, texte d'Aidan Cully en
2014 :
http://aidancully.blogspot.ca/2014/12/bootstrapping-rust.html
- À la fin de 2014,
Aaron
Turon annonce
l'approche de la version 1.0 de Rust :
http://blog.rust-lang.org/2014/12/12/1.0-Timeline.html
- Dans ce texte de 2014, Arthur Liao présente
Rust comme un langage « anti sloppy » :
http://arthurtw.github.io/2014/12/21/rust-anti-sloppy-programming-language.html
- Structures de données avec Rust, une série de textes par Alexis
Beingessner :
http://cglab.ca/~abeinges/blah/
- Rust pour les systèmes embarqués. texte de Job Vranish en
2015 :
http://spin.atomicobject.com/2015/02/20/rust-language-c-embedded/
- Développement de Rust, les priorités maintenant que la version
1.0 a été publiée, selon Nicholas D. Matsakis en
2015 :
http://internals.rust-lang.org/t/priorities-after-1-0/1901
- En 2015, Felix S. Klock II explique comment
combiner le Pattern Matching, la mutation et le mouvement en Rust :
http://blog.rust-lang.org/2015/04/17/Enums-match-mutation-and-moves.html
- Résoudre de « petits » problèmes avec Rust, par Huon Wilson en
2015 :
http://huonw.github.io/blog/2015/04/little-libraries/
- En 2015, Manish Goregaokar décrit ce qui constitue l'une des
principales forces de Rust selon lui :
http://manishearth.github.io/blog/2015/05/03/where-rust-really-shines/
- Texte de Nicholas D. Matsakis en 2015 sur la
force des enum de Rust :
http://smallcultfollowing.com/babysteps/blog/2015/05/05/where-rusts-enum-shines/
- Rust et les fermetures, par Huon Wilson en 2015 :
http://huonw.github.io/blog/2015/05/finding-closure-in-rust/
- Découvrir avec Rust, par Carol Nichols en 2015 :
http://carol-nichols.com/2015/05/10/rustc-discovery/
- Mieux vaut être immuable, même dans un seul et même
thread,
par Manish Goregaokar en 2015 :
http://manishearth.github.io/blog/2015/05/17/the-problem-with-shared-mutability/
- Quelques listes de trucs qu'il vaut mieux savoir à propos de Rust, par
Graydon Hoare en 2015 :
https://graydon2.dreamwidth.org/214016.html
- Rust et le code dangereux, par Alexis Beingessner en 2015 :
http://cglab.ca/~abeinges/blah/rust-unsafe-intro/
- Écrire un site Web avec Rust, et survivre! Par Stanisław Pitucha en
2015 :
http://blog.viraptor.info/post/i-wrote-a-website-in-rust-and-lived-to-tell-the-tale
- Trois mois de vécu avec Rust, relatés par Jamie Brandon en 2015 :
http://scattered-thoughts.net/blog/2015/06/04/three-months-of-rust/
- Un premier contact avec Rust pour Eric Sink en 2015 :
http://ericsink.com/entries/rust1.html
- Texte de 2015 par Graydon Hoare
qui souligne (avec fierté) ce que la version 1 de Rust ne comprend pas :
http://graydon2.dreamwidth.org/218040.html
- En 2015, Nicholas Matsakis et
Aaron
Turon présentent ce qu'ils ont sur
la table pour Rust en 2016 :
http://blog.rust-lang.org/2015/08/14/Next-year.html
- Texte de 2015 par Jamie Brandon, qui relate
son impression somme toute fort positive suivant trois mois d'utilisation de
Rust :
http://scattered-thoughts.net/blog/2015/06/04/three-months-of-rust/
- Écrire un système d'exploitation
avec Rust, textes de Philipp Oppermann :
http://os.phil-opp.com/
- En 2016, Hermann J. Radtke III explique la nuance entre
&str et String :
http://hermanradtke.com/2015/05/03/string-vs-str-in-rust-functions.html
- En 2016, Katarzyna Macias expérimente avec Rust et s'écrit un petit jeu de pendu :
http://katecpp.github.io/rust-hangman/
Critique :
Outils :
RZ
Auteurs : Chris Stone et Andrej Bauer.
Un langage pour réaliser du traitement mathématique.
Section « S »
Langages dans cette section : ///, Sage,
SAS,
Sather, Sawzall,
Scala, Scheme,
Scratch, sed, Self,
Seph , September,
Seq,
SETL, Shakespeare,
Shen, Simple, Simula,
Sisal, Slash,
Smalltalk, Snarky,
Snek, Spark, Spec#,
Spider,
SPiM,
Spleenmap, SQL,
Squeak, Squirrel,
Stark, Subtext,
Superglue, Swift,
Swym.
///
Auteur : Tanner Swett
Langage axé sur le remplacement lexical, mais tout de même démontré
Turing-Complete.
Sage
Auteurs : Cormac Flanagan, Steve Freund, Jessica Gronski, Kenn Knowles
et Aaron Tomb
Langage fonctionnel avec un système
hybride de vérification de types.
SAS
Auteur : le SAS
Institute Inc.
Un langage qui vise à simplifier les calculs statistiques.
Sather
Auteur : Steve Omohundro
Langage OO aux objectifs très ambitieux.
Sawzall
Auteurs : Rob
Pike, Sean Dorward, Robert Griesemer, Sean Quinlan
Langage procédural de type DSL, optimisé
pour le traitement de larges quantités de données.
Scala
Auteur : Martin Odersky
Langage multiparadigmatique, à la fois OO
et fonctionnel, compilé
de manière à s'exécuter sur une machine
virtuelle.
Généralités :
- http://www.scala-lang.org/
- http://www.scala-lang.org/docu/files/ScalaRationale.pdf
- Un glossaire : http://docs.scala-lang.org/glossary/
- Le Scala Center, pour centraliser l'information à propos de ce langage :
- Un tour d'horizon
- Livres en ligne :
- Scala pour gens impatients :
- Concurrence et Scala :
- Twitter est programmé en Scala :
- Métaprogrammation et Scala :
Paradigmes-programmation--Liens.html#metaprogrammation_langage_Scala
-
Programmation fonctionnelle et Scala :
Paradigmes-programmation--Liens.html#programation_fonctionnelle_langage_Scala
- Scala, un langage statique qui donne l'impression d'être un langage
dynamique : http://www.artima.com/weblogs/viewpost.jsp?thread=328540
- Utiliser Scala comme langage de script :
http://blog.getintheloop.eu/2011/08/01/system-scripting-with-scala/
- Scala pour les hackers : http://tommorris.org/wiki/Scala_for_Hackers
- Pourquoi Scala? http://www.drmaciver.com/2007/12/no-seriously-why-scala/
- Pas si difficile que ça, au fond... http://markusjais.com/why-scala-seems-difficult-but-reallyisnt/
- Les seuils d'expertise de programmeurs Scala : http://www.scala-lang.org/node/8610
- Scala est-il strictement pertinent pour une programmeuse ou un programmeur
chevronné? Bruce Eckel donne son opinion sur le sujet en
2012 : http://www.artima.com/weblogs/viewpost.jsp?thread=339521
- Scala pour la plateforme .NET :
http://www.scala-lang.org/node/10299
- Apprendre Scala, un texte de Graham Lea en 2012 :
http://www.grahamlea.com/2012/11/learning-scala-grahams-guide/
- Les problèmes que Scala règle, texte de 2012
par Will Sargent :
http://tersesystems.com/2012/12/16/problems-scala-fixes
- Pourquoi devrait-on apprendre Scala en 2013?
Texte de 2012 :
http://blog.typesafe.com/why-learn-scala
- Pourquoi utiliser Scala? Un texte de Simen Fure Jørgensen en 2013 :
http://blog.iterate.no/2013/04/18/economies-of-scala/
- Expliquer Scala à des programmeurs Java, texte de Michel Schinz et Philipp
Haller en 2012 :
http://docs.scala-lang.org/tutorials/scala-for-java-programmers.html
- À propos de l'intérêt d'utiliser Scala pour un cours d'introduction à la
programmation, texte de Mark Lewis en 2013 :
http://dynamicsofprogramming.blogspot.ch/2013/11/benefits-of-scala-in-cs1.html
- Pourquoi utilisons-nous Scala? Article d'Elmar Weber en
2014 :
http://www.cupenya.com/blog/muscle-memorywhy-we-are-really-using-scala/
- En 2014, Christopher Hunt explique pourquoi, à
ses yeux, Scala intègre vraiment les mondes de la
POO et de la
programmation fonctionnelle, tissant au passage un lien avec le
modèle de
programmation par acteurs :
http://christopherhunt-software.blogspot.ca/2014/12/where-fp-meets-oo.html
- Scala est-il fondamentalement compliqué? Non, du moins si on en croit ce
texte de Noel Welsh en 2015 :
https://www.voxxed.com/blog/2015/07/scala-doesnt-complicated/
- Scala sous le bistouri, une série de textes par Mario Aras :
- Après cinq ans d'utilisation, Manuel Bernhardt relate son expérience avec
Scala dans ce texte de 2015 :
http://manuel.bernhardt.io/2015/11/13/5-years-of-scala-and-counting-debunking-some-myths-about-the-language-and-its-environment/
- Choix de noms efficients pour la programmation avec Scala, selon Li Haoyi en 2016 :
http://www.lihaoyi.com/post/StrategicScalaStyleConcisenessNames.html
- En 2016, Joe Baker relate son apprentissage de
Scala :
http://blog.threatstack.com/my-journey-in-scala-awakenings
Historique :
Technique :
- Principes de
programmation fonctionnelle avec Scala, par Heather Miller et Martin Odersky
en 2012 :
http://docs.scala-lang.org/news/functional-programming-principles-in-scala-impressions-and-statistics.html
- Idiomes et techniques :
../Sujets/Developpement/Schemas-conception.html#idiomes
- Optimisation et Scala :
Optimisation--Liens.html#langage_Scala
- Scala et les traits :
- Scala et les BD :
- Scala et les acteurs :
Multiprogrammation--Liens.html#modele_acteurs
- Intégrer Scala et OSGi :
http://lambda-the-ultimate.org/node/3767
- Compiler Scala pour LLVM :
https://days2011.scala-lang.org/sites/days2011/files/ws3-2-scalallvm.pdf
- Compiler des types structurels pour la JVM
à partir d'une perspective Scala : http://infoscience.epfl.ch/record/138931/files/2009_structural.pdf
- Scala et les Type Classes :
- Comment compiler Scala donne du Java :
http://iamchrislewis.tumblr.com/post/239967776/a-look-at-how-scala-compiles-to-java
- Programmation
fonctionnelle, de Java à Scala :
http://www.artima.com/weblogs/viewpost.jsp?thread=306337
- Bibliothèque scalaz, une extension au Scala de base :
- Structures de données avec Scala :
- Les opérateurs :
- Saines pratiques :
- Une tentative de gradation des concepts du langage par niveau d'expertise :
http://www.scala-lang.org/node/8610
- http://www.readwriteweb.com/hack/2011/04/the-guardian-is-migrating-its.php
- http://batsov.com/2011/05/08/jvm-langs-scala.html
- Covariance et
contravariance en Scala : http://coding-time.blogspot.com/2011/05/covariance-and-contravariance-simple.html
- Scala pour Android : http://robots.thoughtbot.com/post/5836463058/scala-a-better-java-for-android
- Des Mock Objects avec Scala : http://www.artima.com/scalazine/articles/borachio_mock_objects_for_scala.html
- Pourquoi migrer vers Scala?
- Mémoire
transactionnelle en Scala : http://www.codecommit.com/blog/scala/software-transactional-memory-in-scala
- Macros en Scala :
- Une machine de Turing en Scala, par Gabriel Claramunt en
2012 : http://gabrielsw.blogspot.ca/2012/04/purely-functional-turing-machine.html
- Cas vécu d'utilisation de Scala dans une compagnie, du point de vue de
l'assurance-qualité, par Jaime F. Jorge en 2013 :
http://www.qamine.com/blog/scalaImpact
- Réaliser un tri fusion en Scala, texte d'Alex Staveley en
2013 :
http://dublintech.blogspot.sg/2013/05/how-could-scala-do-merge-sort.html
- Scala pour le Web :
http://lihaoyi.github.io/hands-on-scala-js/#Hands-onScala.js
- Polymorphisme de haut degré avec Scala, par Rúnar Óli en
2010 :
https://apocalisp.wordpress.com/2010/07/02/higher-rank-polymorphism-in-scala/
- Scala.js, pour compiler de Scala vers
JavaScript :
http://scala-lang.org/news/2015/02/05/scala-js-no-longer-experimental.html
- Scala et les types fantômes, par Heiko Seeberger en 2016 :
https://blog.codecentric.de/en/2016/02/phantom-types-scala/
- Manipuler des fichiers et des dossiers avec Scala, texte de
2016 par Alex Fruzenshtein :
http://fruzenshtein.com/scala-working-with-resources-folders-files/
- Utiliser Scala pour fins de
scripting, par Li Haoyi en 2016 :
http://www.lihaoyi.com/post/ScalaScriptingandthe15MinuteBlogEngine.html
- Les énumérations avec Scala, expliquées en 2016
par Pedro Rijo :
http://pedrorijo.com/blog/scala-enums/
Critiques :
- http://codemonkeyism.com/scala-unfit-development/
- Critique constructive : http://relentlessscaling.blogspot.com/2011/01/scala-considered-harmful-for-large.html
- Quitter Scala pour revenir à Java :
- À propos de la difficulté d'apprendre Scala :
- En 2011, David Pollak avoue que, bien qu'il
adore Scala, il estime que Java demeure à
ses yeux un meilleur choix pour plusieurs projets : http://goodstuff.im/scala-use-is-less-good-than-java-use-for-at-l
- Selon Stephen Coulebourne, Scala en 2011, ressemble
à EJB version 2 (mais l'auteur explique ce qu'il veut dire par là;
la critique est assez sévère) : http://blog.joda.org/2011/11/scala-feels-like-ejb-2-and-other.html
- En 2011, Michael Woloszynowicz a passé
un mois avec Scala, et raconte son expérience : http://www.w2lessons.com/2011/12/month-with-scala.html
- Texte de Bill de hOra en 2013 qui explique sa
perception de Scala :
http://www.dehora.net/journal/2013/06/15/on-scala/
- En 2013, Giles Alexander livre une sévère
critique du langage et nous implore de ne pas utiliser Scala pour du code de
production :
http://overwatering.org/blog/2013/12/scala-1-star-would-not-program-again/
- En 2014, Hartmut Schlosser se dit d'avis que
Scala manque de pragmatisme :
http://jaxenter.com/does-scala-deserve-a-defense-49457.html
- Le côté obscur de Scala, présentation de Tomasz Nurkiewicz en 2014 :
http://nurkiewicz.github.io/talks/2014/scalar/#/
- Sans être une critique de Scala ou des futures, cet article de
2016 par Ken Scambler explique comment certains mauvais choix
d'implémentation ont affecté le développement dans une entreprise :
http://rea.tech/the-worst-thing-in-our-scala-code-futures/
- L'inférence de types sytatique et dynamique avec Scala, expliquée par Mark
Canlas en 2017 :
https://medium.com/@markcanlasnyc/scala-saturday-static-vs-dynamic-typing-2bbe6a283233
Scheme
Auteur : Guy
L. Steele et Gerald Jay Sussman
Un langage fonctionnel, dialecte
bien connu de Lisp.
Chicken est un compilateur de Scheme à C :
En 2016, Kent Dybvig a livré son compilateur optimisant,
ChezScheme, en version à code ouvert. Il n'est pas si fréquent qu'un outil de
cette qualité soit offert à la communauté :
https://github.com/cisco/chezscheme
Le dialecte CHICKEN :
PLT Scheme est un environnement interactif supportant DrScheme :
Scratch
Auteur : plusieurs personnes.
Langage à vocation éducative, axé sur la découverte et sur la stimulation de l'imaginaire.
sed
Auteur : Lee E. McMahon
Un langage axé sur la transformation de chaînes de caractères.
Self
Auteurs : Randall B. Smith et
David Ungar (à ma connaissance)
Langage OO
visant à offrir une expérience de développement
unifiée, incluant la possibilité de modifier dynamiquement les
modes de comportement des objets.
Seph
Auteur : Ola Bini
Semble être le successeur de Ioke.
September
Auteur : Jakub Wasilewski
Langage dynamique à accolades, qui vise l'extensibilité à partir d'une
syntaxe minimaliste.
Seq
Auteurs : Ariya Shajii, Ibrahim Numanagić, Riyadh Baghdadi, Bonnie A Berger et Saman Amarasinghe
Langage axé vers le développement bioinformatique, et syntaxiquement
inspiré de Python.
SETL
Auteurs : David Bacon
Langage généraliste mais offrant un support direct des ensembles finis
Shakespeare
Auteurs : Karl Hasselström et Jon Åslund
Langage axé sur la liberté poétique, qui vise à
ce que les sources des programmes soient aussi agréables à lire
qu'une pièce de l'auteur du même nom.
Shen
Auteurs : un comité
de quelques individus dont Mark Tarver
Langage fonctionnel mettant l'accent
sur la portabilité. Successeur de Qi.
Simple
Auteur : Herbert?
Un langage qui se veut simple, comme son nom l'indique, à l'image de Basic.
Simula
Auteurs : Ole-Johan Dahl et Kristen Nygaard
L'un des premiers langages OO, et l'un de ceux ayant influencés le plus de langages contemporains.
Sisal
Auteur : Judy Michels (je pense)
Langage fonctionnel mettant l'accent sur le
parallélisme.
Slash
Auteur : Charlie Some?
Langage dérivé de PHP et de
Ruby, entre autres, qui se veut plus agréable
pour programmer pour le Web que ne l'est PHP.
Smalltalk
Auteur : Alan Kay
Langage très influent, que plusieurs considèrent comme un modèle de l'approche OO.
Smalltalk pour la
JVM :
Histoire :
- Les débuts de Smalltalk, relatés par Alan Kay :
Critiques :
Snarky
Auteurs : Izaak Meckler et son équipe
Langage de haut niveau visant la rédaction de programmers vérifiables
Snek
Auteur : Keith Packard
Langage inspiré de Python, mais destiné aux
systèmes embarqués.
Spark
Auteur : Bernard Carré et Trevor Jennings
Langage formel, dérivé du langage Ada, ou tout
programme est une preuve de sa propre validité.
Spec#
Auteurs : Mike Barnett, Manuel Fähndrich, K. Rustan M. Leino, Peter
Müller, Wolfram Schulte, Herman Venter
Langage qui étend C# avec l'idée
de contrats (préconditions, postconditions, invariants) pour améliorer
la robustesse des programmes.
Spider
Auteur : mystère
Langage qui vise à intégrer les meilleurs aspects de
Swift, Python, C# et
CoffeeScript. Compile vers
JavaScript.
SpiderBasic
Auteur : mystère
Langage dont la syntaxe est inspirée de celle de
Basic, et qui se veut un outil de développement côté client pour des
applications Web. Sa
compilation génère du code JavaScript et le
résultat requiert un fureteur
supportant
HTML5.
SPiM (Stochastic Π Machine)
Auteurs : Andrew Phillips et Luca Cardelli
Langage basé sur le π-calcul et visant à décrire et simuler des processus biologiques.
Spleenmap
Auteur :
http://esolangs.org/wiki/User:Fr34k
Langage bidimensionnel très restrictif, se limitant à quatre instructions
dont une pour manipuler des données, de même qu'un « pool » de données d'une
taille d'un byte.
SQL
Auteurs : Donald D. Chamberlin et Raymond F. Boyce
Langage
déclaratif très répandu (probablement l'un
des rares langages auxquels pratiquement toutes les informaticiennes et tous
les informaticiens se frottent un jour ou l'autre) servant entre autres à
interagir de manière standardisée avec des bases de données
relationnelles.
- http://en.wikipedia.org/wiki/SQL
- http://sqlzoo.net/
- http://www.sql.org/
- Livre en ligne par
Zed A. Shaw :
http://sql.learncodethehardway.org/book/introduction.html
- En 2016, Soham Kamani propose un petit guide
pour « penser en SQL » :
http://www.sohamkamani.com/blog/2016/07/07/a-beginners-guide-to-sql/
- Prudence : http://en.wikipedia.org/wiki/SQL_injection
- http://research.microsoft.com/en-us/um/people/simonpj/papers/list-comp/index.htm
- Un livre en ligne : http://sql-performance-explained.com/
- Optimisation :
Optimisation--Liens.html#langage_SQL
- Aller au-delà de TRUE et
FALSE : http://www.sqlservercurry.com/2011/05/sql-queries-beyond-true-and-false.html
- Texte de 2012 par Armin Ronacher qui explique
que, à son avis, SQL est « agile » :
http://lucumr.pocoo.org/2012/12/29/sql-is-agile/
- Particularités de SQL qui sont pertinentes
pour les scientifiques, un texte de 2013 :
http://blog.yhathq.com/posts/sql-for-data-scientists.html
- En 2013, Michael Herman nous enjoint
d'apprendre SQL :
http://gun.io/blog/learn-sql/
- Texte de 2013 par Jason Levitt et Sean Gallagher sur la popularité renouvelée de SQL :
http://arstechnica.com/information-technology/2013/07/the-hot-new-technology-in-big-data-is-decades-old-sql/
- Comprendre SQL en dix étapes, par Lukas Eder
en 2013 :
http://tech.pro/tutorial/1555/10-easy-steps-to-a-complete-understanding-of-sql
- Les nuances entre UNION et
UNION ALL, selon Nadir Ramani en 2013 :
http://knowitbasic.blogspot.ca/2013/11/difference-between-union-and-union-all.html
- Explorer du
JSON avec des
requêtes
SQL, un texte de Joseph P. Conley en 2014 :
http://www.josephpconley.com/2014/05/13/datacombinator-query-engine.html
- Le jeu de la vie en SQL? Proposition de Rafael Ördög en
2014 :
http://c0de-x.com/sql-on-steroids/
- Texte de 2014 dans lequel 'auteur se dit
d'avis que les programmeuses et les programmeurs craignent
SQL, et se demande pourquoi :
http://unconnected1.blogspot.ca/2014/09/why-are-developers-so-afraid-of-sql.html
- SQL et l'échelonnabilité (Scalability) : http://queue.acm.org/detail.cfm?id=1971597
- Récursivité avec SQL, par Xavier Geerinck en
2015 :
http://desple.com/post/108909223762/recursion-with-sql
- Comprendre le
NULL de
SQL : ../Sujets/Developpement/Null.html#langage_SQL
- En 2015, Lukas Eder ne tarit pas d'éloges
envers SQL :
http://www.vertabelo.com/blog/notes-from-the-lab/why-sql-is-neither-legacy-nor-low-level-but-simply-awesome
- Parfaire sa maîtrise de SQL, un texte de
2016 :
http://blog.jooq.org/2016/03/17/10-easy-steps-to-a-complete-understanding-of-sql/
- Visualiser les jointures, schéma proposé en 2016
par Humayun Shabbir :
http://enthusiastprogrammer.com/2016/04/07/a-visual-explanation-of-sql-joins/
- Nommage et SQL, texte de
2015 par Paul M. Jones :
http://paul-m-jones.com/archives/6188
- Examiner les zones sécuritaires d'une ville comme San Francisco à l'aide
de SQL, texte de 2016 :
https://www.periscopedata.com/blog/safety-in-san-francisco.html
- Texte de 2016 par Craig Kerstiens qui explique
comment il est possible d'écrire du code SQL qui
soit aussi agréable à lire :
http://www.craigkerstiens.com/2016/01/08/writing-better-sql/
- Texte de Jonathan Sacramento en 2016, portant
sur l'écriture de code SQL « propre » :
http://jonathansacramento.com/posts/20161119_clean_sql.html
- Comprendre l'ordre des opérations SQL, une
texte de 2016 :
https://blog.jooq.org/2016/12/09/a-beginners-guide-to-the-true-order-of-sql-operations/
- L'impact des instructions WITH de
SQL sur la vitesse de traitement des requêtes :
https://modern-sql.com/feature/with/performance
- Ce texte de 2017 suggère que plusieurs problèmes de « performance » avec
SQL tiennent en fait à ce qu'on lui demande trop de travail à la fois
« superflu et obligatoire » :
https://blog.jooq.org/2017/03/08/many-sql-performance-problems-stem-from-unnecessary-mandatory-work/
- Texte de 2017 par Ajai Kulkarni, selon qui SQL
fait un retour face à NoSQL :
https://blog.timescale.com/why-sql-beating-nosql-what-this-means-for-future-of-data-time-series-database-348b777b847a
- À propos de l'importance des contraintes avec SQL,
un texte de 2017 par Denis Gobo :
http://sqlservercode.blogspot.ca/2017/10/your-lack-of-constraints-is-disturbing.html
- Petit guide pratique pour isoler des transactions avec SQL, proposé par
Joe Nelson en 2017 :
https://begriffs.com/posts/2017-08-01-practical-guide-sql-isolation.html
- Texte de 2017 par Jacob Mastel et portant sur
l'impact de l'ordre dans lequel les opérations JOIN
apparaissent :
https://mastel.org/blog/when-join-order-matters
- Trouver des palindromes dans une chaîne de caractères avec SQL,
par Lukas Eder en 2017 :
https://blog.jooq.org/2017/08/22/finding-all-palindromes-contained-in-strings-with-sql/
- À propos des multiples sens de NULL en SQL :
../Sujets/Developpement/Null.html#langage_SQL
- Améliorer ses compétences avec SQL,
texte de 2018 par Dan Kleiman :
https://dankleiman.com/2018/02/06/3-ways-to-level-up-your-sql-as-a-software-engineer/
- La relation entre SELECT DISTINCT et
ORDER BY, expliquée par Lukas Eder en 2018 :
https://blog.jooq.org/2018/07/13/how-sql-distinct-and-order-by-are-related/
- De l'avis d'Ogundipe Samuel en 2018, SQL
est bien vivant et a sa place dans les
applications Web :
https://blog.logrocket.com/sql-isnt-a-dinosaur-and-it-s-not-dead-you-should-use-it-4e18c4fc5fb2
- À propos des expressions booléennes avec SQL,
pour lesquelles les court-circuits ne sont pas garantis, un texte de
2018 par Igor Sarcevic :
http://morningcoffee.io/boolean-short-circuiting-is-not-guaranteed-in-sql.html
- Selon Craig Kerstiens en 2019, connaître
SQL est l'une des aptitudes les plus utiles qui soient pour une
programmeuse ou un programmeur :
http://www.craigkerstiens.com/2019/02/12/sql-most-valuable-skill/
- En 2019, Eli Bendersky discute des
inner join et des outer join :
https://eli.thegreenplace.net/2019/sql-inner-and-outer-joins/
- Dans ce texte humoristique de 2019, Remy
Porter recommande d'utiliser avec prudence et discrimination l'instruction
DECODE, qui est en pratique une sorte d'opérateur ternaire de
SQL :
https://thedailywtf.com/articles/get-out-your-decoder-ring
- Comment ajuster des requêtes SQL un peu trop
lentes, selon Helen Anderson en 2019 :
http://www.helenanderson.co.nz/sql-query-tweaks/
Critiques :
Squeak
Auteurs : Alan Kay et Dan Ingalls
Dialecte de Smalltalk destiné à des fins éducatives.
Squirrel
Auteur : Alberto Demichelis
Langage de scripts, prisé en particulier dans le monde des jeux vidéos.
Stark
Auteur : Alexandre Mutel
Projet visant à faire, essentiellement, un « meilleur
C# » (je
paraphrase l'auteur).
Subtext
Auteur : Jonathan Edwards
Met de l'avant la programmation basée sur les exemples.
Superglue
Auteurs : Sean McDirmid et Wilson C. Hsieh
Langage niche mettant l'accent sur l'approche OO
et les messages entre composants.
Swift
Auteurs :
Chris
Lattner, ou encore Michael Wilde, Mihael Hategan, Justin M. Wozniak, Ben
Clifford, Daniel S. Katz et Ian Foster (voir ci-dessous).
Dans un cas,
langage
de scripting axé sur la programmation parallèle et concurrente. Dans le
cas le plius connu désormais, langage tout usage reposant sur
LLVM et voué à
coexister avec Objective-C dans l'écosystème
Apple. Il utilise le
langage
intermédiaire SIL. Notez
qu'il semble y avoir eu deux langages portant ce nom, les deux ayant des
vocations connexes, mais il est hautement probable que l'incarnation la plus
récente, poussée par Apple, soit celle à laquelle on attribue « officiellement »
ce nom en pratique.
- http://swift-lang.org/
- Site officiel depuis 2015 :
https://swift.org/
- Blogue technique officiel :
https://swift.org/blog/
-
http://en.wikipedia.org/wiki/Swift_programming_language
-
https://developer.apple.com/swift/
-
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html
-
Le langage précédemment connu sous ce nom :
- En 2014, Apple s'est approprié ce nom. Pour
l'essentiel, c'est le sens que l'on donnera à ce nom de langage désormais :
- Les premières impressions de Bruce Eckel en 2014 :
http://codrspace.com/BruceEckel/apples-new-swift-programming-language/
- En 2014, Mike Ash met en relief certaines
particularités intéressantes de Swift :
https://www.mikeash.com/pyblog/friday-qa-2014-06-20-interesting-swift-features.html
- Écrire un petit programme avec Swift, par David Bolton en
2014 :
http://news.dice.com/2014/09/17/how-to-build-apps-in-swift/
- Comment Swift
utilise LLVM pour générer du code machine de
qualité, par John Siracusa en 2014 :
hhttp://arstechnica.com/apple/2014/10/os-x-10-10/22/
- Combler quelques lacunes de Swift quant à la réflexivité sur des
struct, texte de 2014 :
http://tetontech.wordpress.com/2014/10/24/swift-reflection-downcasting-protocols-and-structs-a-solution/
- Une introduction au REPL (Read-Eval-Print-Loop) de Swift, texte
de 2014 :
http://arthurtw.github.io/2014/11/30/rust-borrow-lifetimes.html
- Contrôler la complexité des sources en programmant avec Swift :
http://realm.io/news/andy-matuschak-controlling-complexity/
- Swift dans du code de production, cas vécu relaté par Chris Eidhof en
2015 :
http://chris.eidhof.nl/posts/scenery-launch.html
- En 2015, Marcel Weiher se dit jaloux de
Swift :
http://blog.metaobject.com/2015/05/i-am-jealous-of-swift.html
- Diapositives d'une présentation d'introduction à Swift, par Sasha
Goldshtein en 2015 :
https://www.dropbox.com/s/43hvk88jmcnovr1/Swift-pdf.pdf?dl=0
- Programmation orientée protocoles avec Swift, texte de
2015 :
https://bigonotetaking.wordpress.com/2015/07/17/swift-protocols-a-strategy/
- En 2015, Swift prend le virage à code ouvert :
- Une liste des demandes de modifications à Swift les plus susceptibles
d'être refusées, avec les raisons derrière ces probables refus :
https://github.com/apple/swift-evolution/blob/master/commonly_proposed.md
- Depuis 2016, Swift est offert sur
Linux, comme le rapporte Steven
J. Vaughan-Nichols :
http://www.zdnet.com/article/apples-swift-comes-to-linux/
- En 2016,
Joe
Armstrong s'amuse avec Swift et se fait une interface personne machine :
- Comment sont implémentés les tableaux en Swift, par Ankit Aggarwal en 2016 :
http://ankit.im/swift/2016/01/08/exploring-swift-array-implementation/
- Les trois « saveurs » de l'égalité avec Swift, selon Pelle Stenild Coltau en
2016 :
https://www.teletronics.ae/2016/07/03/swift-equality/
- L'évolution de Swift, relatée par Justin Williams en
2017 :
https://carpeaqua.com/2017/06/02/swifts-evolution/
Technique :
- Parallélisme avec Swift :
Multiprogrammation--Liens.html#langage_Swift
- Système de types de Swift :
Systemes-types--Liens.html#langage_Swift
- Programmer un conteneur
générique avec Swift, un texte d'Erica Sadun en 2014 :
http://www.informit.com/articles/article.aspx?p=2236037
- Swift et les assertions, texte de 2014 :
https://developer.apple.com/swift/blog/?id=4
- Comment Swift organise les objets en mémoire, étude sommaire de Mike Ash
en 2014 :
https://mikeash.com/pyblog/friday-qa-2014-07-18-exploring-swift-memory-layout.html
- Swift n'offre pas d'équivalent de la qualification d'accès
protected. Ce texte de 2014 explique
pourquoi :
https://developer.apple.com/swift/blog/?id=11
- Utiliser Swift pour interfacer avec Dropbox, par Leah Culver en
2014 :
https://www.dropbox.com/developers/blog/109/swift-apps-with-dropbox
- Swift et ses sélectives, particulièrement souples, expliquées par Electric Jemmons (!) en
2015 :
http://www.figure.ink/blog/2015/2/14/custom-switch-matchers-in-swift
- Survol des séquences, des collections et des générateurs de Swift, texte
de 2014 :
http://iosdeveloperzone.com/2014/10/13/swift-standard-library-generators-sequences-and-collections/
- Le Pattern Matching avec Swift, par Ole Begemann en
2015 :
- Les Intervals et les Ranges (difficile de traduire ces
termes synonymes en français mais distincts pour le langage!) dans Swift,
selon Ole Begemann en 2015 :
http://oleb.net/blog/2015/09/swift-ranges-and-intervals/
- En 2015, Milke Ash explique pourquoi l'API
de manipulation de chaînes de caractères de Swift est si difficile
d'approche :
https://www.mikeash.com/pyblog/friday-qa-2015-11-06-why-is-swifts-string-api-so-hard.html
- Examen détaillé des booléens avec Swift, par Greg Heo en
2015 :
https://swiftunboxed.com/open-source/Bool/
- Examen détaillé des chaînes de caractères avec Swift, par Andy Bargh en
2016 :
http://andybargh.com/swift-strings/
- Swift et les fermetures, optionnelles ou non, selon Ole Begemann en
2016 :
https://oleb.net/blog/2016/10/optional-non-escaping-closures/
- En 2016, Brian King explique comment se
réalise le Method Dispatch avec Swift :
https://www.raizlabs.com/dev/2016/12/swift-method-dispatch/
- Les propriétés atomiques ou non, expliquées par Yogev Sitton en
2017 :
https://medium.com/@YogevSitton/atomic-vs-non-atomic-properties-crash-course-d11c23f4366c
Critiques :
- Alexandros Salazar, en 2014, expérimente avec
Swift et rencontre des irritants :
http://nomothetis.svbtle.com/smashing-swift
- En 2014, texte où l'auteur évoque ce qui lui
semble manquer à Swift (mais admet ne pas l'avoir essayé) :
https://studentf.wordpress.com/2014/06/03/swift-not-quite-there-but-too-far-gone-too/
- Rob Napier, un programmeur
Objective-C, est d'avis que personne, en 2014,
ne connaît vraiment Swift :
http://robnapier.net/i-dont-know-swift
- Texte de 2014 par David Owens où l'auteur
relate sa déception avec Swift :
http://owensd.io/2014/09/24/swift-experiences.html
- An 2014, Tyrone Sudeium affirme que Swift serait trop
lent pour du code de production :
http://blog.sudeium.com/2014/12/10/swift-performance-too-slow-for-production/
- Site relatant des trucs étranges avec Swift, du moins pendant que le
langage se stabilisait (de l'avis de l'auteur de ce site, la plupart de ces
irritants ont été réglés depuis) :
http://swiftwtf.tumblr.com/
- Un programme Swift, ça peut être long à compiler (on critique ici
l'immaturité du langage plus que le langage en tant que tel), comme en
témoigne ce texte de Matt Nedrich en 2016 :
https://spin.atomicobject.com/2016/04/26/swift-long-compile-time/
- Oups! Le système de types de
Swift comprend des opérations qui sont de
complexité
exponentielle... Texte de Matt Gallagher en 2016 :
http://www.cocoawithlove.com/blog/2016/07/12/type-checker-issues.html
Swym
Auteur : Laurie Cheers
Langage fonctionnel avec
système de types statique, implémenté en
JavaScript.
Section « T »
Langages dans cette section : tab, Tamarin,
Terra,
Tcl/Tk, TEX,
Thorn, Thot, Thyrd,
TMMLPTEALPAITAFNFAL,
TOML,
TosLang, Trylon,
Tulip, Turbo
Pascal, Twit, TXR, TypeScript.
tab
Auteur : tkatchev?
Langage de programmation avec typage statique, qui vise à faciliter des
tâches comme exprimer des requêtes dans un fichier texte.
Tamarin
Auteur : Mozilla
Un langage qui est en fait une plateforme et une implémentation d'ActionScript,
avec interpréteur et compilateur
juste à temps.
Tcl/Tk
Auteur : John
Kenneth Oustershout
Langage de script, souvent utilisé
pour générer des prototypes d'interfaces personne/ machine.
- Site officiel : http://www.tcl.tk/
et http://www.tcl.tk/software/tcltk/
- Un Wiki sur ce langage : http://wiki.tcl.tk/
(et http://en.wikipedia.org/wiki/Tcl)
- Une foire aux questions : http://tcl.sourceforge.net/faqs/
- Un site d'évangélisation : http://wiki.tcl.tk/590
- Documentation de la version 8.0 : http://www.tcl.tk/software/tcltk/8.0.html
- Les sources du projet Tcl/Tk : http://tcl.sourceforge.net/
- Safe-Tcl, une version qui met l'accent sur la sécurité :
http://www.tcl.tk/software/plugin/safetcl.html
(pour un descriptif de son modèle de sécurité, voir http://research.sun.com/technical-reports/1997/smli_tr-97-60.pdf)
- http://www2.lib.uchicago.edu/keith/tcl-course/
- http://journal.dedasys.com/2010/03/30/where-tcl-and-tk-went-wrong
- http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00538.html
- En 2012, Yossi Kreinin relate qu'il louange
Tcl... et ne le croit pas lui-même : http://www.yosefk.com/blog/i-cant-believe-im-praising-tcl.html
- Tcl, ce grand incompris. Texte de Salvatore Sanfilippo en
2006 :
http://antirez.com/articoli/tclmisunderstood.html
- En 2014, Tcl a eu 25
ans :
http://blog.tkdocs.com/2014/01/happy-25th-tcl.html
- En 1994, une espèce de guerre a été menée
entre
Richard Stallman et... beaucoup de gens, à propos de Tcl, à savoir
« l'utiliser ou pas? » :
http://vanderburg.org/old_pages/Tcl/war/
- Variante jouet, PartTcl, proposée par Serge Zaitsev en 2016
:
http://zserge.com/blog/tcl-interpreter.html
- Avec Tcl, tout est une chaîne de caractères :
https://wiki.tcl-lang.org/page/everything+is+a+string
Terra
Auteur : Zachary DeVito
Une contrepartie « bas niveau » du langage
Lua.
TEX
Auteur : Donald
E. Knuth (mais Leslie Lamport a fait la version LATEX)
De prime abord, ce langage sert à la disposition du texte (au Typesetting),
mais il s'avère (ce qui peut surprendre) aussi être un langage
Turing-Complete.
Thorn
Auteurs : Bard Bloom, Brian Burg, John Field, Nicholas Kidd, Nathaniel
Nystrom, Johan östlund, Gregor Richards, Rok Strnisa, Jan Vitek, Jason
Ward et Tobias Wrigstad
Langage axé sur la multiprogrammation avec plusieurs processus et passage
de messages. S'exécute sur la JVM.
Vise des scripts évolutifs.
Thot
Auteurs : Éric Gagnon, sur la base des travaux de Sébastien
Gendron (idée de Patrice Roy).
Langage de programmation à vocation éducative,
reposant principalement sur des mots mathématiques connus d'enfants de
2e et de 3e
année du primaire.
Thyrd
Auteur : Phil Mercurio
Langage de développement visuel.
TMMLPTEALPAITAFNFAL
Auteur : Gerson Kurtz (à ma connaissance)
Langage étrange dont le comportement
varie selon le jour de la semaine... Son nom signifie The Multi-Million
Language Project To End All Language Projects And Isn't That A Fine Name For
A Language...
TOML
Auteur : Tom Preston-Warner
Langage qui ne se veut pas généraliste, mais a pour objectif d'être une
sorte de format de fichier de configuration minimaliste et évident, dont les
données peuvent être transformées de manière immédiate en une Hash Table. TOML signifie d'ailleurs Tom's Obvious, Minimal Language.
TosLang
Auteur : Félix-Antoine Ouellet
Langage à vocation pédagogique, créé pour faciliter le développement sur un
système d'exploitation à vocation pédagogique nommé
Tostitos.
Trylon
Auteur : Steve Folta
Langage OO
structuré à partir de l'indentation, un peu comme Python.
Tulip
Auteur : Jeanine Adkisson
Langage fonctionnel « non-typé ».
Turbo Pascal
Auteur : Philippe Kahn, puis Anders
Hejlsberg
Langage impératif utilisé à la fois pour fins pédagogiques
et pour fins de production de logiciel commercial. Ancêtre de Delphi.
Voir aussi ObjectPascal.
Twit
Auteur : Richard Roe
Langage où l'on programme comme on tweete.
TXR
Auteur : Kaz Kylheku
Langage pensé pour la consommation et le traitement de données massives.
TypeScript
Auteur : Anders
Hejlsberg
Langage qui se veut un enrichissement de JavaScript pour faciliter le développement
de systèmes à une échelle plus vaste, entre autres par
l'insertion d'un système de types plus
explicite.
- http://www.typescriptlang.org/
- La version 2.0 du langage s'annonce, en
2016, comme l'explique Daniel Rossenwasser :
https://blogs.msdn.microsoft.com/typescript/2016/08/30/announcing-typescript-2-0-rc/
- Textes d'opinion sur ce langage :
- Un cas heureux d'application de TypeScript à un projet réel,
relaté par Bryan Harry en 2012 : http://blogs.msdn.com/b/bharry/archive/2012/10/24/typescript-a-real-world-story-of-adoption-in-tfs.aspx
- Introduction à TypeScript :
- Que penser de TypeScript après quelques mois d'utilisation?
- Le langage a atteint le seuil de la version 1.0
en 2014 :
- Article de 2014 par Neil Savage, expliquant en
quoi TypeScript permet aux programmeurs de choisir la quantité de typage
qu'ils souhaitent avoir en soutien :
http://dl.acm.org/citation.cfm?id=2659764
- En 2015, TJ VanToll annonce la montée de TypeScript,
et discute des forces de ce langage :
http://developer.telerik.com/featured/the-rise-of-typescript/
- Texte de 2016 par Anders
Hejlsberg qui discute du support offerts aux types non-nullables :
https://github.com/Microsoft/TypeScript/pull/7140
- En 2016, Basarat Ali Syed déclare TypeScript
gagnant dans le monde des langages qui compilent vers
JavaScript, incluant ECMAScript 6 lui-même :
https://medium.com/@basarat/typescript-won-a4e0dfde4b08
- Dans ce texte de 2016, Zeh Fernando compare
TypeScript à une bicyclette :
https://medium.com/@zeh/typescript-is-a-bicycle-62e9e34d7ad
- En 2017, Jason Dreyzehner invite les
aficionados de JavaScript à envisager de passer à TypeScript :
https://medium.freecodecamp.com/its-time-to-give-typescript-another-chance-2caaf7fabe61
- Le fonctionnement et le rôle des types en TypeScript, par Carlos Taborda en 2016 :
http://www.gistia.com/understanding-types-typescript/
- Présentation de Tomasz Ducin en 2017, qui décrit TypeScript comme
JavaScript plus des types :
http://slides.com/ducin/javascript-plus-java-equals-typescript#/
- Développement Web avec TypeScript, un texte de 2017 :
http://bet365techblog.com/large-scale-web-development-using-typescript
- En 2017, Felix Rieseberg explique comment Slack profite de TypeScript :
https://slack.engineering/typescript-at-slack-a81307fa288d
- Il semble que le système de types de TypeScript soit Turing-Complete,
si on se fie à ce texte de 2017 par Henning Dieterichs :
https://github.com/Microsoft/TypeScript/issues/14833
Critiques :
Unison
Auteur : Arya Irani
Langage fonctionnel pour le Web, dans lequel tout est immuable et le code est vu comme des données;
véhiculé sous la forme d'un arbre syntaxique plutôt que sous forme de texte
Unlambda
Auteur : David Madore (je pense)
Un langage de programmation étrange qui
se qualifie comme le cauchemar des langages
fonctionnels. Un langage sans variables, pensez-y...
Ur
Auteur : Adam Chlipala
Langage fonctionnel inspiré de ML et de Haskell.
V
Auteur : Alex Medvednikov
Langage compilé pensé pour faciliter l'entretien du logiciel (pas de
variables globales, de
comportement
indéfini, de null, etc.). L'auteur
reconnaît une filiation avec quelques langages, dont Go.
Vala
Auteurs : Jürg Billeter, Raffaele Sandrini
Langage ayant pour objectif de moderniser C en vue
de l'utiliser, une fois adapté, pour la plateforme GNOME tout en conservant
les outils traditionnels de dévelopement
Vigil
Auteur :
Robert
Nystrom
Langage similaire à Python mais mettant fortement l'accent sur le respect
des assertions, allant jusqu'à détruire le code qui ne se comporte pas convenablement.
Sans blagues.
VBScript
Auteur : des gens de chez Microsoft
Langage de script,
inspiré de Visual Basic, qui compétitionnait avec
JavaScript dans la première
décennie des années 2000.
Visual Basic
Auteur : Alan Cooper
Diverses versions de ce (très) populaire langage ont existé, mais il est maintenant considéré désuet dû à l'avènement de Visual Basic .NET,et la plupart des liens que j'avais accumulé à son sujet sont maintenant brisés.
À propos de la naissance de Visual Basic :
Questions de licenses :
Quelques liens techniques :
Visual Basic 6 vivra bien plus longtemps qu'on
aurait pu le croire à l'époque où son remplaçant,
Visual Basic .NET,
a pris le plancher :
En 2016, Visual Basic a eu
25 ans!
https://blogs.msdn.microsoft.com/dotnet/2016/05/20/happy-25th-birthday-vb/
En 2019, Matthew MacDonald relate la vie
tumultueuse de Visual Basic :
https://medium.com/young-coder/the-rise-and-fall-of-visual-basic-f422252349a6
Scott Hanselman, dans ce texte de 2016,
explique comment il a déployé une application Visual Basic
6 sur le Windows Store :
http://www.hanselman.com/blog/PuttingMyVB6WindowsAppsInTheWindows10StoreProjectCentennial.aspx
Est-ce la fin pour VBA, le système de macros derrière la suite Office de
Microsoft? Texte de Chris Newman en 2019 :
https://www.thespreadsheetguru.com/blog/are-vba-macros-dead
À propos de Gambas, un Visual Basic pour Linux :
http://gambas.sourceforge.net/en/main.html
Visual Basic .NET
Auteur : des gens chez Microsoft
À propos des littéraux
XML : http://www.codeproject.com/KB/vb/xmlliterals.aspx
Migrer vers VB .NET : http://www.developer.com/tech/article.php/1007341/The-Book-of-VB-NET-Migrating-to-Visual-Basic-NET-Part-1.htm
VB .NET sous Linux,
grâce à Mono : http://www.linuxfordevices.com/c/a/News/Mono-brings-Visual-Basic-programs-to-Linux/
Quelques liens techniques :
Une extension à ce langage, nommée Concurrent Basic et offfrant des outils
pour faciliter la programmation asynchrone, par Claudio Russo en
2015 :
http://research.microsoft.com/en-us/projects/concurrentbasic/default.aspx
Selon Paul Thurott en 2020, la fin serait
proche pour le développement de Visual Basic en tant que langage :
https://www.thurrott.com/dev/232268/microsoft-plots-the-end-of-visual-basic
Réaction détaillée et vive à l'annonce de la fin de
VB. NET, par Anthony Diante Green en 2020 :
Est-ce un revirement de situation? Il semble que VB .NET continuera
d'évoluer (un peu) pour fins d'interopérabilité avec
.NET
version 5, comme l'explique
Jonathan Allen en 2021 :
https://www.infoq.com/news/2021/03/VB-16-9/
Wake
Auteur : Michael R. Fairhurst
Langage qui veut que ses programmes soient « testables » du début à la fin.
WaveScript
Auteur : à vérifier
Un langage conçu pour développer des applications WaveScope.
Wenyan
Auteur : Lingdong Huang
Langage de programmation permettant d'exprimer les idées en « chinois
classique »
Whiley
Auteur : David J. Pearce
Langage s'exécutant sur la JVM
et mettant l'accès sur les tests statiques. Utilise une structure
basée sur l'indentation, un peu comme le fait Python.
- http://whiley.org/
-
https://github.com/Whiley/WhileyCompiler
- http://whiley.org/2010/10/18/indentation-syntax-in-whiley/
- http://whiley.org/2010/10/25/implementing-actors-on-the-jvm/
- http://whiley.org/2011/01/26/case-against-structural-subtyping/
- Présentation du langage, par David J. Pearce en 2013 :
http://whiley.org/wp-content/uploads/2013/06/MELBOURNEJUG.pdf
- Espaces nommés avec Whiley : http://whiley.org/2011/09/03/namespaces-in-whiley/
- Un décodeur de PNG avec Whiley, par David
J. Pearce en 2012 : http://whiley.org/2012/02/18/writing-a-png-decoder-in-whiley/
- Un problème de design quand deux interfaces sont si proches qu'il
est agaçant de les garder disjointes, mais quand on souhaite aussi
conserver leur indépendance mutuelle. Texte de David J. Pearce en
2012 : http://whiley.org/2012/02/29/a-problem-of-decoupling/
- Comment gérer les alias sur des objets tout en assurant la sécurité
dans le langage Whiley, par David J. Pearce en 2012 :
http://whiley.org/2012/06/11/flow-typing-for-references-in-whiley/
- Le format WYIL, langage
intermédiaire utilisé par Whiley, et ses inspirations, par
David J. Pearce en 2012 : http://whiley.org/2012/08/06/reflecting-on-the-jvm-class-file-format/
- Générer des
préconditions et des
postconditions avec Whiley, par David
J. Pearce en 2012 :
http://whiley.org/2012/12/04/generating-verification-conditions-for-whiley/
- Intégrer validation des
préconditions et opérations d'entrée/ sortie, texte
de David J. Pearce en 2013 :
http://whiley.org/2013/04/09/compile-time-verification-and-io/
-
Invariants de répétitives et sorties inconditionnelles, par David J
.Pierce en 2014 :
http://whiley.org/2014/05/02/loop-invariants-and-break-statements/
- Réflexion sur la validation automatique des
invariants de répétitives do ... while, par
David J .Pierce en 2014 :
http://whiley.org/2014/05/15/loop-invariants-and-dowhile-statements/
- Certains transtypages posent problème en Whiley, en partie dû aux liens
entre ce langage et la JVM.
Texte de David J .Pierce en 2014 :
http://whiley.org/2014/09/05/a-story-of-cast-expressions/
- Types récursifs, par David J .Pierce en 2016 :
http://whiley.org/2016/04/21/contractive-and-uninhabited-types-in-whiley/
Whitespace
Auteurs : Edwin Brady et Chris Morris.
Un langage de programmation étrange où
les énoncés sont strictement construits à partir de « blancs »
(espaces, tabulations, sauts de lignes, etc.). Tous les autres symboles
sont traités comme des commentaires.
Wolfram
Auteur :
Stephen Wolfram
Langage axé sur la résolution de problèmes complexes, en particulier sur la
base de connaissances étendues, avec une écriture concise.
Words!
Auteur : Omar Ahmad
Langage
.NET dont les sources sont compilées vers le langage
Cobra. Semble
axé vers des traitements analogues à ceux que l'on ferait habituellement avec
des expressions régulières.
Wren
Auteur :
Robert
Nystrom
Langage de script qui se veut compact et capable d'interagir directement
avec du code C.
WWWBasic
Auteur : Brad Nelson
Un Basic qui s'exécute dans le fureteur
Wyvern
Auteur : Jonathan Aldrich
Langage permettant aux programmeuses et aux programmeurs de définir des
types spécifiques à un domaine d'application, à la manière des DSL, de manière à faciliter
l'expression d'idées dans ce domaine d'application.
Section « X »
Langage dans cette section : XAML.
XAML
Auteur : à vérifier (mais Chris Anderson était
impliqué : http://www.simplegeek.com/PermaLink.aspx/100aec62-3352-4c35-b471-f3f2fa5fac5a)
Le nom XAML signifie eXtensible Application Markup Language, et sert
principalement à décrire des interfaces personne/ machine dans
des termes convenant à l'infrastructure .NET.
Section « Y »
Langage dans cette section : YesNo.
YesNo
Auteur : Mike Burrell
Depuis que Kurt Gödel
a prouvé que tout système formel au moins aussi puissant que l'arithmétique
des entiers ne peut être à la fois complet (capable de démontrer
tous les énoncés vrais du système) et cohérent (incapable
de contradiction, donc de démontrer un même énoncé
comme étant à la fois vrai et faux), l'immense majorité
des langages ont privilégié la cohérence. Le langage YesNo,
lui, a choisi d'être complet. C'est une étrange
créature...
Z
Auteur : Chris Done
Petit langage avec une syntaxe pour le moins particulière.
Zélus
Auteurs : une équipe dirigée par Marc Pouzet
Langage symchrone intégrant (!) des équations différentielles ordinaires (Ordinary
Differential Equations, ODE) pour la
modélisation de systèmes dans lesquels on trouve des interactions complexes
entre un temps discret et une dynamique de temps continu.
Zig
Auteur : Andrew Kelley
Langage qui met l'accent sur la lisibilité et une interopérabilité directe
avec C, mais qui se veut un compétiteur de C
et n'en dépend pas.
ZZ (pour ZetZ)
Auteur : Arvid E. Picciani
Langage de programmation système, inspiré de C et de
Rust
ZZT-oop
Auteur : Tim
Sweeney
Langage de script conçu spécifiquement
pour le jeu ZZT.
« A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen » –
Paul Graham
Pourquoi un langage de programmation?
À propos de l'importance des langages de programmation :
À propos de la popularité des langages de programmation :
La recherche du « meilleur » langage :
- Un texte de 2003 où l'auteur décrit
ce qu'il n'aime pas de divers langages de programmation :
http://onlamp.com/pub/a/onlamp/2003/05/12/languagephilosophy.html
- Texte de Paul Graham suggérant une identification de divers langages sur la
base de ce qu'ils cherchent à corriger dans d'autres langages :
http://www.paulgraham.com/fix.html
- Comparatifs multi-langages :
- Ce que devrait offrir un langage de programmation? Texte de
2012 : http://www.hxa.name/notes/note-hxa7241-20120506T0907Z.html
- Réflexion sur les systèmes de
types, les langages de programmation, les
machines virtuelles et la
capacité d'optimiser le code, par
Charles-Oliver Nutter en 2013 :
http://blog.headius.com/2013/05/on-languages-vms-optimization-and-way.html
- En 2013, Sebastian Sylvan explique qu'il
programme en C++ un peu par nécessité, mais que
certains critères l'amènent à ne pas
changer :
http://sebastiansylvan.com/2013/05/25/language-design-deal-breakers/
- Examiner la valeur d'un langage de programmation sur la base de sa
popularité, de ses qualités intrinsèques et de sa polyvalence, un texte de
Bren Barn en 2013 :
http://iq.brenbarn.net/2013/04/11/programming-languages-quality-popularity-and-versatility/
- En 2014, Archis Gore se dit d'opinion qu'un
bon langage doit d'abord nous permettre d'exprimer ce que nous souhaitons
exprimer :
http://archisgore.com/2014/06/29/why-programming-languages-matter-and-how-you-may-choose-wisely/
- Une réflexion de 2015 sur le processus
associé au passage d'un langage de programmation à un autre :
http://www.tedunangst.com/flak/post/thoughts-on-replacement-languages
- Selon Sam Koblenski, en 2015, le meilleur
langage n'existe pas :
http://sam-koblenski.blogspot.ru/2015/01/the-best-programming-langauge-does-not.html
- En quoi un langage de programmation est-il raisonnable, ou en quoi ne
l'est-il pas? Une réflexion de Scott Wlaschin en 2015 qui
associe « raisonnable » et « prévisible » :
http://fsharpforfunandprofit.com/posts/is-your-language-unreasonable/
- En 2016, Richard Eng essaie de cerner ce que
serait le « langage de programmation ultime » :
https://medium.com/@richardeng/the-ultimate-programming-language-99d0cc0a8b8f
Langages de programmation pour le
Web :
Comment envisager la conception d'un nouveau langage?
- Une entrevue de 2005 avec Victoria Livschitz,
à l'époque chez Sun Microsystems : http://java.sun.com/developer/technicalArticles/Interviews/livschitz2_qa.html
- écrire votre super chic langage de programmation, par Sid V. Conner
en 2011 (qui discute surtout d'un livre en ligne
sur le sujet) : http://programmingblogzen.blogspot.com/2011/11/creating-your-own-freaking-awesome.html
- Plus simple de faire un nouveau langage que de faire évoluer un langage
existant? Une opinion de Neil McAllister en 2011 :
http://www.infoworld.com/d/application-development/why-we-need-even-more-programming-languages-181189
- En 2001, Paul
Graham pose cinq questions à propos du design d'un langage de programmation :
http://www.paulgraham.com/langdes.html
- En 2011, Christopher Lee laisse entendre que
concevoir un nouveau langage peut être amusant : http://proghammer.blogspot.ca/2011/11/designing-programming-language-can-be.html
- Réflexion de Steve Losh en 2013 sur ce dont on a vraiment besoin dans un
langage de programmation :
http://stevelosh.com/blog/2013/03/list-out-of-lambda/
- Réflexions de Ken
Thompson sur un nouveau
compilateur C pour Plan 9 :
http://doc.cat-v.org/bell_labs/new_c_compilers/
- Dans ce texte de 2013, Maxime
Chevalier-Boisvert exprime l'opinion
que nous devrions envisager d'éditer nos programmes dans d'autres formats que
celui, traditionnel, de fichiers textes :
http://pointersgonewild.wordpress.com/2013/07/19/programming-without-text-files/
- Quelques conseils de Ted Kaminski, prodigués en 2014,
pour qui voudrait écrire un nouveau langage de programmation :
http://genericlanguage.wordpress.com/2014/02/04/advice-on-writing-a-programming-language/
- En 2014, Josh Marinacci suggère, à titre d'expérience de
pensée, un langage typographique, où la syntaxe serait remplacée par une
fornme de symbolique :
http://joshondesign.com/2014/08/22/typopl
- Créer un nouveau langage de programmation, un texte d'Igor Šarčević en 2014 :
http://shiroyasha.github.io/create-a-programming-language.html
- En 2014, Jesper L. Anderson recommande d'y
aller non pas par impression, par feeling, mais plutôt par évidence,
sur la base de besoins concrets :
https://medium.com/@jlouis666/proglang-design-with-evidence-1444213f3902
Questions de syntaxe :
Texte sur l'économie et les langages de programmation, par David N.
Welton en 2005 : http://www.welton.it/articles/programming_language_economics?repost
Certains langages ont une approche « écrire une fois, exécuter
peu importe où », en anglais Write Once, Run Anywhere :
http://en.wikipedia.org/wiki/Write_once%2C_run_anywhere),
alors que d'autres ont une approche « écrire une fois, compiler
peu importe où », en anglais Write Once, Compile Anywhere :
http://en.wikipedia.org/wiki/Write_once%2C_compile_anywhere
Résolution statique ou dynamique? Peut-être entre les deux, de
l'avis d'Alex Gaynor en 2011 : http://alexgaynor.net/2011/oct/11/run-time-distinction/
À propos du concept général de machine abstraite (à
ne pas confondre avec celui de machine virtuelle),
voir ce texte de 2012 : http://mortoray.com/2012/06/18/abstract-machines-interpreters-and-compilers/
Que serait un compilateur « assez intelligent »? Une
opinion de James Hague en 2009 : http://prog21.dadgum.com/40.html?0
En 2012,
Kevlin Henney discute de l'importance
de l'abstraction et de la terminologie dans les langages de programmation :
http://www.artima.com/weblogs/viewpost.jsp?thread=341297
En 2012, Christopher Mims exprime l'opinion (susceptible
de provoquer une controverse) que seul un designer peut concevoir un nouveau
langage de programmation : http://www.technologyreview.com/blog/mimssbits/27630/
Se fait-il encore de la recherche dans le monde des langages de programmation?
Cristina
Videira Lopes, en 2012, pense que oui :
http://tagide.com/blog/2012/03/research-in-programming-languages/
Comment organiser sa pensée lorsqu'on utilise plusieurs langages de
programmation dans le cadre de notre travail? Les techniques de John D. Cook,
exposées dans un texte de 2012 : http://www.johndcook.com/blog/2012/07/27/multiple-programming-languages/
Qu'est-ce qu'apprendre un langage de programmation? Une réflexion de
Reginald Braithwaite en 2012 : http://raganwald.posterous.com/what-ive-learned-about-learning
Devrait-il exister une frontière entre langage de programmation et
système d'exploitation? Réflexion de
Eugene Wallingford en
2014 :
http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2013-03.html#e2013-03-27T12_46_03.htm
Réflexion de 2014 par Antonio Cangiano sur les langages de
programmation, considérés en tant que langages tout simplement :
http://programmingzen.com/2014/11/27/programming-languages-as-languages/
Réflexions d'un « débutant » sur la valeur relative des langages de
programmation, par YJ Yang en 2014 :
À propos du lien entre les stééréotypes sur les langages de programmation
et les stéréotypes sur les programmeuses et les programmeurs, texte de Jean Yang et Ari Rabkin en
2015 :
https://modelviewculture.com/pieces/c-is-manly-python-is-for-n00bs-how-false-stereotypes-turn-into-technical-truths
La difficulté de transférer les acquis d'un langage à un autre, court texte
de Julia Evans en 2015 :
http://jvns.ca/blog/2015/01/24/why-a-c-plus-plus-programmer-might-say-i-could-never-write-python/
Comparatif humoristique des courbes d'apprentissage associées à quelques
langages connus :
http://softwarily.tumblr.com/image/108069555358
À propos des mythes quant aux qualités humaines des programmeuses et des
programmeurs dans divers langages, texte de 2015
par Jean Yang et Ari Rabkin :
https://modelviewculture.com/pieces/c-is-manly-python-is-for-n00bs-how-false-stereotypes-turn-into-technical-truths
À propos des outils
GNU
À compléter
Des outils GNU pour
Microsoft Windows :
Implémentation GNU d'APL :
http://www.gnu.org/software/apl/
À propos de l'enseignement de la programmation
Quelques langages ont été pensés spécifiquement dans le but d'enseigner la programmation, parfois même aux enfants.
Le λ-calcul
Une brève explication sera ajoutée quand j'aurai quelques
minutes.
Quelques notes
Quelques notes...
À propos des langages de programmation
étranges
Quelques-uns des langages de programmation listés ici sont des langages
quelque peu étranges. Pour en savoir plus sur ces bizarreries :
À propos de la « performance »
bla
Une mesure de la popularité relative de divers langages de programmation :
http://langpop.com/
À propos de la religion
bla
À propos de la sécurité
bla
À propos du langage naturel
Sujet complexe s'il en est un, certains font des recherches en ce sens.
À propos des mesures et des métriques
Il est possible de mesurer et de comparer plusieurs choses en lien avec les langages de programmation, allant de la vitesse d'exécution du code compilé à la rapidité de développement.