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: Pointer Math

    Interoperability with native platforms often require very specific coding patterns that involve the manipulation of pointers. While this can be done via a shim written in C, the proposal titled Operators should be exposed for System.IntPtr and System.UIntPtr seeks to offer that ability directly in C#.

  • C# Futures: Static Delegates and Function Pointers

    With each release of C#, it gains more low-level capabilities. While not useful to most business application developers, these features allow for high performance code suitable for graphics processing, machine learning, and mathematical packages. In these next two proposals, we see new ways to reference and invoke functions.

  • C# Futures: Lambda Attributes

    Attributes are a key part of .NET’s metadata processing capabilities. They are used by compilers, static analyzers, and runtime libraries for a variety of purposes. While normal functions/methods can have attributes, prior to this proposal lambdas and anonymous functions could not.

  • C# Futures: Defer

    Best known for its use in Go and Swift, C# proposal #1398 seeks to add defer statements. If you are not familiar with the concept, it can be summarized as a finally block appearing at the beginning of some code instead of the end.

  • C# 8: Generic Attributes

    Attributes have been part of .NET since the beginning. As such, they were created before generics were introduced and never quite caught up. Though supported by the CLR, before this proposal C# didn’t offer the ability to use generic attributes.

  • C# 8: Caller Expression Attribute for Assertions and Automated Testing

    Currently C# supports caller info attributes for file name/path, line number, and the name of the calling method or property. With the Caller Expression Attribute proposal, expressions are added to the list.

  • C# 8: Type Inference for the New Keyword

    In many situations, there is only one possible type allowed in a given place. And yet C# still requires you to explicitly list the type. If the Target-typed `new` expression proposal is adopted, such boilerplate code will no longer be necessary.

  • Update on C# and F#’s Default Interface Methods

    The hotly contested Default Interface Methods feature is also being considered for F#. But this feature may be limited to only .NET Core, putting the whole proposal into jeopardy.

  • Build 2018: The Future of C#

    Number one on the list of future C# features is Nullable Reference Types. But also on the table are enhancements to pattern matching, array slicing, asynchronous iterators, default interface methods, and possibly even records.

  • New Features in C# 7.3

    Though a comparatively minor release, C# 7.3 addresses some long outstanding complaints from C# 1 and 2 such as overload resolution and generic constraints that work with enums and delegates.

  • Brian Goetz Speaks to InfoQ on Data Classes for Java

    Brian Goetz, Java language architect at Oracle, introduced an experimental concept of data classes that may someday be integrated into the Java programming language. But there is much work to be done before this concept is worthy of any real attention. Goetz explored the problems and tradeoffs of data classes on the premise that sometimes “data is just data.”

  • Microsoft Previews Nullable Reference Types in C# 8

    Microsoft has made available Nullable Reference Types as preview for developers who want to try the new feature and provide feedback.

  • Catching up with C# 7.1 and C# 7.2

    Back in August, C# 7.1 was quietly released along with Visual Studio 15.3, but it’s not quite ready. In this report we’ll look at a subtle compiler bug and what’s next in store for the soon to be released C# 7.2.

  • C# 8.0 Previewed

    In a Channel 9 video, Mads Torgersen has demonstrated the first four features for C# 8. The features include nullable reference types, async streams, and more.

  • Google Discusses Go 2

    At GopherCon 2017 which took place this week, Russ Cox, the tech lead for Go at Google, keynoted on the future of Go, inviting the community to submit suggestions on what should be included in the next major version of the language.

BT