Tag Archives: Java

AWS ups Java support, joins Java Community Process

Although it’s nearly 25 years old, the Java programming language has gained renewed interest lately from major cloud platform providers — namely, AWS and Microsoft.

For instance, this week AWS joined the Java Community Process (JCP), the governing body that manages the process of adding new features or specifications to the Java language and platform.

After more than 25 years being a workhorse programming language for enterprise applications and systems development, there is a ton of Java code out in the wild. And as more organizations move their Java workloads to the cloud, cloud platform providers are vying for those organizations to bring their Java apps to these vendors’ clouds.

‘You have to play nice with the community’

Amazon itself runs thousands of Java production services. And over the last few years, AWS has been courting Java developers in earnest.

“Java has the largest developer community, with between 10 million and 15 million developers,” said Holger Mueller, an analyst at Constellation Research in San Francisco. “If you want to attract enterprise workloads, you have to play nice with the community. And then you want to influence it on doing the ‘right’ things for the cloud era.”

In 2016, the company started building its own distribution of OpenJDK, the free and open source implementation of the Java Platform, Standard Edition. Amazon uses its OpenJDK distribution, known as Corretto, to run AWS and other Amazon services, said Yishai Galatzer, manager of the Artifacts and Languages Group in the AWS Developer Tools unit, in a blog post.

Galatzer’s team builds and distributes Amazon Corretto and built the Java Development Kit (JDK) that powers Amazon’s services, he said. Last year, Amazon released Corretto as an open source project.

In addition, Amazon began to contribute its patches to the OpenJDK project and also last year started to help maintain the OpenJDK 8 and OpenJDK 11 projects, Galatzer said. And with a focus on security, Amazon joined the Java Vulnerability Group to help address security issues in JDK 8 and JDK 11, he said. In that same vein, Amazon released in July its Amazon Corretto Crypto Provider, which implements standard Java Cryptography Architecture interfaces and provides high-performance cryptographic operations for all the OpenJDK operations, Galatzer said.

Now, with its membership in the Java Community Process, AWS has a direct line to influencing the future of Java — a matter of particular importance, as Java evolves to suit the requirements for cloud-native computing.

Amazon is trying to engage with the developer community, so it really makes sense to jump on the trend train.
Cameron PurdyCEO, Xqiz.it

“Amazon is trying to engage with the developer community, so it really makes sense to jump on the ‘trend train,'” said Cameron Purdy, CEO of Xqiz.it in Lexington, Mass., and former senior vice president of development at Oracle, where he oversaw key Java projects.

In recent years, AWS hired key Java experts, including Java creator James Gosling and Arun Gupta, who held core Java evangelism roles at both Sun Microsystems and Oracle after it acquired Sun in 2010.

Purdy says AWS’ interest in a role on the JCP seems quite natural for two reasons: “First, Amazon has hired some of the former Sun Java evangelism team, and they’re eager to engage with that community,” he said. “And second, Amazon now has their own distribution of the OpenJDK, so it makes sense to be involved.”

However, more cynical observers surmise that Amazon’s membership in the Java Community Process could be a condition of the company gaining the Java Technology Compatibility Kit license agreement that Amazon needs in order to claim that Corretto is a compatible OpenJDK implementation.

Moreover, Oracle gains as it gets Amazon’s brand attached to the JCP, and Amazon is now part of the patent non-aggression pact that supports Java.

Microsoft ramping up its Java presence

Meanwhile, Microsoft has made its own strong moves in the Java market, including its acquisition of jClarity in August to optimize its Azure cloud platform to run Java workloads. The jClarity acquisition also brings the core team behind the AdoptOpenJDK distribution of OpenJDK under the auspices of Microsoft.

Also, earlier in October, Microsoft and Pivotal teamed up to deliver Azure Spring Cloud, a service for Spring Boot apps designed to help developers build scalable microservices without the need to configure underlying infrastructure.

Go to Original Article
Author:

Ecstasy programming language targets cloud-native computing

