It’s 1995 AD and the C language Empire has ruled us for more than 20 years, which is way too long.


In 1972, with the advent of C and Unix, the empire was rapidly established, from North America to Europe, from Europe to Asia, countless programmers under his feet.


The Empire gave us great benefits: close to the hardware, extremely fast, extremely efficient.


With these benefits, programmers have developed a lot of system-level software in C, including operating systems, compilers, databases, and network systems…..


But the empire also imposed two heavy shackles on us: Pointers and memory management


While Pointers are incredibly powerful and can manipulate memory directly, the Empire didn’t give us the tools to do overbounds checks, leaving many novice programmers prone to making mistakes.


As for memory management, the Empire has a much more laissez-faire attitude: you allocate space yourself, you free it up!


What’s more, these problems are not discovered at compile time, but are suddenly exposed at run time, often leaving us scrambling and debugging in the dark.





Much of our time and precious energy is wasted playing around with Pointers and memory allocation.





Every programmer suffers from these two things! The Empire lied to us about portability by claiming that programs we write on one machine can be compiled on another machine, which is not the case. He asked us to use the standard C library as much as possible.
Second, if you get calls for a particular platform, you need to write a copy for each platform! Even the slightest error will cause the compilation to fail.


In 1982, Empire introduced a new language, C++, which added object-oriented functionality, compatibility with C, static type checking, and good performance.


But the new language was so complex that no one smarter than me could master it completely, and its many features were surprisingly complex.


C++ had some success in graphics and games, but I never learned it well. I decided to rebel against this huge empire, I secretly led a group of like-minded brothers to leave, we want to build a fresh and free territory.


In order to attract more programmers to join us, we need to build a new language with features like this:


The syntax is a little bit like C, so it’s easy to accept that you don’t have Pointers like C and you don’t have to think about memory management anymore, you can’t stand it really portability, write once, run object-oriented everywhere type safety and we’re going to provide a good quality library that ships with the language.


I want to call it C++– C++ subtraction, because I want to improve on C++ and simplify it.


It turned out that no, the design concept was too different.


Just restart the stove.


I saw an Oak tree in the doorway and called the language Oak. But when we released Oak, it turned out that someone else was already using it, and we talked about it for a long time until we decided to call the new language Java.


To make it cross-platform, we added an abstraction layer between the operating system and the application: the Java Virtual Machine


Programs written in Java run on virtual machines and, except in rare cases, never see the operating system. In order to attract more people to our new territory, we decided to hold a demonstration to show people what Java could do.


Java is still far from perfect. What can we do?


We looked at the nascent Internet, which in 1995 was simple and crude, lacking in interactivity. So we made a little plug-in in the browser and put the Java runtime environment on it.


Then I developed a graphical interface program (Applet) on it, and made it look beautiful and stunning.


Every programmer who saw him said, “Wow!” Fall for it.


Java live!


Through applets, countless programmers were introduced to Java, and after learning about the language’s features, many of those who could not tolerate the tyranny of the C empire soon joined us, and our territory began to expand rapidly.


Some of the biggest names in the C language empire have come to work with us, including Oracle and Microsoft, whose head, Bill Gates, said, “This is the best language ever designed!”


Bill Gates bought our Java license, supported applets on his browser, but secretly tried to change Java to make money by tying it to his operating system and making It unportable.


This was too much for us, and we waged a long guerrilla war with Microsoft, forcing them to withdraw from Java and develop their own. NET, this is a later story. From 1995 to 1997, we relied on Java to continuously conquer territory and expand our territory. Our kingdom’s population continued to increase, reaching hundreds of thousands of people, which was already a force to be reckoned with. But people found that Java didn’t seem to do much more than applets and small programs.


The c-empire people also teased us for being slow, like toys.


Then in 1998, after some intrigue, we in the Java kingdom decided to send three armies to expand out: Java 2 Standard (J2SE) : to take over the desktop Java 2 Mobile (J2ME) : to take over the mobile Java 2 Enterprise (J2EE) : to take over the server


