search
HomeTechnology peripheralsIt IndustryJVMLS 2016: A Recap of Java Virtual Machine Language Summit

JVMLS 2016: A Recap of Java Virtual Machine Language Summit

2016 Java Virtual Machine Language Summit: Looking to the Future of JVM

The 2016 Java Virtual Machine Language Summit (JVMLS) brings together language designers and JVM engineers to discuss the future development of JVM and its impact on the Java language. The summit focused on key issues such as Project Jigsaw, Project Valhalla and the future of virtual machines.

Modular: Project Jigsaw

Project Jigsaw is a core feature of Java 9, which introduces a modular mechanism for the Java language. Developers can create modules that enable reliable configuration, powerful packaging, and improved scalability, security and performance. Java 9 will allow the creation of modules (essentially a JAR package containing the new structure - module descriptor). The module descriptor describes a module by specifying the module name, listing the required modules, and exporting packages. At runtime, a module mainly sees only the module it depends on (readability), and can only access the types (accessibility) in other modules when the module is read and the module exports a package containing that type. This means that the compiler and JVM eventually abandoned the big mud ball pattern that incorporated all code and dependencies together, and replaced it with a real map closer to our understanding of software structure. Both the compiler and the JVM understand this graph, so that missing modules, multiple versions of the same module, or multiple modules export the same packages during compilation or startup, avoiding runtime errors or subtle errors that are difficult to detect.

Value type: Project Valhalla

Project Valhalla is designed to introduce value types that can be summarized as user-defined primitive types. Value types are the same as primitive types and do not incur memory overhead or indirect addressing. A custom point containing two int fields x and y will be inlined to its usage location, requiring only the memory required for two ints, and the array of points is essentially an array of x/y pairs. Like the original type, such points are not identified - although there can be two different Integer objects with a value of 5, there cannot be two different int values ​​of 5. Like a class, a value type can have methods and fields and implement an interface. Therefore, its slogan is: "Coding like a class, working like an int". This will prevent us from having to trade off between preferred abstraction and required performance.

However, the project quickly deviated from the track. As we all know, generics do not work with primitive types - ArrayList cannot be created. This is already painful for eight primitive types (see Primitive Type Specialization for libraries like Stream or Trove), but it becomes unbearable when developers can define more types. If value types must be boxed to interact with generics (like today's primitive types), their use will be very limited and will not be started.

Therefore, we need to be able to use generics with value types—primitive types can also be used together. Ultimately, we want not only to instantiate ArrayList or ArrayList, but also to be supported by int[] or point[], respectively. This is called specialization, and it opens up a whole new puzzle.

If you are lucky, some or even all of them will be included in Java 10.

JVMLS 2016: A Recap of Java Virtual Machine Language Summit

Virtual Machine Future

John Rose talked about several directions that attract virtual machines to the future:

  • Unified model of objects, values, arrays, methods, etc.
  • Continuously improve performance, such as improving memory efficiency through increased density and sharing, and continuous optimization of hotspot paths
  • Fine-grained concurrency using fibers that transcend threads as core abstraction
  • Become more useful, compatible and interoperable – for languages ​​running on it and native languages, thus bridging the gap between them
  • Stack is concreted, where the stack holds classes and methods as real objects, not just as strings, and the full context of each frame (local variables, monitors, etc.) is visible and run The program can edit the stack

A lot of content is beyond my understanding, but listening to his speeches still benefited a lot, even if it was just to feel his passion.

Consistent with Rose's outlook spirit is Project Panama (discussed by Mikel Vidstedt and Tobi Ajila in "Going Native"), which Ian Graves supplements with "Java Vector API". Christian Wimmer's demonstration of "One Compiler" is also intended to bridge the gap.

Summary

JVM is a powerful tool that many smart people are working to make it stronger while controlling its complexity.

FAQs about the 2016 JVM Language Summit (This part is the same as the original text, omitted)

The above is the detailed content of JVMLS 2016: A Recap of Java Virtual Machine Language Summit. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Why Your Automation Needs AI Decision-Making (And How Wordware Delivers)Why Your Automation Needs AI Decision-Making (And How Wordware Delivers)May 15, 2025 am 10:47 AM

We have all experienced the magic of traditional automation platforms such as Zapier and IFTTT. They are good at connecting applications and automating simple "if this, then that" sequences: new form submission creates spreadsheet rows, incoming messages trigger Slack alerts. Simple, effective, and a huge time saving for basic tasks. But, how simple is your actual workflow? Once your workflow needs to understand nuanced context, gracefully handle errors, or handle unstructured data, these tools often encounter obstacles. Their simplicity makes it easy to use, but it also becomes a limitation. When simple rules are not enough: consider customer support. Unstructured data poured into ticketing systems—chat clips, screenshots, complex user drawings

Benefits of Custom Telecommunication SoftwareBenefits of Custom Telecommunication SoftwareMay 11, 2025 am 08:28 AM

Customized telecom software development is undoubtedly a considerable investment. However, in the long run, you may realize that such a project may be more cost-effective because it can increase your productivity like any ready-made solution on the market. Understand the most important advantages of building a customized telecommunications system. Get the exact features you need There are two potential problems with the off-the-shelf telecom software you can buy. Some lack useful features that can significantly improve your productivity. Sometimes you can enhance them with some external integration, but that isn't always enough to make them great. Other software has too many functions and is too complicated to use. You probably won't use some of these (never!). A large number of features usually adds to the price. Based on your needs

CNCF Triggers a Platform Parity Breakthrough for Arm64 and x86CNCF Triggers a Platform Parity Breakthrough for Arm64 and x86May 11, 2025 am 08:27 AM

CI/CD puzzles and solutions for open source software in Arm64 architecture Deploying open source software on Arm64 architecture requires a powerful CI/CD environment. However, there is a difference between the support levels of Arm64 and traditional x86 processor architectures, which are often at a disadvantage. Infrastructure components developers for multiple architectures have certain expectations for their work environment: Consistency: The tools and methods used across platforms are consistent, avoiding the need to change the development process due to the adoption of less popular platforms. Performance: The platform and support mechanism have good performance to ensure that deployment scenarios are not affected by insufficient speed when supporting multiple platforms. Test coverage: Efficiency, compliance and

Top 21 Developer Newsletters to Subscribe To in 2025Top 21 Developer Newsletters to Subscribe To in 2025Apr 24, 2025 am 08:28 AM

Stay informed about the latest tech trends with these top developer newsletters! This curated list offers something for everyone, from AI enthusiasts to seasoned backend and frontend developers. Choose your favorites and save time searching for rel

Serverless Image Processing Pipeline with AWS ECS and LambdaServerless Image Processing Pipeline with AWS ECS and LambdaApr 18, 2025 am 08:28 AM

This tutorial guides you through building a serverless image processing pipeline using AWS services. We'll create a Next.js frontend deployed on an ECS Fargate cluster, interacting with an API Gateway, Lambda functions, S3 buckets, and DynamoDB. Th

CNCF Arm64 Pilot: Impact and InsightsCNCF Arm64 Pilot: Impact and InsightsApr 15, 2025 am 08:27 AM

This pilot program, a collaboration between the CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal, and Actuated, streamlines arm64 CI/CD for CNCF GitHub projects. The initiative addresses security concerns and performance lim

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.