Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Oracle Java

Oracle's Plans for Java in 2024 (infoworld.com) 75

"Oracle's plans to evolve Java in 2024 involve OpenJDK projects," writes InfoWorld, citing a recent video by Oracle Java developer relations representative Nicolai Parlog. (Though many improvements may not be usable until 2025 or later...) - For Project Babylon, Parlog cited plans for code reflection, expanding the reflection API, and allowing transformation of Java code inside a method. The goal is to allow developers to write Java code that libraries then can interpret as a mathematical function, for example. The Babylon team in coming weeks plans to publish work on use cases such as auto-differentiating, C# LINQ emulation, and GPU programming.

- In Project Leyden, which is aimed at improving startup times, plans for 2024 involve refining the concept of condensers and working toward the production-readiness of prototype condensers.

- In Project Amber, current features in preview include string templates, a simplified main method, and statements before this() and super(). "I expect all three to finalize in 2024," said Parlog. Under exploration are capabilities such as primitive types in patterns and with expressions.

- In Project Valhalla, work will focus on value classes and objects, which provide class instances that have only final instance fields and lack object identity [to] significantly reduce the run time overhead of boxed Integer, Double, and Byte objects...

- In Project Lilliput, aimed at downsizing Java object headers in the HotSpot JVM and reducing Java's memory footprint, work now centers on polishing a fast-locking scheme.

- Project Panama, for interconnecting JVM and native C code, "has three irons in the fire," Parlog said.

This discussion has been archived. No new comments can be posted.

Oracle's Plans for Java in 2024