While recent events have focused on Java and how it will fare as computing continues to evolve to support modern platforms and technologies, a new language is targeted directly at the cloud-native computing space — something Java continues to adjust to.

This new language, known as the Ecstasy programming language, aims to address programming complexity and to enhance security and manageability in software, which are key challenges for cloud app developers.

Oracle just completed its Oracle Open World and Oracle Code One conferences, where Java was dominant. Indeed, Oracle Code One was formerly known as JavaOne until last year, when Oracle changed its name to be more inclusive of other languages.

Ironically, Cameron Purdy, a former senior vice president of development at Oracle and now CEO of Xqiz.it (pronounced “exquisite”), based in Lexington, Mass., is the co-creator of the Ecstasy language. Purdy joined Oracle in 2007, when the database giant acquired his previous startup, Tangosol, to attain its Coherence in-memory data grid technology, which remains a part of Oracle’s product line today.

Designed for containerization and the cloud-native computing era

Purdy designed Ecstasy for what he calls true containerization. It will run on a server, in a VM or in an OS container, but that is not the kind of container that Ecstasy containerization refers to. Ecstasy containers are a feature of the language itself, and they are secure, recursive, dynamic and manageable runtime containers, he said.

For security, all Ecstasy code runs inside an Ecstasy container, and Ecstasy code cannot even see the container it’s running inside of — let alone anything outside that container, like the OS, or even another container. Regarding recursivity, Ecstasy code can create nested containers inside the current container, and the code running inside those containers can create their own containers, and so on. For dynamism, containers can be created and destroyed dynamically, but they also can grow and shrink within a common, shared pool of CPU and memory resources. For manageability, any resources — including CPU, memory, storage and any I/O — consumed by an Ecstasy container can be measured and managed in real time. And all the resources within a container — including network and storage — can be virtualized, with the possibility of each container being virtualized in a completely different manner.

Overall, the goal of Ecstasy is to solve a set of problems that are intrinsic to the cloud:

  • the ability to modularize application code, so that some portions could be run all the way out on the client, or all the way back in the heart of a server cluster, or anywhere in-between — including on shared edge and CDN servers;
  • to make code that is portable and reusable across all those locations and devices;
  • to be able to securely reuse code by supporting the secure containerization of arbitrary modules of code;
  • to enable developers to manage and virtualize the resources used by this code to enhance security, manageability, real-time monitoring and cloud portability; and
  • to provide an architecture that would scale with the cloud but could also scale with the many core devices and specialized processing units that lie at the heart of new innovation — like machine learning.

General-purpose programming language

Ecstasy, like C, C++, Java, C# and Python, is a general-purpose programming language — but its most compelling feature is not what it contains, but rather what it purposefully omits, Purdy said.

For instance, all the aforementioned general-purpose languages adopted the underlying hardware architecture and OS capabilities as a foundation upon which they built their own capabilities, but additionally, these languages all exposed the complexity of the underlying hardware and OS details to the developer. This not only added to complexity, but also provided a source of vulnerability and deployment inflexibility.

As a general-purpose programming language, Ecstasy will be useful for most application developers, Purdy said. However, Xqiz.it is still in “stealth” mode as a company and in the R&D phase with the language. Its design targets all the major client device hardware and OSes, all the major cloud vendors, and all of the server back ends.

“We designed the language to be easy to pick up for anyone who is familiar with the C family of languages, which includes Java, C# and C++,” he said. “Python and JavaScript developers are likely to recognize quite a few language idioms as well.”

Ecstasy is not a superset of Java, but [it] definitely [has] a large syntactic intersection. Ecstasy adds lots and lots onto Java to improve both developer productivity, as well as program correctness.
Mark FalcoSenior principal software development engineer, Workday

Ecstasy is heavily influenced by Java, so Java programmers should be able to read lots of Ecstasy code without getting confused, said Mark Falco, a senior principal software development engineer at Workday who has had early access to the software.

“To be clear, Ecstasy is not a superset of Java, but [it] definitely [has] a large syntactic intersection,” Falco said. “Ecstasy adds lots and lots onto Java to improve both developer productivity, as well as program correctness.” The language’s similarity to Java also should help with developer adoption, he noted.

