Download - Java overview 20131022
![Page 1: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/1.jpg)
Java > where we were? > where we are? > where we’re going? & know how
![Page 2: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/8.jpg)
Java Iterpreter
Where we were?
Compiler
Interpreter Interpreter Interpreter
MacOS Unix Windows
Operating System
Java Virtual Machine
![Page 9: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/10.jpg)
Where we were?
Java Development Kit 1.0 was released on January 23, 1996
JDK API
![Page 11: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/12.jpg)
- 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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/13.jpg)
- 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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/15.jpg)
- 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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/17.jpg)
Where we are?
![Page 18: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/18.jpg)
Where we are? Java SE
![Page 19: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/20.jpg)
- 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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/21.jpg)
Java FX: a platform for creating rich internet applications using a lightweight user-interface API
Where we are?
![Page 22: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/28.jpg)
Where we’re going? Open Source New languages build on JVM
![Page 29: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/30.jpg)
Where we’re going? Open Source New languages build on JVM
![Page 31: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/31.jpg)
Where we’re going? Open Source New languages build on JVM
![Page 32: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/33.jpg)
SW Engineering
Many factors are involved in SW engineering!
![Page 34: Java overview 20131022](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051610/5495c9d1ac795925288b50f9/html5/thumbnails/37.jpg)
Thank you for listening
More Java? visit www.jdays.se November, 26-27, Gothenburg