Putting Java in its place Diary of a soldier in Dukes army by - - PowerPoint PPT Presentation

putting java in its place
SMART_READER_LITE
LIVE PREVIEW

Putting Java in its place Diary of a soldier in Dukes army by - - PowerPoint PPT Presentation

Putting Java in its place Diary of a soldier in Dukes army by Robert Bor Tuesday, 18 June 13 A Star is Born Tuesday, 18 June 13 Java made no small claims It claimed nothing less than universality Tuesday, 18 June 13 ... although Java


slide-1
SLIDE 1

Putting Java in its place

Diary of a soldier in Duke’s army by Robert Bor

Tuesday, 18 June 13

slide-2
SLIDE 2

A Star is Born

Tuesday, 18 June 13

slide-3
SLIDE 3

Java made no small claims It claimed nothing less than universality

Tuesday, 18 June 13

slide-4
SLIDE 4

... although Java for the Desktop was not very popular

AWT Swing

Tuesday, 18 June 13

slide-5
SLIDE 5

... and surely applets would not be the future?

Tuesday, 18 June 13

slide-6
SLIDE 6

... and the basic JDK had its flaws

primitives java.util.Date switch messy exceptions security general inconsistencies << < 1 / 83 > >> lack of a meta model

Tuesday, 18 June 13

slide-7
SLIDE 7

right time, right message... ... liberation from C / C++

Tuesday, 18 June 13

slide-8
SLIDE 8

Clash of the Titans

Tuesday, 18 June 13

slide-9
SLIDE 9

inspired by Java’s success, Microsoft launched its competing product

.NET

Tuesday, 18 June 13

slide-10
SLIDE 10

Whereas Java had a vibrant community With lots of innovation and change

Tuesday, 18 June 13

slide-11
SLIDE 11

.NET had stability With economy of scale

Tuesday, 18 June 13

slide-12
SLIDE 12

Whenever we competed with a .NET offering

It was cheaper

Tuesday, 18 June 13

slide-13
SLIDE 13

.NET came to dominate small business Java ruled the corporate world

Tuesday, 18 June 13

slide-14
SLIDE 14

Rise of the Bazaar

Tuesday, 18 June 13

slide-15
SLIDE 15

Java not standardized Worked best with commercial tools

Tuesday, 18 June 13

slide-16
SLIDE 16

Mainframes replaced by Linux clusters

Tuesday, 18 June 13

slide-17
SLIDE 17

Commercial application servers replaced by Open Source ones

Tuesday, 18 June 13

slide-18
SLIDE 18

JVM is here to stay

Tuesday, 18 June 13

slide-19
SLIDE 19

Breaking the chains

Tuesday, 18 June 13

slide-20
SLIDE 20

Java Enterprise:

  • dd collection of pseudo-helpful tools

Despite this fact, we were unable to pierce the veil of absurdity

Tuesday, 18 June 13

slide-21
SLIDE 21

We coped Like the rest of the world, we made frameworks to cope with Java Enterprise

Tuesday, 18 June 13

slide-22
SLIDE 22

Then Rod Johnson came along and he actually pierced the veil He re-introduced the POJO and gave us

  • Spring. We all benefited

Tuesday, 18 June 13

slide-23
SLIDE 23

Ideas Spring adopted into Java Enterprise Java Enterprise was saved by Spring Later versions of Java Enterprise were much, much better

Tuesday, 18 June 13

slide-24
SLIDE 24

Mastering the Database

Tuesday, 18 June 13

slide-25
SLIDE 25

Paradigm mismatch between OO and RDBMS Despite several failed attempts at having true OO databases

Tuesday, 18 June 13

slide-26
SLIDE 26

Java

Native Driver

DB

?

Leaking Abstraction

Tuesday, 18 June 13

slide-27
SLIDE 27

Java

Native Driver

JDBC

DB

Java-Database bridge

Leaking Abstraction

Tuesday, 18 June 13

slide-28
SLIDE 28

Java

Native Driver

JDBC ORM

DB

Abstracting database access Java-Database bridge

Leaking Abstraction

Tuesday, 18 June 13

slide-29
SLIDE 29

Java

Native Driver

JDBC ORM JPA

DB

Abstracting database access Abstracting ORM provider Java-Database bridge

Leaking Abstraction

Tuesday, 18 June 13

slide-30
SLIDE 30

Java

Native Driver