However, Patrick Linskey, a principal engineer at Cisco and another early Ecstasy user, said, “From what I’ve seen, there’s a lot of Erlang/OTP in there under the covers, but with a much more accessible syntax.” Erlang/OTP is a development environment for concurrent programming.

Falco added, “Concurrent programming in Ecstasy doesn’t require any notion of synchronization, locking or atomics; you always work on your local copy of a piece of data, and this makes it much harder to screw things up.”

Compactness, security and isolation

Moreover, a few key reasons for creating a new programming language for serverless, cloud and connected devices apps are their compactness, security and isolation, he added.

“Ecstasy starts off with complete isolation at its core; an Ecstasy app literally has no conduit to the outside world, not to the network, not to the disk, not to anything at all,” Falco said. “To gain access to any aspect of the outside world, an Ecstasy app must be injected with services that provide access to only a specific resource.”

“The Ecstasy runtime really pushes developers toward safe patterns, without being painful,” Linskey said. “If you tried to bolt an existing language onto such a runtime, you’d end up with lots of tough static analysis checks, runtime assertions” and other performance penalties.

Indeed, one of the more powerful components of Ecstasy is the hard separation of application logic and deployment, noted Rob Lee, another early Ecstasy user who is vice president and chief architect at Pure Storage in Mountain View, Calif. “This allows developers to focus on building the logic of their application — what it should do and how it should do it, rather than managing the combinatorics of details and consequences of where it is running,” he noted.

What about adoption?

However, adoption will be the “billion-dollar” issue for the Ecstasy programming language, Lee said, noting that he likes the language’s chances based on what he’s seen. Yet, building adoption for a new runtime and language requires a lot of careful and intentional community-building.

Cisco is an easy potential candidate for Ecstasy usage, Linskey said. “We build a lot of middlebox-style services in which we pull together data from a few databases and a few internal and external services and serve that up to our clients,” he said. “An asynchronous-first runtime with the isolation and security properties of Ecstasy would be a great fit for us.”

Meanwhile, Java aficionados expect that Java will continue to evolve to meet cloud-native computing needs and future challenges. At Oracle Code One, Stewart Bryson, CEO of Red Pill Analytics in Atlanta, said he believes Java has another 10 to 20 years of viability, but there is room for another language that will better enable developers for the cloud. However, that language could be one that runs on the Java Virtual Machine, such as Kotlin, Scala, Clojure and others, he said.

Go to Original Article
Author:

Eclipse completes enterprise Java move with Jakarta EE 8

Enterprise Java has completed its move from Oracle to the Eclipse Foundation in the form of Jakarta EE 8, the new version of the Java Enterprise Edition specification now under the auspices of Eclipse.

The Eclipse Foundation introduced the Jakarta EE 8 Full Platform and Web Profile in a live stream of its JakartaOne virtual conference on Sept. 10.

“From an industry perspective, this is big news, because it means that we’ve successfully migrated the intellectual property and all the code and all the specs out of Oracle and into a new community-led process,” said Mike Milinkovich, executive director at the Eclipse Foundation.

Enterprise Java stability

The transfer to Eclipse represents a move to stability with an eye toward the future, as Java evolves to meet the needs of modern, cloud-native computing environments. In that regard, Eclipse launched a cloud-native Java e-book entitled A Vision for Open Source, Cloud Native Java. The e-book describes what cloud-native Java is, why it matters and where Jakarta EE is headed in the future.

“This is a great first proof point of the Jakarta EE project, and perfectly timed,” said Cameron Purdy, CEO and founder of xqiz.it, a Lexington, Mass., startup focused on a new programming language designed for the cloud. “The real proof lies ahead, with Jakarta EE 9. At that point, we’ll have a much better understanding of the standard’s release cadence and how it will be adapting to the modern cloud architectures that are becoming pervasive.”

