https://unsplash.com/photos/black-laptop-computer-turned-on-on-table-vpOeXr5wmR4
My favorite technology from my project, Opinionated Project Management, would have to be Javascript. Thanks to the versatility of Javascript and the myriad of tools available to Javascript developers, our team is able to take full advantage and write our entire project in Javascript. While not everyone in our team necessarily knew Javascript, it was the most common language we could find between the four of us. The benefit of a language like Javascript versus something like Python is that Javascript is the language of the web. Since we are building a web application, our frontend would be in Javascript anyways. We opted to use React, due to its popularity and performance compared to traditional vanilla Javascript. Due to the flexibility of Javascript, our frontend developers are also able to contribute on the backend code now since we are using Node and Express on the backend which are a Javascript runtime and framework. This isn’t necessarily a downside to Javascript, but the way errors are handled in Express are different from other languages I’ve worked with in that with other languages you can explicitly throw an error, but in Express you pass errors around like objects. Because of this our code has to be written a little differently from what I’ve become accustomed to.
One fault or downside to Javascript is that it’s not a statically type language. Initially I found it a pain to write in languages like Java and Go, but I’ve come to appreciate them. With a statically typed language you have better control over the types of data that is being received and sent by your application. There’s no way that typos will creep up on you. Thankfully there is a statically typed version of Javascript called Typescript which does help get around this problem and prevent a lot of time and run time errors. It would have been nice to utilize Typescript in our project but I think that might have been overwhelming for us since not everyone is very familiar with Javascript and the tools we’re already using, such as React, Sequelize, Node, Express. If we have extra time, I think it would be a nice to have if we could start re-writing some of our code in Typescript. Another downside in my eyes is how Javascript is an interpreted language. Having used compiled languages for some time now I’ve come to appreciate the compile step. While it does take extra time to compile your code after writing it, it does save you from runtime errors later which I think help contributes to a safer more stable application. Because Javascript is so versatile and in such demand, it’s no surprise that someone’s already thought of this. Typescript to the rescue again. There is a compile step in Typescript where it compiles to Javascript and this helps us catch errors that we normally wouldn’t see in Javascript until run time.
In summary, Javascript is such a versatile and vast language, and thanks to its flexibility we were able to write our entire application in Javascript. While it does have its “shortcomings”, there are subsets of Javascript, such as Typescript, meant to address these “shortcomings”. The Javascript community is always looking to push the boundaries of what’s possible with a single language.
Leave a Reply