According to a study, the most expressive general-purpose languages are Clojure, CoffeeScript and Haskell. The study uses LoC/commit as the measuring unit of expressiveness.
Some big names from Microsoft, Microsoft Research and the University of Washington have been working on a new variant of C# that introduces the concept of readable and immutable references at the language level. To this effect each reference has one of four permission qualifiers that modify variables and parameters: writable, readable, immutable, and isolated.
Ruby 2.0's release manager Yusuke Endoh announced the first preview release of Ruby 2.0 and a targeted release in February 2013. InfoQ talked to Yusuke to learn more about the big new features of Ruby 2.0 (Refinements, keyword arguments, Enumerator#lazy, and more) and what users need to know when upgrading.
Since .NET was still in beta developers have been asking for non-nullable variables with reference semantics. But the problem is far more complicated than simply slapping an attribute or other decoration on the variable. Craig of Twisted Oak Studios has proposed a solution to some of the problems.
Rust is a systems programming language developed by Mozilla and targeted at high performance applications. This post contains an interview with Graydon Hoare, Rust’s creator.
Two researchers at UC Berkeley have investigated programming languages adoption from a sociological perspective. This article summarizes their research and includes an interview with the authors.
Digital Mars, makers of the C++ alternative D, have decided to discontinue the original version of D. They had been maintaining D1 along with its successor D2 since 2007, but with the later now well established they feel it is no longer appropriate to dedicate resources to the older language past December 2012.
Google has announced a new language: Google Dart and tools. The language and tools are currently considered a technology preview, and an open source release is available now. The language is not yet in Chrome. Dart is dynamic, optional types and reified Generics. Concurrency uses Erlang-style processes called Isolates, share nothing with async message passing.
A recent posting on the lambda-dev mailing list announced the conclusion that the Java Lambda syntax will be based on C# syntax, very similar to Scala's implementation that many are already familiar with: "It was better to choose something that has already been shown to work well in the two languages that are most like Java – C# and Scala – rather than to invent something new."
X++ is a 17 year old programming language with a syntax that meshes the structural and imperative features of Java with the set-based operations of SQL. It is primarily used within Dynamics AX, an enterprise resource planning platform. Originally a completely proprietary language, as of 2009 X++ can be compiled to .NET’s Intermediate Languages.
Interactive Extensions (Ix) is a set of additional LINQ to Objects query operators based on the work done in the Reactive Extensions. A quick look through the API reveals a set of IEnumerable extension methods under the System.Linq namespace. While most developers already have many of these in their own utility libraries, having a standard implementation for these missing features would be useful.
D is a systems programming language from Digital Mars that focuses on “combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python.” While still being a statically typed language that compiles directly to native code, the syntax looks very much like Java or C# but it has some interesting advances.
Creating a new JVM based language has recently hit the for with the news of the proposed Ceylon project. In fact, the JVM already has a diverse set of languages, both statically typed and dynamically typed. What does it take for a new language to hit the mark?