Google Releases Android Studio IDE 'Arctic Fox' to Beta with Jetpack Compose Integration

Google kicked off its 2021virtual I/O conference this week with a multiple-camera keynote staged outside on the Googleplex campus in Mountain View, CA, that included a number of announcements for developers.

Topping the list of dev-related announcements at this year's event: the latest version of the Android Studio IDE, Arctic Fox (2020.3.1), gets released to beta. Among the many updates and enhancements in this release, the standout is the integration of Google's native UI toolkit Jetpack Compose, the 1.0 release of which is due in July.

Jetpack Compose is a Kotlin-based declarative design framework for Android, desktop, and the web. (Desktop and web development is managed by the IntelliJ IDEA IDE.) It's used to create previews in different configurations and allows developers to navigate their code with Compose Preview, test it in isolation with Deploy Preview to Device, and inspect the complete app with Layout Inspector. Throughout iterations, devs can quickly edit strings and numbers and see immediate updates. Plus, with the Accessibility Scanner in Layout Editor, the View-based layouts are audited for accessibility problems. Jetpack Compose is designed to work with existing code and can be added to existing apps.

Google announced the alpha release if Jetpack Macrobenchmark, which helps developers analyze startup and animation lag in apps and pinpoint related issues.

Kotlin itself got a nod at the conference, including the announcement of a stable release of a new annotation processor API, called Kotlin Symbol Processing, which Google said should be as much two times faster than previous options, and generally more efficient. And the Kotlin DataStore, a Kotlin-first alternative to SharedPreferences, has entered beta.

The Arctic Fox release also adds support for Live Editing of literals, which means developers using Compose can edit literals (strings, numbers, Booleans) in their code and see the results immediately without needing to wait for compilation. "The goal of the feature is to increase your productivity by having code changes appear near instantaneously in the previews, emulator, or physical device," explained Paris Hsu, interaction designed from Google's Android product and design group, explained in a blog post.

There's also new support for Google's Wear OS, Google TV, and Android Auto via new emulators and system images, not to mention the Samsung Galaxy Z Fold 2.

And there's a list of new features and improvements in Arctic Fox that come with a major update of the IntelliJ IDEA IDE (v2020.3), which allows developers to test their apps with new features in Android 12, improve app performance with the updated UI for Memory Profiler, understand background task relationships with WorkManager Inspector (which allows devs to schedule deferrable, asynchronous tasks that must be run reliably), and use Non-Transitive R classes IDE Refactoring to increase build speed.

Speaking of IntelliJ, the Arctic Fox beta includes the IntelliJ 2020.3 platform release; you'll notice Arctic Fox 2020.3.1 employs a similar numbering system. Hsu explained in her post:

As we announced late last year, we've changed our version numbering scheme to match the number for the IntelliJ IDE that Android Studio is based on, 2020.3, plus our own patch number, as well as a handy code name to make it easier to remember and refer to. We'll be using code names in alphabetical order; the first is Arctic Fox, now in beta, and the next is Bumblebee, now in canary.

The beta of Android Studio Arctic Fox is available now for download, as is the canary build of Bumblee (2021.1.1) here.

Posted by John K. Waters on May 19, 20210 comments

New Azul Java Platform Addresses Challenges of the Enterprise Cloud

Open-source Java development tools and runtimes provider Azul has announced plans to unite its commercial products into a single "Java platform for the modern cloud enterprise." Called the Azul Platform, it bundles the company's Zulu builds of OpenJDK and its Zing Java Virtual Machine (JVM), under a new set of services called the Azul Intelligence Cloud.

Users of the company's products will be able to develop, deliver, optimize, and manage their Java applications via this new platform, the company says.

"What we're doing with the platform is providing a more holistic vision of Java and the enormously popular OpenJDK," Azul CEO Scott Sellers told me. "There's a lot more to Java these days, with cloud and hybrid cloud deployments taking it to a whole new level. Java was architected more than 25 years ago for a different day and age and a different set of metrics. The higher-level capabilities we're providing we think are critical for Java's continued success. And we're providing them in a very developer-friendly, open-source manner consistent with ongoing community efforts around OpenJDK."

