BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Language Design Content on InfoQ

  • Don Syme Presents F# Design Principles at .Net Fringe

    Don Syme, creator of F#, presented at .Net Fringe 2016 an assessment of the current status of F#. He also commented on the duality that exists in F#, a functional language created on a runtime built for object oriented languages.

  • Anders Hejlsberg Explains Modern Compiler Construction

    The main reference in compiler construction, Compiler: Principles, Techniques, and Tools, also know as the Dragon Book, was first published in 1986. Anders Hejlsberg, known for his work on Turbo Pascal, Delphi, C# and TypeScript, explains in a Channel 9 interview how compiler construction today is different from how it was done 30 years ago.

  • Debate: Adding Non-nullable References to C#

    The recent proposal to add non-nullable references to C# by Microsoft’s Mads Togersen sparked quite a debate in the .NET community. The reactions were diverse, ranging from praise to preferring status quo.

  • C# Futures: Immutable Classes

    In the last of our C# Futures series, we look at proposal 159, which would add compiler support for immutable classes.

  • C# Futures: Method Contracts

    Continuing our look at the future of C#, we now take a look at Proposal 119. This would add first class compiler and syntax support for method-level contracts.

  • Updated Feature List for C# 6 and VB 12

    As the next version of C# gets closer, features that are not quite ready have to be cut. The features. Newly removed from the list are primary constructors and declaration expressions.

  • Pattern Matching in C# and VB

    Another concept from functional programming languages making its way to C# and VB is what’s known as pattern matching. At first glance pattern matching looks like a switch/select block, but it is much more powerful.

  • Easier Immutable Objects in C# and VB

    A common pain point in .NET programming is the amount of boilerplate code necessary to implement immutable objects such as explicitly defined backing stores for each property. Under a new draft specification, C# and VB will be adding what they are calling a “record class” that eliminates most of the effort.

  • Oracle Launches Project Valhalla for Java

    Oracle launches Project Valhalla to experiment with advanced features for the JVM and Java language, including a major revision of Java's approach to generic types.

  • PHP Evolved: Facebook's New Hack Programming Language

    PHP has long filled an important role at Facebook, and over the years the company has constantly sought to improve the language's performance. First there was the Hip Hop Virtual Machine, and now there is the Hack, programming language.

  • Rust 0.9 Released With Revised Threading Model

    The Rust team has released the latest version of its next generation programming language. New in this release is a redesigned threading system and several refinements as the language moves towards its 1.0 release.

  • Study: Clojure, CoffeeScript and Haskell Are the Most Expressive General-purpose Languages

    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.

  • Research into Uniqueness and Reference Immutability for Safe Parallelism in C#

    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 Preview 1 Released, Final Release in February 2013

    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.

  • A Proposal for Non-Nullable Types in C#

    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.

BT