Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Is Tcl alive and well? Or dying?
05-30-2010, 11:23 AM
Post: #1
Is Tcl alive and well? Or dying?
Taken from:
http://www.kocjan.org/tclmentor/6-is-tcl...dying.html

As usual, once in a while a post comes up on comp.lang.tcl newsgroup mentioning if Tcl is dying or progressing. This time it was this post: Tcl for Evil Geniuses and the entire thread. I dediced to write up my thoughts on this issue here.

For those of you who didn't read the thread, here's a sum up - author mentions that Tcl is underestimated and lacks interest and seems to be treated as an underground language for geeks (and Evil geniuses). There was even a discussion on whether Tclers should have a chair with lots of buttons and a cat. Nevertheless, I also agree that there is a problem - Tcl does not get enough popularity for some reasons and other languages (Python, Ruby on Rails) seem to get it. While I love being a geek and I even had a cat for some time, I don't want to be the last person using Tcl.

First of all, I don't consider Tcl an underground language. Despite some people not knowing it, it is used in huge enterprise applications even today - in websites, IT, telecoms, TV and a lot more industries. I have been working on some more and less enterprise class applications that use Tcl myself. My opensource projects also helped other people do business, which I'm happy about. It even helped me earn some money along the years. But the problem is that when you talk to a developer about languages, they usually either only heard something (usually bad) or claim it's some old language from the 80s. When you'll want to find a few friends and write an application/game together, Python or Java will have much more interest.

So why isn't Tcl as popular as other cool and trendy languages? Well it's very different. The syntax isn't C-like, arrays can't be passed around, there's no single OO standard (try explaing why there's Itcl, Snit, XOTcl and TclOO to a Tcl newbie!). There are good reasons why it's this way and once you know Tcl enough you actually appreciate that. But it'll efficiently scare off newcomers - people are much easier off using syntax they know than learning something completely new. Another thing is that Tk has been looking crappy on unix for years - yes, there's tile, there's font anti-aliasing in 8.5, but old apps won't use tile by default and 8.5 isn't stable yet.

However, even if Tcl lacks audience, I find it one of the best languages I've seen - you can write readable code easily, 100 lines of code can do a lot and it takes 3 minues to wrap it all up in a binary for 10 platforms. Plus I have Tcl/Tk on my mobile phone (PocketPC-based) and that's something really wonderful. Over the years I wrote a lot of applications in it - websites, GUI, daemons and so on. It's just a shame so little people know the benefits.

I've also been wondering what could be done about it - surely noone will change the syntax since that is Tcl's major power. I agree with people claiming Tcl lacks good marketing - I do see huge number of articles about new Ruby on Rails release or Python plans, but has any of you seen texts on Tcl lately in a major IT website? This is something that can't be solved in a day, but perhaps once it's releases, making sure that the world knows there's Tcl/Tk 8.5 and what are it's major features and upsides would be good. More experienced Tclers could also try to explain why Tcl is a nice language to other people - I try to do my best at it without getting a geek label attached while doing it. The more people know Tcl for it's strengths the better for it's future.

Another thing that I think would help is to standarize object-oriented programming issues. This has been messy for years and 8.5 might help solving the issue. Historically, Incr Tcl has been the first OO extension to Tcl. I believe it is also probably the most widely used one, at least in commercial applications. Over the years XOTcl has grown to be a more Tclish OO extension so it is more trendy nowadays. Snit is also an interesting approach. However, the new OO mechanisms in 8.5 as well as TclOO might be the new standards for next releases. That would definitely be something great. If at the same time Itcl/XOTcl/Snit compatibility packages would allow using old Itcl/XOTcl code and benefiting from TclOO, that would be something really great. I do believe this is something Tcl community should focus on while working on 8.5.

Tcl also has some really neat features which could make it a killer language (as in killer application). The thing that made it popular is Tk, it is still used not only in Tcl, but in Perl and Python as well. Nowadays I would consider Starkit/Starpack a really nice feature - ability to pack your application in a single binary that doesn't depend on any additional libraries makes it much easier to deploy your Tcl/Tk applications. SQLite, which was specifically implemented for Tcl, could also be considered a very strong side of Tcl. Support for most network protocols and ease to use networking in Tcl is another example of such strengths.

So, in my opinion Tcl is not dying, it's just not growing enough. This language has got some really cool features that make it unique and powerful. In my opinion it lacks good marketing, but I hope that this will start changing in the future as 8.5 has a lot to offer to programmers. I will definitely work on improving people's opinions on this great language! Hopefully, that will bring some good effects.

"Character is determined more by the lack of certain experiences than by those one has had."
Friedrich Nietzsche
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


 Quick Theme: