Java overview 20131022

37
Java > where we were? > where we are? > where we’re going? & know how

description

Java This slide is a shot overview to Java from start up to now. Where we were? Where we are? Where we’re going? Know how. Was hold in Lindholmen October, 2013 http://www.lindholmen.se/en/node/35950

Transcript of Java overview 20131022

Page 1: Java overview 20131022

Java > where we were? > where we are? > where we’re going? & know how

Page 2: Java overview 20131022

About me: se.linkedin.com/in/hamidsamadi/ Java developer since 1995 CEO Solid Beans AB www.solidbeans.com CEO Matchup AB www.matchup.se Java Instructor for www.informator.se PrimeFaces Nordic agent www.primefaces.org Event organizer jDays www.jdays.se Event organizer Android Forum Göteborg

Page 3: Java overview 20131022

In June 1991:

James Gosling starts working on an interpreter (called "Oak"), which, several years later is renamed "Java."

Where we were?

Source File Compiler

Executable File

Page 4: Java overview 20131022

In August 1991:

- A small group of Sun engineers called the "Green Team“, led by James Gosling, demonstrates basic user interface ideas and graphics system to Suns co-founders

Where we were?

- They believed that the next wave in computing was the union of digital consumer devices and computers

Page 5: Java overview 20131022

From 1991 to 1995:

Events & evolution such as:

- Mosaic 1.0, the first graphical browser for the Internet, is released

- Interactive Cable TV

- Java compiler in Java has been implemented (James had previously implemented it in C)

- Java compatible browsers (Netscape)

Where we were?

Page 6: Java overview 20131022

From 1991 to 1995:

Where we were?

This concept was too much advanced for the industry at the time BUT it was just right for the Internet, which was just starting to take off. In 1995, the team announced that the Netscape Navigator Internet browser would integrate with Java technology.

Page 7: Java overview 20131022

So:

- The first programming language was created, a cross-platform computing environment NOT tied to any particular operating system or microprocessor!

- Applications written in Java will run anywhere

- Eliminating incompatibility between operating systems and versions of operating systems.

Where we were?

Page 8: Java overview 20131022

Java Iterpreter

Where we were?

Compiler

Interpreter Interpreter Interpreter

MacOS Unix Windows

Operating System

Java Virtual Machine

Page 9: Java overview 20131022

Java Technology consists of: - Java Language: used to develop software for mobile devices, browser-run applets, games, desktop, enterprise (server-side), and scientific applications - Java Platform: consists of Java Virtual Machine (JVM) responsible for hardware abstraction - Java Tools: like java compiler

Where we were?

Page 10: Java overview 20131022

Where we were?

Java Development Kit 1.0 was released on January 23, 1996

JDK API

Page 11: Java overview 20131022

JDK releases:

- 1995 Alpha & Beta

- 1996 JDK 1.0 > Basic support for AWT

- 1997 JDK 1.1 > JavaBeans, RMI, AWT, JDBC, servlets, JNDI, EJB

- 1998 Java 1.2 > Reflection, Swing, Java Collections Framework, plug-in, … Becomes known as Java 2, Port to Linux.

Where we were?

Page 12: Java overview 20131022

- 1999 XML support, JavaServer Pages, Java Editions (J2ME, J2SE, J2EE) …

- 2000 J2SE 1.3 RMI/CORBA, JavaSound, …

- 2002 J2SE 1.4 …

- 2004 J2SE 5 New languages futures, @ …

- 2006 Java SE 6

- 2011 Java SE 7 - 2014/01/23 Java SE 8 Final Release Candidate

Where we were?

Page 13: Java overview 20131022

- 9 Million Java Developers Worldwide - #1 Choice for Developers - #1 Development Platform - 3 Billion Mobile Phones Run Java - 100 Percent of Blu-ray Disc Players Ship with Java - 97 Percent of Enterprise Desktops Run Java - 5 Billion Java Cards in use - 7 Billion Java Cards sold - 89% of desktops run java - 125 million TV devices run java Source: JavaOne 2013 Strategy Keynote

Where we are?

Page 14: Java overview 20131022

Where we are?

Also Many embedded devices are based on Java:

set-top boxes, printers, web cams, games, car navigation systems, lottery terminals, medical devices, parking payment stations, etc

Page 15: Java overview 20131022

- Java is not a new programming language any more. - From early 1995 until now we have seen how it has developed from a JDK (Java Development Kit) to Java EE (Enterprise Edition) and new Java Open Source frameworks and technologies. - At the beginning, Java was about a few packages and APIs you could use to solve small problems. But, what about now, when Java has branched out into several technologies and Open Source frameworks?

Where we are?

Page 16: Java overview 20131022

There are four Java Platforms: 1) Java Standard Edition (Java SE) 2) Java Enterprise Edition (Java EE) 3) Java Micro Edition (Java ME) 4) JavaFX

Where we are?

SE EE

ME

JavaFX

Page 17: Java overview 20131022

Where we are?

