TypeScript has turned six today, and I would like to take some time to reflect on what this amazing technology has meant to me at a personal level and why I believe that you really should check it out (If you haven't done it already).
When TypeScript was introduced for the very first time, I was working with CoffeeScript, and I had a background in Microsoft technologies such as C#. I remember watching the keynote by Anders Hejlsberg the day after it was announced and I was very excited by the idea from the very first day.
The TypeScript was a very good technology from the very first preview, but things got much interesting over time. Generic types and non-nullable types were two important improvements followed by mapped types and conditional types. I think this journey has been quite exciting for everybody within the web development community, but when I think about what it has meant for me at a personal level, it has been amazing.
Before the arrival of TypeScript, I knew some strongly typed programming languages as well as some dynamic programming languages. However, I didn't have experience with the type systems of functional languages such as Haskel.
TypeScript felt different from other strongly typed languages; I often found myself wondering how to express a given type. These feeling has increased over time due to the increase in the expressiveness of the TypeScript type system. I feel like TypeScript challenges me now and then with small "type-puzzles" that require me to express a type. The reward for solving one of this puzzles is type-safe code. In the beginning, not all of these "type-puzzles" could be resolved, but as the language evolves, the most complicated ones can now be resolved thanks to features such as conditional types or lookup types and the most simple ones are resolved automatically thanks to the improvements in the type inference system.
It is hard to explain, but I feel like TypeScript makes me think more about types and any other programming language.
In retrospective, TypeScript has helped me to learn a lot about types and types systems. I thought I knew these topics but now thanks to TypeScript I have discovered that it is an incredibly extensive subject and that it takes many years to truly master theory. I'm thankful to the TypeScript team and the community because the GitHub issues are packed with useful comments that have helped me to learn a lot of things about TypeScript in particular and about type systems and how programming languages work in general. As a result, TypeScript has helped me to become a better engineer, and this is why I highly recommend you to give it a go.
TypeScript also has also meant luck for me at a personal level. Because as I adopted TypeScript very early, I was offered the opportunity to write a book about it. The book helped me to earn some self-confidence that led me to try public speaking and start the Dublin TypeScript meetup, which has led me to be awarded the Microsoft MVP award.
TypeScript has also helped me to learn a lot about open source project management, GitHub and communities because I've been able to observe how the TS team managed the project and the community with absolute transparency.
I have enjoyed a lot working with TypeScript over the last six years. It is the technology that has helped me the most to evolve and learn tons and tons of new stuff and has led me to some amazing opportunities. This is why I want to thank the TypeScript team and the rest of the community for creating such a great piece of technology. I cannot wait to see how it will evolve over the next six years.
Happy birthday and thank you!