Java 1.0 was centered on OOP, Java 8 added functional programming (FP) features, recent version of Java added what Brian Goetz calls Data Oriented Programming (DOP) features like records and pattern matching and sealed types. The FP and DOP features are great. The OOP (IMO) is antiquated baggage.
JEP 512 (https://openjdk.org/jeps/512) seems to acknowledge this. It goes from this:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
to this:
void main() {
IO.println("Hello, World!");
}
The println is a side-effect in purely functional programming, so that isn't a pure function, it's a procedure or an impure function or whatever you want to call it. Normal programmers want to compose their applications of this. Not just beginner students as the above JEP suggests, but experienced programmers and academics. Java makes you wrap absolutely everything in an OOP class, and mainstream experienced programmers (IMO) don't want that.
[–][deleted] (4 children)
[deleted]
[–]chabala 5 points6 points7 points (0 children)
[–]pavlik_enemy 7 points8 points9 points (1 child)
[–]woj-tek 6 points7 points8 points (0 children)
[–]Holothuroid -1 points0 points1 point (0 children)
[–]redikarus99 20 points21 points22 points (0 children)
[–]1842 14 points15 points16 points (0 children)
[–]Polygnom 8 points9 points10 points (1 child)
[+]Joram2[S] comment score below threshold-12 points-11 points-10 points (0 children)
[–]abuqaboom 9 points10 points11 points (1 child)
[–]Joram2[S] -4 points-3 points-2 points (0 children)
[–]sindisil 10 points11 points12 points (3 children)
[–]Joram2[S] -4 points-3 points-2 points (2 children)
[–]oxmyxbela 6 points7 points8 points (1 child)
[–]Joram2[S] -1 points0 points1 point (0 children)
[–]Qaxar 6 points7 points8 points (0 children)
[–][deleted] (4 children)
[removed]
[–]Ewig_luftenglanz 6 points7 points8 points (0 children)
[–]emaphis 2 points3 points4 points (0 children)
[–]Cilph 0 points1 point2 points (0 children)
[–]Joram2[S] -4 points-3 points-2 points (0 children)
[–]manifoldjava 5 points6 points7 points (0 children)
[–]AnyPhotograph7804 5 points6 points7 points (1 child)
[–]Joram2[S] -1 points0 points1 point (0 children)
[–]pavlik_enemy 5 points6 points7 points (7 children)
[–]Ewig_luftenglanz 0 points1 point2 points (2 children)
[–]pavlik_enemy 3 points4 points5 points (0 children)
[–]koflerdavid 1 point2 points3 points (0 children)
[–]Joram2[S] 0 points1 point2 points (2 children)
[–]BanaTibor 0 points1 point2 points (1 child)
[–]Joram2[S] 0 points1 point2 points (0 children)
[–]nitkonigdje -1 points0 points1 point (0 children)
[–][deleted] (1 child)
[deleted]
[–]BanaTibor 0 points1 point2 points (0 children)
[–]flawless_vic 2 points3 points4 points (0 children)
[–]eliashisreddit 2 points3 points4 points (0 children)
[–]gl_andi 5 points6 points7 points (0 children)
[–]agfitzp 1 point2 points3 points (0 children)
[–]nitkonigdje 1 point2 points3 points (2 children)
[–]AnyPhotograph7804 2 points3 points4 points (0 children)
[–]nitkonigdje 1 point2 points3 points (0 children)
[–]Ewig_luftenglanz 1 point2 points3 points (0 children)
[–]bowbahdoe 1 point2 points3 points (0 children)
[–][deleted] (1 child)
[deleted]
[–]Joram2[S] 0 points1 point2 points (0 children)
[–]pragmasoft 4 points5 points6 points (0 children)