Programming Paradigms and Languages
- Programming Language Designer or Serial Killer Quiz?
- Programming languages are designed by people
- lots of languages!
- each has its own set of idioms, strengths, and weaknesses
- made trade-offs that impact you, the developer
- Ruby, Clojure, and Ceylon: Same goal, three very different results, Andrew Oliver
- Simple Made Easy, Rich Hickey at Strange Loop Conference 2011
- Learning multiple languages can help you
- program better in your primary language
- solve problems better because you have more appropriate tools
- "encounter new worlds"
- Seven Languages in Seven Weeks by Bruce Tate (previously run as a House Course)
- Top Languages
- IEEE Spectrum's Top Programming Languages
- TIOBE Index of Top Programming Languages
- Programming Paradigms
- Imperative: PHP, C
- Object-Oriented: Java, Smalltalk
- Functional: Scheme, Haskell
- Declarative: SQL, Prolog
- Multi-paradigm: C++, Python, JavaScript
- Polyglot: Java's VM, Microsoft's CLR
- Java Scripting Languages: new syntax to access wealth of Java libraries
- Groovy: less syntax than Java, cleans up several Java "problems", provide Domain-Specific Languages
- Clojure: functional, multi-threaded, derived from Lisp
- Scala: multi-threaded, attempts to combine best of OO and functional paradigms
- Inspired by criticisms of Java — e.g., none of them have "primitives" or verbosity of declaring types
- Overview comparisons of these languages from StackOverflow
- Java.next: Choosing your next JVM language by N. Ford (Meme Wrangler at ThoughtWorks)
- Programming Language Jokes
- Contests
- Hour of Code: help anyone learn to program
- Knowledge-based Programming: integrating algorithms with online data
Resources
- History of Programming Languages Infographic
- Structure and Interpretation of Computer Programs, by Abelson, Sussman, and Sussman (considered by many to be the best programming text book)
- Growing a Language, Guy Steele at OOPSLA 1998
- 50 in 50 Keynote (video and summary) by Guy Steele and Richard Gabriel at OOPSLA 2007
- The Future of Programming: A History Lesson, Bret Victor at DBX Conference 2013
- JavaFX 2.0 With Alternative Languages by Stephen Chin at GeeCON 2011
- The Effect of Programming Language On Software Quality, Baishakhi Ray et al
- Should Microsoft Give Kids Programmable Versions of Office?, Slashdot