By Yakov Fain

I decided to write this blog after reading this post of a frustrated developer (he goes by the name of Nick Pistacchio) who couldn’t create a simple single-page application (SPA) in JavaScript over the course of several days. Typically frustration is a result of unmet expectations and this is the case here as well.

If Pistacchio would decide to create a simple app using the JavaScript framework he already knew, he could achieve his goal in 2-3 days allocated for this job. The problem is that he decided to achieve two goals:

1. Learn what’s going on in the modern JavaScript ecosystem
2. Develop a simple SPA

The first task takes months of studying, but he had 2-3 days. As a result, he “got stuck in an analysis paralysis loop”. Such paralysis could have happened in any modern technology. Learning the syntax of a programming language is one thing, but mastering frameworks and the tooling is a completely different ball game. My main programming language is Java, and in the past I also was frustrated with JavaScript until I accepted three facts of life:

1. JavaScript is here to stay.
2. JavaScript is THE ONLY programming language that can run on any browsers and any old and new hardware.
3. You can run, you can hide, but you can’t escape JavaScript.

The fact that you can quickly learn how to write Hello World in JavaScript is not the reason to assume that JavaScript is a toy that should just work. You have to study it. Yes, there are way too many large and small libraries. Yes, there are several package managers. Yes, there are various automation tools. This means that you need time to get familiar with some of them and pick a reasonably small gentlemen set that works for you.

I’ve been developing Web applications with Adobe Flex framework for six years. This was the best Web framework I’ve ever seen (batteries included). So what? Flash Player is dead. Accepted it and moved on. I spent two years trying to find a JavaScript framework that would make me as productive as I was with Flex. None. Nada. Nyet.

There seems to be the light at the end of the tunnel though. Here’s what works for me now (subject to change):

Web framework and the language: Angular 2 with TypeScript
Package manager: npm
Preparing application bundles: Webpack
Unit testing: Jasmine with Karma
Deployment: npm scripts
IDE: WebStorm

If this list looks too long take a look at the skills section in the resume of any professional Java developer. If it has less than 10 Java-related tools and frameworks – it’s a resume of a junior developer.

I just came back from a large conference DevNexus where most of the attendees were Java developers. After my presentation on developing with Angular 2 and TypeScript one person stopped by and said, “I used to hate JavaScript, but now I’ll look at it again”. Please do, but take it seriously and allocate enough time for learning the JavaScript ecosystem. Manage your expectations.

P.S. If your JavaScript is a little rusty watch this video, which is an excerpt from one of the online trainings I ran for Java developers.

Frustrated by JavaScript?

| Modern Web| 651 views | 0 Comments
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>