The Evolution of the C# Language: The Impact of Syntactic Sugar and Language Integrated Query on Performance
Abstract
The C# language has seen a healthy adoption rate for a fairly young language. Each released version has introduced features that have addressed pain points in the version preceding it, as well as providing greater flexibility and expressiveness. Although each successive release offers beneficial features, this study is focused on the language features that are likely to be used in everyday development and problem solving, especially surrounding data manipulation. The language is statically typed and is known to be similar to Java, another object-oriented language. As of C# 3.0 it is evident that the language designers are borrowing from other popular languages to evolve the language. C# 3.0 introduced lambda expressions, implicit typing, and a set of other features which, collectively, gave rise to the Language Integrated Query (LINQ). With LINQ and lambda expressions the language has borrowed from functional programming languages, increasing the power and brevity of programming. C# is a multi-paradigm language which enables programmers to write code in numerous styles and mix expressions belonging to different paradigms, thereby increasing the flexibility and descriptiveness of code. The paradigms supported by C# include being imperative, generic, reflective, object-oriented, and functional. This thesis aims to investigate the performance differences between conventional coding and code using LINQ. The focus is on the C# language features that have contributed to the advent of LINQ as well as LINQ itself. Once the results are obtained a well-formed opinion can be reached with regards to the adoption of the new coding styles made possible with LINQ.