Sunnyvale, Calif.-based Azul bills itself as the only vendor focused exclusively on Java and the JVM. It's Zulu builds of OpenJDK are tested and certified open-source Java Development Kits (JDKs) that are free to download and use without restrictions, with optional support available via subscription plans. Its Zing "no pause" JVM is based on Oracle's HotSpot, a core component of Java Standard Edition.

Clearly, there's a lot of rebranding going on with this announcement. In the context of the new platform, "Zulu Enterprise" and "Zulu Embedded" are now "Azul Platform Core." And "Zing" is now "Azul Platform Prime." And the company has a new logo. But it's also true that Azul is uniting it's sturdy product catalog into a platform with additional features and capabilities enabled by the changes—not to mention a new solution that will pull it all together: The Intelligence Cloud.

This latter, pending addition to the product lineup is the most intriguing part of the announcement, because, among other things, Zulu and Zing are well known products, and the Intelligence Cloud won't actually be available until the second half of 2021.

The new Azul Intelligence Cloud comprises three components:

  • The Azul Analytics Suite, an analytics platform designed to provide "actionable operational intelligence" around artifact  inventory management, security, and anomaly detection.
  • The Azul Optimizer Suite, made up of "optimization" modules for Azul’s builds of OpenJDK that enable "increased levels of performance and throughput completely transparent to the application code."
  • Connected Runtime Services (CRS), which connect Azul runtimes to facilitate communication with the analytics platform and optimization engines.

By uniting Zing and Zulu under the Intelligence Cloud, the company is aiming to provide a new level of "visibility, management, security, stability, efficiency, optimization and operational intelligence across entire Java estates."

"This broader platform offering is what we think it takes to as serious enterprises look to evolve their Java strategies," Sellers said. "Sun, and now Oracle, have done right by them for a long time, and we believe we're evolving into a more interesting and exciting future. But that future requires a broader vision, and we're providing that with the new platform."

The company promises delivery of the new platform later this year.

Posted by John K. Waters on May 12, 20210 comments

Oracle's 'State of the Penguin' Updates Penguinistas of Multiple Persuasions

Oracle Linux users in North America are gathering online tomorrow (Thurs. May 6, 10am PT) for the latest edition of the State of the Penguin. Wim Coekaerts, Oracle Software Development SVP and Linux Foundation Vice Chairman, will be leading what promises to be an enlightening conversation about the industry landscape, customer use cases, and the latest Oracle Linux technologies, including containers, KVM, open-source contributions, and developer tools, all to help Penguinistas "explore possibilities and update your plans."

Coekaerts' co-host for the event will be Sergio Leunissen, VP in Oracle’s infrastructure engineering team. Leunissen currently leads initiatives to deliver solutions for developers on Oracle’s operating system and Oracle Infrastructure Cloud, and he’s responsible for Oracle’s presence on GitHub.

I had the opportunity to talk with Coekaerts about the event last week. He's widely described as an "industry luminary," an appellation I found to be something of an understatement. He led the last online State of the Penguin, held six months ago.

"We're trying to provide an update on a regular basis to users of Oracle Linux, specifically, but also Linux in general," Coekaerts told me. "We want to let the community know what we're doing, and the 'state of the penguin' was just sort of a good headline for that."

The event will take the form of an informal Zoom chat, Coekaerts said, without the usual structured Power Point presentations offered by most webinars (though there will be some slides). It's planned as a true Q&A session, reminiscent of the original "state of" events at the annual Oracle OpenWorld conference.

The event definitely gives Big Red a stage to blow its own horn about its contributions to the Linux community. Coekaerts reminded me that Oracle is consistently among the top three or four contributors to the Linux kernel, that the company is consistently adding features and lots of lines of code, all of which is readily available for code review.  

"People don't realize how many code reviews we do," he said, "and they sometimes forget that doing code reviews and sign-offs is a big part of why Linux is as good as it is. Everyone looks at everyone else's code and provides comments and they formally say, I put my name on this, I looked at it and I agree that it's good code. A lot of that stuff is done by the people in our team."

