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.
Having fun with types
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.
The land of opportunities
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.
Open source
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.
Summary
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!
Top comments (11)
Hi Remo. Thanks for the post to share your experience and helping the TypeScript community.
Context: I haven't used TypeScript but proficient in C#.
I have been using C# since .NET 2.0 and been able to keep up to C# 7 as the change was gradual.
Would you be able to share how to get started with TypeScript for someone who've never used TypeScript?
(I feel a bit overwhelmed since TypeScript is so mature & I will feel the same way with C# should I start again from scratch).
I just converted my JS frontend to TS frontend. I've learned a lot about TypeScript during this process. Also, TypeScript has wonderful tooling! I love how well VS Code integrates with TypeScript, providing code completions and such (yeah I know both of them are born under Microsoft, so they will work together pretty well, but still!)
So you can start converting a component written in JavaScript to TypeScript one by one?
Are there any interop issues? TYpeScript component not being able to call components written in pure JavaScript, vice versa.
Yes.
No, AFAIK. You can use your pure JS components and libraries.
Thanks Defman π€
Thanks for the feedback, I will think about it and try to put something together.
Install VScode and ts-node, then simply run ts-node in place of node for any .ts file. Make sure you have a tsconfig.json and tslint.json file as well and refer to TypeScriptβs getting started page.
I just released ladder.ts.training/ it might help you during the learning process :)
Thank you Remo for the curated list of TypeScript learning resources π
π€
This is purely a coincidence that I started learnt typescript yesterday from Dylan, and started converting some of my early-time projects today. This is awesome π
Agree with this feeling, I get it when dealing with statically-typed programs. It's a little hard to explain, but your mind starts to think in a set of logical pathways through the code, like a type-checker, instead of like the value-level reasoning it normally does.
Hillel Wayne has said this about TLA+ too (he wrote a book called Practical TLA+), that he can look at an algorithm and the concurrency bugs in it leap out at him.
I think it's something like the Sapir-Whorf hypothesis, where your language determines your thought patterns.