In addition to releasing the Jakarta EE 8 specs, the Eclipse Foundation certified Eclipse GlassFish 5.1 as an open source-compatible implementation of the Jakarta EE 8 Platform. GlassFish 5.1 was tested against the Jakarta EE 8 Technology Compatibility Kits for the Full Platform and Web Profiles.

Mike MilinkovichMike Milinkovich

The shift over to Eclipse is also significant because enterprises want to migrate their existing Java systems to the cloud — particularly in hybrid cloud scenarios — and the foundation, led by members like Red Hat and IBM, will help enable that, Milinkovich said.

And just as important, there are millions of developers with Java skills who would like to take those skills to new application scenarios based on microservices, Docker container and Kubernetes, he added.

“We see this is a real opportunity to refresh the demand for and interest in the Java platform for the next 20 years of application development,” he said.

Where does Jakarta EE go from here?

The real proof lies ahead, with Jakarta EE 9. At that point, we’ll have a much better understanding of the standard’s release cadence and how it will be adapting to the modern cloud architectures.
Cameron PurdyCEO, xqiz.it

While the foundation does not yet have an official roadmap for Jakarta EE, short-term targets for the technology include upgrading the support for Java SE to at least Java SE 11, which is a Long Term Support release. Currently, Jakarta EE 8 supports Java SE8.

“There is a long list of requested features, but one of the biggest topics the community will decide in the next few weeks or months is what to do about the namespace,” Milinkovich said.

While negotiating the move of Java EE to Eclipse, Oracle would not allow the Eclipse Foundation to modify the javax package namespace or to use the Java trademarks currently used in Java EE specifications. And Java, including the existing specification names, cannot be used by Jakarta EE specifications.

The foundation has two options for moving from the javax namespace to Jakarta: a “big bang” move where they make wholesale changes all at once, or to tackle the move incrementally, Milinkovich said.

Steering the ship

Meanwhile, a key accomplishment here is the ability to bring together large companies that compete with each other commercially in support of a new specification.

Core members of the Eclipse Jakarta EE Working Group include IBM, Payara, Red Hat, Fujitsu and Tomitribe.

“The big takeaway for me is the Eclipse Foundation’s stewardship, both in wrangling the various commercial participants as well as shepherding the traditional Java EE community toward a more modern, cloud-native future,” said Stephen O’Grady, an analyst at RedMonk in Portland, Maine.

Indeed, the sheer level of effort required to even slightly redirect the course of a ship the size of the Java community is difficult to comprehend, so credit to Eclipse for being able to pull this off, O’Grady added.

Go to Original Article
Author:

Developers favor JVM languages for mobile, enterprise

Languages that run on the Java Virtual Machine have lined up well with mobile app developers, alongside the usual code suspects.

JavaScript, Java, Python, PHP and C# top RedMonk’s latest list of programming languages, ranked by code usage (GitHub pull requests) and discussions (Stack Overflow Q&As). C++, CSS, Ruby, C and Objective-C round out the top 10. But a host of JVM languages rank in the middle of the pack and are on the move up the list.

The JVM supports a host of programming languages, such as Kotlin, Groovy, Scala and Clojure, along with JRuby and Jython, as well as more obscure languages such as BeanShell, Pizza, Pnuts and Xtend. Scala (ranked 12th), Clojure and Groovy (tied at 21st) advanced in the RedMonk rankings, while Kotlin — one of the hottest languages around — fell back one spot to 28th.

Bright future for Kotlin, Swift for mobile OS development

Kotlin is especially popular with mobile app developers as a preferred language for Android application development due to its clean, modern design, wrote Stephen O’Grady, analyst at RedMonk, based in Portland, Maine, in a blog post.

Scala had dropped for three consecutive quarters prior to this latest ranking, although the drops were rather small. The causative factors behind Scala’s past declines are unclear, but likely involve competition not only from Java but from other JVM languages such as Clojure, Groovy and even Kotlin.

“Scala had its day in the sun, but it seems to be suffering from growing pains and unable to move under the resistance of its own considerable weight,” said Cameron Purdy, CEO of Xqiz.it, a Lexington, Mass., software startup in stealth mode, and formerly senior vice president of development at Oracle.

