Sohodojo logo
  Sohodojo Forums
  What's hot and what's not in Role-based Executable Business Modeling technology?
  Why you can't live without Tcl/Tk

Post New Topic  Post A Reply
profile | register | preferences | faq | search

UBBFriend: Email This Page to Someone! next newest topic | next oldest topic
Author Topic:   Why you can't live without Tcl/Tk
Jim_Salmons
Black belt
posted 06-01-1999 12:57 PM     Click Here to See the Profile for Jim_Salmons   Click Here to Email Jim_Salmons     Edit/Delete Message   Reply w/Quote
I believe, in terms of overall project success, UI and user documentation are equally important to writing code. You can design the most elegant architecture for your underlying frameworks, craft the finest code to implement that design, then blow it all by slapping on a bad UI and providing pitiful docs.

Smalltalk had it all... and lost it

For years I lived exclusively in Smalltalk, a one-stop shop for software development, and I loved it. The GUI framework was full-featured, including a consistent constraint-based widget layout manager. Since Smalltalk is mostly written in Smalltalk, this GUI toolkit was tightly integrated with the rest of Smalltalk. We didn't need anything else. Or so we thought.

Of course the Smalltalk community got caught sleeping and was, consequently, left in the dust on the shoulder of the Information Superhighway as the multi-cultural, Web-based programming world emerged. Reluctantly, many Smalltalkers left Smalltalk in order to join the Internet programming revolution.

Python to the rescue

As I looked for an object-oriented language to move my work into the emerging multi-lingual, open standards world of Internet development, I was strongly drawn to Python. There is so much for a Smalltalker to like about Python. If only Python had a Smalltalk development environment and hid its file-based code storage mechanism.

As I increasingly fell for the lean, clean power of Python, I learned that the best way to do portable Python GUIs was using Tkinter, a standard Python module binding Python with Tk, the GUI-toolkit component of Tcl/Tk.

Tcl/Tk sneaks in the back door... and blossoms

My Tkinter exposure opened up Tcl/Tk to me. As an admitted UI freak, I was thrilled with the power and portability of Tk.

Giving software portability while maintaining native platform 'look and feel' is both very difficult and a requirement if you want to develop user-acceptable software. Nothing does portable GUIs better than Tcl/Tk. So if you are serious about portability and high quality GUIs, you will most likely wind up being a Tcl/Tk user no matter what other languages you use for general and special purposes.

Tcl's extensibility - A beautiful thing to behold...

I was drawn to Tcl/Tk for its GUI power, but the more I dig into it, the more there is to like.

I lived happily for years in Smalltalk. One of Smalltalk's strengths is that most of Smalltalk is written in Smalltalk. Smalltalk is infinitely extensible in fundamental ways, as long you stayed in the cloistered world of Smalltalk. Smalltalk had all the reflective and meta-programming features required for extensibility.

But extension needs to be more than simple accumulation of additional functionality into a base platform. Inevitably, extension means interfacing with the outside world; in this case, interfacing with other Internet programming technologies.

When you tried to marry Smalltalk with external technologies, things got dicey. Tcl/Tk on the other hand, is everything Smalltalk is not in terms of extensibility.

Tcl is first and foremost a powerful integration scripting technology, a 'glue' language.

Tcl inventor John Ousterhout explains the architectural constraints on extensibility, in general, and the impact of his taking these constraints into account during Tcl's design in his recent, lucid article, Extensibility in Tcl, in the June issue of Dr. Dobbs' Journal.

Ousterhout's article is a brilliant 'Master Class,' one of the best articles to appear in DDJ in many months. If you have an issue and have not read this article, please do.

I was disappointed to see that DDJ did not include the full text of Ousterhout's outstanding article in its on-line companion to the magazine. At the link above, you will find information on how to order an issue if you can't find it on our local newsstand.

If you read this article and do not become seriously interested in Tcl, you may need to make an appointment with your doctor to adjust your medication. Tcl's extensibility architecture is so powerful, no serious Web programmer can afford to be without this potent Web programming technology.

Yon don't have to believe me. Get the article, read it. Ousterhout makes the Tcl case better than anyone.

(I'll keep an eye out on the DDJ and Scriptics sites to see if this great article gets posted. If not, I will consider OCR scanning for posting here for editorial purposes. Drop me a note if you want the article and cannot find it otherwise.)

Tcl/Tk-extended ZOPE... a platform for executable business model development

So why am I so hot to trot about Tcl/Tk when I have ZOPE for building executable business model frameworks? To answer that, I need only appeal to my opening comments... it's about GUI, baby!

Admittedly the browser-based development and user site access are good features of ZOPE. For some long time to come, folks will 'surf the Net' with browser applications. That serious server-side development can be done using nothing more than a basic browser is also an important feature of ZOPE. (Indeed, we intend to support the WebTV Internet Terminal as the minimal EBM development platform.)

But ultimately, to truly tap into the full potential of the convergence of powerful personal computers and the Internet, the browser, as we know it, has to fade away. Seamless integration between local information and remote information is essential. Hey, DOJ witchhunters, Microsoft is right on this account.

An EBM platform, as I envision it, adds an integral and pervasive dimension to the user's desktop. An EBM-enabled desktop is not merely a static view onto software-generated version of your paper and pen, bricks and mortar office.

An EBM desktop serves up a view onto a living model of you, your World and your place and interactions in it. You, your customers, vendors and important others are actively and intuitively represented in model views generated by the EBM GUI desktop framework. This visualization framework understands how to dynamically generate role-specific views representing the state of the underlying executable business model.

You cannot do justice to a dynamic EBM model within the constraints of a browser window with its serious broken HTML widget layout manager. And the depersonalized, application-centric desktop of today's OS-based GUIs is inadequate.

This time, it's Tcl/Tk to the rescue of ZOPE and Python.

I expect to develop the 'smart desktop' aspects of our EBM GUI frameworks using Tcl/Tk. This way, we get the best of both worlds; minimalist browser-based development and end-user access when required, and full-bore engaging model-driven GUI desktop when wanted or needed.

Rain on the Tcl/Tk parade... from an unlikely source

Alas, all is not so rosy in the Tcl/Tk Garden of Programmer Delights. John Ousterhout's own company, Scriptics, has produced some exciting commercial Tcl/Tk developer tools, but sadly, priced them far out of the reach of independent developers. I've gone on a rant about discriminatory development tool pricing elsewhere in these Forums. Suffice it to say, even if Scriptics doesn't want the independent developer business, Tcl/Tk destined to grow into an even more important Internet programming technology and one which will play a key role in the sohodojo EBM frameworks.

[This message has been edited by Jim_Salmons (edited 01 June 1999).]

All times are ET (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply
Hop to:

Contact Us | The sohodojo home page


Ultimate Bulletin Board 5.45b