JDBC ORM JPA

DB

Abstracting database access Abstracting ORM provider Java-Database bridge ORM-specifics

Leaking Abstraction

Tuesday, 18 June 13

slide-31
SLIDE 31

Java

Native Driver

JDBC ORM JPA

DB

Abstracting database access Abstracting ORM provider Java-Database bridge Fast queries ORM-specifics

Leaking Abstraction

Tuesday, 18 June 13

slide-32
SLIDE 32

Despite leaking abstractions, ORM is still worth it Just barely though

Tuesday, 18 June 13

slide-33
SLIDE 33

Any ascendant technology tends towards exploring and crossing the boundaries of its usefulness

Tuesday, 18 June 13

slide-34
SLIDE 34

DB

Violated Constraints

  • 2. Database

checks for unicity and throws an exception

  • 1. Application

attempts to save a class instance

  • 3. Application
  • nly knows a

constraint has been violated

Java

Problem

Tuesday, 18 June 13

slide-35
SLIDE 35

DB

Violated Constraints

  • 1. Application

pre-flights the save call to check for unicity

Java

  • 2. Application

attempts to save a class instance

“Best practice”

Tuesday, 18 June 13

slide-36
SLIDE 36

DB

Violated Constraints

  • 2. Database

checks for unicity and throws an exception

  • 1. Application

attempts to save a class instance

  • 4. Application

knows exactly which constraint has been violated

Java Bridge

  • 3. Bridge translates

constraint violation to Java exception

http://42bv.github.io/jarb/

JARB framework

Tuesday, 18 June 13

slide-37
SLIDE 37

RDBMS contested by many different products at once

Tuesday, 18 June 13

slide-38
SLIDE 38

Weaving the Web

Tuesday, 18 June 13

slide-39
SLIDE 39

Java filled a gap. Java had to dominate the frontend.

Tuesday, 18 June 13

slide-40
SLIDE 40

source: http://www.slideshare.net/mraible/comparing-jvm-web-frameworks-devoxx-france-2013

Today: many web frameworks

Tuesday, 18 June 13

slide-41
SLIDE 41

Web frameworks we worked with

Tuesday, 18 June 13

slide-42
SLIDE 42

Degree to which a framework dominates the frontend The more it does, the more it spells trouble

Tuesday, 18 June 13

slide-43
SLIDE 43

HTML

<div id="some-id" class="tutorial-next-step"> <a href="some-link">Go to the next step</a> </div>

Tuesday, 18 June 13

slide-44
SLIDE 44

Java Framework page

[TUTORIAL LINK] <div id="some-id" class="tutorial-next-step"> <a href="some-link">Go to the next step</a> </div>

Tuesday, 18 June 13

slide-45
SLIDE 45

This is the cause of feeling like doing a lot

  • f work, yet accomplishing not a whole lot

The backend dominating the frontend causes long “supply lines”, which implies extra logistical effort to cross the distance

Tuesday, 18 June 13

slide-46
SLIDE 46

Complicating factor: Frontend technologies took flight Customers demanded it

Tuesday, 18 June 13

slide-47
SLIDE 47

Many of the functions offered by web frameworks became obsolete ... worse, they were hard to get to play nice with each other

Tuesday, 18 June 13

slide-48
SLIDE 48

Java Framework page

Component 1 Component 2 [Component 1] [Component 2]

Tuesday, 18 June 13

slide-49
SLIDE 49

Java Framework page

Component 1 Component 2 [Component 1] [Component 2]

?

Tuesday, 18 June 13

slide-50
SLIDE 50

Technology working near or beyond the boundaries of its usefulness, invite competition

Tuesday, 18 June 13

slide-51
SLIDE 51

Service Oriented Front End Architecture

S O F E A

source: http://www.slideshare.net/mraible/comparing-jvm-web-frameworks-devoxx-france-2013

Tuesday, 18 June 13

slide-52
SLIDE 52

Main boons of SOFEA Short logistical lines Seamless cooperation with modern tech Backend blissfully ignorant of frontend Division of labor corresponds with developer profiles

Tuesday, 18 June 13

slide-53
SLIDE 53

Uncertain Times

Tuesday, 18 June 13

slide-54
SLIDE 54

Uncertain future

1.0 1.1 1.2 1.3 1.4 5.0 6 7 8

A l p h a / B e t a 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013

JDK Releases

thedarkages

Tuesday, 18 June 13

