Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sander Mak
FELLOW & SOFTWARE ARCHITECT
@Sander_Mak
Overview
Write
Once Portability
Run
Anywhere
Portability
Application
Bytecode
Windows
Linux
amd64
x86
Optimized for Readability
Understandable
One
Maintainability
clear way toover
code
express
terseness
overthings
clever code
Conservative: New Features
OpenJDK project
GPL 2 licensed
Experimental subprojects
Open: Java Community
Choosing Java: When and Why
Popularity
Popularity
Web-applications
Backend services
Data-intensive applications
Scalable Development
Wealth of libraries
Productivity: Type System
public class Hello {
Garbage collection
Multi-threading
Performance
Just-in-time compilation
Java Virtual Machine (JVM)
Specialized to underlying hardware
Based on actual execution of code Windows
Machine
code for x86
“When web companies grow up, they turn
into Java shops.”
Real-time systems
When Is Java Not the Right Choice?
Quick prototyping
When Is Java Not the Right Choice?
Managed language
Open-source
Unmanaged language
More language features
Compiled to native code
Python
Interpreted language
Not statically typed
Python 2/3 split
JavaScript
Interpreted language
Not statically typed
Single-threaded
Summary Portability, simplicity & openness
Comparing Java