A History of Tcl in the Browser



Similar documents
Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Building native mobile apps for Digital Factory

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Lecture 4 Cross-Platform Development. <lecturer, date>

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Web Programming Languages Overview

Bridging the Gap: from a Web App to a Mobile Device App

SYST35300 Hybrid Mobile Application Development

Progressive Enhancement With GQuery and GWT. Ray Cromwell

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

How To Understand The Architecture Of An Ulteo Virtual Desktop Server Farm

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Whitepaper. Trans. for Mobile

Rich Internet Applications

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Navigating the Mobile App Development Landscape

Chatbots 3.3. Chatbots in Web Applications with RiveScript. Presented by Noah Petherbridge

Debugging Mobile Apps

Web Applications Come of Age

Introduction to Mobile Performance Testing

How To Write An Ria Application

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

BASIC COMPONENTS. There are 3 basic components in every Apache Cordova project:

CROSS PLATFORM DEVELOPMENT The HTML5 Way

White Paper INTRODUCTION. In mobile development, there are three different types of applications: PRE-SMARTPHONE MOBILITY NATIVE MOBILE APPLICATIONS

Architecture Workshop

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

Smartphone Application Development using HTML5-based Cross- Platform Framework

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

Republic Polytechnic School of Infocomm C308 Web Framework. Module Curriculum

Cross-Platform Phone Apps & Sites with jquery Mobile

CiviMobile & CiviSync Mobile. Peter McAndrew Rohit Thakral

A Tale of the Weaknesses of Current Client-Side XSS Filtering

Developing Cross-platform Mobile and Web Apps

CLOUD COMPUTING: IS IT WORTH. By: Jennifer Varavithaya

Web Cloud Architecture

Lecture 9 Chrome Extensions

A Guide to Mobile App Development Platforms

The Suitability of Native Application for University E-Learning Compared to Web-Based Application

Take full advantage of IBM s IDEs for end- to- end mobile development

Native, web or hybrid mobile-app development

ios SDK possibilities & limitations

Art of Code Front-end Web Development Training Program

QML and JavaScript for Native App Development

How to pick the right development model for your next mobile project

Research on HTML5 in Web Development

Making Mobile a Reality

Using Agile to Develop Mobile Apps

Title: Appium Automation for Mac OS X. Created By: Prithivirajan M. Abstract. Introduction

Coding for Desktop and Mobile with HTML5 and Java EE 7

Running a Program on an AVD

Rich Internet Applications

Porting Existing PhoneGap Apps to Tizen OS - Development Story

Enterpise Mobility Lexicon & Terminology

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved.

research: technical implemenation

HTML Form Widgets. Review: HTML Forms. Review: CGI Programs

How to start with 3DHOP

Mobile web apps: The best option for business? A whitepaper from mrc

Learning HTML5 Game Programming

Suh yun Ki m (KIS T) (KIS suhyunk@.com

Retool your HTML/JavaScript to go Mobile

How To Develop A Mobile App With Phonegap

ENTERPRISE MOBILITY STRATEGY. We work for you, not your technology vendors.

Topics in Website Testing. [Reading assignment: Chapter 14, pp ]

ADF Mobile Overview and Frequently Asked Questions

How Simple Is It To Develop a Mobile App? Uma Sudhan OpenEdge Developer 7 th Oct 2013

Develop IBM i Mobile and Desktop Applications with a Single Code Base. BCD Software, LLC. All rights reserved.

Platform support for UNIT4 Milestone 4

HTML5, The Future of App Development

CROSS PLATFORM APP A COMPARATIVE STUDY

Programming IoT Gateways With macchina.io

EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)

Vector Web Mapping Past, Present and Future. Jing Wang MRF Geosystems Corporation

Mobile Cross Platform Development really? Jonathan Marshall, IBM Mobile Technical Specialist IBM Corporation

50 shades of Siebel mobile

ANDROID APP DEVELOPMENT: AN INTRODUCTION CSCI /19/14 HANNAH MILLER

place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

Developing Secure Mobile Applications from SharePoint Presented by Seyfarth Shaw LLP and Something Digital

From Desktop to Browser Platform: Office Application Suite with Ajax

APP DEV. We build your ideas into web and mobile applications. steicho. Technological Solutions

Cross Platform Applications with IBM Worklight

Developing and deploying mobile apps

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte

Transcription:

A History of Tcl in the Browser Oh no, not again! 1

The Motivation need a scripting language Anyway I know only one programming language worse than C and that is Javascript...the most horrible kluge in the history of computing Robert Cailliau - CERN 2

We don t compile Everything is a string Types are for wimps Eschew obsfucation! Speed is overrated We are the 0.1% 3

The Motivation need our scripting language - portability - productivity - deployment - relevancy 4

5

The Motivation Android - no mainstream Tcl release - no Tk ios - Objective C / Javascript only - Tcl - feasible and practical? - deployment 6

