Tcl/Tk 2002. Ten Years of Rapid Development Mark Roseman University of Calgary TeamWave Software Ltd. Sonexis Inc. “Independent Developer”

Slides:



Advertisements
Similar presentations
Implementing Tableau Server in an Enterprise Environment
Advertisements

Pulan Yu School of Informatics Indiana University Bloomington Web service based Varuna.Net.
The Open Source Developer's Kit Scott Wheeler Nortoc Inc. January 14, 2003.
Facts about Welcome to this video from Ozeki. In this video I will present what makes Ozeki Phone System XE the Worlds best on-site software PBX for Windows.
A Toolbox for Blackboard Tim Roberts
Introduction to Systems Management Server 2003 Tyler S. Farmer Sr. Technology Specialist II Education Solutions Group Microsoft Corporation.
A tour of new discovery introducing XpertCapture Your ultimate data capturing solution.
Your Webinar Software Just Isn’t That into You Understanding the Difference between Webcasting and Web Conferencing Hugh Taylor VP of Marketing MediaPlatform,
Fundamentals of Information Systems, Second Edition 1 Telecommunications, the Internet, Intranets, and Extranets Chapter 4.
Visual Studio Online. What it Provides Visual Studio Online, based on the capabilities of Team Foundation Server with additional cloud services, is the.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
UNIT-e Research & Development Microsoft Technology Day Stephen Cain (System Architect)
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Interpret Application Specifications
Groupware toolkits for Synchronous work Saul Greenberg, Mark Roseman Dept. of Computer Science, Univ. of Calgary In M. Beaoudouin-Lafon, editor, Computer-Supported.
E-Business: Intra-Business E-Commerce
Winter Consolidated Server Deployment Guide for Hosted Messaging and Collaboration version 3.5 Philippe Maurent Principal Consultant Microsoft.
Standardize on Team Foundation Server across the enterprise with Teamprise Corey Steffen General Manager
Client/Server Architectures
Project Proposal: Academic Job Market and Application Tracker Website Project designed by: Cengiz Gunay Client: Cengiz Gunay Audience: PhD candidates and.
Virtual Organization / Collaboration Environment Ann Wyganowski Sept 29, 2011.
.. Skytap Better Software Faster Visual Studio Industry Partner Skytap NEXT STEPS Contact us at: Insert your company description here.
Computer System Architectures Computer System Software
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
Joel Bapaga on Web Design Strategies Technologies Commercial Value.
Trimble Connected Community
Software Licensing, Made Simple SELECT Server XM Edition
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
What is Workflow?  Workflow or Business Process Management (BPM) consists of Processes, States and Actions.  A Process (e.g. Customer Order fulfillment)
©Kwan Sai Kit, All Rights Reserved Windows Small Business Server 2003 Features.
Design of a Collaborative System Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A
Open Web App. Purpose To explain Open Web Apps To explain Open Web Apps To demonstrate some opportunities for a small business with this technology To.
Pradeep Tallogu Deepak Avanna Sharath Madathil
ICINETIC Experts in.NET technologies and architectures.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
DCOM (Overview) by- Jeevan Varma Anga.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
An Introduction to Progress Arcade ™ June 12, 2013 Rob Straight Senior Manager, OpenEdge Product Management.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Project 2003 Presentation Ben Howard 15 th July 2003.
August 2003 At A Glance VMOC-CE is an application framework that facilitates real- time, remote cooperative work among geographically dispersed mission.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Eagle: Maturation and Evolution 17th Annual Tcl Conference Joe Mistachkin.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
ICINETIC Experts in.NET technologies and architectures.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
Microsoft Management Seminar Series SMS 2003 Change Management.
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
SUBMITTED BY JESNA J AM.EN.P2ELT14003 LEARNING MANAGEMENT SYSTEM.

MySQL An Introduction Databases 101.
Benjamin Naden Windows Client Group Manager, Microsoft Singapore.
® IBM Software Group © 2003 IBM Corporation IBM WebSphere Studio V5.1.2: Making Java Development Easier May 2004.
SharePoint ShortUrl and SharePoint Document Merge SharePoint and Office 365 Add-ins to Increase Productivity and Improve User Adoption! OFFICE 365 APP.
Michael Miller Senior Director Real-Time Collaboration Products Oracle Collaboration Suite 10g Oracle Corporation.
Both Dutch and Swedish nationality 20+ years of industry experience Living in Stockholm, Sweden MCSM, MCM, MVP, MCSE, MCSD, MCSA, MCPD, MCITP, MCTS PnP.
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
THE PRESENT AND FUTURE nopCommerce  .
Let's talk about Linux and Virtualization in 'vLAMP'
CST 1101 Problem Solving Using Computers
External Web Services Quick Start Guide
App Configuration, Customization or Development
Replace with Application Image
Getting Started.
CLIENT ZipDial.
Getting Started.
Chapter 17: Client/Server Computing
Technical Capabilities
Eagle: Maturation and Evolution
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Tcl/Tk 2002

