SlideShare una empresa de Scribd logo
1 de 32
haXe
one language to rule them all
Übersicht

    Was ist haXe?

    Welche Features bietet haXe?

    Warum sollten wir haXe verwenden?

    Wohin geht es mit haXe?
Was ist haXe?

    Definition
    Geschichte
 Was ist haXe?

  Definition


haXe ist eine objektorientierte, ECMAScript-ähnliche
Programmiersprache.

Sie ermöglicht es, haXe-Quellcode in Quellcode oder
   G
ByteCode verschiedener Plattformen zu kompilieren.


             haXe ist eine Multiplattform-Sprache!
 Was ist haXe?

  Geschichte
Welche Features bietet haXe?

      Plattformen
      Compiler
      Language Features
      Crossplattform API
      Plattformspezifische API
 Welche Features bietet haXe?

   Plattformen




                                ?
 Welche Features bietet haXe?

   Compiler


  Wie sieht die build-File aus?
 Welche Features bietet haXe?
  switch
  true/false               enum
                           if/else   for
                                     do/while
   Language         Features
  var                      new       this

  try/catch                return    function
  Keywords




   anderes Verhalten
 Welche Features bietet haXe?

   Language          Features
 Typed vs. Dynamic
 Welche Features bietet haXe?

   Language         Features

 Standart Library

     Std

     Math

     Date, DateTools

     Array<T>, List<T>, Hash<T>, IntHash<T>
 Welche Features bietet haXe?

   Language         Features
  Objektorientierte Programmierung
 Welche Features bietet haXe?

   Crossplatform            API (special)

 Serializer/Unserializer

 Remoting

 Template-System

 UnitTests

 XML
 Welche Features bietet haXe?

   Plattformspezifische         Features
 Welche Features bietet haXe?

   Plattformspezifische         Features

 Extern class
 Welche Features bietet haXe?

   Plattformspezifische         Features

 The haXe Magic
 Welche Features bietet haXe?

   Plattformspezifische         Features

 Conditional Compilation
Warum sollten wir haXe verwenden?

      Beispiel-Anwendung
      Team
      Vorteile
      Nachteile
      Pitfalls
 Warum sollten wir haXe verwenden?

   Beispiel-Anwendung
 Warum sollten wir haXe verwenden?

   Beispiel-Anwendung
 Warum sollten wir haXe verwenden?

   Beispiel-Anwendung




                    Jetzt zeig uns endlich die
                     verdammte Anwendung!
 Warum sollten wir haXe verwenden?

   Team
 Warum sollten wir haXe verwenden?

   Vorteile


 Eine Sprache für Client und Server (und Desktop)

 Steile Lernkurve für JS/AS-Entwickler

 Erweiterung der Sprachen
     z.B.: Generics, Packages usw.

 Optionale Typsicherheit
 Warum sollten wir haXe verwenden?

   Nachteile


 Laufzeitfehler schwer zu debuggen

 Keine Crossbrowser-Implementierung von JS

 Community im Vergleich zu JS/AS/PHP extrem klein
 Warum sollten wir haXe verwenden?

   Pitfalls


 Laufzeitfehler debuggen

 PHP: int -> float (pseudo-random)

 Template-System unpraktisch
     (Funktionen/getter funktionieren nicht)

 Suche der Dokumentation ekelhaft
Wohin geht es mit haXe?

      Tools
      Projekte
      Libs
      Links
 Wohin geht es mit haXe?

   Tools

 Editoren
       FlashDevelop
       EcliHx
       FDT
       Textmate
       vim

 haxelib
     install
     update
     run


 haxedoc
     generiert Doku aus Java-Doc Kommentaren
     
 Wohin geht es mit haXe?

   Libs


 HXCPP

 NME/Neash

 Jeash

 ScreenWeaver HX
 u.v.m.
 Wohin geht es mit haXe?

   haXe     Projekte




                           ...
 Wohin geht es mit haXe?

   Links


 www.haxe.org

 lib.haxe.org

 blog.haxe.org
 Fragen?
 Vielen   Dank!

Más contenido relacionado

Destacado

yavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trustyavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trustyavalu
 
ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...
ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...
ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...ULC Business Solutions GmbH
 
Erforschung von Social Media - wissenschaftliche Erkenntnisse
Erforschung von Social Media - wissenschaftliche ErkenntnisseErforschung von Social Media - wissenschaftliche Erkenntnisse
Erforschung von Social Media - wissenschaftliche ErkenntnisseProf. Dr. Marco Hardiman
 
Pole vault Brain Blitztraining Version 1.0
Pole vault Brain Blitztraining Version 1.0Pole vault Brain Blitztraining Version 1.0
Pole vault Brain Blitztraining Version 1.0Guenther Lohre
 
Wir Sind Drei Könige - We Three Kings
Wir Sind Drei Könige - We Three KingsWir Sind Drei Könige - We Three Kings
Wir Sind Drei Könige - We Three KingsFreekidstories
 
FMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian SchmitzFMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian SchmitzVerein FM Konferenz
 
102 Tennessee Avenue N Martinsburg WV 25401
102 Tennessee Avenue N Martinsburg WV 25401102 Tennessee Avenue N Martinsburg WV 25401
102 Tennessee Avenue N Martinsburg WV 25401Heather Harley
 
FMK 2013, Barrierefreie Software, Patrick Risch
FMK 2013, Barrierefreie Software, Patrick RischFMK 2013, Barrierefreie Software, Patrick Risch
FMK 2013, Barrierefreie Software, Patrick RischVerein FM Konferenz
 
Blizzard bossland 2
Blizzard bossland 2Blizzard bossland 2
Blizzard bossland 2kingchddg90
 
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischVerein FM Konferenz
 

Destacado (16)

Web 3...
Web 3...Web 3...
Web 3...
 
IFC Ebert Tagung Instandhaltung 2015
IFC Ebert Tagung Instandhaltung 2015IFC Ebert Tagung Instandhaltung 2015
IFC Ebert Tagung Instandhaltung 2015
 
yavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trustyavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trust
 
ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...
ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...
ULC-Vortrag beim ConnectDay 2013 in Köln zu Prozessoptimierung auf Basis IBM ...
 
Erforschung von Social Media - wissenschaftliche Erkenntnisse
Erforschung von Social Media - wissenschaftliche ErkenntnisseErforschung von Social Media - wissenschaftliche Erkenntnisse
Erforschung von Social Media - wissenschaftliche Erkenntnisse
 
Pole vault Brain Blitztraining Version 1.0
Pole vault Brain Blitztraining Version 1.0Pole vault Brain Blitztraining Version 1.0
Pole vault Brain Blitztraining Version 1.0
 
Wir Sind Drei Könige - We Three Kings
Wir Sind Drei Könige - We Three KingsWir Sind Drei Könige - We Three Kings
Wir Sind Drei Könige - We Three Kings
 
Schoene schweiz
Schoene schweizSchoene schweiz
Schoene schweiz
 
Obo tab 2-2013
Obo tab 2-2013Obo tab 2-2013
Obo tab 2-2013
 
FMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian SchmitzFMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian Schmitz
 
State of syslog (2005)
State of syslog (2005)State of syslog (2005)
State of syslog (2005)
 
TPM Lehrgang 2012
TPM Lehrgang 2012TPM Lehrgang 2012
TPM Lehrgang 2012
 
102 Tennessee Avenue N Martinsburg WV 25401
102 Tennessee Avenue N Martinsburg WV 25401102 Tennessee Avenue N Martinsburg WV 25401
102 Tennessee Avenue N Martinsburg WV 25401
 
FMK 2013, Barrierefreie Software, Patrick Risch
FMK 2013, Barrierefreie Software, Patrick RischFMK 2013, Barrierefreie Software, Patrick Risch
FMK 2013, Barrierefreie Software, Patrick Risch
 
Blizzard bossland 2
Blizzard bossland 2Blizzard bossland 2
Blizzard bossland 2
 
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
 

Similar a Haxe

IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007derDoc
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenRalf Eggert
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...Verein FM Konferenz
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & ToolsUlrich Krause
 
Werde Übersetzer! Werde Translation Editor!
Werde Übersetzer!  Werde Translation Editor!Werde Übersetzer!  Werde Translation Editor!
Werde Übersetzer! Werde Translation Editor!Torsten Landsiedel
 
Hypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIHypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIAlexander Zeitler
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréVerein FM Konferenz
 
Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)Eric Eggert
 
Domänenspezifische Sprachen für Ausführbare Spezifikationen
Domänenspezifische Sprachen für Ausführbare SpezifikationenDomänenspezifische Sprachen für Ausführbare Spezifikationen
Domänenspezifische Sprachen für Ausführbare SpezifikationenJens Nerche
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code CookbookUlrich Krause
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Eric Eggert
 
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )grosser
 
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )guest9606ac
 
Textanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und HadoopTextanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und Hadoopinovex GmbH
 
B3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsB3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsAndreas Schulte
 

Similar a Haxe (20)

IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
Werde Übersetzer! Werde Translation Editor!
Werde Übersetzer!  Werde Translation Editor!Werde Übersetzer!  Werde Translation Editor!
Werde Übersetzer! Werde Translation Editor!
 
Haxe & NME
Haxe & NMEHaxe & NME
Haxe & NME
 
Hypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIHypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web API
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel Moré
 
Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)
 
Domänenspezifische Sprachen für Ausführbare Spezifikationen
Domänenspezifische Sprachen für Ausführbare SpezifikationenDomänenspezifische Sprachen für Ausführbare Spezifikationen
Domänenspezifische Sprachen für Ausführbare Spezifikationen
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code Cookbook
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)
 
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
 
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
 
PHP auf IBM Plattformen
PHP auf IBM PlattformenPHP auf IBM Plattformen
PHP auf IBM Plattformen
 
Textanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und HadoopTextanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und Hadoop
 
PHPblue LOS!NRW
PHPblue LOS!NRWPHPblue LOS!NRW
PHPblue LOS!NRW
 
B3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsB3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite Applications
 

Haxe

  • 1. haXe one language to rule them all
  • 2. Übersicht     Was ist haXe?     Welche Features bietet haXe?     Warum sollten wir haXe verwenden?     Wohin geht es mit haXe?
  • 3. Was ist haXe?     Definition     Geschichte
  • 4.  Was ist haXe?  Definition haXe ist eine objektorientierte, ECMAScript-ähnliche Programmiersprache. Sie ermöglicht es, haXe-Quellcode in Quellcode oder G ByteCode verschiedener Plattformen zu kompilieren. haXe ist eine Multiplattform-Sprache!
  • 5.  Was ist haXe?  Geschichte
  • 6. Welche Features bietet haXe?     Plattformen     Compiler     Language Features     Crossplattform API     Plattformspezifische API
  • 7.  Welche Features bietet haXe?  Plattformen ?
  • 8.  Welche Features bietet haXe?  Compiler Wie sieht die build-File aus?
  • 9.  Welche Features bietet haXe? switch true/false enum if/else for do/while  Language Features var new this try/catch return function  Keywords  anderes Verhalten
  • 10.  Welche Features bietet haXe?  Language Features Typed vs. Dynamic
  • 11.  Welche Features bietet haXe?  Language Features Standart Library     Std     Math     Date, DateTools     Array<T>, List<T>, Hash<T>, IntHash<T>
  • 12.  Welche Features bietet haXe?  Language Features Objektorientierte Programmierung
  • 13.  Welche Features bietet haXe?  Crossplatform API (special) Serializer/Unserializer Remoting Template-System UnitTests XML
  • 14.  Welche Features bietet haXe?  Plattformspezifische Features
  • 15.  Welche Features bietet haXe?  Plattformspezifische Features Extern class
  • 16.  Welche Features bietet haXe?  Plattformspezifische Features The haXe Magic
  • 17.  Welche Features bietet haXe?  Plattformspezifische Features Conditional Compilation
  • 18. Warum sollten wir haXe verwenden?     Beispiel-Anwendung     Team     Vorteile     Nachteile     Pitfalls
  • 19.  Warum sollten wir haXe verwenden?  Beispiel-Anwendung
  • 20.  Warum sollten wir haXe verwenden?  Beispiel-Anwendung
  • 21.  Warum sollten wir haXe verwenden?  Beispiel-Anwendung Jetzt zeig uns endlich die verdammte Anwendung!
  • 22.  Warum sollten wir haXe verwenden?  Team
  • 23.  Warum sollten wir haXe verwenden?  Vorteile Eine Sprache für Client und Server (und Desktop) Steile Lernkurve für JS/AS-Entwickler Erweiterung der Sprachen     z.B.: Generics, Packages usw. Optionale Typsicherheit
  • 24.  Warum sollten wir haXe verwenden?  Nachteile Laufzeitfehler schwer zu debuggen Keine Crossbrowser-Implementierung von JS Community im Vergleich zu JS/AS/PHP extrem klein
  • 25.  Warum sollten wir haXe verwenden?  Pitfalls Laufzeitfehler debuggen PHP: int -> float (pseudo-random) Template-System unpraktisch     (Funktionen/getter funktionieren nicht) Suche der Dokumentation ekelhaft
  • 26. Wohin geht es mit haXe?     Tools     Projekte     Libs     Links
  • 27.  Wohin geht es mit haXe?  Tools Editoren     FlashDevelop     EcliHx     FDT     Textmate     vim haxelib     install     update     run haxedoc     generiert Doku aus Java-Doc Kommentaren     
  • 28.  Wohin geht es mit haXe?  Libs HXCPP NME/Neash Jeash ScreenWeaver HX u.v.m.
  • 29.  Wohin geht es mit haXe?  haXe Projekte ...
  • 30.  Wohin geht es mit haXe?  Links www.haxe.org lib.haxe.org blog.haxe.org
  • 32.  Vielen Dank!

Notas del editor

  1. - Vorstellung - Warum gibts den Vortrag? - Wie mit fragen umgehen?
  2. Objektorientiert + Lambda ECMA-Script ähnliche ECMA = standart für Websprachen Sprachkern für JavaScript/ActionScript Multiplattform vs Plattformunabhängig: Java -&gt; JVM C# -&gt; .NET Actionscript -&gt; Flash Player bzw. Tamarin
  3. Motion Twin / Nicolas Cannasse AS2 wurde Interpretiert ASML to AS2 Vorcompiler (Typ und Parameterprüfung) MTASC erster Nicht-Macromedia-Compiler für SWF-ByteCode Flashout, ASDT, MTASC, Eclipse, SwfMill ab 2005 neko Was ist neko? Actionscript 3 MTASC eingestellt. 2011 mehrere Targets außer AS3 + neko Motivation zu haXe Überleitung zu Features?
  4. js - eine .js File Flash - eine .swf File      - Version 6-8      - Version 9/10 (Tamarin) Php - php files (php 5) NekoVM - eine -n bytecode file Was ist neko? - vm von Motion Twin - Command-Line - C++      - C++ source - ?      - Java      - C#
  5. - Witz über Compiler? - Später gibts ein Projekt mit JS-Client und PHP Backend - So sieht die &amp;quot;build.hxml aus&amp;quot;
  6. ECMAScript ÄHNLICHE Programmiersprache switch      - keine breaks      - nach case sofort beendet enum      - switch nur mit allen enums, sonst warning      - enum parameter for      - keine Zählschleifen direkt      - alles über Iteratoren
  7. Desto mehr typisiert ist, desto mehr Fehler werden zur compile-zeit gefunden. Vorteile aus beiden Welten. Basistypen Bool Int Float Dynamic Syntax: Sieht aus wie JS/AS Typisiert wie AS
  8. Std (Methoden um Basistypen zu Modifizieren)      - parseInt      - parseFloat      - int      - string      - usw. Math (mathematische Funktionen und Konstanten)      - bekannt aus JS/AS      - sin/cos/an      - random      - usw. Date      - bekannt aus JS/AS      - erweiterte Funktionen durch DateTools Array, List, Hash, IntHash      - alles Typisiert      - List ist eine LinkedList (Performanter, zugriff durch index möglich)      - Hashtable (String -&gt; Value)      - Int Hashtable (Int -&gt; Value)      - Wie sieht das Compilat aus? - Was sind Generics?
  9. Strukturierung mittels Packages. Vererbung Interfaces (auch mehrere) Generics Zugriffsmodifikatoren      - private (verhält sich wie protected)      - public Zugriffsfunktionen      - Getter und Setter Konstruktor      - new Überscheiben ist möglich Was nicht geht:      - Methodenüberladung      - Mehrfachvererbung      - Abstrakte Klassen Generics zu komplex?
  10. Serializer/Unserializer      - wird für remoting verwendet      - was passiert mit Referenzen? Remoting      - Client/Server      - Flash/JavaScript      - Flash/AMF (Kein Serializer) Template System      - Ausdrücke      - if/elseif/else      - Foreach      - Macros UnitTests      - Basis-Api      - TestCase      - TestRunner XML      - Crossplattform      - War auf php langsam weil      - Wurde jetzt gefixt
  11. Jedes Target hat ein eigenes Package. z.B.: PHP - db: Datenbank - io: Zugriff auf Dateisystem - net: Socket In jedem Package: Lib: - dump - print   oder bei js - document - window - alert - eval Web: - redirect - getHeader - setHeader - getParams - getMethod
  12. Was mache ich, wenn ich eine Plattformspezifische Lib einbinden möchte? in diesem Beispiel jQuery (ein Teil davon) Es gibts zwei Möglichkeiten, hier die erste (und saubere) Das extern Keyword sagt dem Compiler, dass die Implemetierung dieser Klasse zur Laufzeit zur Verfügung stehen wird. Die Package-Struktur muss beibehalten werden: z.B. bar.Foo = function() {} Diese Lösung ist Typsicher! PHP: Wenn es eine eigene Klasse ist, muss man sie natürlich includen. Die nächste Lösung ist nicht so schön, wird teilweise aber auch gebraucht!
  13. Die haXe Magic funktionen bieten uns die Möglichkeiten Zielcode direkt einzubetten. // JS Der Parameter wird im Zielcode auch value heißen, deshalb können wir ihn direkt so übernhemen. // PHP PHP bietet mehrere Magic-Funktionenen, hier sprechen wir nur 2 an. __call__ ruft eine Funktion auf, der wir die Parameter mitgeben können. __php__ lässt uns direkt Code einbetten. Auch hier sieht man, dass die Parameter genau wie in haxe benannt sind, mit dem Unterschied, dass wir das $ vorstellen müssen. Magic Methoden gibt es auch für Flash und Neko, darauf gehen wir jetzt mal nicht genauer ein.
  14. Was mach ich, wenn ich Code auf mehreren Plattformen verwenden möchte, der Code aber Plattformspezifischen Code enthält? Lösung: Conditional Compilation Dies ermöglicht uns je nach Target des Compilers einen anderen Code zu verwenden. Negierung möglich z.B. !php Abfragen ob debug-version #if debug Man kann auch eigene Variablen einführen.
  15. Zwei Entitäten Der Client ist eine JavaScript-Anwendung Bestehen aus &amp;quot;Application Server&amp;quot; und einem CDN Zusätzlich eine Ort wo unsere Assets liegen (z.B.: ein CDN) In dem Beispiel gibts kein CDN. Der Client lädt sich die Assets vom Server und rendert diese: z.B.: Unser Login-Formular (html) Die Eingaben im Login-Formular werden einen den Application Server gesendet und wir erhalten Daten des Users (oder auch nicht). UserService.login() liefert ein User-Objekt (shared Code) wie im folgenden Beispiel... Der Client verarbeitet die Antwort.
  16. Eine Sprache: Wird der Algorythmus auf dem Client oder auf dem Server ausgeführt?
  17. Masterplan Debugging: Zeitersparnis durch Fehler zur Compilezeit größer als Fehlersucher zur Laufzeit. Template-System: Macros