According to the Future Digital Skills Needs of the UK economy report, UK employers will need 745,000 additional digitally-skilled workers by 2017, with a further 1 million by 2020. The government has created a new ICT curriculum to meet demand and future programmers are rightly being recognised as crucial to the computer industry.
At Microsoft, I seek to improve the tools for these programmers of tomorrow. A lot of research has gone into how we program something to get it to do what we want it but rarely do researchers consider whether these will actually improve the performance of the overall systems. Industry can pass on opportunities to use cutting edge developments in the field, which has so far limited the impact of developments in programming. By improving the collaboration between research and industry, we can ensure that the overall performance of a system, as well as its component parts, is greater in the future.
A hands-on beginning
I was lucky enough at my primary school to have an Apple 2 and when I was nine years old a school teacher explained that there were different programming languages available, so I had an early introduction to the world I would end up working in. My father and brother also encouraged me: we used to play golf on a programmable calculator at home.
Growing up in an era where the PC was at the centre of everything and the most powerful device around, everything was open. At that time, you could programme the whole system and essentially educate yourself. Today we have lost that hands-on approach – our phones and data centres are more closed off to people. However, there is much that can be done to make the work of programmers easier and more efficient.
Improving programming languages
In 2005, I introduced the feature known as ".NET Generics," in C# 2.0. Generics allows programming code to be more easily reused, which in turn makes programming more productive, faster and easier than previous efforts, it maintains dynamism, safety, performance and correctness. Successful mainstream implementation has also given C# almost a 20-year technical advantage over competing programming languages, such as Java.
Further to this, in 2006, I developed the F# programming language, a major factor in my being awarded a Silver Medal this year by the Royal Academy of Engineering for remarkable technical achievement, coupled with commercial success.
F# is designed to be a clear and concise language that interoperates well with other systems and is currently used in applications as diverse as analysing the UK energy market to tackling money laundering. Used by major enterprises in the UK and worldwide, F# is both cross-platform and open source, and brings innovative features from the forefront of programming research to industry. These include unit-of-measure inference, asynchronous programming and type providers, which have in turn influenced later editions of C# and other industry languages.
Meeting industry need
C# is the dominant language, but F# brings a new type of programming called functional programming that stands alongside it, while focusing very much on the compositional. F# is a research inspired language designed for industry use. It makes programmers more productive. Previous programming languages like C# do not tell you if information is missing, which is vital for the programmer to know. If you miss out part of a bridge when building it, then it will fall down, and missing information can have the same effect in programming. F# tells you exactly what is there, allowing programmers to write code with fewer bugs than other languages. This makes programmes more reliable and means users can deliver them to market both rapidly and accurately.
Another reason F# has worked so well in industry is that its short, clear descriptions of systems and lack of bugs provide a stable base for complex programmes. Credit Suisse has been using F# to develop quantitative models for financial products. Valuation models for derivatives trading are based on the probability of worth of other underlying assets, and they require the rapid development of accurate mathematical models. If programmes are reliable and clear, they will be able to generate more reliable valuation models, reducing risk. The use of F# to address the complexity of this application demonstrates the usefulness of the language for enterprise software.
Making life easier for programmers
F#’s ability to make life easier for programmers is key to its popularity within industry. F# is also available through open source, enabling programmers to utilise it in the way they want to and adapt it to the situation that is needed. This is typical of recent developments from Microsoft Research, which has moved to a very open source model.
F# is proof that bridging the gap between the two worlds of programming will make life easier for the programmers who build the foundation of our digital world.
Applying methods from programming research to real world problems can have a significant impact on industry, bringing the next generation of computer programmes closer.
Dr Don Syme is a Principal Researcher at Microsoft Research, Cambridge, where he works to improve the tools available to programmers worldwide, helping them create the building blocks of the virtual world more effectively. He received a Royal Academy of Engineering Silver Medal in 2015 for his remarkable achievements.
Find your next job with computerworld UK jobs