Ten Years of Rapid Development Mark Roseman University of Calgary TeamWave Software Ltd. Sonexis Inc. “Independent Developer”

Welcome to AOL Digital City…

Yeah ok, maybe not. Them Us (not to scale)

Benefit from the Pain of Others Tcl experience papers Range of systems Growing systems Development practices “Soft” issues

In a nutshell… Tcl/Tk good. You can convince others of that. But it really helps if you know what you’re doing! Even for bigger systems.

Today’s Talk Development phases –Prototyping (GroupKit) –Desktop apps (TeamRooms/TeamWave Workplace) –Web apps (various) Growing pains / solutions Tcl in the Hot Seat –Integration, Configurability, Reliability, Scale –Strengths, Misconceptions, Roadblocks

Collaborative Systems Groupware Conferencing Highly interactive Networking Usability People issues

When did you discover Tcl/Tk? U Calgary Prototypes - TK / BYO … oops, better finish that damn thesis! Tcl-DP

GroupKit Prototyping shared applications Internal/external use Lots of experimentation

Tcl/Tk Benefits Learning curve Higher level programming — faster Rich widget set Cross-platform

Typical Prototyping Usage… Prototypes, small apps Small number of developers, even novices Limited time Problems solvable more quickly and easily by individuals & small groups.

TeamRooms “Real” app Rooms Tools Client-server Cross-platform

TeamWave Workplace Spin-off company 2-3 developers Rapid changes < 50k loc

So far so good… Ad hoc development practices –Coding style –Modularity –Testing Some bleeding-edge gotchas Some performance issues

Onwards…!

Starting to Grow Modest financing –5-10 developers Moving to the web –Users in education, virtual communities –Download a deterrent

Rewrite in Java? Keep code base (time to market) Client-side Java risky Still a small team, tight schedules Rapid change –Virtual community –Music sharing –E-Learning –Web presentations –Online meetings –Etc.

Tk LibraryProxy Tk Java Applet Proxy Tk Tcl Application Code Tk API OS Windowing System User’s WorkstationServer Tcl Application Code Tk API AWT Proxy Tk Library

Get all that? Application code moves to server Still uses Tk API Tk implementation replaced by Proxy Tk Messages sent to Java applet on client Events sent from Java back to server Proxy Tk Java Applet Tcl Application Code Tk API AWT Proxy Tk Library

Web Site Management Application Service Provider model Manage accounts, rooms, scheduling… Originally cgi.tcl Later AOLserver Centralized Metakit datastore

Growing Pains Growing code base –90k loc Tcl, 35k loc C, 10k loc Java Ramping up new developers –Tcl learning curve still okay –Finding integration points –Coding styles –Breakage Not exactly a shock

Software Engineering… with Tcl?

Development Practices: Coding Style Lots of advantages to using one Pick anything Tcl Engineering Manual / Style Guide Tcl code base as example

Development Practices: Modularity Namespaces, objects, … Follow commands like ‘file’, ‘string’ –Toplevel parsing routine (entry point) –Dispatch to other internal procedures –Naming, variable access, etc.

Development Practices: Automated Testing Tcl excels here Benefits Tcltest Single language Other automation…

Development Practices: Summary Traditional approaches work well in Tcl This will slow you down (a bit…) Better than the alternative!

Tcl in the Hot Seat!

Obvious Strengths Higher level programming Cross platform Easy licensing

Common Misconceptions Tcl is unstructured Tcl is hard to hire for Tcl is unsupported

Larger Systems Issues Integration Configurability Reliability Performance and Scalability

Integration “Glue” Extensions COM Web services

Configurability Adjust for different customers –Feature sets –Extensions –Appearance changes –Branding

Reliability AOLserver Two language solution –Application features in Tcl –Core engine in C Multiple process model –Easy in Tcl –Fault tolerant

Performance and Scalability USER

Performance and Scalability AOLserver Monitoring performance –Add telemetry –Scalability test harness Migration to C Multiple processes (vs. threads)

Scalability Results Approximately 1000 users 2500 Tcl interpreters!

Many legal bills later…

Bottom Line Tcl worked for us From prototypes to robust/scalable commercial apps With Tcl, could take this work much further on fewer resources than if using conventional development tools.

Pitfalls Interactive web applications Web site development Tcl best practices? Image problem?

Still Great to be a Tcl Developer Core Tcl/Tk Tcllib Activestate Tclhttpd Metakit Tclkit/Starkit Wiki …

Shameless Plug CourseForum –Wiki + discussion for education –Multiple areas, users, versions, tracking… –Ease of use –Easy deployment Uses “a little bit” of Tcl

Grab a Beta

Summary Tcl/Tk good. You can convince others of that. But it really helps if you know what you’re doing! Even for bigger systems.

Questions? Comments? Entertaining War Stories?