tcl tk 2002 l.
Download
Skip this Video
Download Presentation
Tcl/Tk 2002

Loading in 2 Seconds...

play fullscreen
1 / 49

Tcl/Tk 2002 - PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on

Tcl/Tk 2002. “Independent Developer”. Ten Years of Rapid Development. Mark Roseman University of Calgary TeamWave Software Ltd. Sonexis Inc. Welcome to AOL Digital City…. Yeah ok, maybe not. Them. Us (not to scale). Benefit from the Pain of Others. Tcl experience papers

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Tcl/Tk 2002' - talia


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ten years of rapid development

“Independent Developer”

Ten Years of Rapid Development

Mark Roseman

University of Calgary

TeamWave Software Ltd.

Sonexis Inc.

yeah ok maybe not
Yeah ok, maybe not.

Them

Us

(not to scale)

benefit from the pain of others
Benefit from the Pain of Others
  • Tcl experience papers
  • Range of systems
  • Growing systems
  • Development practices
  • “Soft” issues
in a nutshell
In a nutshell…

Tcl/Tk good.

Even for bigger systems.

You can convince others of that.

But it really helps if you know what you’re doing!

today s talk
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
Collaborative Systems
  • Groupware
  • Conferencing
  • Highly interactive
  • Networking
  • Usability
  • People issues
when did you discover tcl tk
When did you discover Tcl/Tk?
  • 1992 @ U Calgary
  • Prototypes - TK / BYO
  • … oops, better finish that damn thesis!
  • Tcl-DP
groupkit
GroupKit
  • Prototyping shared applications
  • Internal/external use
  • Lots of experimentation
tcl tk benefits
Tcl/Tk Benefits
  • Learning curve
  • Higher level programming — faster
  • Rich widget set
  • Cross-platform
typical prototyping usage
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
TeamRooms
  • “Real” app
  • Rooms
  • Tools
  • Client-server
  • Cross-platform
teamwave workplace
TeamWave Workplace
  • Spin-off company
  • 2-3 developers
  • Rapid changes
  • < 50k loc
so far so good
So far so good…
  • Ad hoc development practices
    • Coding style
    • Modularity
    • Testing
  • Some bleeding-edge gotchas
  • Some performance issues
starting to grow
Starting to Grow
  • Modest financing
    • 5-10 developers
  • Moving to the web
    • Users in education, virtual communities
    • Download a deterrent
rewrite in java

Virtual community

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

User’s Workstation

Server

Tcl Application Code

Tcl Application Code

Tk API

Tk API

Proxy Tk Java Applet

Tk Library

Proxy Tk Library

AWT

OS Windowing System

get all that
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

Tcl Application Code

Tk API

Proxy Tk Java Applet

Proxy Tk Library

AWT

web site management
Web Site Management
  • Application Service Provider model
  • Manage accounts, rooms, scheduling…
  • Originally cgi.tcl
  • Later AOLserver
  • Centralized Metakit datastore
growing pains
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
development practices coding style
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
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
Development Practices:Automated Testing
  • Tcl excels here
  • Benefits
  • Tcltest
  • Single language
  • Other automation…
development practices summary
Development Practices:Summary
  • Traditional approaches work well in Tcl
  • This will slow you down (a bit…)
  • Better than the alternative!
obvious strengths
Obvious Strengths
  • Higher level programming
  • Cross platform
  • Easy licensing
common misconceptions
Common Misconceptions
  • Tcl is unstructured
  • Tcl is hard to hire for
  • Tcl is unsupported
larger systems issues
Larger Systems Issues
  • Integration
  • Configurability
  • Reliability
  • Performance and Scalability
integration
Integration
  • “Glue”
  • Extensions
  • COM
  • Web services
configurability
Configurability
  • Adjust for different customers
    • Feature sets
    • Extensions
    • Appearance changes
    • Branding
reliability
Reliability
  • AOLserver 
  • Two language solution
    • Application features in Tcl
    • Core engine in C
  • Multiple process model
    • Easy in Tcl
    • Fault tolerant
performance and scalability
Performance and Scalability

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

USER

performance and scalability40
Performance and Scalability
  • AOLserver      
  • Monitoring performance
    • Add telemetry
    • Scalability test harness
  • Migration to C
  • Multiple processes (vs. threads)
scalability results
Scalability Results
  • Approximately 1000 users
  • 2500 Tcl interpreters!
bottom line
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
Pitfalls
  • Interactive web applications
  • Web site development
  • Tcl best practices?
  • Image problem?
still great to be a tcl developer
Still Great to be a Tcl Developer
  • Core Tcl/Tk
  • Tcllib
  • Activestate
  • Tclhttpd
  • Metakit
  • Tclkit/Starkit
  • Wiki
shameless plug
Shameless Plug
  • CourseForum
    • Wiki + discussion for education
    • Multiple areas, users, versions, tracking…
    • Ease of use
    • Easy deployment
  • Uses “a little bit”of Tcl
summary
Summary

Tcl/Tk good.

Even for bigger systems.

You can convince others of that.

But it really helps if you know what you’re doing!

questions comments entertaining war stories www markroseman com
Questions? Comments?Entertaining War Stories?www.markroseman.com