SlideShare a Scribd company logo
1 of 63
Download to read offline
Karakun DevHub_
dev.karakun.com
@net0pyr / @HendrikEbbers
Once upon a time in
Coderland…
Once upon a time in
Coderland…
@net0pyr / @HendrikEbbers
… lived a young coder that found this
cool new language TypeScript
But one day the coder got lost in the woods of
Coderland and found a magical old castle…
And after a while the coder and the
beast get to know each other…
In the castle lived a beast the coder had never seen before
And after a while the coder and the
beast got to know each other…
Beauty and
the Beast
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
About me
• Karakun Co-Founder
• Lead of JUG Dortmund
• JSR EG member
• JavaOne Rockstar, Java Champion
• AdoptOpenJDK TSC
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
About me
• Karakun Co-Founder
• Lead of JUG Freiburg
• Used to be: speaker, author,

developer, …
• Switched to the dark side
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Java
• "Oak" (Object Application Kernel) / "The Green
Project" was developed in 1992 at Sun
Microsystems
• This project evolved to Java in 1995
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Java
• In 1998 the JCP (Java Community 

Project) was formed
• Java is released under GNU GPL with
classpath exception
• Java is 100% open source (OpenJDK)
and several vendors provide JDKs
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
TypeScript
• First public appearance in 2012
• Developed by Microsoft
• Open-source
• Strict superset of JavaScript, adds optional
static typing
• Transcompiles to JavaScript
@net0pyr / @HendrikEbbers
primitive
datatypes
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Variables
let isDone: boolean = false;
boolean isDone = false;
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Variables
let isDone: boolean = false;
boolean isDone = false;
Type Name Value
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Variables
let isDone: boolean = false;
boolean isDone = false;
ValueTypeName
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Primitive Datatypes
boolean v = false;
int v = 1;
long v = 1L;
double v = 1.0d;
float v = 1.0f;
short v = 1;
byte v = 1;
char v = 'a';
let v: number = 6;
let v: boolean = true;
let v: string = "Hi";
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Primitive Datatypes
• JavaScript numbers are always 64-bit floating
point
• Same behaviour in TypeScript
var x = 999999999999999;   // x will be 999999999999999
var y = 9999999999999999;  // y will be 10000000000000000
var x = 0.2 + 0.1;         // x will be 0.30000000000000004
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Primitive Datatypes
• String is not a primitive datatype in Java (see
java.lang.String)
• Java allows to create a String like primitive data
• Internally the String class holds a char[]
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Arrays and tuples
• TypeScript provides native support for arrays and tuples
• Java provides native support for arrays
let vArray: number[] = [1, 2, 3];
let vTuple: [string, number];
int[] vArray = {1, 2, 3};
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Arrays and tuples
• Instead of providing native tuples in the Java
language syntax a more extensive feature is
planed for future Java versions
• With Records (JEP 169) you can easily create
constructs like tuples (and much more)
@net0pyr / @HendrikEbbers
methods and
functions
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Methods / Functions
function isBig(x: number): boolean {
return x > 10;
}
boolean isBig(int x) {
return x > 10;
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Methods / Functions
function isBig(x: number): boolean {
return x > 10;
}
Param Name Param Type Return Type
boolean isBig(int x) {
return x > 10;
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Methods / Functions
function isBig(x: number): boolean {
return x > 10;
}
boolean isBig(int x) {
return x > 10;
}
Param NameParam TypeReturn Type
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Function as a type
const f = (n: number): number => n * n;
handle(f);
• In TypeScript functions are first-class citizens
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Functional Interface
@FunctionalInterface
public interface Square {
int square(int n);
}
Square f = (n) -> n * n;
handle(f);
• In Java similar functionality can be created by
using functional interfaces
@net0pyr / @HendrikEbbers
object oriented
programming
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Classes
class Animal {
move(distance: number = 0) {
console.log(`Animal moved ${distance} m.`);
}
}
public class Animal {
public void move(int distance) {
System.out.println("Animal moved " + distance + "m");
}
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Access modifiers
• You might have noticed the missing access
modifier in TypeScript.
• If you do not define an access modifier, TypeScript
automatically uses the public modifier
• Both languages know the public, protected
and private modifiers
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Access modifiers
• In Java the protected modifier allows access
from inherited classes or from within the same
package
• Since we do not have package structures in
TypeScript the protected modifier only allows
access from inherited classes
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Interfaces
• Both TypeScript and Java support interfaces







• We can see in the sample that TypeScript has a
different approach to handle data access
interface Countdown {
name: string;
start(sec: number): void;
}
public interface Countdown {
String getName();
void setName(String name);
void start(long sec);
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Mutable data
class Person {
name : string;
}
public class Person {
private String name;
public void setName(String n) {this.name = n;}
public String getName() {return this.name;}
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Immutable data
class Person {
readonly birthday : Date;
}
public class Person {
private final Date birthday;
public Person(Date birthday) {this.birthday = birthday;}
public Date getBirthday() {return this.birthday;}
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Easier data access in Java
• With Records (JEP 359) Java will contain additional
functionality to define data classes in the future
• Properties will still be accessed by setter/
getter methods but such methods do not need
to be implemented any more.
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Abstraction and Inheritance
abstract class Animal {
abstract makeSound(): void;
}
public abstract class Animal {
public abstract void makeSound();
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Abstraction and Inheritance
class Dog extends Animal {
makeSound(): void {console.log("WUFF");}
}
public class Dog extends Animal {
public void makeSound() {System.out.println("WUFF");}
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Generics
interface Player<T extends Media> {
play(media : T);
}
public interface Player<T extends Media> {
public void play(T media);
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Reflection
• Java provides a powerful reflection API
• Reflection can be used to inspect code at runtime
• Reflection can be used to modify the runtime behavior
Method m = foo.getClass().getMethod("play", String.class);
m.invoke(foo, "medley.mp3");
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Reflection Sample
class Demo {
public foo: number = 1;
}
console.log(Reflect.has(demo, "foo"));
console.log(Reflect.has(demo, "bar"));
@net0pyr / @HendrikEbbers
• TypeScript does not provide a stable reflection API
Karakun DevHub_
dev.karakun.com
Annotations
• Java provides annotations to apply metadata
• Annotations in Java can be accessed at compile time
or runtime
• Annotations in Java are heavily bound to reflections
@Singleton
public class DatabaseService {
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Decorators Sample
function LogMethod(target: any) {
console.log(target);
}
class Demo {
@LogMethod
public foo() {}
}
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Decorators Sample
function LogMethod(target: any) {
console.log(target);
}
class Demo {
@LogMethod
public foo() {}
}
Method with same name is
called automatically
No Concrete annotation
definition
@net0pyr / @HendrikEbbers
functional
programming
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Functional Programming
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Functional-ish Programming
@net0pyr / @HendrikEbbers
+ Libraries + Libraries
Karakun DevHub_
dev.karakun.com
Functional-ish Programming
@net0pyr / @HendrikEbbers
• Immutable data structures
• Pure functions
• Result depends only on parameters
• No side-effects
Karakun DevHub_
dev.karakun.com
Immutable objects
@net0pyr / @HendrikEbbers
interface Person {
readonly name: string;
}
public interface Person {
private final String name;
... more Code required
}
Karakun DevHub_
dev.karakun.com
Readonly ≠ Immutable
@net0pyr / @HendrikEbbers
function evilRename(person: any) {
person.name = "Mailer";
}
const p: Person = { name: "Müller" };
evilRename(p);
console.log(p.name);
prints Mailer
Karakun DevHub_
dev.karakun.com
Creating immutable objects
@net0pyr / @HendrikEbbers
const p1: Person = { name: "Müller" };
const p2: Person = { ...p1, name: "Maier" }
final Person p1 = new Person("Müller");
Final Person p2 = p1.withName("Müller");
requires a lot of boilerplate
Karakun DevHub_
dev.karakun.com
Immutable collections
@net0pyr / @HendrikEbbers
const n1: ReadonlyArray<number> = [ 1, 2, 3 ];
const n2: ReadonlyArray<number> = [ ...n1, 4 ];
import io.vavr.collection.Vector;
final Vector<Integer> n1 = Vector.ofAll(1, 2, 3);
Final Vector<Integer> n2 = n1.append(4);
Karakun DevHub_
dev.karakun.com
Pure Functions
@net0pyr / @HendrikEbbers
Responsibility of the developer
VAVR, Java Streams, RxJava
Lodash, RxJS
but there’s

more
@net0pyr / @HendrikEbbers
Karakun DevHub_
dev.karakun.com
Template Strings
@net0pyr / @HendrikEbbers
const s = `Hello ${name}!
How are you?`
Text blocks, rest planned…
Karakun DevHub_
dev.karakun.com
Type Alias & Union Types
@net0pyr / @HendrikEbbers
type Fruit = Apple | Banana | Strawberry;
function search(id: number): Person | Error {
...
}
Karakun DevHub_
dev.karakun.com
Type Alias & Union Types
@net0pyr / @HendrikEbbers
type Greeting = "Hello" | "Aloha";
let s: Greeting;
s = "Hello";
s = "Bonjour";
Does not compile
Karakun DevHub_
dev.karakun.com
Strict null checks
@net0pyr / @HendrikEbbers
let s: String;
S = null;
console.log(s.length);
let s: String | null;
s = null;
console.log(s.length);
Compiler Flag: strictNullChecks
Does not compile
Does not compile
Karakun DevHub_
dev.karakun.com
Strict null checks
@net0pyr / @HendrikEbbers
...
• Optional
• @NonNull, @Nullable
Karakun DevHub_
dev.karakun.com
Deconstruction
@net0pyr / @HendrikEbbers
const { firstName, lastName } = person;
console.log(firstName, lastName};
const { lastName: name } = person;
console.log(name);
const { address: { street } } = person;
console.log(street);
Karakun DevHub_
dev.karakun.com
Deconstruction
@net0pyr / @HendrikEbbers
return switch(n) {
case IntNode(int i) -> i;
case AddNode(Node left, Node right) -> left + right;
};
• Will be available for records in a future version
… and they lived happily
ever after
Happy End
Karakun@
- Beauty and the Beast: Java Versus TypeScript
- Not Dead Yet: Java on the Desktop
- Productivity Beyond Failure
- JavaFX Real-World Applications
- Team Diversity the Successful Way
- Rich Client Java: Still Going Strong!
Sessions
& StickersSocialize
dev.karakun.com

More Related Content

What's hot

Gizi dan Kesehatan Repoduksi
Gizi dan Kesehatan RepoduksiGizi dan Kesehatan Repoduksi
Gizi dan Kesehatan RepoduksiAgnescia Sera
 
refrat persalinan normal ( 2-08-2013 RSUD SERANG )
 refrat  persalinan normal ( 2-08-2013 RSUD SERANG ) refrat  persalinan normal ( 2-08-2013 RSUD SERANG )
refrat persalinan normal ( 2-08-2013 RSUD SERANG )Dea Noviana
 
kesehatan reproduksi remaja
kesehatan reproduksi remajakesehatan reproduksi remaja
kesehatan reproduksi remajarahmi anissawaty
 
Asuhan pada ibu nifas di komunitas
Asuhan pada ibu nifas di komunitasAsuhan pada ibu nifas di komunitas
Asuhan pada ibu nifas di komunitasmaritsa afni
 
Ppt metode kb sederhana
Ppt metode kb sederhanaPpt metode kb sederhana
Ppt metode kb sederhanalia lia
 
Asuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptx
Asuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptxAsuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptx
Asuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptxFionaAmelia1
 
Ketuban pecah dini
Ketuban pecah diniKetuban pecah dini
Ketuban pecah dinifikri asyura
 
Klp 10-Tugas kebutuhan khusus.pptx
Klp 10-Tugas kebutuhan khusus.pptxKlp 10-Tugas kebutuhan khusus.pptx
Klp 10-Tugas kebutuhan khusus.pptxssuserd0b473
 
Manajemen asuhan kebidanan anak balita normal
Manajemen asuhan kebidanan anak balita normalManajemen asuhan kebidanan anak balita normal
Manajemen asuhan kebidanan anak balita normalMJM Networks
 
Teknologi Tepat Guna dalam Kebidanan
Teknologi Tepat Guna dalam KebidananTeknologi Tepat Guna dalam Kebidanan
Teknologi Tepat Guna dalam Kebidananpjj_kemenkes
 
Kb2 asuhan kebidanan pada ibu hamil kunjungan awal
Kb2 asuhan kebidanan pada ibu hamil kunjungan awalKb2 asuhan kebidanan pada ibu hamil kunjungan awal
Kb2 asuhan kebidanan pada ibu hamil kunjungan awalpjj_kemenkes
 
Kesehatan wanita-sepanjang-siklus-kehidupan
Kesehatan wanita-sepanjang-siklus-kehidupanKesehatan wanita-sepanjang-siklus-kehidupan
Kesehatan wanita-sepanjang-siklus-kehidupansyarifah irmadani
 
Percakapan konseling antara bidan dengan pada ibu hamil
Percakapan konseling antara  bidan dengan pada ibu hamilPercakapan konseling antara  bidan dengan pada ibu hamil
Percakapan konseling antara bidan dengan pada ibu hamilOperator Warnet Vast Raha
 
8 cara untuk menjadi diri sendiri
8 cara untuk menjadi diri sendiri8 cara untuk menjadi diri sendiri
8 cara untuk menjadi diri sendiribayutryaksani
 

What's hot (20)

Gizi dan Kesehatan Repoduksi
Gizi dan Kesehatan RepoduksiGizi dan Kesehatan Repoduksi
Gizi dan Kesehatan Repoduksi
 
refrat persalinan normal ( 2-08-2013 RSUD SERANG )
 refrat  persalinan normal ( 2-08-2013 RSUD SERANG ) refrat  persalinan normal ( 2-08-2013 RSUD SERANG )
refrat persalinan normal ( 2-08-2013 RSUD SERANG )
 
Askeb kb
Askeb kbAskeb kb
Askeb kb
 
Ikterus
IkterusIkterus
Ikterus
 
Tugas konseling 1
Tugas konseling 1Tugas konseling 1
Tugas konseling 1
 
kesehatan reproduksi remaja
kesehatan reproduksi remajakesehatan reproduksi remaja
kesehatan reproduksi remaja
 
Asuhan pada ibu nifas di komunitas
Asuhan pada ibu nifas di komunitasAsuhan pada ibu nifas di komunitas
Asuhan pada ibu nifas di komunitas
 
Ppt metode kb sederhana
Ppt metode kb sederhanaPpt metode kb sederhana
Ppt metode kb sederhana
 
Asuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptx
Asuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptxAsuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptx
Asuhan Kebidanan Pada Perempuan dan Anak pada Kondisi Rentan.pptx
 
Ketuban pecah dini
Ketuban pecah diniKetuban pecah dini
Ketuban pecah dini
 
Kespro dr.rinny
Kespro dr.rinnyKespro dr.rinny
Kespro dr.rinny
 
Klp 10-Tugas kebutuhan khusus.pptx
Klp 10-Tugas kebutuhan khusus.pptxKlp 10-Tugas kebutuhan khusus.pptx
Klp 10-Tugas kebutuhan khusus.pptx
 
Anatomi wanita
Anatomi wanitaAnatomi wanita
Anatomi wanita
 
Manajemen asuhan kebidanan anak balita normal
Manajemen asuhan kebidanan anak balita normalManajemen asuhan kebidanan anak balita normal
Manajemen asuhan kebidanan anak balita normal
 
Teknologi Tepat Guna dalam Kebidanan
Teknologi Tepat Guna dalam KebidananTeknologi Tepat Guna dalam Kebidanan
Teknologi Tepat Guna dalam Kebidanan
 
Kb2 asuhan kebidanan pada ibu hamil kunjungan awal
Kb2 asuhan kebidanan pada ibu hamil kunjungan awalKb2 asuhan kebidanan pada ibu hamil kunjungan awal
Kb2 asuhan kebidanan pada ibu hamil kunjungan awal
 
Kesehatan wanita-sepanjang-siklus-kehidupan
Kesehatan wanita-sepanjang-siklus-kehidupanKesehatan wanita-sepanjang-siklus-kehidupan
Kesehatan wanita-sepanjang-siklus-kehidupan
 
Percakapan konseling antara bidan dengan pada ibu hamil
Percakapan konseling antara  bidan dengan pada ibu hamilPercakapan konseling antara  bidan dengan pada ibu hamil
Percakapan konseling antara bidan dengan pada ibu hamil
 
8 cara untuk menjadi diri sendiri
8 cara untuk menjadi diri sendiri8 cara untuk menjadi diri sendiri
8 cara untuk menjadi diri sendiri
 
SENAM HAMIL
SENAM HAMILSENAM HAMIL
SENAM HAMIL
 

Similar to Beauty & the Beast - Java VS TypeScript

PHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing InsanityPHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing InsanityGeorgePeterBanyard
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesAbhishek Sur
 
Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!Eric Phan
 
The Sincerest Form of Flattery
The Sincerest Form of FlatteryThe Sincerest Form of Flattery
The Sincerest Form of FlatteryJosé Paumard
 
devLink - What's New in C# 4?
devLink - What's New in C# 4?devLink - What's New in C# 4?
devLink - What's New in C# 4?Kevin Pilch
 
JSLT: JSON querying and transformation
JSLT: JSON querying and transformationJSLT: JSON querying and transformation
JSLT: JSON querying and transformationLars Marius Garshol
 
Apache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and YouApache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and YouAndres Almiray
 
Accessing loosely structured data from F# and C#
Accessing loosely structured data from F# and C#Accessing loosely structured data from F# and C#
Accessing loosely structured data from F# and C#Tomas Petricek
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
fuser interface-development-using-jquery
fuser interface-development-using-jqueryfuser interface-development-using-jquery
fuser interface-development-using-jqueryKostas Mavridis
 
PHP in one presentation
PHP in one presentationPHP in one presentation
PHP in one presentationMilad Rahimi
 
Developer’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageDeveloper’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageAzilen Technologies Pvt. Ltd.
 
Extreme Swift
Extreme SwiftExtreme Swift
Extreme SwiftMovel
 
Complete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptComplete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptEPAM Systems
 

Similar to Beauty & the Beast - Java VS TypeScript (20)

PHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing InsanityPHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing Insanity
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and Features
 
Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!Why you should be using the shiny new C# 6.0 features now!
Why you should be using the shiny new C# 6.0 features now!
 
The Sincerest Form of Flattery
The Sincerest Form of FlatteryThe Sincerest Form of Flattery
The Sincerest Form of Flattery
 
devLink - What's New in C# 4?
devLink - What's New in C# 4?devLink - What's New in C# 4?
devLink - What's New in C# 4?
 
JSLT: JSON querying and transformation
JSLT: JSON querying and transformationJSLT: JSON querying and transformation
JSLT: JSON querying and transformation
 
Apache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and YouApache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and You
 
Introduction to java and oop
Introduction to java and oopIntroduction to java and oop
Introduction to java and oop
 
Clean Code 2
Clean Code 2Clean Code 2
Clean Code 2
 
Accessing loosely structured data from F# and C#
Accessing loosely structured data from F# and C#Accessing loosely structured data from F# and C#
Accessing loosely structured data from F# and C#
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
fuser interface-development-using-jquery
fuser interface-development-using-jqueryfuser interface-development-using-jquery
fuser interface-development-using-jquery
 
Javascript
JavascriptJavascript
Javascript
 
XAML/C# to HTML/JS
XAML/C# to HTML/JSXAML/C# to HTML/JS
XAML/C# to HTML/JS
 
PHP in one presentation
PHP in one presentationPHP in one presentation
PHP in one presentation
 
Developer’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageDeveloper’s viewpoint on swift programming language
Developer’s viewpoint on swift programming language
 
Type script
Type scriptType script
Type script
 
Extreme Swift
Extreme SwiftExtreme Swift
Extreme Swift
 
Complete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScriptComplete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScript
 

More from Hendrik Ebbers

Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Hendrik Ebbers
 
Java APIs - the missing manual
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manualHendrik Ebbers
 
Multidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UXMultidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UXHendrik Ebbers
 
Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Hendrik Ebbers
 
Java ap is you should know
Java ap is you should knowJava ap is you should know
Java ap is you should knowHendrik Ebbers
 
JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016Hendrik Ebbers
 
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ DevoxxBUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ DevoxxHendrik Ebbers
 
Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)Hendrik Ebbers
 
webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)Hendrik Ebbers
 
Test Driven Development with JavaFX
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFXHendrik Ebbers
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)Hendrik Ebbers
 
DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)Hendrik Ebbers
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentHendrik Ebbers
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Hendrik Ebbers
 

More from Hendrik Ebbers (20)

Java Desktop 2019
Java Desktop 2019Java Desktop 2019
Java Desktop 2019
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
 
Java 11 OMG
Java 11 OMGJava 11 OMG
Java 11 OMG
 
Java APIs - the missing manual
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manual
 
Multidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UXMultidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UX
 
Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?
 
Java ap is you should know
Java ap is you should knowJava ap is you should know
Java ap is you should know
 
JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016
 
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ DevoxxBUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
 
Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)
 
webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)
 
Test Driven Development with JavaFX
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFX
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)
 
DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Extreme Gui Makeover
Extreme Gui MakeoverExtreme Gui Makeover
Extreme Gui Makeover
 
JavaFX Enterprise
JavaFX EnterpriseJavaFX Enterprise
JavaFX Enterprise
 
Bonjour for Java
Bonjour for JavaBonjour for Java
Bonjour for Java
 
DataFX - JavaOne 2013
DataFX - JavaOne 2013DataFX - JavaOne 2013
DataFX - JavaOne 2013
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Beauty & the Beast - Java VS TypeScript