SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
TypeScript for Alfresco and CMIS
             Steve Reiner
                 CTO
         Integrated Semantics
JS++ Search
• Seeking something close to ActionScript that
  can translate to JavaScript
 • Close to ActionScript would make it easier to port
   ActionScript in multiple large Flex applications
   (FlexSpaces, CMIS Spaces, FlexibleDashbord) and
   ActionScript libraries (such as Grebulon XMLA
   OLAP) to this JS++
 • By being ActionScript like, would also be a good
   productive language for large apps (static typing,
   class syntax, interfaces,etc.)
• Also like IDEs / intellisense (Flash Builder, etc.)
JS++ Search
• Use ActionScript and translate to JavaScript
 • Jangaroo Compiler and ActionScript API to ExtJS
   developed by CoreMedia AG
 • FalconJS from Adobe (Adobe is slow in getting this to
   Apache Flex, still not available)
 • Approach not taking off with developers, better things
   coming along: Dart and TypeScript
• Dart from Google
 • Nice language, nice html and core libraries, good IDE with
   integrated debugging, can use on server too
 • InterOp with JavaScript is awkward and more work
 • Only “modern web browsers” supported (not old versions)
• Others: Haxe, Opa, JavaScript++, CoffeeScript, etc.
TypeScript
• Despite coming from Micro$oft (hold your nose) its
  actually seems like the best approach
• Extends JavaScript, all JavaScript code is valid
  TypeScript (Dart is JavaScript like, but still a new
  language)
• Open Source (Apache 2.0)
• Using coming ECMAScript 6 for parts it has (class
  and interfaces), adding typing and modules
• Optional typing like Dart
• Can use for node.js serverside code, tsc cmd line
  compiler can install as node.js pkg (compiler written
  in typescript)
TypeScript
• Can have typed interface wrapper for existing
  JavaScript libraries in declaration / definition files
  (d.ts) without having to modify original js library files
• Seeing good bit of existing javascript libraries have
  typescript definition files created within 2-3 weeks
  after TypeScript was announced was very
  impressive (see DefinitelyTyped repo in github)
  (compared to slow pace of libraries being ported to
  Dart)
• Note: TypeScript is in Preview phase, not final, but
  since output-ed JavaScript is JavaScript and no
  runtime libs there is somewhat less risk
TypeScript IDES
• Visual Studio 2012 with TypeScript plugin
 • Can debug TypeScript code in VS and run in IE
 • Can debug in debuggers in recent Chrome and FireFox
   (need to manually add –sourcemap to tsc build line in VS
   project files)
• Free Express version of Visual Studio 2012 can be
  used (WebEssentials plugin with side compare JS
  feature can’t be used in the express version)
• Also MS WebMatrix can be used, syntax files for
  Sublime Text, Vi, and Emacs.
• JetBrains IntelliJ IDEA EAP has some support
• No Eclipse yet (thought Dart Editor could be changed
  to work with TypeScript)
TypeScript Alfreso and CMIS apis
• Will have a TypeScript definition wrapper for AlfJS by
  DevCon SJ
• Will have a basic TypeScript defnition wrapper for any
  CMIS.JS Alfresco has
• Also could have a CMIS api with interfaces and classes
  more like the Java OpenCMIS client apis
• In porting CMIS Spaces libraries could port the as3
  atompub code if CMIS.JS doesn’t happen or it is only for the
  cmis browser binding
• Also will try and have TypeScript for Alfresco Cloud APIs
• In porting FlexSpaces to TypeScript will initially use custom
  webscripts it has.
• Then will change to be able to use subset of features
  without custom webscripts (use webscripts in place for
  Share, thus a TypeScript wrapped more full featured AlfJS)
TypeScript based Clients / App
Components
 • Plan to port both FlexSpaces and CMIS
   Spaces to TypeScript
  • Modify Jangaroo Compiler to do AS3 ->
    TypeScript
  • Use YUI3 and some other JS frameworks thru TS
    defn wrappers
  • HTML5/JS in browser, PhoneGap mobile, and
    AIR/JS (for desktop drag in/out,native clipboard,
    offline file syncing, etc.) packagings
  • Support Alfresco Cloud too?
TypeScript Dashlets / WebScripts
 • If there is interest:
 • Share Dashlet clientside code: will try to put together a
   sample dashlet done in TypeScript with TS defn
   wrappers for YUI 2.x, some wrappers for Share base
   components, etc.
 • Thus get intellisense and type checking in IDES.
 • The YAHOO.extend of YUI components may be a little
   tricky.
 • Share WebScripts: since TS compiles to JS you could
   use it for basic webscripts
 • Alfresco WebScripts: It may be possible to have TS
   definition file for what root scope objects and typed
   apis are available from this env
