Heroku | The Next Twenty Years of Java: Where We've Been and Where We're Going
Java Tools and Technologies Landscape Report 2016 | zeroturnaround.com
Java Tools and Technologies Landscape Report 2016: Pivoting data | zeroturnaround.com
Java Tools and Technologies Landscape Report 2016: Trends and Historical data | zeroturnaround.com
7 New Java Talks You Need to See | Takipi Blog
Java is mounting a huge comeback - YouTube funny take on Java 21
It's easier to extract the JDK tarball and use JAVA_HOME
to use it.
JAVA_HOME=/usr/local/share/jdk1.8.0_91 java_app
OpenJDK
Differences Between Oracle JDK and OpenJDK | Baeldung
java - Differences between Oracle JDK and OpenJDK - Stack Overflow
Java Future Release Notices Oracle Java SE is not applicable to business since April 16, 2019
Red Hat Breathes New Life Into Java | Enterprise | LinuxInsider
Oracle JDK Releases for Java 11 and Later | Oracle Java Platform Group, Product Management Blog Oracle JDK and OpenJDK builds are essentially identical from Java 11 onward
Migrating from Oracle JDK to OpenJDK on Red Hat Enterprise Linux: What you need to know - Red Hat Developer Blog
Not all OpenJDK 12 builds include Shenandoah: Here's why - Red Hat Developer Blog
Main - Shenandoah - OpenJDK Wiki
When Will Java 11 Replace Java 8 as the Default Java? - DZone Java
JavaPoly.js — Java(script) in the Browser
Learn
From Oracle:
Java SE Specifications
The Java™ Tutorials offline/eBook
Java "Back to Basics" Tutorial | Baeldung
Java Tutorial Through Katas | Technology Conversations
Java Programming, Learn Java Online with the Java Code Geeks | Java developers resource center - Java, Scala, Groovy, Android
Java "Back to Basics" Tutorial | Baeldung
Home - Thoughts on Java
Thorben Janssen - YouTube
14 YouTube Channels You Should Follow in 2019 - Thoughts on Java
Book
Think Java – Green Tea Press
Free Online Version of Core Servlets and JavaServer Pages (Second Edition) in PDF
Javanotes 7.0 -- Title Page
Quick Links - MindView Exceptional Learning Experiences Thinking in Java
Thinking in Java 4th Edition (R1) : Bruce Eckel : Free Download, Borrow, and Streaming : Internet Archive
Maven
Maven – Welcome to Apache Maven
Maven – Introduction
How to create a Java project with Maven
mvn archetype:generate -DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
Maven Multimodule Project: A Detailed View | by Anish Antony | Javarevisited | Medium
Server
15 Java frameworks that give developers a boost | InfoWorld
Project Grizzly
Java SE 8: Creating a Basic REST Web Service using Grizzly, Jersey, and Maven
CRaSH the shell for the Java Platform
Blade
lets-blade/blade: Lightning fast and elegant mvc framework for Java8
Jakarta EE
Java Platform, Enterprise Edition - Wikiwand Java EE is rebranded as Jarkarta EE
Jakarta EE: Generation IV — A New Hope - DZone Java
Java roadmap: Eclipse’s Jakarta EE enterprise Java takes shape | InfoWorld
What's New With Jakarta NoSQL? (Part 1): Intro to Document With MongoDB - DZone Database
Internals
JVM Optimization 101
Honey, you have changed quite a bit lately, haven't you? | Elastic
A Primer on JVM Memory Management and Troubleshooting - 1
JVM Primer Part 2 - Debugging memory issues
How to Read a Thread Dump - DZone Java
Libraries
Comsat - Parallel Universe transparent concurrency for maximal
http service scalability
Quasar - Parallel Universe lightweight threads and actors for the JVM, Kotlin compatible
Understanding Java’s Project Loom virtual threads
Guava
google/guava: Google core libraries for Java
Home · google/guava Wiki
Overview (Guava: Google Core Libraries for Java HEAD-jre-SNAPSHOT API)
Guava | Baeldung
Thomas Ferris Nicolaisen - Google Guava
Database/ORM
App Frameworks
Vaadin
Vaadin | Discover the Web App Framework Built for Java
vaadin/platform: Vaadin platform 10+ is a Java web development platform based on Vaadin web components. If you don't know to which repository your bug report should be filed, use this and we'll move it to the right one.
JHipster
JHipster - Full Stack Platform for the Modern Developer!
jhipster/generator-jhipster: JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
JVM as a Platform
JVM Minimal Survival Guide – Hadi Hariri
SE-Radio Episode 266: Charles Nutter on the JVM as a Language Platform : Software Engineering Radio
JRuby history and compile to JVM in general. The project leads to the introduction of invokedynamic
to JVM instructions which Java 8's lambdas depends on.
Java Virtual Machine Support for Non-Java Languages
Invokedynamic 101 | JavaWorld
Invokedynamic - Java’s Secret Weapon
Why are Java 8 lambdas invoked using invokedynamic? - Stack Overflow
The Apache Groovy programming language - Invoke dynamic support
GraalVM
GraalVM ahead-of-time VM for compiled polyglot binaries
Oracle's Graal project empowers language creation on the JVM | InfoWorld
GraalVM with Thomas Wuerthinger - Software Engineering Daily
Thomas Wuerthinger on GraalVM and Optimizing Java with Ahead-of-Time Compilation
Maximizing Performance with GraalVM
Quarkus - Supersonic Subatomic Java
Introducing Quarkus: a next-generation Kubernetes native Java framework - Red Hat Developer Blog
Quarkus beginners guide! - JAX London
GraalVM Quarkus: Java Acceleration with Guillaume Smet and Emmanuel Bernard - Software Engineering Daily
Microservices: Quarkus vs. Spring Boot - DZone Microservices
RoboVM
The Death of RoboVM | Linux Journal RoboVM was dead after Xamarin has been acquired by Microsoft
MobiDevelop's RoboVM Fork
MobiVM/robovm: Ahead of time compiler for JVM bytecode targetting iOS, Mac OSX and Linux
Derivatives
There a many compile-to-bytecode language. They have the advantage of:
- provide different programming paradigms
- Java interoperability (varies)
- utilize highly optimized JVM
List of JVM languages - Wikiwand
Pirates of the JVM — The infographic: Are you ready for an adventure? - JAXenter
Beyond Java: Programming languages on the JVM | InfoWorld
SDKMAN! the Software Development Kit Manager install Java related toolchains
Why is Scala more popular than Clojure despite the simplicity of the latter? - Quora
Scala VS Groovy: A Response | Kevin Wright | LinkedIn
Scala vs. Groovy vs. Clojure - Stack Overflow
What are the key differences between Scala and Groovy? - Stack Overflow
Why I abandoned Java in favour of Kotlin - Hashnode
Groovy vs Kotlin - Which One Is Best ( With Infographics)
Scala vs Kotlin – Agilewombat
Xtext - Language Engineering Made Easy! framework for developing DSL
szschaler/GridGames: A DSL for developing grid-based arcade-style games. Because, .... fun!
Who's More Functional: Kotlin, Groovy, Scala, or Java? - YouTube
Kotlin
Scala
Groovy
It's probably wiser to go for Kotlin or Scala instead
Groovy is a dynamic and scripting language running on JVM. It is adopted as an Apache project in April 2015.
Groovy script is interpreted to Java Bytecode. It also has a compiled mode to archive Java performance.
It utilizes invoke dynamic runtime on JVM 7+, Groovy 3 is expected to drop legacy mode which uses reflection and hacks.
The Groovy programming language
Apache Groovy - Wikiwand
Groovy web console playground
The Groovy programming language - Learn
The Groovy programming language - Documentation
Cédric Champeau's blog Blog of ex-Groovy contributor
The Grails Framework A powerful Groovy-based web application framework for the JVM
Groovy 3.0 Adds New Java-Like Features
5 reasons why Groovy programming language is still a valid choice in late 2018 | Codementor
Compiling Groovy
groovy ./file.groovy
# compile to ./file.class
groovyc ./file.groovy
java -cp ".;${GROOVY_HOME}/LIB/*" <classname>
groovyc -d classes myclasses.groovy
jar cvf myclasses.jar -C classes .
dmitart/scriptjar in Groovy
Bernhard's Weblog
bond-/gradle-groovy-jar-example: Example for a groovy executable using gradle-1.0
Clojure
Clojure - home
Learning colojure — Medium
Clojure Newbie Guide
Clojure - ClojureScript compile to JavaScript
Google Closure · clojure/clojurescript Wiki
What Holds Me Back From Clojurescript | Jared Forsyth.com
Courses with Free Content | PurelyFunctional.tv
Clojure Days - YouTube
ClojureScript reimagined - Michiel Borkent - YouTube
hyperfiddle
hyperfiddle/electric: a reactive Clojure dialect for web development that uses a compiler to infer the frontend/backend boundary
Dustin Getz - YouTube
Eta
The Eta Programming Language
typelead/eta: The Eta Programming Language, a dialect of Haskell on the JVM
Purple JS
PurpleJS run JS in JVM
purplejs/purplejs: PurpleJS framework - A javascript application framework on the JVM.
Home · purplejs/purplejs Wiki