java, now and forever
TRANSCRIPT
JAVANOW AND FOREVER
Agenda
• Java Past, Present and Future
• Thought on Java• Java?
JAVAPast, Present & Future
the Past
Before Java
CFortran
PascalPerl
SmalltalkLisp
C++
History – Brief look
Early history 1991-1995
Release - Gaining traction
Steady Growth
Number of Java Web Framework blooms (Spring, Struts, Hibernate, Tapestry, etc )
April 2004: 250 Million mobile phones support J2MEOctober 2004: 1.7 Billion mobile phones support J2ME
Stagnation
Revival
9M developers97% of Enterprise Desktops Run Java
3 billions devices run Java
5 Billion Java Cards in Use
the Presentleave it for later
the Future
Future
Java 9
Go modularSelf-tuning JVM
Money and Currency API
Java EE8
2015 2016 2017 2018 ....
Java 10
Thoughts onJava
Java is
Java is
dying
don’t have a Future
Java
What do you guys think?
Arguments• COBOL of 21st century• Legacy syntax (verbose, etc.)• Productivity is limited• Insecure• Slow• No one use it anymore• The rise of alternatives (C#, Ruby, Python, Node.js)
Counter-arguments• COBOL of 21st
century • Legacy syntax• Productivity is limited• Insecure • Slow • No one use it
anymore• The rise of
alternatives
• Want to start a project in Java?• It has its reason, especially code
readability• Partly true• Big misunderstanding• It’s history, ever heard of JIT• are you f**king kidding me?• see later
How popular is Java?
Source: http://www.google.com/trends/explore#q=%2Fm%2F07sbkfb%2C%20%2Fm%2F01t6b%2C%20%2Fm%2F07657k%2C%20%2Fm%2F060kv%2C%20%2Fm%2F02p97&cmpt=q&tz=
Google trend
Gartner Programming Language Index for 2014
Source: http://blogs.gartner.com/mark_driver/2014/10/02/gartner-programming-language-index-for-2014/
IEEE Spectrum Top programming languages 2014
Source: http://spectrum.ieee.org/computing/software/top-10-programming-languages
Dice.com Job listing
Java JavaScript HTML C# XML Objective C C++ PHP 0
2000
4000
6000
8000
10000
12000
14000
16000
18000
16489
11969
8318 78346735 6194
48712982
Number of job a day
Source: www.Dice.com
Top 20 languages by book sales
Source: http://radar.oreilly.com/2012/04/computer-book-market-2011-part4.html
EXAMPLE?REAL WORLD
Few big names use Java extensively• IBM• Google• Oracle• Ebay• Amazon• Facebook• Yahoo• Netflix• Linkedin• Tumblr• Square
Example comeback to Java again• Linkedin from Scala Java• Twitter from Ruby Java : performance• Yammer from Scala Java: complexity & performance
Statistics
500 million page views a day 15B+ page views month Peak rate of ~40k requests per second 1+ TB/day into Hadoop cluster
Tweets (peak) ~25'000/secondTweets (avg) ~250 million/day (1000/second) API calls 6 billion/day (70'000/second) New data ~8 TB/day (80MB/second)
1B page views / day26 billion SQL/day
>270 million active user 191 million unique visit/month
Conclusion?
Hell no!• Java is awfully healthy!• Extreme popular• Gigantic ecosystem & community
JAVA is so popular?
Why
Here’s Why• Come at right time • Easy to learn • Safe choice
• Maturity• Libraries & Tools• Community• Robust• Stable
Java future is bright!
Java future is bright!• Actively developed, continuous to evolve • Back by giant corporation• Mobile development:
• Android • Cross-platform mobile development
• Internet of Thing: embedded-Java• Big data
What is
Java?
Java programming language• “A simple, object oriented, distributed, interpreted, robust, secure,
architecture- ‐ neutral, portable, high performance, multi-threaded, dynamic language”
Sun Microsystem
• “Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible”
Wikipedia
But it’s not just a languagealso a platform
Gigantica
one
Language&Platform
Java Platform
OSes
FrameworksLibraries
Languages
Deployment Technologies
APIs IDEsToolsSpecifications
Standards
PCSmart phoneEmbedded devices
Vendors OrganizationCommunity
JVMs
Java Flavors• SE• EE• ME & Card• JavaFX
Where does Java
shine?
Everywhere• Enterprise• Mobile: ~80% (Android + BlackBerry)• Web• Software Tools: Eclipse, Jenkins, JIRA, etc.• Embedded: 12-15% behind C, C++, Assembly• Big Data : ~50%• ScientifiC
Java Universe
What’s at the center?
JVM
JVM
JVM implementation
Total 73 implementation44 FOS20 Proprietary 9 Other
Sun/OracleHotSpot OpenJDKKVM Maxine VM
Foundation and major implementations
Apache Harmony KaffeExcelsior JET IKVM.NETGCJ IBM J9JamVM JRockit (BEA/Oracle)Jikes RVM Azul Zing JVM
Azul Zulu
EmbeddedExcelsior JET Embedded MysaifuJamaicaVM Squawk (Sun) Mika VM
Android Dalvik ART Other CACAO JX
Discontinued
Microsoft JVM JupiterSableVM JaosWonka VM Mac OS Runtime for JavaJC virtual machine Juice (JVM)SuperWaba AegisVM
Who
control Java?
JCP - Java Community Process• Official organization to oversee development of Java platform• Oracle, IBM, Red Hat, Eclipse Foundation, the London Java
Community (LJC), SouJava, Cloudbees, Goldman Sachs, Credit Suisse, Fujitsu, Intel, Nokia and Twitter, etc….
Java Specification Requests (JSRs) • Specification• Expert Group• Reference implementation• Technology Compatibility Kit• >300 JSRs
JSR # Specification152 JavaServer Pages (JSP) 2.0153 Enterprise JavaBeans (EJB) 2.1154 Java Servlet 2.4 and 2.5 Specifications[7]
168 Portlet specification 1.0170 Content repository API for Java (JCR) 1.0199 Java Compiler API205 Wireless Messaging API 2.0 (WMA) 2.0221 Java Database Connectivity (JDBC) 4.0222 Java Architecture for XML Binding (JAXB) 2.0244 Java Platform, Enterprise Edition (Java EE) 5
Java User Groups (JUGs)• better connect Java professionals & fans share
knowledge, advice, the latest news & trends in the Java world
• Virtual JUG: internet community• 3000-5000 each group• Adopt a JSR program
Java Champion• great people from Java ecosystem • opinion is essential in determining the direction for Java
Platform • first to provide feedback, generate ideas and evaluate
possible solutions regarding anything in Java• 386 members.
Apache Software Foundation• non-profit corporation support
Apache projects• ~3000 volunteer• 113 active project
Struts Cassandra Cordova Tomcat Solr OpenOfficeMaven Subversion HttpdAnt Jmeter LucenceHadoop OpenJPA logging
Eclipse Foundation• non-profit corporation support build a open source development platform • members : 10 strategic, 125 solution, 93 associate• strategic: Oracle, IBM, Red Hat, Fujitsu, Intel, Nokia and Twitter• 180 active project & sub project
Eclipse Platform Java development tools (JDT) Hudson
BIRTPlug-in Development Environment (PDE)
Graphical Modeling Framework (GMF)
Mylyn Jetty Standard Widget ToolkitEquinox AspectJ EclipseLinkeGit Rich client platform (RCP)
HAD ANSWER?
JVM languages• Why?• 50 languages & 250 dialects
Summary• Top choice • Should happy because we are working on Java• A lot of thing to explore in Java world