Why JavaScript is my favor after 22 years of doing programming?

Dinh-Cuong DUONG
Problem Solving Blog
4 min readAug 30, 2020

Mastering a programming language could take you over the years since you started one. After you are good at one, the next one will be easier than then the other next one. Hence, choosing your first programming language is important to shape your career path in software development.

I dived into software programming world since 1998 at my university with Pascal programming language with Turbo Pascal compiler in MS-DOS computer. Started with solving maths problems, advancing for graphical drawing with curves, shapes, and animation in 2D. It’s just for enjoying!

After 22 years of doing programming, I had tried over 14 programming languages. Most of the time I spent to program Windows software with C++/MFC in Visual Studio 6.0 for over 7 years. Since 2012, I have started to write a hybrid mobile/web application in JavaScript, then any backend API or tool using NodeJS.

This is my list of experiences in programming languages:

Turbo Pascal, C, C++/MFC, Assembly x86/uC, C-Shell/Bash-Shell, Java EE/Linux, PHP/vBulletin, C# CLI/.NET, Java SE/Android, Objective C/iOS, JavaScript/HTML5/CSS3, JavaScript/Node/TypeScript/JSX, Go and Python.

The reason why I prefer to use JavaScript at work is it’s easy to get job, flexible programming language and develop a StartUp idea quickly.

It’s in the top list of job demands in the world

As of today (2020/08/30) there are 305,700 results for Javascript, 339,529 results for Java, and 269,763 results for Python. These numbers were found in https://linkedin.com by programming language keyword. It means somewhere on earth is hiring and there will be 305,700 vacancy jobs are waiting for you.

It’s the most “flexible programming language

I can write code almost everywhere: In a certain time, you want to run a piece of code just for a small calculation. For example, you want to know the readable date of the timestamp from an excel file. Open your web browser, turn on Inspection Console, then type your code without an internet connection.

Because it is an interpreted programming language that was designed to run on Browser first. Every browser must have one interpreter to transpile JavaScript for browsing a website.

I don’t care about type declaration, type conversion, and casting: humans likely uses implication communication in natural languages. Why a machine programming language cannot use? This is the most favorite thing I like in JavaScript. It’s something that becomes a big trouble for developers when they do not have a well-constructed code that would help their algorithms avoiding such mistakes.

I don’t have to care about design-patterns: when I changed from Java EE and .NET into JavaScript. The first thing I was looking for in JavaScript is how to implement design patterns: Interface, Abstraction, Reflexion, and Polymorphism. After a while, I realized that’s a stupid idea because this language is working as our nature brain: mistake tolerance. Furthermore, when the programming world is moving from monolithic to microservices architecture design. Factory, Builder, Adaptor, Strategy, and Singleton patterns should be used for underlying technologies when a large scale of reusable, centralized, optimized, and well-organized code are needed.

Works for full of full-stack (IoT, Frontend/Backend)

Run-on every serverless platform: The Chrome V8 engine is one of the most popular JavaScript engines today. It’s used as the core component of Node runtime on every serverless platform (AWS Lambda, GCloud Functions, Azure Functions, OpenFaaS). When a serverless has come, it comes with Node runtime first.

Run-on almost mobile platforms: As of today, there are 74.6% Android mobile devices, 24.8% iOS mobile devices and 0.6% are using other platforms. If you target to develop a software application running on Android and iOS platforms, you cover 99.4 % of mobile devices in the world.

WebKit on mobile is supported natively in iOS and Android smartphone, this facility derives to a new mobile development cross-platform technology: write once, runs everywhere. ReactNative, Cordova, Ionic, and NativeScript are using JavaScript (ES6) and ReactNative is remaining as the lead of favorite programming language for smartphones. Follow ReactNative is Flutter, a framework that uses Dart, a similar JavaScript ES6 language, and can be convertible to JavaScript.

Fast prototyping, ideally for StartUps: If you are mastering in JavaScript, you have a big chance to learn new technology stacks. Here are some hints for you to experience with something bigger than a HelloWorld example:

  • AWS Amplify — A full-stack software development framework to build iOS, Android, Flutter, Web, and ReactNative apps: recommended for building a Full-Stack mobile/web application with Serverless or GraphQL NodeJS at the backend and ReactNative for frontend.
  • Hyperledger Composer — Build Blockchain applications and business networks your way with JavaScript: recommended for building a SmartContract application based on Blockchain technology.
  • Node-RED — is a programming tool for wiring together hardware devices, APIs, and online services in new and interesting ways: recommended for developing IoT Gateway embedded software. It supports many connected nodes to devices or to cloud services with just drags and drops on a WebUI.
  • Cyclon — is the next generation robotics framework with support for 43 different platforms. It’s a pretty cool Robotics framework that closes the final loop of the IoT domain.

Conclusion: For the three top demanding jobs classifying in programming languages: Java, JavaScript, and Python; starting with the right one depending on what you choose who you want to be in your career path:

  • Full-stack Software Engineer or StartUp Co-Founder: JavaScript
  • Enterprise Backend & Core System Engineer: Java & Go
  • AI Engineer & Data Scientist: Python & C# (Unity ML)
  • IoT/Embedded Software Engineer: C/C++ & Python

One isn’t enough. Mastering a programming language by choosing a favorite domain application you want to develop, it helps you keep the fire in your heart and your learning curve will be faster with joyful.

--

--

Dinh-Cuong DUONG
Problem Solving Blog

(MSc) Cloud Security | Innovator | Creator | FinTech CTO | Senior Architect.