Skip to content

Java

October 12, 2023
March 4, 2016

kotlin
scala

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

GlassFish Server
DUBBO

A Fast Introduction to Basic Servlet Programming | The Advantages of Servlets Over "Traditional" CGI | InformIT

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

sql#ORM (or not)

主流 Java ORM 框架有哪些?

App Frameworks

spring

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:

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

kotlin

Scala

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

Pedestal

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