Two of these armies were soon defeated.


The leaders of J2SE discovered that Java was unacceptable to programmers developing desktop applications, and that although we had elegant Swing interfaces, the interfaces were ugly and far from native desktops. Especially when you have to install a virtual machine in order to run the program.


J2ME, too, has been a flop, more importantly because Steve Jobs hasn’t reinvented the phone and the mobile Internet hasn’t started yet.


J2EE caught up with the good times, the Development of the Internet, everyone suddenly found that Java is simply invented for writing server-side programs!


Powerful, robust, secure, simple, cross-platform!


Under the guidance of the J2EE specification, it is particularly suitable for teams to develop complex large-scale projects.


We licensed BEA to use the first J2EE license and launched Weblogic, which first demonstrated the scalability and high availability of complex applications with its clustering capabilities.


This middleware, as it came to be known, freed programmers from transaction management, security management, permission management, etc., and allowed them to focus on business development. This immediately captured the hearts of many programmers.


Soon there were millions of people in the Java kingdom.


The power of the example was immense, and soon other business giants joined in, notably IBM, which invested wildly in Java,
Not only did he develop his own application server, Websphere, but he also launched Eclipse, an attractive open source development platform.


Of course, IBM has made a lot of money with Java, and the software + hardware + services troika is rolling forward, pushing IBM to new heights. Not only commercial giants, but also programmers have developed a huge number of platforms, systems and tools based on Java. For example:


Build tools: Ant, Maven, Jekins


Application servers: Tomcat, Jetty, Jboss, Websphere, WebLogic


Web development: Struts,Spring,Hibernate, myBatis


Development tools: Eclipse, Netbean, Intellij IDEA, Jbuilder… Wait, wait, wait…


And most of them are open source!


Microsoft has seen the server side of the market taken over by the Java empire. They rushed.net to fight it, but we didn’t care anymore, because their system was closed and all the software was their own: the development tools were Visual Studio, the application Server was IIS, the database was SQL Server,
Whenever you use.NET, you’re basically tied to Microsoft.


And their system only runs on Windows servers, which have a very low share of the high-end market.


At the end of 2005, a new kingdom sprang up claiming to be five to 10 times faster than Java, attracting a lot of programmers.


This new kingdom, called Ruby on Rails, combines the best of PHP (rapid development) with the best of Java (procedural discipline), making it especially suitable for developing simple Web sites quickly.


While it has grown rapidly, it has not posed a real threat to the Java kingdom, and few large-scale commercial systems have been built using Ruby on Rails.



In addition to Ruby on Rails, PHP and Python are suitable for rapid development of less complex Web systems.
But critical, complex business systems development is still ruled by the Java kingdom. So we made peace with them.


In 2006, an army called Hadoop let the Java kingdom invade the big data space. Thanks to the Java language, most programmers can write programs that handle massive amounts of data quickly after they understand the implementation of Map/Reduce, distributed file systems in Hadoop.
The domain of the Java kingdom has been greatly expanded.


In 2008, a system named Android came out of nowhere, and with the explosion of mobile Internet popularity, running on Android is Java!


With the support of Google, The Java kingdom has occupied the mobile terminal in an unexpected way, completing the unfinished business of J2ME in those days!


As of this year, an estimated 10 million programmers around the world have joined the Java kingdom, which is so vast and powerful that no other language can match it.


Java accounts for most server-side development, especially for critical complex systems, most mobile, and most big data.


A great empire was born.


How long can the empire survive?
Who would destroy this vast empire?


I don’t know, do you?

Hot articles:

I’m a thread

I’m a Java class

Javascript: A loser’s counterattack

Wang’s path as an architect

The skills a programmer needs to do his job

TCP/IP of the Ming Dynasty mailman

CPU forrest gump

Why is IE killing Chrome and Firefox

Node.js: ALL I need is a waitress

Suppose I am a computer science teacher

This is how I would learn Java if I could go back in time

Learn programming, not Java

15 years of programming career, 7 experiences summarized by senior architect