InfoQ Homepage Language Design Content on InfoQ
-
Article: Developing a Complex External DSL
In this article Vaughn Vernon explains the difference between internal and external DSLs and shows the steps involved in developing a complex external DSL.
-
No More Underscores in VB 10
Visual Basic 10 will have an improved compiler that makes underscores optional for most line continuations. This represents a significant change for VB, traditionally a line-terminated language.
-
Interview: Don Syme Answering Questions on F#, C#, Haskell and Scala
In this interview made by InfoQ’s Sadek Drobi, Don Syme, a Senior Researcher at Microsoft Research, answers questions mostly on F#, but also on functional programming, C# generics, type classes in Haskell, similarities between F# and Scala.
-
Is It Premature to Talk About C++ and Java’s Legacy?
Bruce Eckel’s recent blog post on the legacy left by C++ and Java generated a lot of reaction. While mentioning some design mistakes, he concludes that both languages have had a significant role in programming languages evolution and an important positive legacy. But is it not too early to talk about their legacy?
-
Presentation: Evolving the Java Platform
In this presentation recorded at QCon London 2008, Ola Bini talks about the current status of the JVM regarding languages running on top of it and the need to evolve in order to support dynamic languages.
-
Presentation: Taming Effects with Functional Programming
In this presentation recorded during QCon London 2008, Simon Peyton-Jones advertises the need for programming purity achieved especially through use of functional languages and the increased attention given to functional programming.
-
Concurrent Basic – A Declarative Language for Message-Based Concurrency.
Concurrent Basic represents a possible future for Visual Basic. Though based on work done in C# research languages such as Polyphonic C# and C-Omega, Visual Basic was chosen for its inherent predisposition towards declarative programming. The syntax is even inspired by VB’s declarative event handlers.
-
Cristian Vlasceanu and D for the .NET platform.
Cristian Vlasceanu takes some time from working on the D compiler for .NET to talk with InfoQ about the language and the difficulties in porting it.
-
Anders Hejlsberg on the C# 4.0 and 5.0
In a Channel 9 video, Erik Meijer and Anders Hejlsbeg discuss the future of C# inlcudein dynamic types, co/contra-variant interfaces, and pluggable compilers.
-
What Makes Haskell Worth Learning for Real World Applications
One of co-authors of the Real World Haskell book, John Goerzen, talks in a recent interview to O’Reilly about purity, laziness, recursiveness and many other subjects that make Haskell worth learning but may also be a source of reluctance for people coming from object oriented or imperative programming.
-
Presentation: Ruby.rewrite(Ruby)
In this RubyFringe talk, Reginald Braithwaite shows how to write Ruby that reads, writes, and rewrites Ruby. The demos include extending the Ruby language with conditional expressions, new forms of evaluation such as call-by-name and call-by-need, and more.
-
LINQ and Dynamic Typing
The biggest feature of C# 3 was LINQ technology. With C# 4, it looks like dynamic typing is going to steal the show. But can you use them together?
-
Interview: Joe Armstrong About Erlang
In this interview filmed during QCon London 2008, Joe Armstrong, designer of Erlang, speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days due to its native ability to scale on multi core systems.
-
Article: Java FX Technology Preview
InfoQ takes a look at the JavaFX preview release and talks to Sun Staff Engineer Joshua Marinacci about version 1 expected this autumn.
-
.NET 4 Feature Focus: Code Contracts
By far the most important feature of .NET 4.0 is support for a language agnostic design by contract framework. When used properly, design by contract has the ability to greatly reduce the potential for bugs in software while at the same time reducing the number of unit tests that need to be generated.