
To me, JavaScript’s ambiguity was one of the best things about it, and by “ambiguity” I more specifically mean the ability to declare variables without having to input what type it is. Prior to learning JavaScript, my exposure to programming languages was that of Java and C from my university classes. Anyone who has ever programmed in either knows how explicit one must be when declaring variables when using them. I understood its purpose, but I found it to also be incredibly tedious. The fact that I could somewhat be more relaxed and not have to declare such types while programming in JavaScript makes it much, much less tedious. I could just declare the variable purely via name and value essentially, and let context clues do the work in defining the variable’s type. This goes for function return values as well, and I found that to be pretty fun and even liberating. Although this made it quite a bit easier for me to program using JavaScript initially, I would eventually run into the drawbacks that could come with it as I practiced. This is where TypeScript comes into play.
JavaScript but with explicit Types, aptly named “TypeScript”, is, well, exactly that. TypeScript with its strict type declarations removes all of the ambiguous context reliance in JavaScript, requiring the programmer to explicitly define what kind of variable each one is upon declaring them. This by itself already has numerous benefits, one of the biggest being that it improves readability, which makes it easier on the code reviewer to know what to expect from it. More than just whoever is reviewing the code, honestly, TypeScript’s assuredness makes it easier on the initial programmer as well. When working on one of the assignments for my software engineering class at my university, I ran into an issue where a variable in my code was of a different type than I expected it to be. A built-in method that I had used apparently converted one of my variables from an integer to a string, which is what I did not mentally expect from it. I was programming in TypeScript while this happened, and it caught this error immediately, as it prevented the conversion of an integer variable to a string. Had this been JavaScript, this misbehaving variable may have caused a much harder to diagnose error. It was from here on that I understood the usefulness of TypeScript, and that it was not just “JavaScript but more tedious” like how I thought it was.
In the past few years, we have witnessed the explosion of Artificial Intelligence, and it has quickly found its way into so many different parts of our lives since. When it comes to programming, AI has become an incredibly popular tool used by many to help diagnose, debug, or even generate completely new blocks of code instantaneously with just a few prompts. Although I have used it to help me before, however, I personally believe that for a student/self-studier new to programming, they must first learn how to code well purely on their own the old fashioned way, just hands and a keyboard. I feel that it is important for students to develop that mental “logical muscle”/intuition when it comes to programming, and that doing so would help them massively down the line. When interviewing for internships or full time roles, for example, most companies do not allow their candidates to use any kind of AI when answering technical questions or solving coding tests/challenges. An overreliance on AI as a crutch would stunt the growth of a programmer, in my opinion. It is like trying to work out and build muscle by having a robot lift all of your weights for you.
Not to say that AI is not an incredible tool, however, as proper use of AI can increase a software developer’s productivity tenfold in the workplace. Similar to having a robot to carry all of your heavy groceries for you. Artificial Intelligence has also almost essentially made programming help websites obsolete. Back then, I would spend lots of time searching on sites like StackOverflow for coding help. Nowadays, Google Gemini or ChatGPT just hands me the solution on a silver platter.
JavaScript and TypeScript are both very interesting and useful programming languages that were quite fun to learn in my opinion. Artificial Intelligence is a remarkably powerful and valuable tool that is here to stay, and all programmers may eventually have to learn how to implement AI into their workflows. Despite that, I still believe that it is very important to know the basics and to have strong foundational coding skills first.