InfoQ Homepage Language Design Content on InfoQ
-
Noether: Symmetry in Programming Language Design
Daira Hopwood introduces Noether, an experimental language meant to write more secure, robust and efficient programs, being built on multiple layers satisfying different levels of symmetries.
-
Deconstructing Functional Programming
Gilad Bracha explains how to distinguish FP hype from reality and to apply key ideas of FP in non-FP languages, separating the good parts of FP from its unnecessary cultural baggage.
-
Babel: An Untyped, Stack-based HLL
Clayton Bauman introduces Babel, an open source language implemented in C, targeted for cloud computing. Other features: interpreted, untyped stack-based, postfix, supports arrays, lists and hashes.
-
Scala vs Idris: Dependent Types, Now and in the Future
Miles Sabin and Edwin Brady exemplify what can be done with a language with dependent types, what are the limitations and what could be done in the future when dependent types reach maturity.
-
Reasonable Code with F#
Mike Falanga shows several C# and F# solutions to common programming problems, comparing how well each language enhances the ability to draw accurate conclusions about the code.
-
Gershwin: Stack-based, Concatenative Clojure
Daniel Gregoire introduces Gershwin, a stack-based, concatenative programming language with a Clojure runtime that targets the JVM.
-
C++14 Early Thoughts
Bjarne Stroustrup discusses features that might appear in C++14: braces for copy initialization, return type deduction in functions, generic (polymorphic) lambdas, user-defined literals, etc.
-
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.