Swift, a newer language to build iOS applications, also slid one slot out of a tie with Objective-C, but still enjoys increased attention from developers. IBM and others have pushed Swift as a server-side language.

Like Kotlin, Swift appeals to developers as a language that hides the ugliness of a legacy platform, although it drags a ton of luggage from various legacy Apple technologies that feel less clean, Purdy said.

“If I were a developer starting out today, I’d prioritize Kotlin and Swift for Android and iOS development, with JavaScript or TypeScript for the browser,” he said. “Kotlin should also suffice for the back end.”

Reading the tea leaves

Other industry experts suggest the ebbs and flows of such language popularity rankings are nothing more than periodic changes in the schemes of software development.

As programmers change development projects, they’ll shift from “vanilla Java” to Kotlin if they’re doing Android development, or to Groovy for development with Grails, or to Clojure or Scala for various functional programming work, said Ted Neward, director of developer relations at Smartsheet, Bellevue, Wash.

The more Java improves, the less these other ‘Java++’ languages have compelling enough differences to justify the overhead of using something other than Java.
Charles Nuttersenior principal software engineer, Red Hat

“This is much like trying to read the tides by marking the waves on the side of the pier over a five-minute period,” he said. JVM languages in general have carved out a niche within the broader Java world, which is viable because that world is so large. “If anything, it signals that these languages are reaching a level of maturity and acceptance within the ecosystem,” he said.

Meanwhile, recent improvements in the Java language, such as lambdas in Java 8 and local variable type inference in Java 11, take some steam away from JVM alternatives, said Charles Nutter, co-lead of the JRuby open source project and a senior principal software engineer at Red Hat.

“The more Java improves, the less these other ‘Java++’ languages have compelling enough differences to justify the overhead of using something other than Java,” Nutter said.

Wanted – Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to code.

As for the Pi, anything really, its just for coding so doesn’t need to be the latest model.

Thanks a lot guys.

Location: Newcastle

______________________________________________________
This message is automatically inserted in all classifieds forum threads.
By replying to this thread you agree to abide by the trading rules detailed here.
Please be advised, all buyers and sellers should satisfy themselves that the other party is genuine by providing the following via private conversation to each other after negotiations are complete and prior to dispatching goods and making payment:

  • Landline telephone number. Make a call to check out the area code and number are correct, too
  • Name and address including postcode
  • Valid e-mail address

DO NOT proceed with a deal until you are completely satisfied with all details being correct. It’s in your best interest to check out these details yourself.

Wanted – Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to code.

As for the Pi, anything really, its just for coding so doesn’t need to be the latest model.

Thanks a lot guys.

Location: Newcastle

______________________________________________________
This message is automatically inserted in all classifieds forum threads.
By replying to this thread you agree to abide by the trading rules detailed here.
Please be advised, all buyers and sellers should satisfy themselves that the other party is genuine by providing the following via private conversation to each other after negotiations are complete and prior to dispatching goods and making payment:

  • Landline telephone number. Make a call to check out the area code and number are correct, too
  • Name and address including postcode
  • Valid e-mail address

DO NOT proceed with a deal until you are completely satisfied with all details being correct. It’s in your best interest to check out these details yourself.

Wanted – Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to code.

As for the Pi, anything really, its just for coding so doesn’t need to be the latest model.

Thanks a lot guys.

Location: Newcastle

______________________________________________________
This message is automatically inserted in all classifieds forum threads.
By replying to this thread you agree to abide by the trading rules detailed here.
Please be advised, all buyers and sellers should satisfy themselves that the other party is genuine by providing the following via private conversation to each other after negotiations are complete and prior to dispatching goods and making payment:

  • Landline telephone number. Make a call to check out the area code and number are correct, too
  • Name and address including postcode
  • Valid e-mail address

DO NOT proceed with a deal until you are completely satisfied with all details being correct. It’s in your best interest to check out these details yourself.

Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to…

