see also [1]
toreads
- http://stackoverflow.com/questions/961942/what-is-the-worst-programming-language-you-ever-worked-with
- http://wiki.di.uminho.pt/twiki/pub/Education/MFES1112/Material/Logic-lesson5.pdf
- http://www.cs.man.ac.uk/~pjj/cs211/ho/ho.html
- http://replove.herokuapp.com/sakura/index.html and https://news.ycombinator.com/item?id=6355738 (start at the section with the word 'macrolet')
- finish reading and taking notes on Why Pascal is Not My Favorite Programming Language http://www.lysator.liu.se/c/bwk-on-pascal.html (start at section 2.5), and turning the existing notes into jasper to-dos
- clojure protocols, defrecord, def the other thing (interface?)
- http%3A%2F%2Fwww.cis.upenn.edu%2F~bcpierce%2Fpapers%2Fcrchandbook.ps
- https://github.com/tinkerpop/gremlin/wiki
- http://code.google.com/p/qbql/
- http://www.cse.scu.edu/~rdaniels/html/courses/Coen171/Powerpoint.htm
- http://www.cis.upenn.edu/~bcpierce/courses/670Fall04/GreatWorksInPL.shtml
- Concurrency primitives (look at erlang, http://elixir-lang.org/, concurrent haskell, pH (parallel haskell), curry?),openmp, mpi, posix threads, http://en.wikipedia.org/wiki/Unified_Parallel_C , http://en.wikipedia.org/wiki/Unified_Parallel_C , Boost asio, Boost interprocess, Boost mpi, Boost thread, charm++, cilk, various IPC mechanisms from unix, bsd, and other languages, linda, ease, tuple spaces, http://skandium.niclabs.cl/ , http://en.wikipedia.org/wiki/Intel_Threading_Building_Blocks , http://en.wikipedia.org/wiki/Sieve_C%2B%2B_Parallel_Programming_System , http://en.wikipedia.org/wiki/Chapel_programming_language , http://en.wikipedia.org/wiki/X10_%28programming_language%29 , http://software.intel.com/en-us/intel-mkl/ , http://en.wikipedia.org/wiki/ACML , gpgpu , cell, dsp , encryption, mpeg en/decoding, http://golang.org/doc/effective_go.html#concurrency ,
- Haskell frameworks: syb, o'haskell, olaf's stuff, quick
- http://research.microsoft.com/en-us/projects/specsharp/
- perl 6
- Logic programming primitives (look at prolog, curry)
- http://www.inf.ethz.ch/personal/wirth/Articles/Oberon.html oberon-07 (Wirth likes it better than his other languages Pascal, Modula-2, and better than Java and C#; however a bunch of other people like Modula-3: http://stackoverflow.com/questions/422461/is-anyone-programming-in-oberon )
- Dyna ( http://www.dyna.org/ )
- Look at Self, Io, Ruby, Perl6, F#, smalltalk, Clean, prolog, curry, haskell, erlang, fourth, mercury, alloy, Oz, beta, J, eiffel, occam (CSP, channel r/w), occam-pi (+ pi-calc stuff; see https://www.cs.kent.ac.uk/research/groups/plas/wiki/OccamPiReference), lorel (db highly cited), datalog (db, pierre likes. it's a "positive language with fixpoint", mb struql ("on the equivalence of recursive and nonrecursive programs"), stackless python, perl moose, http://www.onyxneon.com/books/modern_perl/index.html, Sage theorem prover, Common Lisp Object System , C#, smalltalk (is 'everything is a node' just the same as 'everything is an object'?), Chapel (milewski likes it: http://bartoszmilewski.com/2011/11/07/supercomputing-in-seattle/ ), Shen (was: qi), coq (see http://www.cis.upenn.edu/~bcpierce/sf/ ), http://en.wikipedia.org/wiki/Refal, subtext, OCaml, urbit's nock and hoon, http://www.urbit.org/2013/08/22/Chapter-2-nock.html , OMeta ,
- read http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.4790
- read Design Concepts in Programming Languages (see http://web.eecs.umich.edu/~bchandra/courses/papers/Turbak_6.821/ )
- read Types and Programming Languages by Pierce, mb read http://www.mpi-sws.org/~dreyer/ats/papers/harper-tspl.pdf
- Look at recent new languages; julia, boo, alice, F#, clojure, C#, D, timber, go, fortress, newspeak, nemerle, potion, cobra, falcon, Fantom, factor, mythryl, felix, scratch, scala, http://c2.com/cgi/wiki?AwelonProgrammingLanguage, Go, eve, http://cdent.org/, http://github.com/manuel/ell/blob/master/KERNEL.org, (Robert Fischer's stuff: http://github.com/RobertFischer/ashlar, http://kenai.com/projects/duby/ ), coffescript, http://www.dartlang.org/ , http://winningraceconditions.blogspot.com/2012/09/rust-0-index-and-conclusion.html , powershell , https://wiki.gnome.org/Vala/Tutorial , http://elixir-lang.org/ , http://amber-lang.net/ , http://nimrod-code.org/index.html (emphasis on close-to-the-metal), julia (numerics) , " my main GUI programming language (a modern version of hypertalk - http://www.runrev.com) ", http://maude.cs.uiuc.edu/ , axis of eval guy's language https://github.com/manuel/wat-js ( ) , also https://github.com/manuel/taf ( http://manuel.github.io/taf/doc/plan.html http://axisofeval.blogspot.com/2013/02/tafs-translation-to-ocaml-for-type.html ) , http://web.cs.wpi.edu/~jshutt/kernel.html , awelon , http://research.microsoft.com/en-us/people/dimitris/pie.pdf , https://en.wikipedia.org/wiki/Lava_%28programming_language%29 , Ur/Web , https://bitbucket.org/munificent/magpie, cyclone , https://github.com/pete/roboto , http://www.vitanuova.com/inferno/papers/sh.html (recc. by http://debu.gs/entries/inferno-part-0-namespaces , see also "I’d like to write some about the shell, mostly in the form of examples. If you are interested but do not want to wait, the article written by the author of the shell is a great introduction, and I have a solution on Github for my favorite Project Euler problem which should serve as a fun example of doing math in the shell. It may look a bit messy; after all, the shell is not for math. But comparing it to the roughly equivalent bash solution (including the timing information) is illuminating." on that page, links https://github.com/pete/euler/blob/master/infernosh/031.sh https://github.com/pete/euler/blob/master/bash/031.sh ) , "OBJ2 is a programming language with Clear-like parametrised modules and a functional system based on equations." -- has homomorphisms on modules called 'views' , Sweeney's language "lambda aleph": http://www.leafpetersen.com/leaf/publications/dtp2013/lambda-aleph-overview.pdf , http://arxiv.org/pdf/1307.5277v1.pdf , Cayenne , https://wiki.gnome.org/Vala/About , Ceylon , http://faculty.hampshire.edu/lspector/push3-description.html , http://convergepl.org/about.html , https://en.wikipedia.org/wiki/Scratch_%28programming_language%29
- http://en.wikipedia.org/wiki/Parallax_Propeller#Built_in_SPIN_byte_code_interpreter
- http://www.pyret.org/
- http://www.bencollier.info/content/finding-minimum-set-languages-learn-all-programming-paradigms
| link Try adding a language with proof solving capabilities. ATS, Agda, Idris, Coq spring to mind. |
- http://words.steveklabnik.com/a-30-minute-introduction-to-rust
- https://github.com/Gozala/wisp
- https://github.com/damelang/nile
- http://www.q-lang.io/ and https://news.ycombinator.com/item?id=7333354
- ada
- Ada arose from a DoD?-sponsored contest to meet a detailed requirements document. The requirements document is notable in that it excludes some features as well as demanding others: http://www.dwheeler.com/steelman/steelman.htm
- metalua
- metaocaml
- http://www.learnprolognow.org/
- recc. by http://stackoverflow.com/questions/3958630/what-are-important-languages-to-learn-to-understand-different-approaches-and-con?rq=1 : datalog, J, Factor/Forth, Oz, JavaScript?, IO, Self, CLIPS, Frink, QI, Erlang (and presumably Clojure)
- http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.127.5320 Organizing programs without classes
- some of http://readevalprintlove.fogus.me/sakura/index.html 's practical lisps: Common Lisp, Clojure, Scheme (R5RS, R6RS, R7RS-big), Racket, Dylan
- http://readevalprintlove.fogus.me/sakura/index.html 's kernel lisps: R7RS-small, Scheme48, Lisp Machine Lisp, EuLisp?, and Kawa.
- http://readevalprintlove.fogus.me/sakura/index.html 's figure "
- read the rest of * http://readevalprintlove.fogus.me/sakura/index.html
- read A Theory of Objects by Martín Abadi, Luca Cardelli
- languages on top of map reduce: https://en.wikipedia.org/wiki/Sawzall_%28programming_language%29 , https://en.wikipedia.org/wiki/Pig_%28programming_tool%29 , https://en.wikipedia.org/wiki/Apache_Hive , https://en.wikipedia.org/wiki/Cloudera_Impala , JAQL , Cascading , Cascalog , scalding, lingual
- Pratt's lisp with syntax, http://en.wikipedia.org/wiki/CGOL
- The base environment for an Ur-Lisp written in Ruby @env = { :label => proc {
| (name,val), _ | @env[name] = eval(val, @env) }, |
:car => lambda { |(list), _| list[0] },
:cdr => lambda { |(list), _| list.drop 1 },
:cons => lambda { |(e,cell), _| [e] + cell },
:eq => lambda { |(l,r),ctx| eval(l, ctx) == eval(r, ctx) },
:if => proc { |(c,t,e),ctx| eval(c, ctx) ? eval(t, ctx) : eval(e, ctx) },
:atom => lambda { |(s), _| (s.is_a? Symbol) or (s.is_a? Numeric) },
:quote => proc { |sexpr, _| sexpr[0] } }" - similar to previous bullet point, the Lisp in The Roots of Lisp
- http://readevalprintlove.fogus.me/sakura/index.html 's Fluchtpunkt Lisps: T ( http://mumble.net/~jar/tproject/ ) , shen, http://www.newlisp.org/ , PicoLisp? , Wasp Lisp
- http://readevalprintlove.fogus.me/sakura/index.html : "PicoLisp? is, in my opinion, the most interesting entry in a family of really really small Lisps that also includes Nanolisp and femtoLisp, although I would hesitate to include these latter two in the Fluchtpunkt category"
- Adam Megacz says "Phil Wadler's excellent Proofs are Programs: 19th Century Logic and 21st Century Computing and Mike Gordon's From LCF to HOL should be required starting points for anybody interested in programming languages and type systems. ":
- D's ranges: http://www.informit.com/articles/printerfriendly.aspx?p=1407357
- toread stuff about D devel: http://www.llucax.com.ar/blog/blog/post/6cac01e1 http://while-nan.blogspot.com/2007/08/future-of-d-is-aaargh-my-eyes.html http://www.jfbillingsley.com/blog/?p=53 "The Present of D" http://web.archive.org/web/20110919093918/http://www.billbaxter.com/techblog/?p=14
- http://web.archive.org/web/20011217114145/http://home.pacbell.net/ouster/scripting.htm paper on scripting languages by the creator of TCL
- Plan9, Minix, VPRI, and Squeak
- http://research.microsoft.com/en-us/um/people/simonpj/papers/haskell-retrospective/Haskell-Erlang-Jun09.pdf
- http://research.microsoft.com/en-us/um/people/simonpj/papers/haskell-retrospective/ECOOP-July09.pdf
- https://en.wikipedia.org/wiki/%C3%98MQ
- http://cs.adelaide.edu.au/~dwyer/TR95-10.html#LIBRA17
- https://www.google.com/search?client=ubuntu&channel=fs&q=LIBRA+relational&ie=utf-8&oe=utf-8#channel=fs&q=LIBRA+relational+programming
- "If you think JavaScript? is one of the most Scheme-like languages out there, then you’re missing out on the fact that Forth is really minimal, Dart has great scoping, Lua does tail call elimination, Haskell and Ruby have continuations, C# has dynamic typing, Io is homoiconic, Go has closures, Scala has macros, and Clojure seriously dislikes mutation." -- http://journal.stuffwithstuff.com/2013/07/18/javascript-isnt-scheme/
- verilog, VHDL
- openCL, Cell processor, RapidMind? Multi-core Development Platform, http://en.wikipedia.org/wiki/OpenCL#Libraries
- openCL, pthreads, MPI, map-reduce
- git
- http://rzimmerman.github.io/kal/
- squeak
- Relational algebra and relational calculus
- xpath
- Processing, http://wiring.org.co/ , http://arduino.cc/en/Reference/HomePage
- Look at other misc languages? limbo, occam, newspeak, newsqueak, csp, stackless python, bitc, typed scheme, modula-3, lua, rebol, ometa, http://www.chrisseaton.com/katahdin/, E (http://www.skyhunter.com/marcs/ewalnut.html), javascript. see also "timed cc" model by carlos olarte et al "concurrent constraint calculi", icon, snobal, groovy/grails, rails, http://c2.com/cgi/wiki?CecilLanguage, dylan, merd, Bliss (PDP-10 C-level language that Shivers liked: http://www.paulgraham.com/thist.html ), http://code.google.com/p/anic/, E: http://www.erights.org/elang/intro/index.html http://www.erights.org/elang/quick-ref.html, Tcl, kotlin, http://www.rust-lang.org/, http://en.wikipedia.org/wiki/Agda_%28programming_language%29 (apparently Coquand himself like Agda now? i found a course of his with Agda code. see also http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.AgdaVsCoq . This guy prefers Coq just because it has tactics: http://adam.chlipala.net/cpdt/html/Intro.html ) , epigram, http://idris-lang.org/ , http://asmjs.org/spec/latest/, Joss (alan kay likes Joss better than BASIC)
- Look at Python PEPs and similar for other languages
- Look at http://code.hazzens.com/d3tut/lesson_1.html
- List of LISP dialects to look at: Scheme, CL, Clojure, Arc, http://users.rcn.com/david-moon/PLOT/page-1.html, ELL (http://axisofeval.blogspot.com/2010/05/no-new-ideas-please.html), ??, see http://axisofeval.blogspot.com/2010/04/dylan-and-lisp-family-trees-central.html
- http://cis.poly.edu/cs614/NewdirectionsSaman1206.pdf
- actually mb: Scheme, CL, Clojure, Arc, Racket, Shen
- mb look at http://strategoxt.org/Stratego/StrategoLanguage , Antlr, parboiled
- for that matter, learn Datomic
- read http://web.archive.org/web/20110605015801/http://homepages.cwi.nl/~ralf/gpce06/paper.pdf
- pico, just because it's small: http://en.wikipedia.org/wiki/Pico_%28programming_language%29
- random list of primitives: http://hackage.haskell.org/packages/archive/ddc-core-tetra/0.3.2.1/doc/html/DDC-Core-Tetra.html
- disciple Haskell variant
- "Disciple Core is an explicitly typed languages based on System-F2, intended as an intermediate representation for a compiler. In addition to the features of System-F2 it supports region, effect and closure typing. Evaluation order is left-to-right call-by-value by default, but explicit lazy evaluation is also supported. There is also a capability system to track whether objects are mutable or constant, and to ensure that computations that perform visible side effects are not suspended with lazy evaluation. "
- some primitives: http://disciple.ouroborus.net/wiki/Language/Transforms http://disciple.ouroborus.net/wiki/Tutorial/Core/Transforms
- http://nanomsg.org/ (0mq replacement)
- look at LIBRA for some library ops
- http://purelang.bitbucket.org/
- https://github.com/graphite-ng/graphite-ng
- http://graphlab.org/graphchi/
- http://thechangelog.com/rich-hickeys-greatest-hits/
- Look at http://lambda-the-ultimate.org/node/3, http://lambda-the-ultimate.org/node/5, http://lambda-the-ultimate.org/node/7, http://merd.sourceforge.net/pixel/language-study/, plot http://lambda-the-ultimate.org/node/3253, dylan,
- https://www.destroyallsoftware.com/talks/wat
- read http://lucacardelli.name/Papers/A%20Spatial%20Logic%20For%20Querying%20Graphs%20(ICALP).pdf and follow citations
- Reread the Chu space concurrency stuff from Vaughn Pratt, and learn about modal logic a la von Benthem
- reread http://blog.ianbicking.org/ruby-python-power.html
- read sipl
- read on lisp
- read http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/
- read Seymour Papert's "Mindstorms" (http://worrydream.com/LearnableProgramming/ says you gotta read it)
- read http://python-history.blogspot.com/
- mb read http://dreamsongs.com/10ideas.html , http://dreamsongs.com/Feyerabend/Feyerabend.html
- mb read http://dreamsongs.com/Files/PatternOfLanguageEvolution.pdf
- mb read http://dreamsongs.com/Files/Incommensurability.pdf
- mb read http://dreamsongs.com/Files/PatternsOfSoftware.pdf
- mb read the famous design patterns book
- mb read http://dreamsongs.com/CLOS.html
- read http://en.wikipedia.org/wiki/Comparison_of_programming_languages
- read http://www.ibm.com/developerworks/java/library/wa-clojure/index.html
- interesting note on which conferences are interested in programming language design: http://alarmingdevelopment.org/?p=451#more-451
- related: http://tagide.com/blog/2012/03/research-in-programming-languages/ "there appears to be no correlation between the success of a programming language and its emergence in the form of someone’s doctoral or post-doctoral work"
- "I was invited to contribute an article on Python to HOPL-III, the third installment of ACM's prestigious History of Programming Languages conference, held roughly every ten years. Unfortunately, the demands of the rather academically inclined reviewers were too much for my poor hacker's brain. Once I realized that with every round of review the amount of writing left to do seemed to increase rather than decrease, I withdrew my draft. Bless those who persevered, but I don't believe that the resulting collection of papers gives a representative overview of the developments in programming languages of the past decade." -- http://neopythonic.blogspot.com/2009/01/history-of-python-introduction.html Guido van Rossum, inventor of Python
- "An earlier version was rejected from POPL 2007. Based on the reviews I received and comments from Simon Peyton-Jones, I revised the paper and submitted it to TOPLAS, but it was again rejected. It may be possible to write a paper about PlusCal? that would be considered publishable by the programming-language community. However, such a paper is not the one I want to write. For example, two of the three TOPLAS reviewers wanted the paper to contain a formal semantics--something that I would expect people interested in using PlusCal?