Tcl has a real advantage in that it is the only language that holds strictly to a very short set of syntax rules. There are only 11, and it makes for a simple, yet powerful language. Comments fall strictly in those rules.
the fact that error messages don't tell you a line number from a source file
Errors in a procedure give you the relative line number in that procedure. There is a good reason for that - procedures can (and often are) defined (or redefined) at runtime.
the biggest practical problems with Tcl/Tk I find are that a lot of extensions still aren't part of it
That is what ActiveTcl tries to address. Look at the feature list in the link above. Many major extensions to get you going quickly. The community is right now pondering the whole archive repository, but we want to make sure that it is done right.
There is no need to register anything to get the Windows binary from ActiveState (note that it specifically says "Contact info is not required to download". Only for the Tcl Dev Kit (which is a commercial product akin to ActiveState's Perl Dev Kit) requires registration because a license is sent to the user (free trial or the real thing).
You should really consider the upgrade to 8.4 because there is several years more development in it. New widgets, updated features, much faster, etc.
Things that are a high priority are what the community feels need addressing. OO is well handled in Tcl, which has namespaces in the core and popular extensions like [incr Tcl] and the more recent xotcl framework being commonly used.
It is being used in new development and new systems. At the last conference there was a paper on our (ActiveState's) work for Cisco in making some tweaks to the core to port it to their router environment. This is all recent development, and turned out quite well.
Remember that Tcl excels above all others at being a glue language. While it is a powerful scripting language that many rely on without C, it is still very easy to integrate into larger projects that require a scripting language. It has not lost its "Tool Command Language" roots, while becoming ever more powerful.
I would have to agree somewhat that the default look of itk is rather outdated (Motif-based), but that is not a limitation of Tk. Because Tk allows you to toss up windows with such minimal code as
pack [button.b -text "Hello" -command {puts "Hello World"}], many users create simple GUIs that just work, without putting any extra time into spit and polish.
You might prefer Tk megawidget toolkits like Bwidgets that did more spit and polish on the megawidgets, but any UI builder should always spend some time to adjust basic defaults to get the look they want. Even that is easy in Tk, with simple things like option add *Scrollbar.borderWidth 1 to affect the borderwidth size of all scrollbars created.
Tcl's C source code is some of the most beautiful I have ever seen.
As a lead maintainer, I have to of course agree, but it is an interesting note that Tcl/Tk is the only major scripting language that has won
ACM's Software System award. It's a level of code cleanliness that many systems just dream of.
Re:TCL vs TK / Ousterhout bailing/ maintaining cod
on
Tcl Core Team Interview
·
· Score: 2, Insightful
With Ousterhout looking for greener pastures does this weaken the product?
You will be surprised to find that many in the community would disagree. While everyone appreciates the efforts he put into Tcl, many felt that he was being too strict about the development path. Ousterhout's response was to create the Tcl Core Team, which has been positive. There are now many more people that work directly on the core, as well as a team of people that can discuss direction. John still does get involved in core discussions, and his opinion does carry a lot of weight, but there is no one person having a magic overriding vote or veto.
BTW, he still does use it, he has just decided that there is more to life than language development (he prefers building products). He has always been a good capitalist at heart, and language designers don't see big $$$.
It may be the case that 1.3 is (too) prevalent, but you only need to spend a little time with 1.4 to see that it is far and away faster than 1.3 in a "default" setup.
I'm unconvinced by the "Do it the same as the rest of the world" argument - doing it right is more important.
I'm unconvinced that the GNOME folks should go against the grain of companies that have spent millions on CHI studies. Perhaps that's why I prefer KDE...
I was wondering who the target market is for these nifty devices, so I actually asked the salesperson (fancy that - not complete conjecture!). The answer was completely enlightening and very obvious once stated.
Aside from a few gadget freaks, these are picked up all the time by media types and real estate people. For realtors the uses are obvious - the picks and little movies that they make of real estate and place on the web are of the perfect size and quality that these little Sony's take.
For the media types, it's either journalists that like the extra voice and video features of a PDA (remember, this is just a business expense for them), or movie location folks where just a little video snapshot capability in the pocket is gold.
I can see those two groups by themselves being large enough to warrant Sony's continuous delivery of these devices.
It's quite apparent that you are completely oblivious as to the true value of a scripting language. Your rant seems most specifically against scripting in general, but I'll address all the points:
1. Tcl is a scripting language, but it does compile on-the-fly for speed. It is true that it doesn't compile everything statically, but that is because Tcl is one of the most dynamic of languages. You can redefine any command you want at runtime, so what appears "wrong" may be correct by the time the code reaches it. Numerous tools exist to validate large bodies of Tcl code.
2. Weak typing can be a big boon to software development. Why is the need to call strtol() or some equivalent of value in large projects? It only makes large projects larger. Some statistics put bugs in software at 1/20LOC written. Of course, with scripting you need 1 LOC to a systems language's 5-10, but the bug rate doesn't increase. So which one is really better for large projects?
3. I think you are thinking about perl. You cannot refer to a var (like $var) without having set it first, although you can in perl (when not strict). You can of course set a misspelled varname, but that's true of all scripting languages. Tests are the only way to ensure that anything you create does what you expected.
The core Tk widget set may be some 15 widgets, but there exist 100s more for users to choose from, from simple comboboxes to complex graphing widgets. Furthermore, it uses native elements on Mac and Windows.
Wanting more info on this, I found:
Sharp Slashes LCD Power Consumption
which is from Feb 2001 and appears to be an announcement of the tech. I really wanted to know the relative power consumption (since my e740 pocketpc sucks power), and this articles says:
Compared to a conventional active-matrix display, which is refreshed between 60 and 70 times per second, the ULC (ultra-low-power consumption) technology only sends signals when the screen image is changed. This results in a
drop in power consumption to one-third conventional levels for moving images and one-thirtieth for still images
The basically have storage costs and controlling of mischievous behavior as the two primary reasons for a single character system, with storage costs mentioned first and at length. Give me a break. Here's a quarter, buy another 10MB of disk space (their fees are a lot higher than that...). Even with replication I don't buy that storage costs can be that much, unless some engineer really screwed up how to store a character efficiently.
The mischief factor I can understand, but why not state that first? It seems like they aren't perhaps being as honest and forthright as they could be.
I finally bought into the PDA market a few months ago with a Toshiba e740 (this is a PocketPC with built-in wireless).
I knew when I got it that it would be partially for the fun of it, but the practical side was useful as well. As my mind slips on remembering all the little details, the PDA is there reminding me. I sync it with my desktop daily (having a fulltime job, this isn't a "chore", as others have noted, I'm in front of the computer anyway). It's good for keeping all those phone numbers of people I rarely call, but really need the number when it comes up (most recent examples are the landlord and frequent flyer numbers).
But it's also the non-PDA features of this new generation of devices that makes it all the more useful. I can sit in a starbucks and surf the internet (yes, this has been useful once or twice). I walk to work, and use WMP constantly to listen to mp3s along the way. This is also useful at work when I want to listen to music without bothering coworkers (I have normal speakers on my desktop). Those with Palms (excepting Sony) just don't know what they are missing.
I have never had trouble sync-ing, or moving it to sync with other computers. It's a solid little device that I see becoming a much more common appliance in the future (as desktops already are now).
Is excessive plurality really useful?
on
Roll Your Own Browser
·
· Score: 5, Insightful
Is it really useful to encourage more people to create more "forks" based on the gecko engine? I'm not against people playing around or doing whatever they want, but shouldn't we encourage people to consider working together more on some of these alternatives?
It's a thin line to avoid the balloon and bloat of Mozilla while providing functionality that many desire. Many projects are doing this, but each needs more developers to seal the leaks and fix the cracks.
There are still no mouse drivers for CE that I know of - but I hear that if you hook in a mouse, it essentially works, you just don't see the cursor. The USB in the expansion pack works fine with any USB keyboard though. The expansion pack is a bit cumbersome for the e740 because you can't dock it at the same time - it's an either or. Of course, if you are docked you usually have the control software on your computer.
As for the pen interface - I thought this would be a bit limiting, but have changed my mind. It has the 3 input styles - virtual keyboard, "letter" recognizer and block recognizer (graffiti rip-off). I have found that I can be very efficient with the virtual keyboard even while walking. I've also found that the letter recognition is fairly good with my handwriting. My fingers are also good enough to use as a stylus when I'm too lazy to get the real one out for a quick data check.
But to compare to a tiBook... I would have given 2nd thoughts to this if I had had such a nice notebook (thin, light, but still super powerful, whereas I have something a couple years old). I don't use it at home or anywhere where a proper machine is otherwise easily at hand. It's great for on the go and in a pinch to carry data.
I see several posts about palm not being innovative, but there is more that should be said about the poor old palm...
I finally decided to dive into the world of PDAs after resisting for so long (forgetfulness being my main driver:/). After a lot of research, I splurged on the most recent generation of CE devices (Toshiba e740 FWIW) with built-in wireless, great expansion options, etc., all for about US$500. This machine is my mp3 player walking to work, an instant on recording device, plays movies (PocketDivX), and I can read slashdot from it, not to mention the regular PDA features.
I'm an OS agnostic - I just like what I can program, and this is infinitely more programmable, with ports of all your favorite unix tools already. In addition to that, I can get an expansion pack that allows me to plug in any USB keyboard and has a VGA port that will do 800x600 @ 256 colors - yes, I can put a powerpoint presentation on this and leave the laptop at home, and this thing is just a small attachment to the e740 - the functionality is all already built in. Way cool. (Note: the ipaq also has a Linux port, but not yet the newer e740 because it has new hardware)
What would I have gotten from Palm? Well, let's not even compare that because Palm gets blown away too easily. I was actually comparing against the Sony palm-based devices. They were a bit thinner and lighter, they had mp3 option in several players, and they even had the NR70V with built-in camera... but aside from cool factor it was such low quality as to be not useful. It also only has memory stick expansion, which is much more limiting than the SD *or* CF that I have now.
All that for about the same price.
So what happened? Well, once upon a time, the only way you could get the functionality of these new CE devices was in mini-laptops (the original size of CE devices), and they were much more limited. Palm had the small form factor and all the same stuff. However, Palm is fighting an uphill battle against technology advancement by not adopting new stuff faster. Why are they still waiting to ship an ARM-based device? CE already is shipping units with the latest 400mhz Xscale ARM-based CPUs (think ~ to Pentium with MMX). Palm *was* great, but today all that "simplicity" just looks dated.
Two big groups buy these devices. For geeks, who love technology, it's hard to resist all the joy commanding this device can bring. For PHBs, who love spending as much as possible to get all the features that they'll never use, the CE devices are also hard to pass up.
OK, so what's the downside? I've been using my device for a while, and the only disadvantage is battery life. Using wireless without being plugged in can drain you fast. Add to that that it regularly powers over 100MB mem (32MB rom, 64MB ram, + whatever I'm accessing from CF or SD), color screen (standard on CE devices),... This is one of those things that basically should be plugged in on a daily basis. That's not really acceptable for a PDA IMO, but since I go to work almost daily, my PDA is well fed. I will be buying my wife a PDA, and it will likely be the Sony instead. She likes the "sexier" look (cool brushed aluminum) and lighter feel (it has to fit in the purse with a million other things). I can't expect that this will be plugged in daily. It's a pity battery life hasn't kept up with technology, but that is honestly the only downside I can find for the CE device (OS preferences aside).
It seems that this product is behind the curve. With VoIP coming on strong and broadband leading that push, I don't see why people would people shell out $300 a pop for these. OK, it works with a regular phone and phone line, but what about the demographic that would actually buy this toy? 99% likely they have a computer, and webcams are $50 each. NetMeeting comes with MS (you can find similar free tools for *nix).
I actually do NetMeetings on a regular basis with my in-laws so they can chat with their granddaughter (my poor 3 year old is going to grow up with a seriously distorted age gap view of the world - she regular chats on NetMeeting, only ever sees cordless or more often cell phones, already knows how to work the DVD player in my rather complex setup,... but anyway). I have cable broadband and they have ADSL, and we are about 6000 miles apart, and it all works great.
OK, it can be washy sometimes, but the review wasn't all that hot on the quality of this video phone either. The sound is just fine if you avoid feedback problems. It's a perfect use of modern tools for distant relatives to keep close at all times.
Neither Larry nor Guido are ActiveState employees. They are on the Technical Advisory Board. However, Sarathy (former Perl pumpking), myself (Tcl core release manager), David Ascher (Python notable) and many other notables are developers at ActiveState that do spend time contributing back to the core of our respective languages. It is, was, and will still be, part of our business.
actually, being how redhat has managed to stay in business as the world of linux has constantly shifted, I'd say they know what they are doing
Or NOT. Like similar bandwagon goldminers, RedHat is surviving on cash made when they went public. Look at the cash flow. All those numbers in () are not a good thing.
It is a rough time for techs and RedHat certainly doesn't show clear indications of how they are going to shine (be profitable) soon. They've likely got the momentum to take them the long haul, but it may be in for rough waters ahead.
Apple itself is working on the Tk port and has an 8.4 beta on native Aqua. Perl/Tk (which has been at Tk 8.0) will finally be able to move to Tk 8.4 with Perl 5.8 due to the improved unicode support and some other things. Nick Ing-Simmons has alread done some work on the Perl5.8/Tk8.4 module.
It will be a nice update from 8.0. You will have more core widgets, full i18n support in Tk (including XIM/IME), many features enhancements to current widgets (auto-validating entries, text widget with built-in undo, compound buttons/labels,...), and better native Windows LaF (Aqua support is also new for 8.4), among other things
After all, a story was posted about a great program that doesn't run on the most popular OS around here. I wouldn't expect a run on the bank for that one
Yeah, I was upset too when I went there and found out they didn't have an Amiga version.:(
When the disc fractured, there was a sharp bang and the test chamber was filled with shimmering, glittering shrapnel, and our grins were big. We hurried in and mounted the next disc, to be able to shoot again as fast as possible.
It's too bad the site is/.'ed, because I wanted to see if this lab had any job openings...
You should really consider the upgrade to 8.4 because there is several years more development in it. New widgets, updated features, much faster, etc.
Things that are a high priority are what the community feels need addressing. OO is well handled in Tcl, which has namespaces in the core and popular extensions like [incr Tcl] and the more recent xotcl framework being commonly used.
It is being used in new development and new systems. At the last conference there was a paper on our (ActiveState's) work for Cisco in making some tweaks to the core to port it to their router environment. This is all recent development, and turned out quite well.
Remember that Tcl excels above all others at being a glue language. While it is a powerful scripting language that many rely on without C, it is still very easy to integrate into larger projects that require a scripting language. It has not lost its "Tool Command Language" roots, while becoming ever more powerful.
You might prefer Tk megawidget toolkits like Bwidgets that did more spit and polish on the megawidgets, but any UI builder should always spend some time to adjust basic defaults to get the look they want. Even that is easy in Tk, with simple things like option add *Scrollbar.borderWidth 1 to affect the borderwidth size of all scrollbars created.
BTW, he still does use it, he has just decided that there is more to life than language development (he prefers building products). He has always been a good capitalist at heart, and language designers don't see big $$$.
It may be the case that 1.3 is (too) prevalent, but you only need to spend a little time with 1.4 to see that it is far and away faster than 1.3 in a "default" setup.
I was wondering who the target market is for these nifty devices, so I actually asked the salesperson (fancy that - not complete conjecture!). The answer was completely enlightening and very obvious once stated.
Aside from a few gadget freaks, these are picked up all the time by media types and real estate people. For realtors the uses are obvious - the picks and little movies that they make of real estate and place on the web are of the perfect size and quality that these little Sony's take.
For the media types, it's either journalists that like the extra voice and video features of a PDA (remember, this is just a business expense for them), or movie location folks where just a little video snapshot capability in the pocket is gold.
I can see those two groups by themselves being large enough to warrant Sony's continuous delivery of these devices.
It's quite apparent that you are completely oblivious as to the true value of a scripting language. Your rant seems most specifically against scripting in general, but I'll address all the points:
1. Tcl is a scripting language, but it does compile on-the-fly for speed. It is true that it doesn't compile everything statically, but that is because Tcl is one of the most dynamic of languages. You can redefine any command you want at runtime, so what appears "wrong" may be correct by the time the code reaches it. Numerous tools exist to validate large bodies of Tcl code.
2. Weak typing can be a big boon to software development. Why is the need to call strtol() or some equivalent of value in large projects? It only makes large projects larger. Some statistics put bugs in software at 1/20LOC written. Of course, with scripting you need 1 LOC to a systems language's 5-10, but the bug rate doesn't increase. So which one is really better for large projects?
3. I think you are thinking about perl. You cannot refer to a var (like $var) without having set it first, although you can in perl (when not strict). You can of course set a misspelled varname, but that's true of all scripting languages. Tests are the only way to ensure that anything you create does what you expected.
The core Tk widget set may be some 15 widgets, but there exist 100s more for users to choose from, from simple comboboxes to complex graphing widgets. Furthermore, it uses native elements on Mac and Windows.
The basically have storage costs and controlling of mischievous behavior as the two primary reasons for a single character system, with storage costs mentioned first and at length. Give me a break. Here's a quarter, buy another 10MB of disk space (their fees are a lot higher than that ...). Even with replication I don't buy that storage costs can be that much, unless some engineer really screwed up how to store a character efficiently.
The mischief factor I can understand, but why not state that first? It seems like they aren't perhaps being as honest and forthright as they could be.
That's why this is a movie about art and emotion, because we all know that Hollywood is the font of all art and a reflection of the world's psyche ...
I finally bought into the PDA market a few months ago with a Toshiba e740 (this is a PocketPC with built-in wireless).
I knew when I got it that it would be partially for the fun of it, but the practical side was useful as well. As my mind slips on remembering all the little details, the PDA is there reminding me. I sync it with my desktop daily (having a fulltime job, this isn't a "chore", as others have noted, I'm in front of the computer anyway). It's good for keeping all those phone numbers of people I rarely call, but really need the number when it comes up (most recent examples are the landlord and frequent flyer numbers).
But it's also the non-PDA features of this new generation of devices that makes it all the more useful. I can sit in a starbucks and surf the internet (yes, this has been useful once or twice). I walk to work, and use WMP constantly to listen to mp3s along the way. This is also useful at work when I want to listen to music without bothering coworkers (I have normal speakers on my desktop). Those with Palms (excepting Sony) just don't know what they are missing.
I have never had trouble sync-ing, or moving it to sync with other computers. It's a solid little device that I see becoming a much more common appliance in the future (as desktops already are now).
Is it really useful to encourage more people to create more "forks" based on the gecko engine? I'm not against people playing around or doing whatever they want, but shouldn't we encourage people to consider working together more on some of these alternatives?
It's a thin line to avoid the balloon and bloat of Mozilla while providing functionality that many desire. Many projects are doing this, but each needs more developers to seal the leaks and fix the cracks.
There are still no mouse drivers for CE that I know of - but I hear that if you hook in a mouse, it essentially works, you just don't see the cursor. The USB in the expansion pack works fine with any USB keyboard though. The expansion pack is a bit cumbersome for the e740 because you can't dock it at the same time - it's an either or. Of course, if you are docked you usually have the control software on your computer.
... I would have given 2nd thoughts to this if I had had such a nice notebook (thin, light, but still super powerful, whereas I have something a couple years old). I don't use it at home or anywhere where a proper machine is otherwise easily at hand. It's great for on the go and in a pinch to carry data.
As for the pen interface - I thought this would be a bit limiting, but have changed my mind. It has the 3 input styles - virtual keyboard, "letter" recognizer and block recognizer (graffiti rip-off). I have found that I can be very efficient with the virtual keyboard even while walking. I've also found that the letter recognition is fairly good with my handwriting. My fingers are also good enough to use as a stylus when I'm too lazy to get the real one out for a quick data check.
But to compare to a tiBook
I see several posts about palm not being innovative, but there is more that should be said about the poor old palm ...
:/). After a lot of research, I splurged on the most recent generation of CE devices (Toshiba e740 FWIW) with built-in wireless, great expansion options, etc., all for about US$500. This machine is my mp3 player walking to work, an instant on recording device, plays movies (PocketDivX), and I can read slashdot from it, not to mention the regular PDA features.
... but aside from cool factor it was such low quality as to be not useful. It also only has memory stick expansion, which is much more limiting than the SD *or* CF that I have now.
... This is one of those things that basically should be plugged in on a daily basis. That's not really acceptable for a PDA IMO, but since I go to work almost daily, my PDA is well fed. I will be buying my wife a PDA, and it will likely be the Sony instead. She likes the "sexier" look (cool brushed aluminum) and lighter feel (it has to fit in the purse with a million other things). I can't expect that this will be plugged in daily. It's a pity battery life hasn't kept up with technology, but that is honestly the only downside I can find for the CE device (OS preferences aside).
I finally decided to dive into the world of PDAs after resisting for so long (forgetfulness being my main driver
I'm an OS agnostic - I just like what I can program, and this is infinitely more programmable, with ports of all your favorite unix tools already. In addition to that, I can get an expansion pack that allows me to plug in any USB keyboard and has a VGA port that will do 800x600 @ 256 colors - yes, I can put a powerpoint presentation on this and leave the laptop at home, and this thing is just a small attachment to the e740 - the functionality is all already built in. Way cool. (Note: the ipaq also has a Linux port, but not yet the newer e740 because it has new hardware)
What would I have gotten from Palm? Well, let's not even compare that because Palm gets blown away too easily. I was actually comparing against the Sony palm-based devices. They were a bit thinner and lighter, they had mp3 option in several players, and they even had the NR70V with built-in camera
All that for about the same price.
So what happened? Well, once upon a time, the only way you could get the functionality of these new CE devices was in mini-laptops (the original size of CE devices), and they were much more limited. Palm had the small form factor and all the same stuff. However, Palm is fighting an uphill battle against technology advancement by not adopting new stuff faster. Why are they still waiting to ship an ARM-based device? CE already is shipping units with the latest 400mhz Xscale ARM-based CPUs (think ~ to Pentium with MMX). Palm *was* great, but today all that "simplicity" just looks dated.
Two big groups buy these devices. For geeks, who love technology, it's hard to resist all the joy commanding this device can bring. For PHBs, who love spending as much as possible to get all the features that they'll never use, the CE devices are also hard to pass up.
OK, so what's the downside? I've been using my device for a while, and the only disadvantage is battery life. Using wireless without being plugged in can drain you fast. Add to that that it regularly powers over 100MB mem (32MB rom, 64MB ram, + whatever I'm accessing from CF or SD), color screen (standard on CE devices),
It seems that this product is behind the curve. With VoIP coming on strong and broadband leading that push, I don't see why people would people shell out $300 a pop for these. OK, it works with a regular phone and phone line, but what about the demographic that would actually buy this toy? 99% likely they have a computer, and webcams are $50 each. NetMeeting comes with MS (you can find similar free tools for *nix).
... but anyway). I have cable broadband and they have ADSL, and we are about 6000 miles apart, and it all works great.
I actually do NetMeetings on a regular basis with my in-laws so they can chat with their granddaughter (my poor 3 year old is going to grow up with a seriously distorted age gap view of the world - she regular chats on NetMeeting, only ever sees cordless or more often cell phones, already knows how to work the DVD player in my rather complex setup,
OK, it can be washy sometimes, but the review wasn't all that hot on the quality of this video phone either. The sound is just fine if you avoid feedback problems. It's a perfect use of modern tools for distant relatives to keep close at all times.
Neither Larry nor Guido are ActiveState employees. They are on the Technical Advisory Board. However, Sarathy (former Perl pumpking), myself (Tcl core release manager), David Ascher (Python notable) and many other notables are developers at ActiveState that do spend time contributing back to the core of our respective languages. It is, was, and will still be, part of our business.
Apple itself is working on the Tk port and has an 8.4 beta on native Aqua. Perl/Tk (which has been at Tk 8.0) will finally be able to move to Tk 8.4 with Perl 5.8 due to the improved unicode support and some other things. Nick Ing-Simmons has alread done some work on the Perl5.8/Tk8.4 module.
...), and better native Windows LaF (Aqua support is also new for 8.4), among other things
It will be a nice update from 8.0. You will have more core widgets, full i18n support in Tk (including XIM/IME), many features enhancements to current widgets (auto-validating entries, text widget with built-in undo, compound buttons/labels,
Yeah, I was upset too when I went there and found out they didn't have an Amiga version. :(
It's too bad the site is /.'ed, because I wanted to see if this lab had any job openings ...