Thoughts on Javascript

19 Jan 2018

Javascript as a Programming Language

Javascript is a powerful programming language that is quite easy to learn. For someone with little to no programming experience javascript seems like a very intuitive programming language. From the perspective of someone like me who learned other programming languages prior to javascript, the “natural” way code can be written in javascript was quite surprising. I mean “natural” in the sense that unlike other programming languages such as C, C++ and even java to some extent, where the programmer must be very clear about every detail they want the program to execute, in javascript, its almost as if the program knows what you want it to do. For example, if you want to create a string variable called dog which contains “hello” all you have to do is:

let dog = "hello";

and if you want to create a integer variable called cat which contains 8 all you have to do is:

let cat = 10;

After becoming used to languages like C and C++ where the programmer is not only responsible for creating a program but is also responsible for managing other aspects of the program such as its memory and pointers, using a language like javascript in a way feels like moving backwards. A lot of the responsibilities you had in languages like C and C++ are gone and it seems like a lot less knowledge is required to use the language.

However, the thing about programming languages is that it doesn’t matter whether or not one language seems “harder” to learn than another. If you throw pride away, the difficulty in learning a programming language means nothing. Each programming language has is uses and functions, just because one programming language is harder to learn than another, doesn’t mean it is necessarily better. Often times circumstances dictate which programming language is better suited for a certain task.

Becoming Proficient in Javascript

In learning any new thing, proficiency is often tied to practice. Therefor, in order to gain proficiency in producing and understanding code in javascript, the best way to go about it is to practice. The philosophy of athletic software engineering thus seems like a reasonable way to learn javascript. By consistently writing code your efficiency increases because less mental energy can be used towards trivial things such as remembering how to make for loops. In addition semantic errors will also be reduced because the correct way to write code will be hammered into your brain.

While there are many positives in the philosophy of athletic software engineering, in my opinion there are drawbacks as well. Some of these drawbacks include overconfidence in ability and learning the “wrong” things. With practice comes proficiency and with proficiency sometimes comes overconfidence. Although athletic software engineering may make a person really good at certain aspects of programming, it is impossible to encompass everything. Realizing when you don’t know something or that mistakes can happen is also very important in becoming a good programmer. It is vital to realize that you can be the best at something, yet still not know everything about it.

Competent instructors are also very important for athletic software engineering. If the instructor doesn’t know what they are doing, the worst thing they can do is teach the wrong thing to their students. If wrong information or bad habits are continuously enforced through athletic software engineering, a student will not only learn incorrect information but also think that that incorrect information is correct.

The Verdict so Far

Javascript is a core programming language in website development. While its ease of use often means decreases in efficiency, for what it is often used for, Javascript is (in my opinion) a pretty great programming language. I’m curious to see whether or not my current evaluation of javascript changes over the course of this semester.