LV: I would add to the above that when people say "Tcl doesn't have ..." followed by some function, what they seem to mean is "I want to do ..., but I don't want to code it myself, don't want to pay someone to code it, and don't want to have to download and build something other than the tcl.tar.gz or tcl.zip file."That is a rather unfortunate attitude to take towards open source.VK: That's not always true. Sometimes TCL does not have some feature due to the fact that it does not go smoothly into the TCL ideology, but it is actually really used in programming world. Closures - http://wiki.tcl.tk/3330 is an example (there are attempts to simulate them but all you get is poor substitutes). Proper object destruction is another example. Anonymous subroutines, the possibility of writing one-line command line scripts - you can neither download this as .tar.gz nor even implement it actually.Duoas: Wait a second-- are you saying that just because you can find things like monads in functional languages or direct port access in assembly languages or feature X in language Y that Tcl should include it in its core? Perhaps all imperative languages are evil and should be turned into functional languages? There will always be differences in design philosophies between languages. Tcl's strength lies in the fact that it is easily adaptable to so many different (and usually incompatible) philosophies.LV: VK, you make a valid point. I will grant you that there are various features which Tcl does not have, and which are anywhere from difficult to impossible to implement. But, if you think about it, there are few languages in existence which have every feature that anyone might think of during the many years after its creation. So that is just a simple statement of fact and not a criticism of every language created.Duoas: I don't think his point is valid at all.LV began by saying that people complain that Tcl doesn't have feature X because it would mean having to code it themselves. This is an attack on the mentality of lazy programmers, in defense against their gripes about Tcl: they could still code feature X themselves, or find another, perfectly valid Tcl way to do it.VK, at least as I read him and in context, disagrees, giving the argument that people in the real programming world (an attack on Tcl advocates) use feature X, which Tcl does not have "due to the fact that it does not go smoothly into the TCL ideology" (an attack on Tcl). He attempted to lend weight to his argument by mentioning closures, object destruction, lambdas, and one liners, concluding that all are only available in Tcl as cruft or impossible. This endeavors to equate laziness with its opposites: propriety and knowledge of how to use the tool at hand.I responded that this reasoning is nonsense. Just because you can find some language feature X does not mean that Tcl is useless, or that doing something one way in language Y means that it needs to be done the same way (or at all) in Tcl. You can read here  what Stroustrup said about similar attacks on C++ (scroll down to "C++ is useless...").Show me all the programming languages that don't work or are obsolete because they don't have closures, and why they trump all the programming languages used for the past 30 years that have worked just fine without them. Show me all the critical programs that were subverted because the language didn't have lambdas! Show me all the one-liners critical to general computing and why this obsoletes Tcl!LV is correct: no language has everything. If you want closures, either go use Scheme or Smalltalk, or fix Tcl yourself! It seemed to me that the point of this page was that bloating Tcl with nonsense like this is a real fear. Is Tcl Different!SYStems: regarding closures, I believe their main value is encapsulation, they are a simple nice and clean data encapsulation mechanism. TclOO will provide encapsulation which what closures are all about. While I agree closures might be a lot simple and straightforward for many cases. But the OO approach is not such a terrible compromise.DKF: Closures and OO do different types of encapsulation, and aren't interchangeable. The main problem with closures is how to introspect them; introspectability is a key feature of Tcl.
RS: Open source software lives as long at least one developer has the sources and can compile them. Tcl sure isn't a fashionable language, but you also often hear how people are surprised and ultimately converted. Yes, we are a minority - but we've got The Cool Language! I'm not worried as long as everything is a string.
LES 2006-11: I am not really an expert, but I do read and try a lot of stuff, and after 3 years using Tcl, I am still firmly convinced that Tcl is, sadly, an excessively well kept secret. If more developers took the time to shake off all prejudice and examine Tcl a little more, they would have nothing but the insecurity of working with an unpopular language to deal with. Tcl Tcl has all and a few other traits that many languages pursue and haven't managed to deliver to-date. Sadly, Tk is a different story. Tk is obsolete, no question about it.peterc 2008-01-13: This where the modern widget extensions like Tile are so important to Tcl's future as it stops people making snap judgements that Tcl's dated just on the basis of what classic Tk looks like. (Much as I think Tcl can continue as a lower profile language on a technical level, I'd really like to see more jobs on the boards with Tcl skills sought after.)Tcl has many years in front of itNothing to worry about. No need to have a million programmers for a programming language to live and prosper. As the saying goes: too many cooks spoil the broth. I think Tcl-TK has the right ingredients, the right wiki, the right chat, and ultimately the right people to live for a long long time. It improves slowly but steadily and this is what counts. I am sure it will still be strong and healthy when yours truly will become food for (gourmet I hope) worms 6 feet under the ground :-) and way beyond...Besides, good programming languages take a long time to die. We still hear about Cobol and Fortran which have been around for 50 years.But those who really want to ensure Tcl's longevity, those who really want to make a concrete gesture towards getting TCL known, should do what
- Will Duquette Notebook
- JCW TclKit
- Mark Roseman ProjectForum
- Brian Theado TKoutline
- The discrete programmer who wrote GetMeDone
RFox: I have only two things to say about this: AOLserver & CISCO.
[LTG30]: If the reader is concerned about TCL's future, read the third paragraph of this link. http://www.tcl.tk/about/audience.html[BV]: F5 (http://www.f5.com/) has added a new feature called "irules" to their latest load balancing products. They made extensive use of TCL. These irules are very powerful. You can read more about this by searching for "irules" at http://devcentral.f5.com/ .
SYStems: I too would worry if Tcl was the only programming language I know, but why should it be? I agree that for any individual there are so many languages he can learn. And even when you do know more than one language, most developers seem to prefer to use just one most of the time if not all of the time. Even more I know that it's hard for Tcl to be that one language. I think the core team of Tcl should focus more on making Tcl different than redundant. This way Tcl will have a better of making the short list of the programming languages most programmers feel the need to learn. My pick list would be
- C, C++ (systems development)
- Vb.Net or C# (anything first class in .net)
- A scripting language: Perl, Ruby, Python, Tcl. Python just got a huge push by being the default for the OLPC
- Sql, PL/Sql, T-Sql, MDX
[DM] 2010-07-01 07:31:54:The portability problem of Tcl/Tk applications through Tcl versions and platforms is often the portability problem of some critical extension. We have seen that with IncrTcl, long time ago, and we are seeing that today with BLT. I understand that the adoption of a well defined architecture for extensions should help, however, for the sake of Tcl future, it'd be advisable to keep an eye on such key extensions, not just on the core package.
LVwikignoming 2010-07-01 11:37:46:The remarks about portability across Tcl versions actually applies to portability across platforms as well. So it really behooves a developer to make each use of an extension an intentional decision, and to include in the application test plans testing against the platforms and versions that will be supported.
SeS 2010-07-06:I would like to add my 2 cents into this discussion, simply because I have 5+ years of experience in digital IC layout design and I am witness that over the years, also before I started this profession, that it seems that tcl has & is being used on a frequent base by both tool suppliers/developers as well as IC designers in the semiconductors industry. For some reason, the PR of tcl/tk is kept quit (in relative terms). Sorry, if I am repeating things, but I think a programming language becomes more attractive as soon as SDE kits & tools become more mature & available and provide enough features to let the designer express their needs & idea's in a quick & consistent manner. With tcl/tk, I see a vacuum compared with other languages, especially in terms of a mature and up-to-date IDE, although "mature" is a relative term since the requirements of such an IDE is different for each software developer...bch: What would be the IDE that's a Python IDE, or Perl or Ruby or PHP? That's the space that immediately jumps to mind that Tcl competes in. I happen to use XEmacs and it's inferior-tcl mode for a REPL, among other Emacs features. I don't know how typical that is, or what others might want. Compared to other languages, perhaps you could enumerate Tcl's IDE weaknesses?SeS: To answer that, I would have to pick an IDE written in/for tcl/tk and do a compare of these to a reference. My reference would be Visual Basic, since I used it in the past frequently, but, maybe that is the problem or the reason for my comment. Let me put it in another way, IS there a IDE written in & for tcl/tk which simply let the user move around any widget on a form/toplevel from pixel to pixel? In other words, using the "place" geo manager instead of pack & grid which (I believe) the majority of tcl/tk IDE's do? There is no need for pixel-based placement? Well, maybe, maybe not, it depends on one's requirements and one's imagination, having the option would be nice. I am not saying there is none, it is just that I have not read or seen one yet...and since I am relative new to tcl/tk, maybe you can enlighten me and show me the link to such an IDE? I would sure like to see it to compare it to my initiative, tG². And there is more what makes an IDE a good IDE, but this would require a book to be honest, with my limited time I am restricting myself to this feature only as an answer to you bch.