IAll rights reserved. 2015 © ZeroTurnaround Inc. TOP 10 REASONS WHY JAVA ROCKS JAVA & JVM CONQUER THE WORLD True story! PREVIEW
1All rights reserved. 2014 © ZeroTurnaround Inc. INTRODUCTION TO ESTABLISHING JVM SUPERIORITY OVER OTHER VIRTUAL MACHINES Most people talk about Java the Language, and this may sound odd coming from me, but I could hardly care less. At the core of the Java ecosystem is the JVM. JAMES GOSLING Creator of the Java Programming Language (2011, TheServerSide)
2All rights reserved. 2015 © ZeroTurnaround Inc. Twenty years of Java For many programmers, Java holds a special place in their heart. It may not be the most hip language today, but it has stood the test of time as the enterprise programming platform of choice for two decades. There are many things that Java developers take for granted. This special report is dedicated to paying tribute to the top 10 reasons why Java is still considered the best programming language after 20 years. TIOBE Programming Community Index
3All rights reserved. 2015 © ZeroTurnaround Inc. This report will explore the Top 10 reasons why we at RebelLabs believe that Java has become and will continue to be the leading platform for software projects. The Top 10 biggest things that we appreciate in Java and which we will cover in this report include: High Performance JVM Core API Compiler Bytecode Memory Model Open Source Intelligent IDEs Profiling Tools Backward Compatibility Maturity with Innovation While you may or may not agree on our choice of the Top 10 items, we hope that this report increases your appreciation for Java. We would like to look beyond the surface and the buzzwords and analyze what actually makes Java the platform of choice for so many. We will also investigate which design trade-offs resulted in this popularity and what features could we appreciate more instead of taking them for granted. Reload code changes instantly THIS REPORT IS SPONSORED BY:
4All rights reserved. 2015 © ZeroTurnaround Inc. Interestingly, the most awesome aspect of the Core API is that it has always been there, that it still is there and that it’s still backward compatible. It’s complete enough to allow you to write most applications without requiring anything else, should you wish to do so. However, the most common complaint you hear about Java’s Core API is that it can be verbose. This is precisely why people use additional libraries or JVM languages that provide concise language-level access to many of the Core API features. CORE API
5All rights reserved. 2015 © ZeroTurnaround Inc. You know that bytecode allows the Java compiler to express instructions in a format that is directly understood by the Java Virtual Machine. Some users compare bytecode to assembly, but we have found that it’s nowhere near as complicated. Thankfully you get all the good bits of the JVM and its verifier, drastically reducing the potentially harmful instructions that you can write. Even if you don’t use third party bytecode manipulation tools, for example ASM, the Java platform has actually everything included — allowing you to inspect the bytecode of any class. Let’s take a quick look, for instance at this very complex piece of Java code: BYTECODE public class HelloWorld { public HelloWorld() { } public static void main(String[] args) { System.out.println("Hello World!"); } }
6All rights reserved. 2015 © ZeroTurnaround Inc.
7All rights reserved. 2015 © ZeroTurnaround Inc. Measure before you jump The worst thing you can do when trying to fix a performance problem is to make assumptions. You’re guaranteed to either make things worse or to waste precious time while your application is sliding into the pits of doom. The question is: how do you measure? Well, with the Java platform this is easy! You already have capable profiling tools in the JDK itself. If you haven’t tried it yet, make sure to give VisualVM a go. If you need to go further than that, there’s a plethora of free and affordable tools available that take the measurement and analysis to the next level. PROFILING TOOLS
8All rights reserved. 2015 © ZeroTurnaround Inc. What to look for in the sea of profilers? JProfiler is the leading JVM profiler out there. Its intuitive UI and maturity make it a solid profiler tool, which can definitely be your first choice of the profiler if you need one. XRebel is a lightweight Java application profiler. It shows you production grade performance issues during application development. Created by ZeroTurnaround, i.e. us. JMC or Java Mission Control is an advanced set of tools that enables efficient and detailed analysis of extensive data collected during runtime profiling. Honest profiler is a Java profiler that tries to avoid common profiling issues, like stopping threads at safe point or influencing the gathered data by its own performance. Plumbr is a Java performance monitoring solution that can also point out root causes of issues.
9All rights reserved. 2015 © ZeroTurnaround Inc. Maturity never sounds glamorous or exciting. Why would it, when it instinctively makes you think of outdated, slow and wrinkled? However, in our book it means that we can rely on it without surprises. It means that we know exactly what we can expect, and most importantly, it means that we can use it to build a product as a team without the risk of stepping on each others’ feet. The availability of intelligent IDEs, a backward compatible platform, a massive core API, a vibrant open source community, and a language that was designed for readability and encapsulation makes Java perfect for teamwork. MATURITY INNOVATION WITH
10All rights reserved. 2015 © ZeroTurnaround Inc. Written by: Geert Bevin (@gbevin), Simon Maple (@sjmaple), Oleg Shelajev (@shelajev), Mart Redi (@martredi) Designed by: Ladislava Bohacova​ (@ladislava) Contact us Estonia Ülikooli 2, 4th floor Tartu, Estonia, 51003 Phone: +372 653 6099 Twitter: @RebelLabs Web: http://zeroturnaround.com/rebellabs Email: labs@zeroturnaround.com USA 399 Boylston Street, Suite 300, Boston, MA, USA, 02116 Phone: 1 (857) 277-1199 Czech Republic Jankovcova 1037/49 Building C, 5th floor, 170 00 Prague 7, Czech Republic Phone: +420 227 020 130

Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks

  • 1.
    IAll rights reserved.2015 © ZeroTurnaround Inc. TOP 10 REASONS WHY JAVA ROCKS JAVA & JVM CONQUER THE WORLD True story! PREVIEW
  • 2.
    1All rights reserved.2014 © ZeroTurnaround Inc. INTRODUCTION TO ESTABLISHING JVM SUPERIORITY OVER OTHER VIRTUAL MACHINES Most people talk about Java the Language, and this may sound odd coming from me, but I could hardly care less. At the core of the Java ecosystem is the JVM. JAMES GOSLING Creator of the Java Programming Language (2011, TheServerSide)
  • 3.
    2All rights reserved.2015 © ZeroTurnaround Inc. Twenty years of Java For many programmers, Java holds a special place in their heart. It may not be the most hip language today, but it has stood the test of time as the enterprise programming platform of choice for two decades. There are many things that Java developers take for granted. This special report is dedicated to paying tribute to the top 10 reasons why Java is still considered the best programming language after 20 years. TIOBE Programming Community Index
  • 4.
    3All rights reserved.2015 © ZeroTurnaround Inc. This report will explore the Top 10 reasons why we at RebelLabs believe that Java has become and will continue to be the leading platform for software projects. The Top 10 biggest things that we appreciate in Java and which we will cover in this report include: High Performance JVM Core API Compiler Bytecode Memory Model Open Source Intelligent IDEs Profiling Tools Backward Compatibility Maturity with Innovation While you may or may not agree on our choice of the Top 10 items, we hope that this report increases your appreciation for Java. We would like to look beyond the surface and the buzzwords and analyze what actually makes Java the platform of choice for so many. We will also investigate which design trade-offs resulted in this popularity and what features could we appreciate more instead of taking them for granted. Reload code changes instantly THIS REPORT IS SPONSORED BY:
  • 5.
    4All rights reserved.2015 © ZeroTurnaround Inc. Interestingly, the most awesome aspect of the Core API is that it has always been there, that it still is there and that it’s still backward compatible. It’s complete enough to allow you to write most applications without requiring anything else, should you wish to do so. However, the most common complaint you hear about Java’s Core API is that it can be verbose. This is precisely why people use additional libraries or JVM languages that provide concise language-level access to many of the Core API features. CORE API
  • 6.
    5All rights reserved.2015 © ZeroTurnaround Inc. You know that bytecode allows the Java compiler to express instructions in a format that is directly understood by the Java Virtual Machine. Some users compare bytecode to assembly, but we have found that it’s nowhere near as complicated. Thankfully you get all the good bits of the JVM and its verifier, drastically reducing the potentially harmful instructions that you can write. Even if you don’t use third party bytecode manipulation tools, for example ASM, the Java platform has actually everything included — allowing you to inspect the bytecode of any class. Let’s take a quick look, for instance at this very complex piece of Java code: BYTECODE public class HelloWorld { public HelloWorld() { } public static void main(String[] args) { System.out.println("Hello World!"); } }
  • 7.
    6All rights reserved.2015 © ZeroTurnaround Inc.
  • 8.
    7All rights reserved.2015 © ZeroTurnaround Inc. Measure before you jump The worst thing you can do when trying to fix a performance problem is to make assumptions. You’re guaranteed to either make things worse or to waste precious time while your application is sliding into the pits of doom. The question is: how do you measure? Well, with the Java platform this is easy! You already have capable profiling tools in the JDK itself. If you haven’t tried it yet, make sure to give VisualVM a go. If you need to go further than that, there’s a plethora of free and affordable tools available that take the measurement and analysis to the next level. PROFILING TOOLS
  • 9.
    8All rights reserved.2015 © ZeroTurnaround Inc. What to look for in the sea of profilers? JProfiler is the leading JVM profiler out there. Its intuitive UI and maturity make it a solid profiler tool, which can definitely be your first choice of the profiler if you need one. XRebel is a lightweight Java application profiler. It shows you production grade performance issues during application development. Created by ZeroTurnaround, i.e. us. JMC or Java Mission Control is an advanced set of tools that enables efficient and detailed analysis of extensive data collected during runtime profiling. Honest profiler is a Java profiler that tries to avoid common profiling issues, like stopping threads at safe point or influencing the gathered data by its own performance. Plumbr is a Java performance monitoring solution that can also point out root causes of issues.
  • 10.
    9All rights reserved.2015 © ZeroTurnaround Inc. Maturity never sounds glamorous or exciting. Why would it, when it instinctively makes you think of outdated, slow and wrinkled? However, in our book it means that we can rely on it without surprises. It means that we know exactly what we can expect, and most importantly, it means that we can use it to build a product as a team without the risk of stepping on each others’ feet. The availability of intelligent IDEs, a backward compatible platform, a massive core API, a vibrant open source community, and a language that was designed for readability and encapsulation makes Java perfect for teamwork. MATURITY INNOVATION WITH
  • 11.
    10All rights reserved.2015 © ZeroTurnaround Inc. Written by: Geert Bevin (@gbevin), Simon Maple (@sjmaple), Oleg Shelajev (@shelajev), Mart Redi (@martredi) Designed by: Ladislava Bohacova​ (@ladislava) Contact us Estonia Ülikooli 2, 4th floor Tartu, Estonia, 51003 Phone: +372 653 6099 Twitter: @RebelLabs Web: http://zeroturnaround.com/rebellabs Email: labs@zeroturnaround.com USA 399 Boylston Street, Suite 300, Boston, MA, USA, 02116 Phone: 1 (857) 277-1199 Czech Republic Jankovcova 1037/49 Building C, 5th floor, 170 00 Prague 7, Czech Republic Phone: +420 227 020 130