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: Primary Constructors

    We last mentioned primary constructors in 2014 when it was removed from the candidate list for C# 6 and VB 12. Late last year, Primary Constructors reappeared as a candidate for C# 9.

  • C# Futures: Covariant Return Types

    A frequent API design problem is the inability to use a more specific return type when overriding a method. Proposal 49, which is now a C# 9 candidate, seeks to correct this issue.

  • ECMAScript's Top-Level Await Proposal Implemented in V8, Babel and Webpack

    The top-level await's ECMAScript proposal, which reached Stage 3 last year, is now implemented in the V8 JavaScript engine, and supported by Webpack and Babel. Top-level await enables dynamic dependency pathing, resource initialization, and dependency fallbacks at module import time. Top-level await results in a non-deterministic module execution order.

  • C# Futures: Simplified Parameter Null Validation

    At first glance, proposal #2145 seems like a logical extension to C# 8’s Nullable Reference Types feature. The basic idea is developers would no longer need to explicitly add argument null checks to methods that accept non-nullable parameters. However, this has become quite contentious.

  • C# 9 Proposals: Module Initializers

    The module initializer proposal has been promoted to C# 9 candidacy. This would act like a static constructor in C#, but rather than applying to one class it applies to the entire assembly.

  • Microsoft Presents Static TypeScript, a Fast Subset of TypeScript Targeting Embedded Devices

    Microsoft recently submitted a research paper introducing Static TypeScript (STS), a subset of TypeScript targeting low-resource embedded devices, to the Managed Programming Languages and Runtimes 2019 (MPLR 2019) international conference. STS programs may run on devices with only 16 kB of RAM faster than embedded interpreters would, which would extend battery life of these devices.

  • Preview of C# 8.x

    Even though C# 8.0 is still months away, planning has begun for C# 8.x. Some of these features are new, while others were previously considered for C# 8.

  • C# 8 Nullable Reference Types Update

    Work continues on nullable refence types for C# 8, revealing edge cases that need to be addressed before the final release and new opportunities for reducing the amount of boilerplate developers have to write.

  • C# 8 Pattern Matching Enhancements

    C# 7 laid the groundwork for pattern matching, but a lot of features had to be left on the cutting room floor. With the extra time C# 8 needs, many of these are being picked up.

  • C# 8 Nullable Value Type Enhancements

    First introduced in .NET 2, very little has changed for Nullable<T> over the last decade and a half, but that looks like it is about to change. Much of the work going into supporting nullable reference types in C# 8 may be applied to nullable value types.

  • C# Default Interface Methods Update

    As support for Default Interface Methods gets closer to completion, potential issues are raised. While much has been accomplished, this is a complex feature and many of the specifics haven’t been settled yet.

  • C# 8 More Small Features

    Though C# 8 is supposed to be released this year and the roadmap for C# 8.x and 9 are beginning to be formed, Microsoft is continuing to approve features for the next release.

  • Microsoft Introduces Bosque, a Programming Language for Writing Easy-to-Reason-about Code

    Microsoft has recently introduced the Bosque programming language, an investigative language design research project for writing code that is simple, obvious, and easy-to-reason-about for both humans and machines. The language derives from a combination of TypeScript inspired syntax and types, plus ML and Node/JavaScript inspired semantics.

  • Nullable Reference Types in F# 5

    The introduction of nullable reference types in C# represents the biggest change to how .NET developers write code since async/await. Once it goes live, countless libraries will have to be updated with nullable annotations in order for this feature to work correctly. And to ensure interoperability, F# will need to respond in kind.

  • C# Futures: Deferred Error Handling

    When writing robust software, there is often a need to perform a series of retriable operations. In order to make the system robust, each operation in the series can be coded so it is independent of the status of the previous operation. Before the deferred error handling proposal, this could be tedious to code.

BT