The Survey 7

1995 - Eolas WebRouser the first Web Tcl one of the first plugins HTML Tcl/Tk Browser WebWish MEAPI 8

1995 - Eolas WebRouser the first Web Tcl one of the first plugins Pros Tcl + Tk security model web apps Cons plugin no longer available 9

1996 - The Tcl Plugin SunLabs Tcl Group one of the first Netscape plugins HTML Tcl/Tk Browser Tcl Plugin NPAPI 10

1996 - The Tcl Plugin SunLabs Tcl Group one of the first Netscape plugins Pros Tcl + Tk Safe-Tcl security still available FF + IE Cons plugin not on mobile deployment 11

1998 - Proxy Tk Java applet + custom server efficient client/server protocol Tk HTML ProxyTk Java VM Tcl Tcl interpeter Browser Web Server 12

1998 - Proxy Tk Java applet + custom server efficient protocol Pros Tcl + Tk client / server deployment Cons no offline support subset of Tk no longer available 13

2003 - TkWeb render Tcl/Tk using HTML + CGI HTML Tcl/Tk CGI Browser Web Server 14

2003 - TkWeb render Tcl/Tk using HTML + CGI Pros Tcl + Tk Javascript no plugin Cons experimental incomplete no offline support 15

2006 - Æjaks Tcl in the server (via Jacl) Ajax-based windowing system Tk Echo2 Tcl HTML Javascript Echo2 Jacl Java VM Browser Web Server 16

2006 - Æjaks Tcl in the server (via Jacl) Ajax-based windowing system Pros Tcl + Tk Javascript no plugin Cons subset of features no offline support 17

2007 - JsTcl Tcl interpreter in Javascript transliteration of Picol Tcl HTML Javascript Browser 18

2007 - JsTcl Tcl interpreter in Javascript transliteration of Picol Pros Javascript no plugin Cons experimental incomplete 19

2010 - WubTk Tcl in server Tk over jquery over Javascript in browser Tk jquery HTML Javascript Tcl Tcl interpeter Browser Web Server 20

2010 - WubTk Tcl in server Tk over jquery over Javascript in browser Pros Tcl + Tk Javascript no plugin Cons subset of Tk no client-side Tcl no offline use 21

2011 - NaTcl Tcl in Google Native Client (NaCl) sandbox real Tcl, native code Tcl HTML NaTcl NaCl Browser 22

2011 - NaTcl Tcl in Google Native Client sandbox Tk over jquery over Javascript in browser Pros speed full Tcl in the browser interface with the DOM Cons no Tk Google Chrome only plugin 23

2011 - IncrTcl in Javascript Tcl in Google Native Client sandbox Tk over HTML/CSS/Javascript in browser Tk HTML Tcl Javascript Browser 24

2011 - IncrTcl in Javascript Tcl in Google Native Client sandbox Tk over jquery over Javascript in browser Pros Cons 25

2011 - NaTk Tk over jquery over Javascript client-side 26

2011 - NaTk Tk over jquery over Javascript client-side Tk Tk jquery HTML Javascript Browser 27

2011 - NaTk Tk over jquery over Javascript client-side Tk Pros Javascript HTML5/CSS3 offline use Cons proof of concept subset of Tk 28

Summary several options available - the Venerable Plugin - Æjaks - WubTk - NaTcl - incrtcl in Javascript 29

Summary several options available arguably none ready for prime time 30

Oh no, not again! 31

Three approaches translate application code to Javascript implement the TEBC engine in Javascript implement Tcl in Javascript 32

Linux in a browser PC emulator Javascript small fast Linux boots in the browser 33

34

Linux in a browser PC emulator Javascript small fast Linux boots in the browser hand-coded Javascript 35

Emscripten translate C to Javascript C Code LLVM bitcode Emscripten Javascript 36

Emscripten translate C to Javascript C Code LLVM bitcode Emscripten Javascript acceptable performance other languages + packages ported which Tcl codebase? 37

Jim Tcl small footprint small codebase advanced features high degree of compatibility 38

Jim JS build environment invoking Tcl function execute(text) { Module.run(text); } function print(text) { console.log(text); } 39

Jim JS build environment invoking Tcl malloc 0 missing functions 40

Jim JS build environment invoking Tcl malloc 0 missing functions performance time {set a 10; set b $a} ActiveTcl 8.6b1.2 0.43 Jim/Firefox 30 Jim/Safari 27 41

Jim JS build environment invoking Tcl malloc 0 missing functions performance tactical not strategic solution 42

Deja vu all over again technoarchaeology? archeotechnophilia? technonecrophilia! 43

44

Demo 45

Where to now? Tcl - tactical - Jim JS Tcl - strategic - ubiquity - optimized Javascript - speed - native or NaTcl Tk over HTML5 / CSS3 - desktop + browser 46

Typple anyone? Typeless Programming Language typple.net 47