Who would have guessed that a language written in 10 days to support the Netscape browser would one day take over the internet? Today you can’t seem to browse past more than three tech articles before you’re reading about a new JavaScript framework that will revolutionize the way your team produces features. I’ve had the opportunity to get to know some of these popular frameworks and less popular proprietary libraries. Let me walk you through some of the challenges and successes I’ve faced in the past while using JavaScript.
As a QA Co-op at IBM, I had to interact with JavaScript components daily. Due to the dynamic nature of JavaScript elements, they are often the most difficult components to automate. I can remember many a headache struggling to find workarounds to test JS created objects that lacked proper ids. Even simple tasks such as accepting a JS pop-up caused issues. I spent most of my time working in Java, I didn’t have many opportunities to use JS in many productive ways. It wasn’t the best first impression. JS always felt like more of a thorn in my side than a tool on my belt.
It wasn’t until I chose to use JavaScript to build a prototype website for my CS 3025 Human-Computer Interaction course that I discovered the power of JavaScript. I worked in a group with two other people to design a mock website that utilized standard design principles. The site had to be able to demonstrate the interaction with different elements but did not have to be fully featured (no database connection, no server hosting the website, etc.). Using JavaScript and the Bootstrap framework allowed my team members and me to develop and test different designs rapidly. The lightweight nature of Javascript combined with the stable Bootstrap framework allowed us the ability to quickly and easily redefine layouts and tweak elements behaviour at a pace that wouldn’t be accomplishable if we had say chosen to host a Java EE server.
My next most substantial foray into JavaScript came on another prototyping project at The Learning Bar. My task was to integrate JReport Reporting software into our Java EE application. The recommended path forward was to use the JavaScript API provided by JReport to feed data to Angular components. I would then embed the Angular components into our JSP pages. This adventure led me to gain a much deeper grasp of things like the prototype chain and anonymous functions. This project was a great practice working with third party API’s and working with the strictly typed TypeScript superset of JavaScript.
Today I see JavaScript as a tool that gets sharper the more you use it. The flexibility and dynamic nature of JavaScript make it a clear choice when no other technology will do. Between the wide variety of front-end frameworks like Angular, and React, to server-side frameworks like Node.JS, it seems like building dynamic websites with JavaScript is getting easier by the day.