Effective Polyglot Programming by Cloud Monk, 2025

Formerly Effective Programming Languages by Cloud Monk

Inspired by and Based on Effective Java, Third Edition by Joshua Bloch, Pearson Education Inc., 2018, ISBN-13: 978-0-13-468599-1, ISBN-10: 0-13-468599-7. Also on 100 Java Mistakes and How to Avoid Them, Troubleshooting Java - Read, Debug, and Optimize JVM Applications, The Well-Grounded Java Developer, Second Edition, Functional Programming in Java - How Functional Techniques Improve your Java Programs, Classic Computer Science Problems in Java, Modern Java in Action - Lambdas, Streams, Functional and Reactive Programming, The Java Module System, C++ Core Guidelines by Bjarne Stroustrup and Herb Sutter and Software Mistakes and Tradeoffs

https://survey.stackoverflow.co/2024/technology

0. Transact-SQL and SQL - Effective SQL (Microsoft Transact-SQL, SQL, 2023 - ISO/IEC 9075-2023 - 9th edition, Oracle PL/SQL

The programming languages that most closely resemble Java are:

1. Effective C#: C Sharp is often compared to Java due to its similar syntax, object-oriented principles, and runtime environment (the .NET framework in C vs. the JVM in Java). Both languages share features such as garbage collection, strong typing, and similar syntax for defining classes, methods, and interfaces.

2. Effective Kotlin: Kotlin is designed to be fully interoperable with Java and runs on the JVM. It is often used as a modern replacement for Java in Android development. Kotlin shares many features with Java, such as object-oriented programming, but also introduces more concise syntax, null safety, and higher-order functions.

3. Effective Scala: Scala is another language that runs on the JVM and is fully interoperable with Java. Scala combines object-oriented and functional programming paradigms and offers features like type inference, immutability, and pattern matching, all while allowing seamless integration with existing Java code.

4. Effective Groovy: Groovy is a dynamic language that runs on the JVM and is fully compatible with Java. It offers a simpler syntax and adds powerful features such as closures, dynamic typing, and scripting capabilities, while still allowing Java code to be directly integrated.

5. Effective C++: CPP is a general-purpose programming language that heavily influenced the design of Java. While C++ includes both low-level and high-level programming features and does not run on a JVM, its syntax, object-oriented concepts, and use of classes and inheritance closely resemble those in Java.

6. Effective JavaScript: Despite differences in execution environments (browser vs. JVM) and some language features, JavaScript shares many syntax similarities with Java, especially in its earlier versions. Both languages use C-style syntax, and JavaScript was originally designed with Java-like syntax to make it familiar to Java developers.

7. Effective Swift: Swift is the programming language developed by Apple for iOS and macOS development. Swift shares several object-oriented features with Java, such as strong typing, the use of classes, methods, and protocols (similar to interfaces in Java). Swift also adopts a modern syntax and safety features that parallel Java's evolution.

8. Effective PHP: Starting from PHP 5, PHP adopted object-oriented features that resemble those in Java. The syntax for class declarations, method definitions, and inheritance in PHP is similar to Java. While PHP is primarily a scripting language for web development, its object-oriented features make it resemble Java in certain aspects.

9. Effective TypeScript: TypeScript is a superset of JavaScript that adds static typing and other features commonly associated with strongly-typed languages like Java. TypeScript's syntax for classes, interfaces, and modules is similar to Java, making it a familiar choice for developers who are used to Java's type system and object-oriented principles.

10. NO - a dying language - Effective Objective-C: Objective-C is an object-oriented programming language used primarily for developing software on Apple platforms. Its syntax and object-oriented features are similar to those of Java, especially in the use of classes, methods, and interfaces. While it includes additional features such as message-passing, the general structure of Objective-C code resembles Java.

These previous languages are either directly influenced by Java, share similar syntax and design principles, or are intended to interoperate with Java code.


These next languages are are NOT directly influenced by Java, do not share similar syntax and design principles, or are not intended to interoperate with Java code:

11. Python - not based on Java - see Effective Python

12. Golang - not based on Java - see Effective Golang

13. Rust - not based on Java - see Effective Rust

14. C Language - not based on Java - see Effective C Language

15. R Language - not based on Java - see Effective R Language

16. Ruby - not based on Java - see Effective Ruby

17. Clojure - not based on Java - see Effective Clojure

18. Haskell - not based on Java - see Effective Haskell

19. Elixir - not based on Java - see Effective Elixir

20. Erlang - not based on Java - see Effective Erlang

21. Elm - not based on Java - see Effective Elm

22. PowerShell - not based on Java - see Effective PowerShell

23. Dart - not based on Java - see Effective Dart