Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Tcl/Tk 2002. Ten Years of Rapid Development Mark Roseman University of Calgary TeamWave Software Ltd. Sonexis Inc. “Independent Developer”"— Presentation transcript:

1 Tcl/Tk 2002

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

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. You can convince others of that. But it really helps if you know what you’re doing! Even for bigger systems.

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

19 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

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 Proxy Tk Java Applet Tcl Application Code Tk API AWT Proxy Tk Library

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

22

23

24

25

26 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

27 Software Engineering… with Tcl?

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

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

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

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

32 Tcl in the Hot Seat!

33 Obvious Strengths Higher level programming Cross platform Easy licensing

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

35 Larger Systems Issues Integration Configurability Reliability Performance and Scalability

36 Integration “Glue” Extensions COM Web services

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

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

39 Performance and Scalability USER

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

41 Scalability Results Approximately 1000 users 2500 Tcl interpreters!

42 Many legal bills later…

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

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

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

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

47 Grab a Beta Version @ www.courseforum.com

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

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


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

Similar presentations


Ads by Google