https://www.infoq.com/news/2021/01/java-turns-25/ BT Toggle Navigation Facilitating the spread of knowledge and innovation in professional software development More * About InfoQ * InfoQ Editors * Contribute * About C4Media * Media Kit Contribute Search [ ] [Search] Sign Up / Login Email [ ] Password [ ] [Login] Forgot password ? InfoQ Account Email [ ] [Send Recovery Email] Back to login Resend Activation [ ] [Resend] Back to login Login with: Google Microsoft Twitter Facebook Don't have an InfoQ account? Sign Up Notifications 1 Login to unlock InfoQ's new features * Stay up to date and get notified * Like your favorite content * Follow your favorite editors and peers Sign Up / Login Don't have an account? Register Here Logo - Back to homepage * En * Zhong Wen * Ri Ben * Fr * Br 1,609,605 Dec unique visitors News Articles Presentations Podcasts Guides Topics Development * Java * Kotlin * .Net * C# * Swift * Go * Rust * JavaScript Featured in Development * The Kollected Kode Vicious Review and Author Q&A Addison Wesley Professional The Kollected Kode Vicious by George V. Neville-Neil aims to provide thoughtful and pragmatic insight into programming to both experienced and younger software professionals on a variety of different topics related to programming. InfoQ has taken the chance to speak with author Neville-Neil about his book. The Kollected Kode Vicious Review and Author Q&A All in development Architecture & Design * Architecture * Enterprise Architecture * Scalability/Performance * Design * Case Studies * Microservices * Service Mesh * Patterns * Security Featured in Architecture & Design * Service Mesh: Past, Present and Future Idit Levine discusses the unique opportunities presented in service mesh for multi-cluster and multi-mesh operations. Service Mesh: Past, Present and Future All in architecture-design AI, ML and Data Engineering * Big Data * Machine Learning * NoSQL * Database * Data Analytics * Streaming Featured in AI, ML & Data Engineering * Building an SQL Database Audit System Using Kafka, MongoDB and Maxwell's Daemon In this article, the author discusses the importance of a database audit logging system outside of traditional built-in data replication, using technologies like Kafka, MongoDB, and Maxwell's Daemon. Building an SQL Database Audit System Using Kafka, MongoDB and Maxwell's Daemon All in ai-ml-data-eng Culture & Methods * Agile * Diversity * Leadership * Lean/Kanban * Personal Growth * Scrum * Sociocracy * Software Craftmanship * Team Collaboration * Testing * UX Featured in Culture & Methods * Evan Leybourn on Responding to Uncertainty Using Business Agility In this podcast recorded at the Agile Christchurch conference, Shane Hastie, Lead Editor for Culture & Methods, spoke to Evan Leybourn about the characteristics of agile organisations and how they respond to disruption. Evan Leybourn on Responding to Uncertainty Using Business Agility All in culture-methods DevOps * Infrastructure * Continuous Delivery * Automation * Containers * Cloud * Observability Featured in DevOps * IBM's Principles of Chaos Engineering Haytham Elkhoja discusses the process of getting engineers from across to agree on a list of Chaos Engineering principles, adapting existing principles to customer requirements and internal services. IBM's Principles of Chaos Engineering All in devops EventsNew Helpful links * About InfoQ * InfoQ Editors * Contribute * About C4Media QCons from around the world Upcoming Events * InfoQ LiveFeb 16, 2021 * QCon PlusMay 17-28, 2021 * QCon San FranciscoNov 1-5, 2021 Choose your language * En * Zhong Wen * Ri Ben * Fr * Br Featured: More * Streaming * Machine Learning * Reactive * Microservices * Containers * Observability * Security QCon Plus biggest saving before Feb 6th InfoQ Homepage News Java 1.0 Turns 25 Java Safe and Sane: Deployment and Launch with Reduced Risks (FEB 11th Webinar) - Save Your Seat Java 1.0 Turns 25 Like Print Bookmarks Jan 23, 2021 5 min read by * Alex Blewitt On January 23rd, 1996, Sun Microsystems published a press release announcing the availability of Java 1.0: Palo Alto, CA - January 23, 1996 - JavaSoft, the newly-formed operating company of Sun Microsystems, Inc., today announced that the Java(tm) 1.0 programming environment is now available for download at http://java.sun.com. "Java's write-once-run-everywhere capability along with its easy accessibility have propelled the software and Internet communities to embrace it as the de facto standard for writing applications for complex networks," said Alan Baratz, JavaSoft's newly appointed president. "We're delighted to invite developers to download Java 1.0 immediately and start building the next killer application." "Improving Java to create this strong 1.0 general release has been a great achievement for our team," said Ruth Hennigar, general manager of Java language and applications, JavaSoft. "Since our first alpha release to the web in March we have received a lot of developer feedback and have improved functionality and reliability. This release incorporates the components that software developers have told us they need -- the Java Applet Viewer for running and testing applets; the Java Compiler; a prototype debugger and the Java Virtual Machine to run Java-based programs. We've also included class libraries for graphics, audio, animation and networking." Sun had released alpha versions of Java through 1995, including having its technology available in Netscape Navigator and Mosaic, but the release of the 1.0 version (followed by 1.0.1 and 1.0.2 shortly thereafter) marked the start of a journey which continues to this day. Oracle celebrated Java's 25th birthday of its alpha release last year. The initial success and widespread availability of the up-and-coming internet helped bring Java to the masses, and the fact that the compiler and libraries were available for free was a big change from the availability of tools at that time. Open-source projects like gcc predated it by a decade, but most operating systems only had commercially available tools for building interactive graphical software. The fact that applets could be written, published to the internet, and then made available to run on a variety of different operating systems was unique at the time. In the initial press release, Sun Microsystems said that Java 1.0 was available for Solaris, Windows 95 and Windows NT, and a release for macOS was promised by the end of the following year. When Apple and NeXT merged to create macOS, Java was a default install for the operating system, and the Objective-C runtime was bridged to Java to have JavaWebObjects, a Java-ised port of the Objective-C WebObjects stack. (The legacy of the Java WebObjects stack can still be seen today in some WebObjectApplications, or .woa extensions, on some of Apple's sites.) IBM promised to provide ports for OS/2 and Windows 3.1, and has been a Java licensee ever since. Although Java has evolved over the years, the core of the JVM has maintained stability - to the point where applications compiled with Java 1.0 can still be run on modern JVMs, albeit much faster. The bytecode format has (largely) remained unchanged; instead, the evolution has introduced few bytecodes (e.g. invokedynamic) and additional attribute types (module-info) as time has progressed. Some, like generics, were introduced in a backwards compatible fashion in Java 1.2 requiring no changes, so that they could continue to run on older JVMs. Sadly, JVMs were often used as a vector for security vulnerabilities and frequent updates to the JVMs in browsers were required to stay safe. As the popularity of other in-browser plugin types (like Flash, which we said goodbye to earlier this month), Java was relegated from the browser to the server, where it grew in popularity with the J2EE platform (now JakartaEE). In-browser technologies continue to be a vector for malware, except this time the JIT that is being targeted is the one executing JavaScript, whose name owes its existence to Java's early release into browsers but is otherwise unrelated. Java has rarely been out of the top of the programming tables over the intervening period, trading places with C for the top two spots, and with Android's release using the Java source code (if not the name) for powering its Dalvik VM applications, looks set to stay with us for another decade. The continuation of C-like syntax and its adamant following of semi-colon-at-the-end-of-the-line may look dated, but at the time gave C developers an easy transition into the language. Unlike C programs compiled in 1996, Java applications still run -- and significantly faster, thanks to the evolution of 32-bit and then 64-bit JVMs and advanced garbage collectors like Shenandoah and ZGC. Java's success in the embedded space -- which after all, was originally designed as a set-top-box programming language -- isn't nearly so visible. Although Java is present on Blu-Ray and the JavaCard specification in SIMs and PIN chips, it perhaps didn't set a revolution off in the IoT world. However, embedded Java is lucrative and one of the reasons for the Oracle purchase of Sun Microsystems, who continues to steward the language and the runtime in an open environment to this day, including the release of OpenJDK which brought GPL to the codebase (although Java was freely available, it wasn't open-source until after the acquisition). Perhaps Java's lasting legacy is not just bringing object-orientation to internet-enabled browsers, but the JVM itself. As both Java (and for that matter, JavaScript) have shown, if you have a language where the runtime is processor agnostic (JVM bytecode, JavaScript source code, WASM) then an execution or translation engine can then execute that code regardless of platform. This, more than anything else, has allowed the hardware to evolve - from 32-bit to 64-bit, from PowerPC to ARM to RISC-V - and still not require any compiled code changes from the original author. The JVM is no longer used by Java alone, but by other languages built on top of it such as Java-inspired derivatives like Kotlin and Scala, to non-Java languages like JRuby and Jython. Oracle's Truffle and GraalVM projects show how you can build a JVM on top of Java and optimise languages that wouldn't otherwise be able to take advantage of those run-time optimisations. And as Java the language evolves, introducing lightweight threads and records, those changes will move the JVM forward to support more exotic runtimes in the future. Java and the JVM may be approaching middle-age, but they've got decades of use and improvements still to come. What was the first version of Java that you used? Let us know in the comments below. Rate this Article Adoption ( ) ( ) ( ) ( ) ( ) Style ( ) ( ) ( ) ( ) ( ) [ ] [Submit] [ ] [Submit] [ ] Author Contacted This content is in the Java topic Related Topics: * Development * Java * Related Editorial * Related Sponsored Content * Related Sponsor [LaunchDark] + Feb 11, 2021, 10:00AM PST Safe and Sane: Deployment and Launch with Reduced Risks Presented by: Heidi Waterhouse, Principal Developer Advocate SPONSORED BY LAUNCHDARKLY Save your seat Related Content * Apache Netbeans 12.2 Supports Java 14 and 15 * Java Feature Spotlight: Pattern Matching Java Feature Spotlight: Pattern Matching * How the HotSpot and Graal JVMs Execute Java Code How the HotSpot and Graal JVMs Execute Java Code * A Year with Java 11 in Production! A Year with Java 11 in Production! * Java InfoQ Trends Report--September 2020 Java InfoQ Trends Report--September 2020 * TornadoVM: Java for GPUs and FPGAs TornadoVM: Java for GPUs and FPGAs * Red Hat Releases OptaPlanner 8 * AdoptOpenJDK Welcomes Dragonwell * What's New in MicroProfile 4.0 * Donkey: a Highly-Performant HTTP Stack for Clojure Donkey: a Highly-Performant HTTP Stack for Clojure * Azure + Spring Boot = Serverless - Q&A with Julien Dubois Azure + Spring Boot = Serverless - Q&A with Julien Dubois * Maximizing Applications Performance with GraalVM Maximizing Applications Performance with GraalVM * Running Axon Server in Docker and Kubernetes Running Axon Server in Docker and Kubernetes * Cockroach Labs 2021 Cloud Report: GCP Outpaces Azure and AWS * New Rust-Based JavaScript Tool Manager to Simplify CLI Management with Global Installs * The \"Wasmer\" WebAssembly Runtime is Generally Available * Certainty in Uncertainty: Integrating Core Talents to Do What We Do Best Certainty in Uncertainty: Integrating Core Talents to Do What We Do Best * Learn about the Most In-Demand Skills from Expert Practitioners at QCon Plus, May 17-28 * The Kollected Kode Vicious Review and Author Q&A The Kollected Kode Vicious Review and Author Q&A * AWS Introduces HealthLake and Redshift ML in Preview * HashiCorp Announces Public Beta of HCP Vault * Becoming Personally Agile for Mental Health * Microsoft Introduces Azure Health Bot * Yari, the New MDN Web Documentation Platform * Rust China Conf 2020 Showcases Production-Ready Rust Applications * Interview about JavascriptLandia, the Openjs New Individual Contributor Program Interview about JavascriptLandia, the Openjs New Individual Contributor Program * New Deno Module Builds and Compiles Vue Applications * Cloudflare's Origin CA Issuer: an Extension to the K8s cert-manager * No-Code App Development is Essential for Digital Transformation * TensorFlow 2.4 Release Includes CUDA 11 Support and API Updates * Training from the Back of the Room and Systems Thinking in Kanban Workshops: Q&A with Justyna Pindel Training from the Back of the Room and Systems Thinking in Kanban Workshops: Q&A with Justyna Pindel * Grafana Labs Announces Updates to Its Grafana Cloud with a Free Tier, New Pricing and Features * Generics Enter Go Change Proposal Process * New Haskell-Based Web App Specification Language Released in Alpha * AWS Launches Amazon DevOps Guru * AWS Transfer Family Introduces Support for EFS * How Teams Can Overcome the Security Challenges of Agile Web App Development How Teams Can Overcome the Security Challenges of Agile Web App Development * Service Mesh: Past, Present and Future Service Mesh: Past, Present and Future * Sysdig: Container Security Shifting Left, Docker Usage Shrinking * Being Secure by Default Being Secure by Default The InfoQ Newsletter A round-up of last week's content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example Enter your e-mail address [ ] [ ] Select your country [Select a country] [ ] I consent to InfoQ.com handling my data as explained in this Privacy Notice. [Subscribe] We protect your privacy. Hello stranger! You need to Register an InfoQ account or Login or login to post comments. But there's so much more behind being registered. Get the most out of the InfoQ experience. Tell us what you think [ ] [ ] Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p [ ] Email me replies to any of my messages in this thread [Post Message] Community comments Watch thread Close Your Reply Quote original message [ ] [ ] Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p [ ] Email me replies to any of my messages in this thread [Post Message] Cancel Close Your Reply [ ] [ ] Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p [ ] Email me replies to any of my messages in this thread [Post Message] Cancel Close OK Discuss * Development + The "Wasmer" WebAssembly Runtime is Generally Available + The Kollected Kode Vicious Review and Author Q&A + Yari, the New MDN Web Documentation Platform * Architecture & Design + Learn about the Most In-Demand Skills from Expert Practitioners at QCon Plus, May 17-28 + No-Code App Development is Essential for Digital Transformation + Service Mesh: Past, Present and Future * Culture & Methods + Evan Leybourn on Responding to Uncertainty Using Business Agility + Certainty in Uncertainty: Integrating Core Talents to Do What We Do Best + Becoming Personally Agile for Mental Health * AI, ML & Data Engineering + AWS Introduces HealthLake and Redshift ML in Preview + TensorFlow 2.4 Release Includes CUDA 11 Support and API Updates + AI Models from Google and Microsoft Exceed Human Performance on Language Understanding Benchmark * DevOps + Cloudflare's Origin CA Issuer: an Extension to the K8s cert-manager + AWS Launches Amazon DevOps Guru + Sysdig: Container Security Shifting Left, Docker Usage Shrinking The InfoQ Newsletter A round-up of last week's content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example * Get a quick overview of content published on a variety of innovator and early adopter technologies * Learn what you don't know that you don't know * Stay up to date with the latest information from the topics you are interested in Enter your e-mail address [ ] [ ] Select your country [Select a country] [ ] I consent to InfoQ.com handling my data as explained in this Privacy Notice. [Subscribe] We protect your privacy. QCon Events Registration Open Learn the trends, best practices and solutions applied by the world's most innovative software practitioners to help you validate your software roadmap. Join us for an online experience for senior software engineers and architects spaced over 2 weeks. May 17-28, 2021 Home Create account Login QCon Conferences Events Contribute InfoQ Editors About InfoQ About C4Media Media Kit Events * InfoQ Live Feb 16th, 2021 * QCon Plus May 17-28, 2021 * QCon San Francisco Nov 1-5, 2021 * QCon Sao Paulo 2021 Follow us on Youtube187K Followers Linkedin16.1K Followers RSS19K Readers Twitter48k Followers Facebook20K Likes AlexaNew Stay in the know The InfoQ Podcast[infoq-podc] Engineering Culture Podcast[engineerin] The Software Architects' Newsletter[architects] General Feedback feedback@infoq.com Advertising sales@infoq.com Editorial editors@infoq.com Marketing marketing@infoq.com InfoQ.com and all content copyright (c) 2006-2021 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with. Privacy Notice, Terms And Conditions, Cookie Policy BT Is your profile up-to-date? Please take a moment to review and update. Email Address* [ ] Note: If updating/changing your email, a validation request will be sent Company name: [ ] Keep current company name Update Company name to:* [ ] Company role: [ ] Keep current company role Update company role to:* [ ] Company size: [ ] Keep current company Size Update company size to:* [ ] Country/Zone: [ ] Keep current country/zone Update country/zone to:* [--- Select a country --- ] State/Province/Region: [ ] Keep current state/province/region Update state/province/region to: [] [ ] Subscribe to our newsletter? [ ] Subscribe to our architect newsletter? [ ] Subscribe to our industry email notices? [ ] By subscribing to this email, we may send you content based on your previous topic interests. See our privacy notice for details. [ ] Subscribe to our Special Reports newsletter? [Submit] You will be sent an email to validate the new email address. This pop-up will close itself in a few moments. *