I asked Coekaerts what was top-of-mind for him as the "state-of" event approaches. He pointed to the work his company has done on Linux on ARM-based chips. "We put a lot of effort into making Linux run really well on ARM on the server," he said, "and we've been applying all the knowledge we've gathered over the years on how to make a good server platform from an operating system point of view. We're taking that knowledge and basically applying it to ARM, because, although it has been around a long time for 32-bit servers, it has not for 64-bit servers."

He also pointed to the work Oracle has done on security around the QEMU hosted virtual machine monitor.

"The way QEMU works, it's one process that runs along with the VM," he explained. "And so there has been a concern that if the VM has a sort of backdoor into QEMU, you get to the host and there's a control platform. We have done a huge amount of work separating that, so there's one process running for managing QEMU, and another process that actually contains the stuff the VM needs. We've isolated the address space, and that's very important from a security point of view. And there's nothing in this that's specific to Oracle. Everyone else can make use of it."

Coekaerts' team is also working on a new memory access strategy that takes into account the drive toward higher core counts, and the resulting contention on locks in the kernel.

"What tends to happen as the cores grow is that people run more processes, so there's more contention on locks in the kernel," he explained. "So, as we run the database, for example, we discovered that there are significant performance impacts on getting access to virtual memory."

Coekaerts' team also came up with a new way of dealing with memory access called "Maple Tree."

"It went upstream into the kernel," he said. "I think it's a good example of how we try to make Linux better, in general."

Coekaerts felt it was important to mention that the complete Oracle Linux kernel, with the complete change logs starting from Linux 3.0, are available on GitHub. "Every change we make, all the errata, every bug fix—it's all publicly out there," he said.

With the release of Oracle Linux 8.4 on the horizon, attendees can also expect to get a peek at the roadmap, Coekaerts said, including an update on the Ansible product, Oracle Linux Automation Manager, the upcoming Oracle Cloud Native Environment 1.3 (basically an uptake of the latest version of Kubernetes), and upcoming releases of Unbreakable Enterprise Kernel (UEK) for Oracle Linux.

There's more on the agenda, and Coekaerts had a lot to say, but I don't want to give away any plot twists. Anyone can register to attend the event.

Posted by John K. Waters on May 5, 20210 comments

InfluxDB Makes it Easier for Disparate Devs to Collaborate on Time Series Data

The challenges of building applications that need to handle the massive volumes and countless sources of time-stamped data produced by sensors, applications, and infrastructure are myriad. Because of the uniquely critical need for efficient communication among dev team members working with what is known as "time series" data is critical, distributed teams especially challenged.

Enter time series database provider InfluxData, which recently announced a solution to this challenge, at least within the InfluxDB Cloud. The new InfluxDB Notebooks allows developers to discuss time series data analyses and trends inside the platform, so team members don't have to use third-party messaging apps, which can slow them down significantly. This new capability allows users to create what the company calls "a durable artifact" that shows teams how time series data is analyzed to solve business problems.

"Development teams are more distributed than ever, but until now, they haven’t had the tools they need to seamlessly communicate around time series data," said Russ Savage, director of product management at InfluxData, in a statement. "To solve this problem, we’ve reimagined InfluxDB as a way to collaborate around data, not just store it. This new approach will dramatically save time for developers, so they can focus on building software."

InfluxData provides a time series database platform aimed at developers building Internet of Things (IoT), analytics, and monitoring software. The company's new InfluxDB Notebooks adds a number of capabilities to the platform, including

  • Design time series data pipelines with dynamic data, live code, and real-time visualizations — all with inline explanatory notes. This capabilities allows dev team members to show their work and sharing it with others.
  • The ability to share incident investigations to explain root causes following service outages, and to build "runbooks" to avoid future outages.
  • The ability to document how Internet of Things sensor data has been collected, normalized, enriched, and "downsampled" to facilitate preventive maintenance and forecast device obsolescence.