Cheap PC parts and Raspberry Pi for child.

Java 18.3 marks the future of Java at JavaOne 2017

SAN FRANCISCO — While Oracle has committed to a faster cadence for releasing Java technology every six months, the company also is making sure to maintain a pipeline of new technology that’s ready to go in each release.

The next major release of Java, known as Java 18.3, is scheduled for March 2018 and will feature some of the innovations coming out of projects Oracle is currently working on that will affect the future of Java.

During his keynote at the JavaOne 2017 conference, Mark Reinhold, chief architect of the Java platform group at Oracle, identified four projects the company is working on that will bear fruit for Java 18.3 and subsequent releases.

Four projects will affect the future of Java

Reinhold identified Project Valhalla, Project Panama, Project Amber and Project Loom as key initiatives from which Java developers can expect to gain innovation in the not-too-distant future.

According to Reinhold, Project Panama is about foreign function interface data-layout control. It seeks to improve the connection between Java and native data and native code. The project focuses on interconnecting the Java Virtual Machine (JVM) and native code — a key concept for the future of Java. A description of the project on Oracle’s website said it is about enriching the connections between the JVM and well-defined but “foreign” or non-Java APIs, including many interfaces commonly used by C programmers.

The goal of Project Valhalla is to explore advanced Java Virtual Machine and language features, such as value types and generic specialization.

Meanwhile, Project Amber is about right-sizing language ceremony, he said. It’s about delivering smaller, productivity-oriented Java language features, such as local-variable type inference, enhanced enums, Lambda leftovers and more.

And Project Loom is aimed at bringing continuations and new features known as fibers to the Java platform to simplify concurrency for developers. Reinhold said Project Loom has not yet been proposed, but is currently in discussion as an effort to affect the future of Java for concurrent programming.

Solid case made for mature integration

According to Charlotte Dunlap, an analyst with GlobalData, “Many of Oracle’s announcements were actually preannouncements. However, Oracle made a solid case for how its mature integration, SOA and API management technologies will enable the next wave of Oracle’s DevOps technologies.”

Regarding Project Amber, Brian Goetz, a Java language architect in the Java platform group at Oracle, said Java has a reputation for being “a bit boilerplate-intensive,” and it takes a little too much code to do a lot of common tasks.

“So, Project Amber is a collection of smaller features that are aimed at reducing the overhead or ceremony of things that we do every day — streamlining everyday coding, but also making code more readable and more reliable,” he said.

These are features that can be delivered over time and are a good fit for the programming models that are popular in the cloud, such as functions as a service, or reactive event-based systems, like message-based systems or actors, Goetz said.

Amber adds variable type inference

Project Amber is a collection of smaller features that are aimed at reducing the overhead or ceremony of things that we do every day — streamlining everyday coding, but also making code more readable and more reliable.
Brian GoetzJava language architect at Oracle

Meanwhile, a subproject of Amber is called local variable type inference, which Goetz said is a feature that has been available in a number of other programming languages. And although Java has had type inference for many years, it’s being expanded.

“Type inference is basically just the compiler figuring out the type of something without you having to write it down,” Goetz said. “It can make code more readable by getting unnecessary information out of the way. And this next iteration is extending that to the way we declare local variables.”

This feature has been committed to Java Development Kit 18.3 and will be in the next production release of Java in March.

However, a much bigger feature in Project Amber, known as pattern matching, has been historically associated with functional programming languages, Goetz said.

More recently, it has been adopted by object-oriented programming languages, like C# and Scala. “We think it’s a really good fit for Java,” Goetz noted. “It has the ability to simplify the kind of code where you have to do multiway conditional operations.”

Project Loom to ease app maintenance

Finally, as described in Oracle software engineer Ron Pressler’s call for discussion about the initiative, Project Loom is an effort to provide an alternative implementation of threads, managed by schedulers written in Java, that preserve the same programming model of ordinary Java threads, but offer drastically improved performance and a smaller footprint.

