E10: Reflect on Typescript

05 Sep 2024

General thoughts on Typescript Overall I find typescript to be a moderately useful programming language.

It clearly has a place in the world of programming and its assets lend itself to aid those in such a place.

I heavily prefer it over Javascript whose looseness with types is quite confusing. It also makes sense why it exists as a front and back end language, it has all the frameworks needed to write reliable code with its ability to lock variables into a type system, while also maintaining the flexibility of Javascript and the numerous libraries that come with it for efficient web development.

While I do admit that some of the quality of life aspects of Javascript are quite nice and make writing code much more efficient, I do not enjoy the lack of rigidity with things like the “any” type and the spread operator.

To me they take too much away from what is happening underneath, I completely understand why they exist and why one might want them to exist.

However, if I had the choice I would want to work with something more rudimentary and rules based.

While it may require complicated work-arounds for specific problems I can always easily understand what a section of code should be doing and can edit any part of that algorithm if need be.

Is Typescript a good or bad language in the context of software engineering?

In short, yes I think Typescript is a good language for software engineering, this is a field where you are going to have to reuse code quite often and Typescript makes that easy to do.

Additionally you are going to have to refactor or slightly tweak sections of code many times over, and Typescript allows you to easily swap methods while making sure there are very few type errors due to the type declaration.

The language is also very much geared towards fields like software engineering and web development in the sense that it doesn’t contain multi-threading or native memory management (there exist API’s for this but it’s not built in).

Not including these features allows the language to be more specific for the tasks of software developers rather than more low level stuff of systems designers and developers.