Hacker News new | past | comments | ask | show | jobs | submit login

No, I don't think it would be. I spent several years writing a lot of Tcl, and there are too many show-stopper problems in the language and community for it to be involved in any kind of game-changer.

The language looks good on paper. It's also used widely enough to hold onto "legacy but useful" status for a long, long, long time (think cobol or fortran--there are still people writing new code in these languages, but only in very narrow niches, very little general-interest code).

There's a ton of weird gotchas, though, once you start writing in it that will drive you mad. Like the bracing rules that make sense until they don't, and then you have to make a really careful re-read of the so-simple 12 rules:

    proc a {} {
        puts "}"
    }
"extra characters after close-brace" ???

The regexes are also weird. Not a week goes by I don't have to wrestle with one of my legacy tcl scripts (getting close to replacing them all, after enough of this weirdness).

And don't expect Tk apps to look good anywhere at this point.

BUT....you get used to that stuff eventually. The real problem, though, is that there's just no one left to actually address any of the problems in the language. The core team is there, but they're mostly just keeping things chugging along. Very little in the way of new ideas going around.

It has a very small and shrinking community, though, which leads to a vicious circle of, almost no one uses it for cool new things, almost no one blogs or writes about it in a promotional way, so there's almost no pull for new people to start writing in Tcl. There's no "killer app" and no one doing the leg work about it to introduce anyone new. The community keeps shrinking by attrition.

The online faces of Tcl, the main site and the wiki, have also suffered from probably the worst bikeshedding and, for lack of a better turn of phrase, old fogeyism I've ever seen in any kind of project. Landing on a wiki page and finding 15 year old discussions about long-gone aspects of the language, the place is like a ghost town. Also not going to bring in a lot of new people that way.

Aaaaand...why does any of this matter? Because the standard library is small and missing a lot of useful modern stuff for the generalist. It's often not well-documented, and you won't find any example code on a blog anywhere, so you're on your own. You're going to implement a lot of stuff that, if you'd started your project anywhere else, someone else has already done and posted to Github.

I think it's admirable how the handful of remaining core maintainers have brought the language kicking and screaming into the 2010s. They're squeezing a little more life out of the ecosystem and I commend them.




I tried my hand, dear Frondo. I tried.

http://tanzer.io/


Interesting, I was considering Tanzer for a website of an arts organization I've been assisting, though they're slow getting their act together. Now I'm glad to see Tanzer is still an active project. I'll look into it in more detail pretty soon, and might have some questions to ask.


Author here.

I'm honestly pleasantly surprised you assumed I was in fact a multitudinous entity. In some aspects I am, but in actual practice I am but one corporeal form containing what I believe to be one brain. Having said that, I am picking up more active tänzer maintenance as I work on a different project of mine; eventually I will be porting tänzer to C, while maintaining a Tcl wrapper with the current interface, though I would avail tänzer to other languages.

I'm curious: Is there anything in particular you'd like to see happen with tänzer, or do you have any pain points need addressing? I'm monitoring my GitHub account more keenly these days; though I always consider http://tanzer.io/git/tanzer.git to be the authoritative repository, http://github.com/xantronix/tanzer is the best place to raise issues and offer changes.

Thanks for your interest!

EDIT: It is possible I have misinterpreted your statement somewhat, but the helpful meat of what I have to offer still remains. Ask away!


> Not a week goes by I don't have to wrestle with one of my legacy tcl scripts

That's an odd thing to say ... I've seen Tcl written last century that runs unmodified on 8.6. Why are you wrestling with legacy scripts?


:) Gotta love quoting hell ( your proc a... example }

As to the rest, absolutum obsoletum - "that which works is already obsolete." I flat out don't see the bikeshedding; perhaps I'm just blind to it.

Tcl is also old enough to still have an active Usenet group.


"Gotta love quoting hell .. "

No, you really don't.

" .. absolutum obsoletum .. "

If you're still writing code to solve the kinds of problems Tcl used to be good at solving, then yeah, sure, Tcl will never go out of style. For the rest of us, there are just better languages and ecosystems for almost any kind of problem (excepting the EDA world, etc., and as far as I can tell, those people aren't generally real fond of Tcl anyway).

"Tcl is also old enough to still have an active Usenet group."

This is actually a good way to look at Tcl. Want to see what computing was like 20 years ago? Well, here you go.


Computing is perhaps more like it was 20 years ago than you realize. Since it's an accretion of systems...


You know, if you spend a lot of time in the Tcl world, but don't really do much outside it, I'd encourage you to dive deep into another language for a couple of projects. I've noticed that the Tcl community is pretty insular, and I think it's to their detriment.


There is certainly an embarrassment of good stuff out there.


> And don't expect Tk apps to look good anywhere at this point.

A JS version of Tk could be a game changer (using CSS).


I don't think so. Tk was simple when a lot of GUI programming was complex. That's what it brought to the table.

HTML and CSS is already simple. QML is simple and beautiful. Tk-style layout design wouldn't bring anything to the table in 2016 that other people aren't already doing, and doing pretty well.


Tk doesn't have to look bad. Check this out:

http://www.mcvoy.com/lm/bitmover/lm/gui-config/gui.html

I had to stare at that to be sure which was firefox and which was tk. I agree the defaults sort of suck but you can tweak them and make it look pretty decent.


If Tk was all I had, I'd probably sink the time (and it would be a lot of time) into learning how to fiddle with xrdb (for tk) and ttk's styling engine.

The lack of documentation, opaqueness, and complexity, all that stuff adds so much challenge, just to get to "pretty decent".

There are better options in 2016, both from a visual perspective (looks good out of the box) and a programmer-tweakable perspective (can I make changes?).

I said this elsewhere, but Tk brought something to the table a long time ago, when GUI programming was complicated. GUI programming just isn't hard, the way it used to be.

Hey, if you're used to it, great, I certainly don't want to take the option away from anyone, but it's misleading to offer it as competitive in any way with the other contemporary toolkits.


Which toolkits? In particular, cross platform, has similar high level functionality, looks better.






Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: