1 / 49

Tcl/Tk 2002

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

talia
Download Presentation

Tcl/Tk 2002

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tcl/Tk 2002

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

  3. Welcome to AOL Digital City…

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

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

  6. 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!

  7. 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

  8. Collaborative Systems • Groupware • Conferencing • Highly interactive • Networking • Usability • People issues

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

  10. GroupKit • Prototyping shared applications • Internal/external use • Lots of experimentation

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

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

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

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

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

  16. Onwards…!

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

  18. 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

  19. 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

  20. 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

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

  22. 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

  23. Software Engineering… with Tcl?

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

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

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

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

  28. Tcl in the Hot Seat!

  29. Obvious Strengths • Higher level programming • Cross platform • Easy licensing

  30. Common Misconceptions • Tcl is unstructured • Tcl is hard to hire for • Tcl is unsupported

  31. Larger Systems Issues • Integration • Configurability • Reliability • Performance and Scalability

  32. Integration • “Glue” • Extensions • COM • Web services

  33. Configurability • Adjust for different customers • Feature sets • Extensions • Appearance changes • Branding

  34. Reliability • AOLserver  • Two language solution • Application features in Tcl • Core engine in C • Multiple process model • Easy in Tcl • Fault tolerant

  35. 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

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

  37. Scalability Results • Approximately 1000 users • 2500 Tcl interpreters!

  38. Many legal bills later…

  39. 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.

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

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

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

  43. Grab a Beta Version @ www.courseforum.com

  44. 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!

  45. Questions? Comments?Entertaining War Stories?www.markroseman.com

More Related