The company says it plans to add another new capability to its platform: InfluxDB Annotations, which will make it possible to add notes directly on dashboard cells to more quickly highlight and explain the meaning of anomalies in time series data, and to coordinate troubleshooting efforts. It will be used to capture context and share details about ongoing investigations into outlier data points that are underway.

This capability will save teams time "by eliminating the need for multiple people to repeat the same investigation," the company says. Both features are designed to support "better collaboration workflows between developers,  SREs, and every stakeholder involved in time series collection, enrichment, and analysis."

Where InfluxDB Notebooks allows teams to "weave together computational information" such as code, data, and statistics with narrative and graphs, InfluxDB Annotations will help developers "share contextual clues" so they can quickly determine the root cause of incidents and restore services faster.

Posted by John K. Waters on April 29, 20210 comments

Clash of the Titans: The Consequences of Google v. Oracle

An epic battle between titans splashed across news banners and came to a history-making end last week. No, I'm not talking about Godzilla vs. Kong, but the decade-long legal clash between Google and Oracle over software copyright and fair use. (I know… I know… but the comparison was just lying there.) 

As I reported earlier, the Supreme Court of the United States (SCOTUS) ruled last Monday that Google did not commit copyright infringement when it used 37 Java APIs in its Android mobile operating system without Oracle's permission. There was a lot of money on the line--Oracle wanted an $8.8 billion piece of Google's Android business and $475 million in lost potential licensing revenue--but there was more at stake here than an obscene amount of cash.

Bill Frankel, shareholder at Chicago-based IP law firm Brinks Gilson & Lione and chair of their copyright group, boiled the issues down for me in an email: 

"This is the first time in 25 years that the Court has taken up a fair use case," Frankel wrote. "In so doing, the Court found the nature of the declaring code different than other types of code because the user interface provides a way for programmers to access prewritten computer code, and that the nature of the use favored a fair use finding. As for the purpose and character of the use, the Court found that Google’s limited copying was transformative because it allowed for the creative development of new software programs.  As for the amount and substantiality of the portions of material used, the Court found that the lines of code taken constituted only 0.4 percent of the entire API at issue and because the amount of copying was tethered to a valid and transformative use. Lastly, as for the effect on the market, the Court held that Android was not a market substitute of Java SE – a point also strongly challenged by the dissent."

I talked with Frankel over Zoom about the consequences of this decision. By not expressly acknowledging the copyrightability of declaring code in API’s, he told me, the high court created a distinction between computer code that is unquestionably copyrightable and code that is “further from the core of copyright” because it facilitates interoperability.

"This approach seems to blur the line between copyrightable and uncopyrightable code on the one hand, and between copyrightability and fair use on the other," Frankel said. "Tech companies may be less incentivized now to innovate and develop APIs, knowing that bigger companies can appropriate their content rather than pay for it (like Google did with Java SE). On the other hand, tech companies may still be able to license their APIs because their copyright status is not fully resolved."

The Court’s fair use analysis actually harkens back to the Google Books decision of the Second Circuit, which equated the public benefit of digitizing books for greater access as being transformative and a fair use of copyrighted material, Frankel pointed out. Google’s use of the Java APIs to create a new Android platform was “use consistent with that creative progress that is the basic constitutional objective of copyright itself," the majority opinion held. 

"Regardless of the balancing of the relevant factors, it undoubtedly will alarm content providers to see the Supreme Court holding another instance of verbatim copying to be 'fair use' under the copyright law," Frankel said.

In his email, Frankel concluded: "The decision in this case creates some unsettling precedent for API software developers concerned about software copyrightability and for content providers concerned about defending against fair use arguments. However, from a policy standpoint, there is some logic to not making software developers reinvent the wheel and spend money to create identical functionality using different forms of expression."

I sent a copy of Frankel's conclusion to virtually all the Java mavens in my contact list, and almost everyone declined to comment, which I think might be seen as a testament to the reach of these two tech titans (not to mention something of a "no comment" record for me). But David Blevins, CEO and founder of Tomitribe, responded almost immediately. "I strongly disagree with the attorney you spoke with and do not see this as setting a precedent but upholding a critical precedent upon which our industry is built. Overturning it after several decades would have had a catastrophic impact."

Tomitribe was created by several founding members of the Apache TomEE community. TomEE is the enterprise Java edition of Apache Tomcat that combines Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPA, Apache MyFaces and others. The company's mission is to "unite businesses using TomEE with responsible and sustainable open source." 

I spoke with Blevins over Zoom. He offered both a legal and an ethical perspective on the issues addressed by the high court. 

"When people in our industry think about this topic, I suspect they're underestimating the breadth and depth of API fair use," he said. "This idea can be traced back to things like light sockets. The reason you didn't have to pay anybody when you made a light bulb to screw into a standard socket is because interfaces were considered fair use, and we needed them to be considered fair use for the industrial revolution to happen. Today, our entire IT industry is built upon that concept. We take it for granted to the degree that we don't truly appreciate the complexities we're not dealing with. If the court had decided that interfaces are now copyrightable to the extent that was being argued, it would have changed our industry dramatically." 

One change a different decision would have caused, Blevins suggested, was a proliferation of copyright trolling. "We would suddenly have a portion of the industry that is now subject to copyright in a way that wasn't important before," he said. You always owned the copyright on your interfaces, but it just didn't matter because of fair use. Without that, just as we have patent trolling now, we'd have interface copyright trolling in our industry. We would see acquisitions for the purpose of suing for API copyright infringement. It would be the next booming field."

But Blevins isn't letting Google off the hook completely. 

"I have a particular perspective on this because of my open-source nature," he said. "Which is why I have to say, if you build something of enormous value, and someone else leverages that thing to critical levels, in the open-source world, the one using it has an ethical responsibility to either contribute to the thing or to you, so you can continue developing the thing they're leveraging. Which is a long way of saying, just because Oracle chose to eventually argue interface copyright infringement, that doesn't mean they didn't have a right to say, hey, we have a relationship. Maybe you could be helping instead of hurting." 

I also wondered why Blevins was the only one to get back to me on this stuff. "I understand that a lot of people might not want to poke the bear—or bears, in this case," he said. "But I'm from the Apache community, and we're not particularly afraid of taking a stand, especially around law pertaining to software. Apache is very much a community that will stand up for the right thing, regardless. And we need that in this industry."

"And just to be clear," he added, "I don't have a problem with Oracle seeking action against Google, per se, as long as the industry isn't damaged in the process of those two giants fighting. And a different decision would have done a lot of damage."

I other words, when King Kong goes toe-to-toe with Godzilla, nobody wins.

Posted by John K. Waters on April 15, 20210 comments

Microsoft Rolls Out OpenJDK Preview Release

Java developers got a preview today of the soon-to-be-released Microsoft build of OpenJDK, a Long-Term Support (LTS) distribution of Redmond's version of the ubiquitous open-source Java dev kit. This preview release includes binaries based on OpenJDK 11 for x64 platforms covering the three major operating systems: macOS, Linux, and Windows.