Comments Filter:
  • To me, Oracle is like the Long John Silvers of Silicon Valley. How is it not just still a company but doing really well?

    • Their database is both ubiquitous and exorbitantly expensive.
      • Oracle is a multi-level marketing scheme that happens to offer a decent database as a side venture.

        Most databases install with defaults that aren't optimal, but kind of work for development. Not Oracle. They want to *make sure* they have jobs for their tithe-paying vassals (in the form of expensive certifications that expire), so installing Oracle with defaults leaves you with a db that can't even boot. They *deliberately* make Oracle hard to administer.

    • by gweihir ( 88907 ) on Sunday January 28, 2024 @11:02AM (#64194478)

      They managed to get a lot of people into vendor-lock. Classical market failure.

      • Monopoly courts and Monopoly copyrights aren't part of a market and are Oracle's primary tools.

        (nor are perpetual corporations - those are fascistic or mercantilistic ideas)

        For more than a century the fascists have blamed free markets for their malfeasance.

        Too bad public schools have their backs!

        • by gweihir ( 88907 )

          Are you on drugs or what? Market failure is market failure, nothing else. The _reasons_ for it can vary, but typically it is too little regulation.

    • Ever heard of Monopoly? I mean the board game "Monopoly". Oracle is like that board game, there are morons who keep buying it even though it's a hundred years old and there are better games out there.

      • Say what you like about Oracle the company but their RDBMS blows all the others out of the water, SQLServer included. Companies dont fork out for it for no good reason.

        • by SendBot ( 29932 )

          My state forked over hundreds of millions of tax $ to be scammed by Oracle corporation to deliver failure. The "good reason" was believing lies with this same baloney. https://en.wikipedia.org/wiki/... [wikipedia.org]

          Ultimately the finished product was a pdf form that you could print out and mail in, but it only worked in Internet Explorer. That's not hyperbole.

        • It's been a while, but at a couple of companies I worked for, they absolutely did buy Oracle for no particularly good reason, just because it was a "trusted" brand. Their needs were hardly demanding anything in particular.

          • by BigZee ( 769371 )
            Trust might be part of it but it's not the only thing. One of the things that keeps the Oracle database relevant is that Oracle continues to develop the product. When I first started working as a DBA, there was the usual 'wars' over which DB was better. Sybase vs Oracle, MSSQL vs Oracle and even DB/2 vs Oracle. The reality is that Oracle has been successful because of substantial new features. Take Sybase and the biggest new feature of the last 20 years was an increase to the maximum DB size. The other thin
            • by Junta ( 36770 )

              Maybe in other contexts, but in one of these contexts they found out a vendor was using SQLite for a trivial little datastore. They demanded the vendor rework it to target Oracle, because their standard was that any known use of SQL in the whole company must use Oracle.

              I commonly saw Oracle setups that were single mid range sytem doing exceptionally light DB work. They were paying a lot of money for something a random default PostreSQL could have done just fine.

              In short, maybe they have value in some cont

      • Ever heard of Monopoly? I mean the board game "Monopoly". Oracle is like that board game, there are morons who keep buying it even though it's a hundred years old and there are better games out there.

        The board game "Monopoly" is far more fun than yet another discussion of how idiotic Oracle is. Though, if "old" games can't be fun, I suppose I need to turn in my Mancala board.

    • by ebvwfbw ( 864834 )

      To me, Oracle is like the Long John Silvers of Silicon Valley. How is it not just still a company but doing really well?

      They extract oil tankers worth of money from the Government and companies. I can tell you that in the 1990s the budget for IBM for just the software was 30 million for a well known agency per month. They didn't sell their software, you had to lease it for their mainframes. Oracle is that on steroids. I saw what one agency under the department of commerce spent and I was floored.

      If you're not going to use Oracle, then what? They bought I think everyone else out there. Unless you're using MySQL in one way or

      • In years gone by the Government would be looking into anti-trust and monopoly lawsuits. This administration it seems like they couldn't care less.

        THIS administration? Fuck me. It has been 20 years since there has been any real grunting about anti-trust and even then, it was spectacularly ineffective. Don't do a "this administration republican/democrat" bullshit on me please.

    • by glamb ( 191331 ) *

      To me, Oracle is like the Long John Silvers of Silicon Valley. How is it not just still a company but doing really well?

      Oracle don't have customers, they have hostages! Have look at what they are doing with 'free' Java licenses.

  • They will often still learn Java, but most expect it to have a limited future with the crap Oracle is doing. So they make very sure to know other languages. And then they typically noticed that Java is not a good design overall in comparison. Academic institutions also have noticed and mandatory Java is on the decline (1/3 institutions I teach at). Java also has stopped being the first language taught. They now teach Python as first language (which is a lot more versatile, massively more modern and a lot le

    • For some kinds of apps, dynamic languages are a poor solution. For banking and finance, compiled languages are more reliable, for example. For CRUD apps, the strong-typed choices are then pretty much Java or C#. I don't see the demand for strong-typed languages going away. Python is mostly taking the niches PHP used to occupy.

      I just wish there were more viable choices than Java and C# for CRUD. C#'s not bad, but too tied to the perennial demon Microsoft.

      I especially like C#'s optional named parameters (ONP)

      • by gweihir ( 88907 )

        I take it, you have never seen a really large bank doing critical things via shell-scripts? I have. Your claim is also bogus. Python _is_ compiled, just not to native.

        • by Tablizer ( 95088 )

          I mean in terms of intricate business logic. And yes, Python can "do" it, but that's not the same as being the best tool for it.

          • by gweihir ( 88907 )

            Sooo, the all-critical year-end run in a bank does not have "intricate business logic" in your view?

      • Modern C# and .NET (fka .NET Core) are open source and cross-platform, and happily used by many, including me, who have no more wish to be tied to Microsoft, than to Oracle.

        This was not the case for the older .NET Framework, and there are things such as WPF that don't work well on open-source platforms because of Windows-only dependencies. I am not sure what will replace it. There are several candidates including MAUI, Avalonia, and React Native, but each has some drawbacks that make me not quite ready to

    • by Wookie Monster ( 605020 ) on Sunday January 28, 2024 @11:35AM (#64194566)

      Essentially, Oracle has killed Java by being too greedy. It just takes a long time to die, but it will go nowhere now.

      What the hell are you talking about? What "greed" are you referring to? OpenJDK costs nothing to use, and it's the same as the Oracle JDK which just offers support in exchange for money. You don't need to pay for it.

    • colleges must teach CS concepts and let the student pick which language they want to implement those concepts on

      • by Lisias ( 447563 )

        colleges must teach CS concepts and let the student pick which language they want to implement those concepts on

        Yes and no. Students need to write programs in at least 3 or 4 different languages, and not specialise on a single one.

        On my days, I had to code in Pascal, Modula 2, C, C++, but also in LISP, Cobol and Fortran. After a full class on each one of these languages, we were allowed to code in whatever we would want (including BASIC, some students coded in Visual BASIC - a novelty at that time).

        Colleges should not be market driven, they should give students enough knowledge to allow them to cope with whatever the

        • by caseih ( 160668 )

          When I was at Uni, it was assumed the students already knew how to code and we were expected to pick up new languages quickly. The coursework focused on teaching algorithms and techniques. The languages used in the classes varied widely and students were expected to pick them languages up very quickly. Some early classes were in Pascal, others in C. One of my 2nd year algorithms and data structures classes used a textbook that used C in all the examples (Aho and Ullman's classic). The professor preferred

          • Seems like modern CS is very different now.
            I guess the difference is only if you are on a college or a real university.

            Natural languages are not taught, they are acquired. And I guess for computer languages it is the same.

    • Python is not "massively more modern" than Java. It's 4 years older.
    • Essentially, Oracle has killed Java by being too greedy.

      That's bullshit. Explain what Oracle did.

      Oracle saw through Sun's long effort to open source Java, they continued it, finished it. That is OpenJDK, and it's anything but dead.

      What Oracle did was start charging for their compiled binaries and windows installer. AFTER OpenJDK was a compatible drop in replacement, when it was complete, proprietary bits either reimplemented or removed, licensing issues mostly resolved. That's why switching to OpenJDK was so easy, it's by design.

      All you lost was what, a windows

    • by antdude ( 79039 )

      My CS dept. started requiring Java programming class instead of Pascal during graduation days.

    • Essentially, Oracle has killed Java by being too greedy. It just takes a long time to die, but it will go nowhere now.
      Java is the new COBOL and C++ and most certainly not going to die the next 100 years, unless a huge asteroid hits a randoms corporations headquarter.

    • They now teach Python as first language (which is a lot more versatile, massively more modern and a lot less cumbersome than Java)

      Can you provide clear example of how python is more versatile than Java? What do you mean by this? What do you mean by "more modern"? By less cumbersome do you mean less verbose? The interesting thing about verbosity is that verbose means easy to read. I find python hard to read because I am always wondering what type I am working with because it is dynamically typed.

      Essentially, Oracle has killed Java by being too greedy.

      I have no idea what you mean by this. Oracle continued Sun's work of open sourcing Java and that culminated in OpenJDK which is Oracle's open

  • Reflection just feels wrong, and can be tricky. Entity models should be meta-data that are put into normal data structures, not hard-wired classes. It would be much easier to make and debug CRUD frameworks that way. You'd loose some intellisense (auto-guess), but worth the trade-off for most apps.

    • Reflection just feels wrong, and can be tricky.

      Sure, though it's also interesting and can be handy. I wrote a generic command-line option parser using reflection to properly convert and store option values in a general fashion. In this case, simply name your variables like "int opt_size;" or "float opt_percent;" or "boolean opt_h;" and (from the class doc):

      Automatically set object variables from a command-line String[].
      Both static and instance variables are supported.

      Scans the input object for (non-final) public variables, whose names optionally begin with a specific prefix, and sets each variable to the matching option value according to the variable's type.

      Presently, the primitive and String types are supported directly (boolean, byte, char, double, float, int, long, short, String). Other types are supported as described below.

      Each variable is set using the method similar to java.lang.reflect.Field.set(object, value). If the underlying object does not support this, an error will be reported and the variable will not be set. Processing will continue to the next option.

      While intended to process command-line options and arguments for the main() method, this could be used to set variables in any arbitrary class instance.

      So "-h" sets "opt_h = true", "-size 10" sets "opt_size = 10", etc... Adding a new command-line option, just requires adding a new variable w/o any updates to the parsing/processing code. The cla

      • Nice.
        I wrote the same.
        Actually I considered to write a book "The fine Art of Reflection", but never came to it.

        Most people use reflection the wrong way, but your example: is the Way!

        The only hint: you do not need an opt_ prefix. A class/object holding command line parameters should not contain anything else.
        Opt in my eyes would indicate: optional, and other prefixes would indicate mandatory.


        class CommandLineParams {
        File inFile, outFile;
        String encoding;
        bool compressEmptyLines;
        }

        Should be enough ...
        And for fun

        • The only hint: you do not need an opt_ prefix.
          A class/object holding command line parameters should not contain anything else.

          And for fun, you can look at the open source "Java Command Line Parsers" and how ridiculous complicated they are.

          It's actually optional, intended to support, and limit searching in, other classes that contain other things, not just command-line info -- and I hadn't considered using a class just for option/argument info -- so, it can be used to set variables in any class by passing in the class to reflect/set and the String[] containing a "command-line". Perhaps not the most "proper" was to do things, but it was actually one of the first things I wrote in Java way back in 2001. Snippet from the OptionHandler class c

  • The commit of the "initial reflection prototype" was 2 weeks ago. Right now this is borderline vaporware and I find it hard to believe that Oracle will sustain the support required to make this real. Remember when Oracle got so mad at Microsoft over J++? That was 2002 ... 22 years later Oracle decides that Microsoft was right?

    Java was designed as minimal compute machine for a world that never happened thanks to Intel: A world with a plethora of CPU architectures. The minimalist design was to reduce
    • by Pieroxy ( 222434 )

      Remember when Oracle got so mad at Microsoft over J++? That was 2002 ... 22 years later Oracle decides that Microsoft was right?

      It was Sun Microsystem, not Oracle. And the dispute was over Microsoft distributing "Java" (trademarked) but failing to include the java.lang package, hence calling "Java" something that wasn't Java.

      MS lost swiftly and created C# out of it, basically a Java clone back in the days.

      • The java.lang. package obviously was included.

        But they cheated on awt (not sure if swing already existed) and replaced it with a "windows.forms" package and changed the JNI (Java Native Interface) which completely broke any portability.

        The worst thing is: before that they had a full implementation, and just when they called it J++, they dropped many things,. I think even JDBC was broken.

        At that time in Europe many students were still on Windows, Universities switched from Pascal to Java, free IDEs popped up

    • I do remember j++ I think. It was Sun though not oracle
    • by organgtool ( 966989 ) on Sunday January 28, 2024 @02:29PM (#64195044)

      The commit of the "initial reflection prototype" was 2 weeks ago. Right now this is borderline vaporware and I find it hard to believe that Oracle will sustain the support required to make this real.

      Much to my complete amazement, Java development under Oracle has maintained a very good pace. I don't know anybody that uses any version above 11, but the news I read about newer versions has an impressive list of features. Of course, that's only due to the fact that the Java language has trailed C# for quite some time.

      Java was designed as minimal compute machine for a world that never happened thanks to Intel: A world with a plethora of CPU architectures. The minimalist design was to reduce the porting effort required for the JVM to all of these envisioned architectures. We basically have 2 architectures, not thousands.

      It's not just about CPU architectures. Java binaries can be dropped onto any machine that has an OS with a JVM and they will run without needing to be recompiled. While that benefit has been diminished a bit for backend server processes due to containerization, it stills provides great value overall. The language is very mature, it contains tons of great third-party libraries, and it provides what is still one of the best frameworks for concurrency I've ever used.

      Now Java is stuck with its by-design limitations. This project is not going to save Java.

      What limitations are imposed in Java due to supporting multiple architectures and operating systems?

      • What limitations are imposed in Java due to supporting multiple architectures and operating systems?

        None, but he did not mean that.
        Java has only single inheritance. A bit softened since interfaces can have default methods, aka a method that is already implemented in the interface. But: no attributes, I think not even static ones.
        Java has no real templates. I mean seriously: template meta programming on the JVM, with multiple inheritance done right and with byte code inspection and AspectJ like aspect orient

        • I did mean that. For instance the decision to not have unsigned operations in the JVM. The JVM has 205 opcodes. Intel x86_64 has 1503. .NET's CIL only has 195 opcodes, but they are each far more powerful since their precise meaning depends on the types being operated on. The CIL is entirely stack-base where the JVM is like a low-functionality CPU with register and stack operands. The JIT compiler of .NET has a lot more work to do when it does its thing, but it can choose the best register optimizations
          • The Java IL / bytecode has no registers.
            And I doubt the amount of opcodes.

            I guess you are mixing up JBC with Dalvik/Android Java.

      • I don't know anybody that uses any version above 11

        Just wanted to chip in and say that I run a somewhat large SaaS-company with a virtually 100% Java-backend. I have always pushed for that you have to keep pace with changes in the ecosystem. We are currently running Java 21.

      • I don't know anybody that uses any version above 11

        My company uses Java 17 and will be going to Java 21 later this year (we write online banking software).

  • I thought "Project Panama" had to do with tax evasion -- oh well, live and learn. :-)

  • In Project Valhalla, work will focus on value classes and objects, which provide class instances that have only final instance fields and lack object identity [to] significantly reduce the run time overhead of boxed Integer, Double, and Byte objects...

    Sounds just like I have been using interfaces for ages to accomplish that purpose. Please enlighten me!

    • No.

      So? How do you want to be enlightened?
      What has an interface to do with value objects? Nothing obviously.

      • by ls671 ( 1122017 )

        how is this more efficient than declaring final static values in interfaces or classes?

        I might have a look at the project, thanks.

        Thanks,

  • ...while you are at it, could you please remove the 64KB bytecode limit for a single method?

    Pretty please?

    • I can't imagine even a class that big, much less a single method, that did not grossly violate the Single Responsibility Principle.

      Perhaps an example might prove me wrong?

One person's error is another person's data.

Working...