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

  • C# Futures: Read-Only References and Structs

    In C++ we have a feature known as “const”. This can be applied to parameters so that the caller knows that function will not modify the parameter and/or the object the parameter references. Under this proposal, C# would get something similar.

  • C# Futures: Nullable Reference Types

    No, the headline isn’t a typo. One of the new proposals for C# is to assume that all reference variables are non-nullable by default. Under the new syntax, you would need to explicitly indicate when a reference variable is nullable, just as you do for value types.

  • .NET Futures: Type Classes and Extensions

    Another feature being considered for future versions of .NET are type classes. Referred to as “shapes” in the Shapes and Extensions proposal, they would greatly increase the capabilities of .NET generics.

  • New Language Features in Visual Basic 15

    Visual Basic 15 brings with it partial implementations of two important C# features: tuples and ref returns. Neither feature is “complete”, but they do offer enough work-arounds that VB applications can consume C# libraries that make use of these features.

  • .NET Futures: Multiple Inheritance

    A controversial new proposal for .NET suggests the introduction of a limited form of multiple inheritance via abstract interfaces. This feature was inspired by Java’s default methods.

  • New JEP Would Simplify Java Type Variance

    A new JEP Candidate proposes to facilitate the handling of type variance in Java. The new proposal, potentially targeting Java 10, would add a means for specifying the default variance in the definition of generic types, different to the current style of indicating it through wildcards at instantiation. This proposal is not a replacement for wildcards, but rather a way to reduce the need for them.

  • 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.

BT