Page 18: Java overview 20131022

Where we are? Java SE

Page 19: Java overview 20131022

Built on top of the Java SE platform, for developing and running large-scale, multi-tiered, scalable, reliable, and secure network applications

Where we are? Java EE

Page 20: Java overview 20131022

- APIs & small virtual machine for running java programming language applications on small devices, like mobile phones.

- A subset of the JavaSE API

- Java ME applications are often clients of Java EE platform services

Where we are? Java ME

Page 21: Java overview 20131022

Java FX: a platform for creating rich internet applications using a lightweight user-interface API

Where we are?

Page 22: Java overview 20131022

o Ajax o AOP o Bloggers o Build system o Business Intelligent o ByteCode Libraries o CMS (Content Management

System) o Cache Solutions o Charting & Reporting Tools o Chat servers o Code analyzer o Code Coverage Tools o Collection Libraries o Command line interpreters o Database Connection Pools o ERP & CRM Software o Eclipse plugins o Expressions language

Where we’re going? Open Source Many APIs & tools

Spring

Primefaces

Hibernate

. . .

OPEN SOURCE

Page 23: Java overview 20131022

o Financial Software o Forum Software o HTML parsers o IDEs o Tracking software o JEE frameworks o JDBC drivers o JMS o JMX tools o scheduler o Localization &

Internationalization Tools Logging tools

o Mail clients o Network clients/servers o NoSQL Databases o PDF Libraries o Parser Generators o Persistence Frameworks o Portals

Where we’re going? Open Source Many APIs & tools

Page 24: Java overview 20131022

o Project management tools o SQL clients o Scripting Languages o Search engine o Security & Cryptography tools o Control Tools o Swing Frameworks & Components o Template Engines o Testing tools o Text processing o UML & Modeling o Validation frameworks

o Web frameworks o Web mail clients o Web servers o Web services tools o Web testing tools o Wiki engines o XML parser o XML UI Toolkits

o . . . o . . . . o . . . . . . o . . . . . . . . o . . . . . . . . . . o . . . . . . . . . . . o . . . . . . . . . . . .

Where we’re going? Open Source Many APIs & tools

Page 25: Java overview 20131022

Where we’re going? Open Source Many APIs & tools

Struts Turbine Tapestry WebWork (Struts 2)

Cocoon Spring MVC Maverick Echo Play! SOFIA Verge

JPublish Jucas MyFaces WebOnSwing VRaptor IceFaces (JSF library) RichFaces (JSF library) PrimeFaces (JSF library) Swinglets Wicket Swingweb

Open Source Web frameworks

Page 26: Java overview 20131022

Where we’re going? Open Source Many APIs & tools

Trimpath Junction Macaw Makumba Calyxo RIFE DWR JOSSO JAT OpenXava Click Stripes

Brill jZeno ztemplates Aranea Web Framework Google Web Toolkit Hamlets Aurora ThinWire Pustefix RSF Roma Meta Framework

Open Source Web frameworks

Page 27: Java overview 20131022

Where we’re going? Open Source Many APIs & tools

Mentawai fleXive jWic Flower framework Vroom Induction Sombrero AribaWeb JVx Pandora SK

Open Source Web frameworks

wingS Helma Vaadin Wro4j Anvil Japple . . .

Page 28: Java overview 20131022

Where we’re going? Open Source New languages build on JVM

Page 29: Java overview 20131022

Where we’re going? Open Source New languages build on JVM

Why Scala over Java: - Increased productivity due to reduced verbosity - Developers can mix and match imperative and functional programming paradigms as needed - Built-in functionality for parallelism and concurrency

Page 30: Java overview 20131022

Where we’re going? Open Source New languages build on JVM

Page 31: Java overview 20131022

Where we’re going? Open Source New languages build on JVM

Page 32: Java overview 20131022

Now, we have a problem to solve: “there are too many choices”

How do we select now?

- Opportunity?

- Concern?

Opportunity or concerns

Page 33: Java overview 20131022

SW Engineering

Many factors are involved in SW engineering!

Page 34: Java overview 20131022

Know how!

- Usability: focusing on end users

- Focusing on problems: not technologies, tools and platforms, select the easiest ones

- Be realistic: obtainable competence - Make a list of what is important for your Software lifecycle. Identify/prioritize them & then select

- You can change your mind: most of your technology choices can change

Page 35: Java overview 20131022

Know how!

- Easy & Quick: select a SW that you know to be easier and quicker to prototype. - Standard vs. Open Source: check the open source products licenses.

Open Source != Free Software - Start with capabilities, not implementations

- Cost: consider the total cost

- Involve your team early

- Testing and deployment: software that makes testing difficult should be avoided

Page 36: Java overview 20131022

Know how!

- Avoid Lock-in: e.g. if SW has limitation, runs on a certain Operative System or environment

- New versus existing software: reuse

Page 37: Java overview 20131022

Thank you for listening

[email protected]

More Java? visit www.jdays.se November, 26-27, Gothenburg