There are a huge set of web frameworks in Java that have the same example as shown on this site; I have no idea how this differs from, say, https://ratpack.io or https://sparkjava.com. This really needs some key features on the site to sell it.
The major difference that I seem to be able to find digging through the docs/wiki is that in RIFE2, "continuations" are a first-class feature of the framework and the framework was built with these in mind.
What this allows you to do is build flows around pausing and saving the state of execution, and resuming it with all variables captured at a later time, which opens up neat possibilities.
With Loom on the JVM natively this in THEORY should be possible but there is a lot of complication here.
There was a good post on this on /r/java with Ron Pressler from Oracle posting about why this is complicated 1 month ago:
"Yet another delimited continuations implementation and why Project Loom is a bit disappointing"
Steele needs to step in here and demonstrate some leadership. He invented Scheme and is involved in Java's day to day engineering decisions, he should be more than familiar with the problems that arise when you let programmers write continuations instead of implementing it at the compiler level.
> RIFE2 has features that after 20 years still can't be found elsewhere: web continuations, bidirectional template engine, bean-centric metadata system, full-stack without dependencies, metadata-driven SQL builders, content management framework, full localization support, resource abstraction, persisted cron-like scheduler, continuations-based workflow engine.
Thanks for reminding me that I've been neglecting the main site. I added a few very visible cards of some of the key features and split out a more comprehensive list into bullet points as opposed to the previous long paragraph.
It's great that you see the similarities with Spark, I think that's a great framework!
It’s always nice to see full-stack, batteries included frameworks. However, whenever I see Java, I can’t help but think about Oracle and it turns into a very unpleasant feeling.
As a professional developer that only works on Java I hated the fact that Oracle bought Sun. I was rooting for IBM or Google. If you use the Oracle JDK; yes you MIGHT need to pay money depending on what you use of it. There are around 10 (?) different providers of Java Software Developer Kits available all the others are free. I know no Java developer that actually uses the one from Oracle; and since I am a consultant that works on contract bases at different companies I have spoken quite a few of them.
Android Java proves how much Google cares about Java after screwing up Sun.
Given how much everyone around here likes to hate on IBM, while not even being aware of how OpenJ9 works, the alternative implementations for IBM mainframe and micro computers and so forth, it would hardly make a difference versus Oracle.
Sun, Oracle and IBM were the main triumvirate pushing Java into the market.
Every Java developer that uses OpenJDK or a distribution based on it, uses Oracle code.
It is about 80% of Oracle employes that put in the effort since Java 6 to bring the ecosystem forward.
The issue with Oracle JDK is you _have_ to pay even if you don't use it. If there's just one person in the company using Oracle JDK they bill you for the entire company headcount.
Earlier licensing practices were not much better; my company did a 'hard purge' a few years ago and everything using Oracle JDK+RDBMS is now running on OpenJDK with a PostgreSQL backend.
Don't know what rooting for Google and/or IBM would help. All companies that size do have their shady side and will sometimes do questionable things. They didn't get to be so big just by being nice...
> There are around 10 (?) different providers of Java Software Developer Kits available all the others are free. I know no Java developer that actually uses the one from Oracle
They're all from Oracle, even the ones you download from an Amazon website. Those providers merely build and package OpenJDK (which is the name of Oracle's implementation of Java). What you mean is that they're not using the distribution provided to Oracle support subscribers.
This assumes things would have turned out better under a different company. Perhaps Google being Google would have cancelled the project altogether or made it Android only. IBM could have sold it off.
Whilst Oracle does have its issues what is it doing wrong here? As per other comments you don't have to use Oracle's JDK and if you do you're buying support.
Oracle seems to be this big, complicated enterprise oriented corporation. But they’re also stewards of Java and had kept the language evolving with impressive stability and compatibility guarantees.
There are definitely firms that I don’t want to rely on for ethical reasons. They accumulated long lists of malpractices and exploitation. One in particular is very popular around here.
I don't necessarily want to bash on a specific company unrelated to the discussion I don't like right now. I just wanted to assert that I personally care when companies do shitty things. And whether people can provide substantiations for the negativity that is spread in some of the comments here.
Sun did release their Java implementation under GPL in 2006. There are lots of OpenJDK builds from different companies so you don't have to touch anything 'Oracle' to use Java.
So a for loop written by those evil Oracle fingers is different than one written by some majestic employee of a virtuous company that saves the World on a weekly basis like a child’s cartoon?
Java is a tool that started long before Oracle acquired Sun, it’s open source and actually more open than most languages due to their governance and other powerful players involved.
Yeah I’d never touch anything Oracle. Don’t reward horrible behavior. Best thing the industry can do is ignore them as much as possible and let them fade away.
Do you use MySQL? It's hard to avoid Oracle at this point except by pretending to. They own so many different companies you're likely just not aware you're indirectly supporting them somewhere.
"Modern Java" is not formally defined, but most people seem to associate it with Java for Microservices (small runtimes instead of ancient Java EE), functional programming, streams, reactive programming and generally using newer (Java 8+) language constructs.
There's a lot more to it than obsessing over a single line of boilerplate code...
I did not mean suggest that it is one. But many people outside of the ecosystem seem to treat it this way after Google started promoting it, which would explain OP's confusion.