Links to Find out more

   • http://www.typescriptlang.org/
   • http://www.typescriptlang.org/Playground/
   • http://channel9.msdn.com/posts/Anders-Hejlsberg-
     Introducing-TypeScript
   • https://github.com/borisyankov/DefinitelyTyped
   • http://code.google.com/p/flexspaces/
   • http://code.google.com/p/cmisspaces/
   • www.integratedsemantics.org blog
   • www.integratedsemantics.com
   • Twitter: @stevereiner

Mais conteúdo relacionado

Mais procurados

Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016Sunny Sharma
 
Typescript overview
Typescript overviewTypescript overview
Typescript overviewThanvilahari
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersRutenis Turcinas
 
The Same-Origin Saga
The Same-Origin SagaThe Same-Origin Saga
The Same-Origin SagaBrendan Eich
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScriptOffirmo
 
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil BartlettHow to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlettmfrancis
 
Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersLaurent Duveau
 
Typescript: JS code just got better!
Typescript: JS code just got better!Typescript: JS code just got better!
Typescript: JS code just got better!amit bezalel
 
Data Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang OnlineData Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang OnlineAndre Weissflog
 
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5David Voyles
 
.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchestercitizenmatt
 
Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Brendan Eich
 
A walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresA walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresMichal Juhas
 
Getting Started with TypeScript
Getting Started with TypeScriptGetting Started with TypeScript
Getting Started with TypeScriptGil Fink
 

Mais procurados (20)

Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
 
Typescript overview
Typescript overviewTypescript overview
Typescript overview
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
 
The Same-Origin Saga
The Same-Origin SagaThe Same-Origin Saga
The Same-Origin Saga
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScript
 
Distributing OSGi
Distributing OSGiDistributing OSGi
Distributing OSGi
 
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil BartlettHow to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
How to Make Your Code OSGi Friendly Without Depending on OSGi - Neil Bartlett
 
Introduction to Angular for .NET Developers
Introduction to Angular for .NET DevelopersIntroduction to Angular for .NET Developers
Introduction to Angular for .NET Developers
 
Typescript ppt
Typescript pptTypescript ppt
Typescript ppt
 
Monorepo at Pinterest
Monorepo at PinterestMonorepo at Pinterest
Monorepo at Pinterest
 
Typescript: JS code just got better!
Typescript: JS code just got better!Typescript: JS code just got better!
Typescript: JS code just got better!
 
Data Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang OnlineData Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang Online
 
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
 
.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester
 
Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016
 
A walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresA walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 features
 
Getting Started with TypeScript
Getting Started with TypeScriptGetting Started with TypeScript
Getting Started with TypeScript
 
TypeScript Presentation
TypeScript PresentationTypeScript Presentation
TypeScript Presentation
 
TypeScript - An Introduction
TypeScript - An IntroductionTypeScript - An Introduction
TypeScript - An Introduction
 
TypeScript intro
TypeScript introTypeScript intro
TypeScript intro
 

Semelhante a TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose

Swift programming language
Swift programming languageSwift programming language
Swift programming languageNijo Job
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017Stefano Bonetta
 
Elixir/Phoenix releases and research about common deployment strategies.
Elixir/Phoenix releases and research about common deployment strategies.Elixir/Phoenix releases and research about common deployment strategies.
Elixir/Phoenix releases and research about common deployment strategies.Michael Dimmitt
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUlrich Krause
 
Intro to Microsoft.NET
Intro to Microsoft.NET Intro to Microsoft.NET
Intro to Microsoft.NET rchakra
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAmazon Web Services
 
TypeScript . the JavaScript developer best friend!
TypeScript . the JavaScript developer best friend!TypeScript . the JavaScript developer best friend!
TypeScript . the JavaScript developer best friend!Alessandro Giorgetti
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesAlfresco Software
 
Intro to Perfect - LA presentation
Intro to Perfect - LA presentationIntro to Perfect - LA presentation
Intro to Perfect - LA presentationTim Taplin
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time Amazon Web Services
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the BasicsUlrich Krause
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xErik Gur
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 

Semelhante a TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose (20)

Swift programming language
Swift programming languageSwift programming language
Swift programming language
 
Javascript best practices
Javascript best practicesJavascript best practices
Javascript best practices
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
 
Elixir/Phoenix releases and research about common deployment strategies.
Elixir/Phoenix releases and research about common deployment strategies.Elixir/Phoenix releases and research about common deployment strategies.
Elixir/Phoenix releases and research about common deployment strategies.
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Intro to Microsoft.NET
Intro to Microsoft.NET Intro to Microsoft.NET
Intro to Microsoft.NET
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
 
TypeScript . the JavaScript developer best friend!
TypeScript . the JavaScript developer best friend!TypeScript . the JavaScript developer best friend!
TypeScript . the JavaScript developer best friend!
 
Prueba ppt
Prueba pptPrueba ppt
Prueba ppt
 
Html5v1
Html5v1Html5v1
Html5v1
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best Practices
 
Intro to Perfect - LA presentation
Intro to Perfect - LA presentationIntro to Perfect - LA presentation
Intro to Perfect - LA presentation
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.x
 
Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 

Último

Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 

Último (20)

Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 

TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose

  • 1. TypeScript for Alfresco and CMIS Steve Reiner CTO Integrated Semantics
  • 2. JS++ Search • Seeking something close to ActionScript that can translate to JavaScript • Close to ActionScript would make it easier to port ActionScript in multiple large Flex applications (FlexSpaces, CMIS Spaces, FlexibleDashbord) and ActionScript libraries (such as Grebulon XMLA OLAP) to this JS++ • By being ActionScript like, would also be a good productive language for large apps (static typing, class syntax, interfaces,etc.) • Also like IDEs / intellisense (Flash Builder, etc.)
  • 3. JS++ Search • Use ActionScript and translate to JavaScript • Jangaroo Compiler and ActionScript API to ExtJS developed by CoreMedia AG • FalconJS from Adobe (Adobe is slow in getting this to Apache Flex, still not available) • Approach not taking off with developers, better things coming along: Dart and TypeScript • Dart from Google • Nice language, nice html and core libraries, good IDE with integrated debugging, can use on server too • InterOp with JavaScript is awkward and more work • Only “modern web browsers” supported (not old versions) • Others: Haxe, Opa, JavaScript++, CoffeeScript, etc.
  • 4. TypeScript • Despite coming from Micro$oft (hold your nose) its actually seems like the best approach • Extends JavaScript, all JavaScript code is valid TypeScript (Dart is JavaScript like, but still a new language) • Open Source (Apache 2.0) • Using coming ECMAScript 6 for parts it has (class and interfaces), adding typing and modules • Optional typing like Dart • Can use for node.js serverside code, tsc cmd line compiler can install as node.js pkg (compiler written in typescript)
  • 5. TypeScript • Can have typed interface wrapper for existing JavaScript libraries in declaration / definition files (d.ts) without having to modify original js library files • Seeing good bit of existing javascript libraries have typescript definition files created within 2-3 weeks after TypeScript was announced was very impressive (see DefinitelyTyped repo in github) (compared to slow pace of libraries being ported to Dart) • Note: TypeScript is in Preview phase, not final, but since output-ed JavaScript is JavaScript and no runtime libs there is somewhat less risk
  • 6. TypeScript IDES • Visual Studio 2012 with TypeScript plugin • Can debug TypeScript code in VS and run in IE • Can debug in debuggers in recent Chrome and FireFox (need to manually add –sourcemap to tsc build line in VS project files) • Free Express version of Visual Studio 2012 can be used (WebEssentials plugin with side compare JS feature can’t be used in the express version) • Also MS WebMatrix can be used, syntax files for Sublime Text, Vi, and Emacs. • JetBrains IntelliJ IDEA EAP has some support • No Eclipse yet (thought Dart Editor could be changed to work with TypeScript)
  • 7. TypeScript Alfreso and CMIS apis • Will have a TypeScript definition wrapper for AlfJS by DevCon SJ • Will have a basic TypeScript defnition wrapper for any CMIS.JS Alfresco has • Also could have a CMIS api with interfaces and classes more like the Java OpenCMIS client apis • In porting CMIS Spaces libraries could port the as3 atompub code if CMIS.JS doesn’t happen or it is only for the cmis browser binding • Also will try and have TypeScript for Alfresco Cloud APIs • In porting FlexSpaces to TypeScript will initially use custom webscripts it has. • Then will change to be able to use subset of features without custom webscripts (use webscripts in place for Share, thus a TypeScript wrapped more full featured AlfJS)
  • 8. TypeScript based Clients / App Components • Plan to port both FlexSpaces and CMIS Spaces to TypeScript • Modify Jangaroo Compiler to do AS3 -> TypeScript • Use YUI3 and some other JS frameworks thru TS defn wrappers • HTML5/JS in browser, PhoneGap mobile, and AIR/JS (for desktop drag in/out,native clipboard, offline file syncing, etc.) packagings • Support Alfresco Cloud too?
  • 9. TypeScript Dashlets / WebScripts • If there is interest: • Share Dashlet clientside code: will try to put together a sample dashlet done in TypeScript with TS defn wrappers for YUI 2.x, some wrappers for Share base components, etc. • Thus get intellisense and type checking in IDES. • The YAHOO.extend of YUI components may be a little tricky. • Share WebScripts: since TS compiles to JS you could use it for basic webscripts • Alfresco WebScripts: It may be possible to have TS definition file for what root scope objects and typed apis are available from this env
  • 10. Links to Find out more • http://www.typescriptlang.org/ • http://www.typescriptlang.org/Playground/ • http://channel9.msdn.com/posts/Anders-Hejlsberg- Introducing-TypeScript • https://github.com/borisyankov/DefinitelyTyped • http://code.google.com/p/flexspaces/ • http://code.google.com/p/cmisspaces/ • www.integratedsemantics.org blog • www.integratedsemantics.com • Twitter: @stevereiner