First of all, it is regrettable that “PHP is the best language”, but it is not the most popular language.
Sorry to all the languages that just made it to the TIOBE programming language rankings in April:
You are all great, but you cannot take on this great responsibility.
Before we start, let me mention the three languages I commonly use: Java, JavaScript, and Python.
-
Java taught me a lot about architectural levels, which can be referenced in my previous architecture-related documents. Although I don’t like this language at all, it is really great.
-
Python is really simple enough that I enjoy using it to learn various theoretical concepts, such as recommendation systems, Bayes’ theorem, natural language processing, and more.
-
JavaScript, see below.
Data Visualization
In some of the books I have read in the past, Processing was mainly used as a visualization language—it started in 2001, initially created for artists and designers, and later became a comprehensive design and prototyping tool that can be used in the field of complex data visualization.
Processing was brought into the web domain, resulting in Processing.js, and D3.js also emerged.
Of course, there are also tools like Plotly, Leaflet, Sigma JS, and more.
Mobile Applications
Mobile Applications: Cordova
Next is PhoneGap (now Cordova), which brought WebView to mobile applications, and brought JavaScript to mobile applications.
Using Cordova allows us to develop once and publish on multiple platforms. We should also mention Ionic, as a leader in hybrid applications:
Mobile Applications: React Native
Since we have already mentioned Cordova, we should also talk about React Native. It also allows for development once and running multiple times:
Although there are still many pitfalls, it is still worth looking forward to.
Server Side
It was the performance of V8 that brought JavaScript to a new height, leading to the birth of Node.js—JavaScript can be used on both the front-end and back-end, marking the era of full-stack JavaScript.
Mongodb as the database, Express as the server-side MVC, they can provide a RESTful service, and with the MVVM framework Angular.js, you know what I mean.
Desktop Applications
NW.js runs on Chromium and Node.js, allowing us to create desktop applications using HTML and JavaScript. In addition to NW.js, there is also the recently popular Electron, which powers the Atom editor.
Unlike Cordova’s multi-platform builds of multiple versions, Electron can build applications for multiple platforms on a single platform. That is, we can package applications for Linux and Windows on Mac OS without recompiling on Windows.
It brings consistency between desktop and web. The most successful case is Slack, which is valued at $3 billion:
So, if you use the desktop version of Slack, it will be very laggy~
Cross-Platform Applications
Remember the article I wrote titled “Building Cross-Platform Applications for Mobile, Desktop, and Web with One Codebase“? Running Ionic on Electron means infinite possibilities.
Anything that can be done with web development should be done with the web.
Games
Since WebGL was introduced into the browser, it has opened up a new world.
Let us forget about compilation, starting updates, plugins, and other issues, and we can run directly after development.
VR
If you have seen my previous article “Applications of JavaScript in the VR World“, you will have more impressions of this content.
The main idea is still to render VR perspectives through WebView:
And various browser vendors are promoting WebVR to provide support for virtual reality devices.
AR
Although most AR applications may be a bit far from us, the closest one is Leap Motion—it can utilize hand and finger movements for input without requiring hand contact or touch.
Similarly to VR, it reads data from sensors and processes the gestures on the browser side. For details, you can refer to my previous article: “Leap Motion JavaScript Development: Basics of Gesture Control“.
Hardware
Earlier, I saw that Arduino encapsulated APIs in a DSL way during compilation. NodeMCU built-in Lua language support allows beginners to start using Lua. Tessel natively provides a JavaScript runtime environment, allowing us to run JavaScript directly.
Tessel 2 is relatively high-end hardware, but what about low-end hardware?
Samsung designed the JerryScript engine, which can run on less than 64KB of memory, with all code able to be stored in less than 200KB of read-only memory (ROM).
Just thinking about it makes the future seem bright.
Internet of Things
Wait a minute, the IoT.js launched by Samsung above means it can already be applied in the IoT field. Why would there still be applications here? I just want to mention this briefly:
What was mentioned above is only Node.js’s application in the web, while the IoT differs greatly from the web in that it can use various protocols, all of which require Node.js support.
Therefore, if we need to start web or mobile applications, we naturally need it as the backend.
Operating Systems
Although better machines bring better performance, it is clear that the demand for native applications is not as strong. Firefox OS has failed in the mobile operating system, but this operation has been brought to the IoT field:
This means we can use JavaScript to develop the interface of the operating system.
What do you think JavaScript can do?
For more exciting content, please follow my WeChat public account (Phodal)