slide-55
SLIDE 55

Oracle acquires Sun... what now?

Tuesday, 18 June 13

slide-56
SLIDE 56

source: http://www.itjobswatch.co.uk/jobs/uk/java.do

Tuesday, 18 June 13

slide-57
SLIDE 57

source: http://www.indeed.com/jobtrends?q=java&l=&relative=1

Tuesday, 18 June 13

slide-58
SLIDE 58

source: http://tweakers.net/nieuws/45137/ruby-on-rails-serieuze-bedreiging-voor-java.html

source: http://blogs.forrester.com/mike_gualtieri/10-11-23-java_is_a_dead_end_for_enterprise_app_development

source: http://blogs.forrester.com/john_r_rymer/11-01-23-the_future_of_java

Tuesday, 18 June 13

slide-59
SLIDE 59

We tried Ruby on Rails... ... initially, it was faster, but it tended to bog down quickly.

Tuesday, 18 June 13

slide-60
SLIDE 60

We tried Groovy / Grails... ... RoR beats Grails handsdown. Lots of problems with immature technology, imperfect tooling and lack of documentation.

Tuesday, 18 June 13

slide-61
SLIDE 61

Renewed Interest

Tuesday, 18 June 13

slide-62
SLIDE 62

Linked

source: http://www.indeed.com/jobtrends?q=java&l=&relative=1

Tuesday, 18 June 13

slide-63
SLIDE 63

Twitter

source: http://www.infoq.com/news/2012/11/twitter-ruby-to-java source: https://blog.twitter.com/2011/twitter-search-now-3x-faster source: http://www.infoq.com/articles/twitter-java-use

source: http://www.theregister.co.uk/2012/11/08/twitter_epic_traffic_saved_by_java/

Tuesday, 18 June 13

slide-64
SLIDE 64

source: http://tweakers.net/reviews/2779/tweakers-7-waarom-een-eigen-java-back-end.html

Tuesday, 18 June 13

slide-65
SLIDE 65

Our customers’ interest in Grails and Ruby on Rails was stabilizing

Tuesday, 18 June 13

slide-66
SLIDE 66

Oracle proved to be a better steward than expected despite some hiccups...

Lawsuit against Google Apache Software Foundation resignation various resignations

Tuesday, 18 June 13

slide-67
SLIDE 67

Android used Java Android caused a surge in Java development need

Tuesday, 18 June 13

slide-68
SLIDE 68

So, Java was still in the game However, we still had

  • ne issue to address...

Tuesday, 18 June 13

slide-69
SLIDE 69

... developing for the frontend Because Grails and RoR taught the world what was possible, going back was not an option

Tuesday, 18 June 13

slide-70
SLIDE 70

Java REST / JSON HTML / CSS / Javascript

Tuesday, 18 June 13

slide-71
SLIDE 71

Walls are Down

Tuesday, 18 June 13

slide-72
SLIDE 72

Tuesday, 18 June 13

slide-73
SLIDE 73

SECURITY CRISIS

Tuesday, 18 June 13

slide-74
SLIDE 74

... the crisis pretty much killed Java for the browser ... Java 8 delayed ... dented confidence

Tuesday, 18 June 13

slide-75
SLIDE 75

... luckily, Java in the backend is still secure which is more than some

  • ther technologies can claim

Tuesday, 18 June 13

slide-76
SLIDE 76

Future of Java

Tuesday, 18 June 13

slide-77
SLIDE 77

source: http://www.tiobe.com/index.php/paperinfo/tpci/Java.html

Tuesday, 18 June 13

slide-78
SLIDE 78

The absolute number of developers is still increasing So Java takes a smaller bite out of more

Tuesday, 18 June 13

slide-79
SLIDE 79

Java started out with a claim to universality As we have seen, this claim could not be upheld

Tuesday, 18 June 13

slide-80
SLIDE 80

Java is not for the Desktop Java is not for in the Browser Java is not for rendering to the browser

Tuesday, 18 June 13

slide-81
SLIDE 81

However... ... Java has proven its resilience in the

  • backend. It is solid, reliable, secure

and performant.

Tuesday, 18 June 13

slide-82
SLIDE 82

JVM is here to stay Great for integration Vibrant community, lots of innovation Mature and varied tooling (dev + ops)

Tuesday, 18 June 13

slide-83
SLIDE 83

Tuesday, 18 June 13