Rife Is a Framework Experiment
rife2.comThere 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:
https://www.reddit.com/r/java/comments/10889p1/yet_another_d..."Yet another delimited continuations implementation and why Project Loom is a bit disappointing"Do Java programmers dream of callback hell?
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.
There's more detail in the readme on GitHub:
https://github.com/gbevin/rife2
Including:
> 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.
Doesn't appear to have websocket support, though.
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...
Why would you need Oracle JDK specifically? There are so many reliable JDK builds by other parties. https://sdkman.io/jdks
I'm personally using Amazon Corretto (is in the SKDMan link)
OpenJDK is still Oracle anyway.
> 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.
There are many other vendors who offer JDK. We have been using Amazon Corretto JDK in production pretty much since the launch. Didn't face any issues.
I don’t quite understand these comments.
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.
What am I missing here?
Are you asking why Oracle is unethical?
Also, is the "One in particular" MS, Goog, or FB? All get as much skepticism/criticism as praise.
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.
Oracle saved Java. Sun was letting it rot. I don’t care what anyone else says about Oracle, but the OpenJdk team has done amazing work.
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.
Except the tiny detail that OpenJDK code is mostly written by Oracle anyway.
So are you suggesting to be stuck using Java 6 version?
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.
The OpenJDK project releases all Java code under a GPL license. You can make use of Java 19 without having any kind of relation with Oracle.
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.
Just like there are different C compilers there are different JDK/JREs.
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.
I thought "modern Java" means classless ?
Why do i need to put some code inside another superficial class here ?
"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...
Everything in java is a class, not sure what you mean.
Personally, it's nice from an operations perspective. Makes debugging performance problems a lot easier.
Then it's "old Java", not "modern java" ?
Are you thinking of JavaScript? In Java you can’t even write hello world without a class.
Soon you will: https://openjdk.org/jeps/8302326
> I thought "modern Java" means classless ?
Nope.
> Why do i need to put some code inside another superficial class here ?
Which class is the superficial class?
Only if by "modern Java" you mean Kotlin.
C# has top-level functions and even top-level code these days, but it evolves a lot faster.
When Kotlin ships with their own JVM replacement, we might think about calling it "modern" Java.
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.
Are you thinking of records?
It's still a class :p