The Microsoft build of OpenJDK binaries for Java 11 are based on OpenJDK source code, the company says, following the same build scripts used by the Eclipse Adoptium project and tested against the Eclipse Adoptium Quality Assurance suite (including OpenJDK project tests. The binaries for Java 11 have passed the Java Technical Compatibility Kit (TCK) for Java 11, which is used to verify compatibility with the Java 11 specification. 

This build is free, of course, and designed to be a simple drop-in replacement for any OpenJDK distribution available in the Java ecosystem.

Microsoft is also publishing an early access release for Java 16 for Windows on ARM, the company says, based on the latest OpenJDK 16+36 release.

"Java is one of the most important programming languages used today," wrote Java Champ Bruno Borges, principal product manager for Microsoft's Java group, in a blog post. "Developers use Java to build everything from critical enterprise applications to hobby robots. At Microsoft, we’ve seen increasing growth in customer use of Java across our cloud services and development tools. We’re continually working to broaden and deepen our Java support for customers and developers."

As my colleague, David Ramel, pointed out in his report in our sister publication Visual Studio Magazine, "Microsoft jumped on the Java bandwagon in a big way back in 2019 by forming the Java Engineering Group in its Developer Division and acquiring jClarity to optimize Java workloads in its Azure cloud platform (despite the similarities between Java and Microsoft's own C#). "Last year, it ported OpenJDK for Windows 10 on Arm (AArch64)-based devices."

(We also covered Microsoft's assimilation into the OpenJDK ecosystem on ADTmag.)

Scott Sellers, CEO of open-source Java platform provider Azul Systems, sees the release as further evidence of a strong Java ecosystem.

“We believe that a thriving OpenJDK community is key to Java’s continued success," Sellers told me in an email, "and we welcome Microsoft to the impressive list of those offering builds of OpenJDK. This is great news for OpenJDK and Java in general, and further fuels the momentum as enterprises and developers move off proprietary Java offerings to OpenJDK distributions. We look forward to our ongoing collaboration with Microsoft in support of Azure’s Java users and of the Java user community as a whole."

Along with the upcoming Eclipse Adoptium builds of OpenJDK, the community of ongoing OpenJDK distributions currently includes Azul’s Zulu builds of OpenJDK, the Red Hat builds of OpenJDKAmazon’s Corretto builds of OpenJDKSAP’s SAPMachine builds of OpenJDKAlibaba’s Dragonwell builds of OpenJDK, and BellSoft’s Liberica builds of OpenJDK. (Eclipse Adoptium is a continuation of the AdoptOpenJDK project.)

"Our contributions to OpenJDK started small as we learned about the process and how to participate in a meaningful way," Borges wrote. "Over the past 18 months, we contributed more than 50 patches covering areas such as macOS packaging, build and infrastructure, GC fixes, and enhancements for Windows."

In fact, Java has become an essential technology at Microsoft, which once viewed Java's creator, Sun Microsystems, as a mortal enemy, and open-source in general as a danger to the industry. Microsoft currently deploys more than 500,000 Java Virtual Machines (JVMs) internally, the company says, excluding all Azure services and customer workloads with needs that go from back-end microservices to Big Data systems, message brokers, event streaming services, and gaming servers, the company says. More than 140,000 of these JVMs are already based on the Microsoft Build of OpenJDK.

Later this year, the Microsoft Build of OpenJDK will become the default distribution for Java 11 across Azure-managed services, Microsoft said in a statement. "Customers won’t have to perform any maintenance tasks, as the transition will be smooth and transparent through application deployments," the company says. "For all other Azure services, customers can bring their JDK of choice including Microsoft Build of OpenJDK. We will provide more updates on that in the coming months."

Posted by John K. Waters on April 6, 20210 comments

VMware Launches New Multi-Cloud Platform

VMware unveiled a new distributed, multi-cloud platform this week designed to help its customers simplify the adoption and operation of multi-cloud environments.

The pitch for the new VMware Cloud is aimed at both software developers and IT operators. The platform is designed to boost the productivity of devs by enabling them to build and deploy to any cloud. The platform also gives IT the ability to modernize infrastructure and operations with better economics and less risk.

VMware Cloud brings its customers what the company calls "a more integrated experience," via the new Cloud Console, a single monitoring and management environment for VMware Cloud infrastructure, regardless of where it’s deployed; the App Navigator, a new tool for assessing and prioritizing application transformation initiatives across an application estate based on the value of each app; and VMware Cloud Universal , a flexible subscription that simplifies the purchase and consumption of VMware multi-cloud infrastructure and management services.

VMware has been heading for some version of this offering for years—20 of them, more or less. The company justifiably claims some huge numbers: 300,000 organizations have built and run more than 85 million workloads on VMware, and more than 5 million developers have built apps on its technology.

“We are on the cusp of the next evolution of cloud and apps," said VMware COO Raghu Raghuram, in a statement. "Architectures are becoming distributed and increasingly multi-cloud, while modern applications will soon outnumber traditional apps. The challenge for any CIO is to take advantage of this new innovation without introducing more complexity and risk."

VMware Cloud is the solution for this challenge, Raghuram said. It's the only cloud solution that customers can use today in the datacenter and on any cloud to "accelerate their modernization journey with speed, simplicity, and better security."

The company's pitch for the new platform aside, Raghuram offered a great observation about the impact of the quarantine on demand for these kinds of cloud from the enterprise in a blog post.

"Today we see incredible demand for digital-first services," he wrote, "from telemedicine to distance learning to touchless systems in retail and financial services. Nearly three-fourths of businesses we surveyed are expanding their investment in new services that engage customers or support what is now a long-term remote workforce with the tools to be productive. It’s one of the reasons why we see cloud adoption accelerating faster than ever, with cloud deployments expected to grow by 26%. And even more interesting, why businesses are investing so heavily in app modernization. In fact, of the organizations we’ve studied this year, 90% of executives are prioritizing migration and modernization of their legacy apps. The message is clear: the apps and services powering businesses today simply must evolve to meet the needs of the business in the future."

And there's an opportunity here for developers.

"We see a model for cloud that is both increasingly distributed and diverse – with apps deployed across a range of public clouds, within the data center and at the edge – but unified with centralized management and operations, centralized governance and security," he wrote. "This distributed multi-cloud model delivers the flexibility to build and run any application in the best environment, and access to the vast array of innovation from cloud providers, along with a unified model for security and operations at the level every enterprise demands."

That model, Raghuram said, is at the heart of the VMware Cloud platform.

Posted by John K. Waters on March 31, 20210 comments

Eclipse Foundation Launches Adoptium Working Group Focused on AdoptOpenJDK Mission

The Eclipse Foundation this week announced the formation of the Eclipse Adoptium Working Group, a collaboration of vendors supporting the efforts of the Eclipse Adoptium Project, formerly known as AdoptOpenJDK.

AdoptOpenJDK is an open, community-led initiative formed to provide free, pre-built binaries of the reference implementation of the Java platform from OpenJDK. Since it was founded in 2017 by Martijn Verburg, a leader of the London Java Community, AdoptOpenJDK has seen more than 240 million downloads.

The Eclipse Adoptium Project is the continuation of the original AdoptOpenJDK mission, explained Mike Milinkovich, executive director of the Eclipse Foundation, and the working group was created in collaboration with the AdoptOpenJDK Technical Steering Committee.

"AdoptOpenJDK is about providing enterprises with high-quality Java runtimes, without requiring them to enter into a long-term support contracts with Oracle or one of the other vendors playing in that space," Milinkovich told me. "And Adoptium is a multi-vendor, vendor-neutral effort to reduce the costs for getting Java runtimes."

The Adoptium Working Group was created to provide the Java ecosystem with fully compatible distributions of Java runtimes based on OpenJDK source code—not a fork of OpenJDK, Milinkovich emphasized. "The intent here is for the community to pool its resources to build open JDK source code and deliver high-quality runtimes," he said.

The new working group has the support of Oracle, Milinkovich said. "We negotiated an agreement with them to get access to the TCKs, so that we know every runtime we deliver from Adoptium is going to be fully certified is 100% Java SE compliant," he said.

The Foundation emphasized this cooperation in its announcement: "This new open source working group was only possible through the successful negotiation of the OpenJDK Community TCK License Agreement (OCTLA) with Oracle, the steward of OpenJDK, the Java Community Process, and the Java compatibility brand. Under the terms of this agreement, Adoptium will run compatibility tests to ensure conformance to the Java specification."

Adoptium was founded by individual Java developers and a list of vendors that includes Alibaba Cloud, Huawei, IBM, iJUG, Karakun AG, Microsoft, New Relic, and Red Hat. The working group "complements the Eclipse Adoptium project" and will "provide the infrastructure, marketing, community building, and developer advocacy work needed to continue to ensure timely releases to the community and further the adoption of Eclipse Adoptium"

AdoptOpenJDK was popular and well established when its Technical Steering Committee decided it needed the Eclipse umbrella. "In every open source project’s life comes a time to take the necessary steps to enshrine its independence and longevity in a proven cultural and legal framework," Verburg wrote in a blog post announced the move last June. "A project of AdoptOpenJDK’s size and scale also needs an awful lot of logistical support, and the cracks in some places are starting to show!"

"Joining the Eclipse Foundation allows AdoptOpenJDK to continue to grow and to focus on our mission," he added.

"What the Eclipse Foundation brings to AdoptOpenJDK is a well-regarded, vendor-neutral governance model, and a well-documented development process," Milinkovich said. "Our IT staff is going to be doing a lot of work on the additional infrastructure required. There's quite a large-scale of infrastructure needed for doing the builds. We also have to provide the private infrastructure for doing the TCK tests. Oracle's TCK's are proprietary, so we can't do them out in the open, like we do most things. And then there's the additional test suite for quality testing that has to be supported in our infrastructure. The working group will be sharing the cost of creating that infrastructure, as well as doing a little developer advocacy, building some websites, etc. But we really are leveraging the good work that was done at adopt OpenJDK over the last couple of years."

Posted by John K. Waters on March 24, 20210 comments

RedMonk Ranks Programming Languages Using GitHub and StackOverflow

Programming language rankings get regular headlines, and they should, at least from trend trackers like us. Among my favorite is the RedMonk quarterly, published this week. I like the methodology of their system, which extracts data from GitHub and Stack Overflow and combines them for "a ranking that attempts to reflect both code (GitHub) and discussion (Stack Overflow) traction."

In other words, it correlates what the cool kids are talking about with actual language usage "in an effort to extract insights into potential future adoption trends." It's a mix that makes it meaningful.

The latest ranking was posted by veteran industry analyst Stephen O'Grady on his RedMonk blog. "GitHub and Stack Overflow are used here, first, because of their size, and second, because of their public exposure of the data necessary for the analysis," he wrote.

O'Grady's post includes thoughtful observations about JavaScript, TypeScript, Ruby, Go, R, Kotlin, Rust, and Dart.

There's quite a lot of change afoot in the programming world, the analysts found, but constant has been the rise of Python, which has maintained its top ranking ahead of Java. "Java was extremely hot on Python's heels – and was in fact closer to the number one ranking than to PHP behind it – but Python's ability to defend its new high ranking is notable," O'Grady wrote.

Half of the Top 20 languages experienced "a degree of movement," O'Grady added, "which is very unusual. It's difficult to attribute this definitively to any higher level macro trends, but the data is consistent with an industry that picked the pace back up in the last two quarters of the year after the initial chaos of lockdowns and so on gave way to livable if extremely suboptimal new routines."

JavaScript is holding its own in the rankings. "[I]t is worth noting just how robust JavaScript's performance remains," O'Grady observed. "In spite of all of the competition from up and coming languages, all the discussion of fragmentation and even criticisms of JavaScript the language itself, it remains remarkably popular.

JavaScript pull requests are up 453% since Q1 of January of 2018, and they were up 96% from the last quarter "on an already massive base of commits." '

'Simply put, JavaScript remains – its detractors notwithstanding – a force of nature like no other within the industry," he wrote, "and there are no indications in the data that this is likely to change any time soon."

TypeScript, which is a superset of JavaScript, moved up for the sixth of its latest eight quarterly RedMonk rankings, "and its popularity is evident when one looks around the industry." Ruby is on a gentle long-term downward trajectory, the analysts found. Go is slipping, too. R, a language for statistical computing and graphics, appears to be on a slow upswing. Both Kotlin and Rust showed signs of growing popularity. And Dart, an open source, purely object-oriented, optionally typed, and a class-based language, has risen since the advent of the Flutter framework.

Th RedMonk report surrounds a cool plotting of the language rankings with detailed analysis of key trends over the past quarter. As far as I'm concerned, it's a must read.

Posted by John K. Waters on March 4, 20210 comments