Beauty & the Beast - Java VS TypeScript

Hendrik Ebbers
Hendrik EbbersCo-Founder at Karakun AG
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
1 of 63

Recommended

Gestion comptes bancaires Spring boot by
Gestion comptes bancaires Spring bootGestion comptes bancaires Spring boot
Gestion comptes bancaires Spring bootAbdelhakim HADI ALAOUI
9K views22 slides
Architecture Client-Serveur by
Architecture Client-Serveur Architecture Client-Serveur
Architecture Client-Serveur Khalid EDAIG
555 views11 slides
Support de cours Spring M.youssfi by
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfiENSET, Université Hassan II Casablanca
97.8K views164 slides
Angular by
AngularAngular
AngularMahmoud Nbet
824 views37 slides
QCM système d'information by
QCM système d'informationQCM système d'information
QCM système d'informationFrust Rados
16.8K views3 slides
diagramme de classe by
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
3.1K views32 slides

More Related Content

What's hot

Technologies sur angular.pptx by
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptxIdrissaDembl
121 views31 slides
Chp2 - Diagramme des Cas d'Utilisation by
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationLilia Sfaxi
5.4K views14 slides
Uml 2 pratique de la modélisation by
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisationNassim Amine
13.4K views270 slides
Presentation tunibourse by
Presentation tuniboursePresentation tunibourse
Presentation tunibourseyesoun
607 views22 slides
Développement d'une application de gestion d'abonnement payant aux articles p... by
Développement d'une application de gestion d'abonnement payant aux articles p...Développement d'une application de gestion d'abonnement payant aux articles p...
Développement d'une application de gestion d'abonnement payant aux articles p...Rodikumbi
1.1K views72 slides
Marzouk architecture encouches-jee-mvc by
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcabderrahim marzouk
133 views25 slides

What's hot(20)

Technologies sur angular.pptx by IdrissaDembl
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptx
IdrissaDembl121 views
Chp2 - Diagramme des Cas d'Utilisation by Lilia Sfaxi
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'Utilisation
Lilia Sfaxi5.4K views
Uml 2 pratique de la modélisation by Nassim Amine
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
Nassim Amine13.4K views
Presentation tunibourse by yesoun
Presentation tuniboursePresentation tunibourse
Presentation tunibourse
yesoun607 views
Développement d'une application de gestion d'abonnement payant aux articles p... by Rodikumbi
Développement d'une application de gestion d'abonnement payant aux articles p...Développement d'une application de gestion d'abonnement payant aux articles p...
Développement d'une application de gestion d'abonnement payant aux articles p...
Rodikumbi1.1K views
qcm développement informatique by beware_17
qcm développement informatiqueqcm développement informatique
qcm développement informatique
beware_1712K views
Présentation de JEE et de son écosysteme by Stéphane Traumat
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
Stéphane Traumat5.5K views
Chp4 - Diagramme de Séquence by Lilia Sfaxi
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi14.2K views
Implémentation de l’algorithme du Simplexe En Java by Rached Krim
Implémentation de l’algorithme du Simplexe En JavaImplémentation de l’algorithme du Simplexe En Java
Implémentation de l’algorithme du Simplexe En Java
Rached Krim10K views
Exercices uml-corrige by AmineMouhout1
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
AmineMouhout174.7K views
OpenAPIを利用したPythonWebアプリケーション開発 by Takuro Wada
OpenAPIを利用したPythonWebアプリケーション開発OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発
Takuro Wada9.4K views
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方 by kwatch
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch34K views

Similar to Beauty & the Beast - Java VS TypeScript

PHP 8: Process & Fixing Insanity by
PHP 8: Process & Fixing InsanityPHP 8: Process & Fixing Insanity
PHP 8: Process & Fixing InsanityGeorgePeterBanyard
262 views52 slides
C# 7.0 Hacks and Features by
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesAbhishek Sur
1.2K views60 slides
Why you should be using the shiny new C# 6.0 features now! by
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
298 views45 slides
The Sincerest Form of Flattery by
The Sincerest Form of FlatteryThe Sincerest Form of Flattery
The Sincerest Form of FlatteryJosé Paumard
411 views36 slides
devLink - What's New in C# 4? by
devLink - What's New in C# 4?devLink - What's New in C# 4?
devLink - What's New in C# 4?Kevin Pilch
343 views25 slides
JSLT: JSON querying and transformation by
JSLT: JSON querying and transformationJSLT: JSON querying and transformation
JSLT: JSON querying and transformationLars Marius Garshol
4K views68 slides

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

