Before James Gosling created Java, platform-specific compiled languages like C/C++ were dominant high-level languages. Programmers had to write codes for each platform by using platform-specific APIs. Some programmers created a single codebase for all platforms by separating code with conditional statements. On the other hand, some programmers wrote codebases for each platform separately. Even though writing platform-specific brings a lot of benefits such as flexibility, customizability, and performance — the business side of the software development needed a way to ship cross-platform software products fast.
From the business perspective, making a software product is about making it correct and making it fast by using human resources efficiently. Java took this opportunity to enter the software development market. It’s not about OOP (Java is not the first OOP-based language), and it’s not about performance (C/C++ languages are undoubtedly faster than Java). It’s all about making software fast and shipping products fast.
- Web backends: Nodejs and Deno.
- Desktop applications: Electron, NW.js, and Neutralinojs.
- Mobile applications: Ionic, React Native, and NativeScript.
- IoT/Robotics programming: NodeMCU, NoDuino, etc.
On the other hand, Java was there already in other places. But, it tried to enter the web browser via the Applet concept and failed.
Goodbye, Native Apps
Hybrid apps are taking over native apps that ran smoothly on both low-end and high-end computers.