According to the Project Loom proposal, “Project Loom’s mission is to make it easier to write, debug, profile and maintain concurrent applications meeting today’s requirements. Threads, provided by Java from its first day, are a natural and convenient concurrency construct (putting aside the separate question of communication among threads) which is being supplanted by less convenient abstractions because their current implementation as OS kernel threads is insufficient for meeting modern demands, and wasteful in computing resources that are particularly valuable in the cloud. Project Loom will introduce fibers as lightweight, efficient threads managed by the Java Virtual Machine, that let developers use the same simple abstraction but with better performance and lower footprint.”

Azure Functions, Project Fn shine at JavaOne 2017

SAN FRANCISCO Not to be outdone, while Oracle is hosting its annual Java developer festival, Microsoft released a Java-based preview of its serverless computing offering, Azure Functions.

According to TechTarget’s definition, serverless computing does not eliminate servers, but instead seeks to emphasize the idea that computing resource considerations can be moved into the background during the design process. The term is often associated with the NoOps movement and the concept may also be referred to as function as a service (FaaS) or runtime as a service (RaaS).

Serverless computing provides a great model for accelerating app development, but developers want to do it using the programming languages and development tools of their choice, Microsoft said. And ever since the company first released Azure Functions, support for Java has been a top request.

Oracle Project Fn

Developers using Oracle Cloud Platform, their laptop, or any cloud, can now build and run applications by just writing code without provisioning, scaling or managing any servers — this is all taken care of transparently by the cloud.
Bob Quillinvice president of developer relations, Oracle

Oracle also introduced and open sourced its own serverless computing offering — known as Project Fn — at JavaOne 2017. With Fn, developers using Oracle Cloud Platform can build and run applications by just writing code, without provisioning, scaling or managing servers, allowing them to focus on delivering value and new services, the company said. Fn runs across multiple clouds, further reducing risk of vendor lock-in, Oracle noted.

“Oracle deserves kudos for its recent Java efforts,” said Charles King, principal analyst with Pund-IT, who also commended Microsoft for its Azure Functions Java support. “Microsoft’s new Azure Functions Java support and Oracle’s recent JavaOne/OpenWorld announcements reflect the continuing innovations around Java and the vitality of the Java community.”

Support for different programming languages

Likewise, with the ability to run Azure Functions runtime on cross-platform .NET Core, Microsoft has built its runtime to allow support for different programming languages. Java is the first new language being introduced. The new Java runtime will share all the differentiated features provided by Azure Functions, such as the wide range of triggering options and data bindings, serverless execution model with autoscale, as well as pay-per-execution pricing, Microsoft said.

And Java developers do not need to use any new tools to develop using Azure Functions. Microsoft has released a new plug-in for the Maven build automation tool so developers can create, build and deploy Azure Functions from their existing Maven-enabled projects. The new Azure Functions Core Tools enable developers to run and debug their Java Functions code locally on any platform.

In addition, Microsoft said popular IDEs and editors such as Eclipse, IntelliJ and Visual Studio Code can be used to develop and debug Azure Functions locally.

Meanwhile, with fnproject.io, “Developers using Oracle Cloud Platform, their laptop, or any cloud, can now build and run applications by just writing code without provisioning, scaling or managing any servers — this is all taken care of transparently by the cloud,” said Bob Quillin, vice president of developer relations at Oracle, in a blog post.

Three parts to Fn

According to Quillin, Fn consists of three components: the Fn Platform; Fn Java FDK (Function Development Kit), which brings a first-class function development experience to Java developers, including a comprehensive JUnit test harness; and Fn Flow, for orchestrating functions directly in code. Fn Flow enables function orchestration for higher-level workflows for sequencing, chaining, fanin/fanout, but directly and natively in the developer’s code versus relying on a console.

The Oracle offering will have initial support for Java with additional language bindings coming soon, Quillin said. Project Fn will provide polyglot language support, including Java, Go, Ruby, Python, PHP, Rust, .NET Core, and Node.js with AWS Lambda compatibility. AWS Lambda is Amazon Web Services’ serverless computing offering.