C# 7.0 Hacks and Features by Abhishek Sur
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and Features
Abhishek Sur1.2K views
Why you should be using the shiny new C# 6.0 features now! by Eric Phan
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 Phan298 views
The Sincerest Form of Flattery by José Paumard
The Sincerest Form of FlatteryThe Sincerest Form of Flattery
The Sincerest Form of Flattery
José Paumard411 views
devLink - What's New in C# 4? by Kevin Pilch
devLink - What's New in C# 4?devLink - What's New in C# 4?
devLink - What's New in C# 4?
Kevin Pilch343 views
Apache Groovy's Metaprogramming Options and You by Andres Almiray
Apache Groovy's Metaprogramming Options and YouApache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and You
Andres Almiray718 views
Accessing loosely structured data from F# and C# by Tomas Petricek
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 Petricek2.6K views
Rubyforjavaprogrammers 1210167973516759-9 by sagaroceanic11
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
sagaroceanic11321 views
Rubyforjavaprogrammers 1210167973516759-9 by sagaroceanic11
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
sagaroceanic11314 views
fuser interface-development-using-jquery by Kostas Mavridis
fuser interface-development-using-jqueryfuser interface-development-using-jquery
fuser interface-development-using-jquery
Kostas Mavridis776 views
PHP in one presentation by Milad Rahimi
PHP in one presentationPHP in one presentation
PHP in one presentation
Milad Rahimi530 views
Extreme Swift by Movel
Extreme SwiftExtreme Swift
Extreme Swift
Movel1K views
Complete Notes on Angular 2 and TypeScript by EPAM Systems
Complete Notes on Angular 2 and TypeScriptComplete Notes on Angular 2 and TypeScript
Complete Notes on Angular 2 and TypeScript
EPAM Systems373 views

More from Hendrik Ebbers

Java Desktop 2019 by
Java Desktop 2019Java Desktop 2019
Java Desktop 2019Hendrik Ebbers
1.6K views105 slides
Java APIs- The missing manual (concurrency) by
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Hendrik Ebbers
219 views69 slides
Java 11 OMG by
Java 11 OMGJava 11 OMG
Java 11 OMGHendrik Ebbers
2.5K views86 slides
Java APIs - the missing manual by
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manualHendrik Ebbers
1K views103 slides
Multidevice Controls: A Different Approach to UX by
Multidevice Controls: A Different Approach to UXMultidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UXHendrik Ebbers
326 views88 slides
Java WebStart Is Dead: What Should We Do Now? by
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
5.5K views54 slides

More from Hendrik Ebbers(20)

Java APIs- The missing manual (concurrency) by Hendrik Ebbers
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
Hendrik Ebbers219 views
Multidevice Controls: A Different Approach to UX by Hendrik Ebbers
Multidevice Controls: A Different Approach to UXMultidevice Controls: A Different Approach to UX
Multidevice Controls: A Different Approach to UX
Hendrik Ebbers326 views
Java WebStart Is Dead: What Should We Do Now? by Hendrik 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?
Hendrik Ebbers5.5K views
JavaFX JumpStart @JavaOne 2016 by Hendrik Ebbers
JavaFX JumpStart @JavaOne 2016JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016
Hendrik Ebbers1.5K views
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx by Hendrik Ebbers
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ DevoxxBUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
BUILDING MODERN WEB UIS WITH WEB COMPONENTS @ Devoxx
Hendrik Ebbers1.8K views
Web Components & Polymer 1.0 (Webinale Berlin) by Hendrik Ebbers
Web Components & Polymer 1.0 (Webinale Berlin)Web Components & Polymer 1.0 (Webinale Berlin)
Web Components & Polymer 1.0 (Webinale Berlin)
Hendrik Ebbers2.3K views
webcomponents (Jfokus 2015) by Hendrik Ebbers
webcomponents (Jfokus 2015)webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)
Hendrik Ebbers2.9K views
Test Driven Development with JavaFX by Hendrik Ebbers
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFX
Hendrik Ebbers16.5K views
JavaFX Enterprise (JavaOne 2014) by Hendrik Ebbers
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)
Hendrik Ebbers13.8K views
DataFX 8 (JavaOne 2014) by Hendrik Ebbers
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)
Hendrik Ebbers30.6K views
Feature driven development by Hendrik Ebbers
Feature driven developmentFeature driven development
Feature driven development
Hendrik Ebbers925.8K views
Vagrant Binding JayDay 2013 by Hendrik Ebbers
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
Hendrik Ebbers3.5K views

Recently uploaded

HTTP headers that make your website go faster - devs.gent November 2023 by
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023Thijs Feryn
26 views151 slides
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
317 views86 slides
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf by
STKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdfSTKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdf
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdfDr. Jimmy Schwarzkopf
24 views29 slides
20231123_Camunda Meetup Vienna.pdf by
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
45 views73 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
126 views32 slides
"Running students' code in isolation. The hard way", Yurii Holiuk by
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk Fwdays
24 views34 slides

Recently uploaded(20)

HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn26 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf by Dr. Jimmy Schwarzkopf
STKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdfSTKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdf
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson126 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays24 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe by Simone Puorto
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe
Simone Puorto13 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10345 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman38 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana17 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker48 views

Beauty & the Beast - Java VS TypeScript