I Can’t Believe It’s Not Java!

03 Sep 2020

Javascript is a language that I have heard about many times before taking ICS 314. Prior to this class, I did not have any experience with Javascript nor have I taken any Javascript courses. What I did know about Javascript however, is that it is relatively fast and lightweight, and in addition widely used in many web-based applications. Two weeks have already passed since ICS 314 began and within that short timespan, I have undertaken the freeCodeCamp Javascript exercises and practice WODs that would help me get adjusted to the language. From doing these exercises, I have gained a decent level of knowledge about coding in Javascript. Therefore in this essay, I would like to discuss and share my initial impressions with the language while possibly comparing it to other languages I have used.

To reiterate, I have never used Javascript before. The two main languages I somewhat have had experience using are Python and Java. In my personal view, Python is really easy to use and is one of the most beginner-friendly programming languages. Because Python is a high-level interpreted language, code is executed directly without the need for compiling. Regarding Python’s syntax, I really enjoy how easy it is to remember as it is intuitive and highly readable. In contrast to Python, Java is also a high-level language but it compiles code by passing it through the JVM. From my perspective, Java syntax was one of the more difficult parts about getting into the language. When I first started off learning Java, I cannot remember the countless amount of times my code would not compile simply because of how I missed a curly brace or two somewhere, or the fact that I forgot to add a semicolon in one line. Along with the fact that Java requires more code than Python to perform similar instructions, I generally find Python to be more comfortable to use in that respect.

Moving on at last to my thoughts about Javascript, I would like to discuss the first impressions I had on the language after primarily coding in Java. Syntactically, Javascript feels similar to Java in some respects, but foreign in others. As a specific example, when I first tried using Javascript, it initially was weird for me knowing that I did not necessarily have to declare any types before the variable. This is because Javascript, as I just learned recently, is a loosely typed language. I do not have to explicitly state or specify what type is stored in the variable beforehand; Javascript apparently handles these conversions automatically. Coming from languages that are strongly typed, this will still take some time to get used to. However, not having to declare any types whenever I create a new variable means that I can focus more on the semantics rather than the syntax of my code. So despite the differences in syntax, the general programming logic that I learned from previous ICS courses still carry over, and the only thing that I mainly have to work on, is continually practicing and expanding my coding skills.

On the topic of coding skills, ICS 314 utilizes a unique teaching method called Athletic Software Engineering. Through this method, students are expected to do daily coding challenges called WODs. As a lazy, anxious student, I dread the prospect of repetition and daily homework, and fear that WODs will just add more stress on top of the other courses I am taking this semester. But I can understand the intention of having this sort of system, and rather appreciate how doing these exercises can potentially help me become a more efficient programmer in the long run. In conclusion, I can definitely say that while my introduction to the basics of Javascript was very brief, I am looking forward to practicing this language more in class and am rather excited about its potential use in any future career I might seek out. From a software engineering perspective, I can imagine that Javascript is still a popular and ever-evolving language. For as long as websites continue to implement their content with Javascript, it will never die or become an obsolete language.