Modern JavaScript Developers

A lot of things have changed in last decade in terms of web development. Server-side web development has shifted to client-server architecture. Browsers have become more powerful, so has JavaScript that runs in the browser. Client side programming became more popular with the introduction of jQuery in 2006. There were other libraries too, but jQuery was by far the most popular one. A new era came for JavaScript developers after the introduction of Node JS in 2009. And the most popular language shifted its paradigm to server side programming through Node JS. Several libraries and frameworks were invented.

With this paradigm shift, JavaScript has taken a new turn in the past decade. And for modern JavaScript Developers, there are few tricks and tools developed to work efficiently and faster. I have listed below few of the tools that I use and that might help you work with JavaScript more conveniently.

  1. Version Control
    Git / Mercurial / Subversion— has been an integral part of programmers life. No matter which programming language you choose, version control is essential to be in your programming vocabulary. It helps manage your code, share among your peers, and also maintain your coding history. I still remember, when I was in university we used to pass zip files over email to make sure all my friends had same version I was working on. It used to get tedious and confusing with all the file name convention we used to have.
  2. TypeScript
    If you are working on JavaScript, you would probably love TypeScript
    down. TypeScript is a superset of JavaScript which primarily provides optional static typing, classes and interfaces. It helps IDEs to spot common JavaScript errors as you type in. JavaScript is a loosely typed language, and is error-prone to developers. TypeScript helps to make JavaScript strictly typed, add classes and interface that most of the programmer are used to from Object Oriented Programming language like Java, and a lot of feature which are yet to discover in JavaScript world. Classes has been a part of JavaScript in its latest release. It also comes with autocomplete, and linter that assists you to find common bugs and programming easily.
  3. JavaScript Linter
    You would probably love JavaScript Linters Like ESLint that help recognize common error, if you are not a fan of TypeScript. It helps you keep your code clean, and also helps you find common bugs and typos with JavaScript.
  4. Node JS
    With Node JS you can write server side codes in JavaScript. NodeJS is immensely popular for network programming due to its ability to handle large network request. Socket.io, Nodejs framework for managing socket is very famous in web development.
  5. JavaScript Frameworks
    To work in client side to make robust application, you may need to learn on of the many popular frameworks in JavaScript that is available today. jQuery, EmberJS, ReactJS, AngularJS and VueJS are the most popular libraries and Framework.
  6. Visual Studio Code (vscode)
    Talking about my own experience, working with JavaScript is a tedious task. Debugging is hard, no proper auto-completion like other languages makes programming harder, with all the tools and switching between them is hell of a job. However, as I started using Visual Studio Code since past 6 months, coding has been a lot easier. It provides all the features I am used to with Sublime Text in addition to integrated debugging for NodeJS and browsers, integrated terminal, git integration, and default TypeScript support. And is one of the light weight IDE I have ever used. With Live Editor coming up, all the things I ever wanted with IDE will be available in vscode. Most of the stuff I am explaining today can be worked within the Visual Studio Code itself. The most amazing feature I feel is the auto-completion for a lot of popular libraries or tools which is available by default. Now, you don’t have to switch to documentation or the debugging tools or git interface very often while working on your code.
  7. Web Pack
    In recent years, JavaScript has developed and added a lot of features with specifications. However, all the features are not fully available in the browsers. None the less, most of the people still use old browsers supporting older version of JavaScript. But tools like web pack, has helped developers immensely. Developers writes code with TypeScript or new JavaScript feature, and the web pack trans-pile the code into older JavaScript equivalent.
  8. Test Cases
    With larger client side application, there has been more and more need of testing JavaScript code than ever. Working with test cases will assure your quality and helps you get less bug experience with your users.
  9. Editor Config
    We all have that issue with formatting done by other developers over the course of project completion, day in day out. Some use one type of formatting, when they push their code, has issue with the formatting used by other developers and the things goes on. For issues like that, you can use .editorconfig standards to maintain formatting accross IDEs and developers.
  10. Docker
    Recently I was working with my team members, on a reactjs project. I asked one of my fellow developer to setup and work on initial test cases coverage while some of us worked on the feature that was due for the week. However, the very next day when I tried to run the tests my fellow colleague wrote, it did not run in my machine. There was a wired bug in my machine, but it worked perfectly fine in his computer. After a day of fixing the issue, I found that the version of NodeJS I was using was incompatible with the test package we were using. I tried several different ways, but the bug did not seem to go away. These kinds of development issues occurs immensely while developing. And is a waste of time, because you are fixing an issue that is not merely related to actual development of the product. For these scenarios, concept of Docker is essentials. Docker helps to setup same development and production environment across machines and developers. If it works in one machine, it will also work on every other machines as the same code is running in the same development environment.