InfoQ Homepage Language Design Content on InfoQ
-
Protocols, Functors and Type Classes
Creighton Kirkendall discusses how polymorphism is implemented in Clojure, Ocaml, Haskell and Scala.
-
Racket: Metaprogramming Time!
Matthew Flatt introduces Racket, an extensible programming language useful to create new syntactic forms and construct entirely new programming languages.
-
Go at Google
Rob Pike explains how Google designed Go to address major development issues they encounter while using other languages: long build times, poor dependency management, lack of robustness, etc.
-
Dependent Types for JavaScript
Ravi Chugh introduces Dependent JavaScript (DJS), a statically-typed system for the imperative, object-oriented, dynamic language.
-
The Bandicoot Language: Code Reuse for the Relational Model
Ostap Cherkashin and Julius Chrobak present writing readable and extendable rich data manipulation code with Bandicoot.
-
The Reemergence of Datalog
Michael Fogus overviews Datalog and provides examples of how it is implemented and used in Datomic, Cascalog, and the Bacwn Clojure library.
-
Grace: An Open-source Educational OO Language
Michael Homer introduces Grace, an educational OO language used to teach programming to students.
-
Static vs. Dynamic Languages
Stuart Williams discusses the merits of dynamic languages, definitions, stereotypes, myths, suggesting when and how to introduce such a language in production.
-
Socio-PLT: Principles for Programming Language Adoption
Leo A. Meyerovich explains how social adoption patterns can help language designers make new languages that are inherently attractive and desirable by developers.
-
Liberating the Programmer with Prorogued Programming
Mehrdad Afshari introduces prorogued programming, a new programming paradigm based on 3 principles: proroguing concerns, hybrid computation and executable refinement.
-
Elixir: Modern Programming for the Erlang VM
José Valim introduces Elixir, a programming language for the Erlang VM – an attempt to provide better abstractions and productivity tools like protocols and macros usually required for web development
-
Symbiotic Languages: Transpiling into JavaScript
Jeremy Ashkenas discusses symbiotic languages and transpilers in general, then focuses on a particular case: CoffeeScript vs. JavaScript.