4 ms·
Why I Like Tcl
- mdaniel 2y ago> No LSP/SLIME equivalent, which is as painful as it sounds. OT1H, this labels itself as Verilog, but OTOH https://github.com/Scaleda/Scaleda/blob/v0.2.2/src/main/scala/top/scaleda/tcl/TclLanguage.scala https://github.com/Scaleda/Scaleda/blob/v0.2.2/src/main/scal... (it has a non-standard license, so caveat lawyerator) I couldn't readily find the Antlr file that it is adapting into IJ's AST in order to know how much it tries to cover
- BoingBoomTschak 2y agoHuh, good to know! Doesn't seem easy to make standalone, though.
- mdaniel 2y agoSorry, standalone for what? IntelliJ is one of the most advanced IDEs on planet earth. If you mean just having LSP itself, not in the context of an editor, then for sure an IJ plugin is not going to get that done
- BoingBoomTschak 2y agoFor Emacs?
- deleted 2y ago[deleted]
- jmclnx 2y agoI do not know the language, but someday. I have one application that needs tcl and tk, I use it for my checkbook, it is a nice and simple application that data is saved in text files. cbb has been around since 1999 and Professor Marco A. P. Cabral fixed many issues a few years ago. I think me and the Professor are the last ones left using cbb. https://sites.google.com/matematica.ufrj.br/mapcabral/softwares/cbb https://sites.google.com/matematica.ufrj.br/mapcabral/softwa... It works with version 8.6, had minor issues with 8.5, but prior versions it worked fine. Since I heard 9.0 was released, I hope that odd issue does not come back or other issues do not occur :) But, one good thing, you can have multiple versions of it on your system. Plus it works great on Linux and the BSDs.
- TimK65 2y agoDAMN! I had completely forgotten about CBB. Now I want to take a look at it again. Thank you!
- samatman 2y agoI first ran into Tcl on Sparc stations in the mid 90s, and came away with the impression that it was just a bad language. I was implicitly comparing it to Perl, this wasn't a deep dive or anything, just a vague and negative impression which stuck with me. My interest in the language got a second wind when I read yosefk's blog entry about it https://yosefk.com/blog/i-cant-believe-im-praising-tcl.html https://yosefk.com/blog/i-cant-believe-im-praising-tcl.html I think there's room for a new language which speaks to Tcl's strength as a command language. This is an under-recognized niche IMHO, mostly covered by shell languages, which have a necessary focus on running other programs. That means they need to communicate with those programs primarily through the command line interface for invoking a program, which is a very thin bottleneck for interactive feedback. Tcl as a scripting and extension language, which focuses on issuing commands, is to this day basically unique (this theme is extensively elaborated in the linked post, it's a good read). I find myself wondering what another language, freed of the constraint to fit the (from a modern perspective) extremely resource-constrained systems prevalent when Tcl was big, might look like. If I ever figure that out, I might try and write it.
- mdaniel 2y ago> That means they need to communicate with those programs primarily through the command line interface for invoking a program, which is a very thin bottleneck for interactive feedback. On the off chance you, or other readers, were not aware, Tcl drives the most famous example of that use case that I know of: https://core.tcl-lang.org/expect/index https://core.tcl-lang.org/expect/index While trying to dig up the repo for it, I came across https://github.com/Netflix/go-expect#osexec-example https://github.com/Netflix/go-expect#osexec-example which really highlights your point about "wowzers, what a lot of boilerplate to communicate with a subprocess". I had to deal with a few projects where folks thought that using Python as a "better bash" was a good thing to do, and it, too, was horrific, made worse by the fact that poor subprocess.Popen doesn't have a raise_for_status() equivalent to have it STOP RUNNING if something goes wrong, cheerfully leading to a cascade of errors that is far less likely to happen in bash or likely in Expect, either
- BoingBoomTschak 2y ago> I first ran into Tcl on Sparc stations in the mid 90s, and came away with the impression that it was just a bad language. I was implicitly comparing it to Perl To be fair, I think that Tcl really improved with 8.5 (apply, dict and no more expr). No idea what I would have thought of it if my first encounter had been way before that point. > I think there's room for a new language which speaks to Tcl's strength as a command language. As mentioned in the "Cons" section, have you looked at Rebol's revival https://github.com/red/red https://github.com/red/red?
- oldlaptop 2y agoI don't (personally) like to think of the type system as "everything is an auto-mutating and cached tagged union + string" - from the perspective of someone writing in Tcl, everything absolutely is a string. It's cool that the implementation happens to store some strings as integers, or arrays, or hash tables, or whatever else as a performance hack, but unless you're actually working with Tcl_Objs at the C level, you generally don't need to care about that.
- zvr 2y agoYou are correct that, on Tcl level, everything _is_ (behaves like) a string. But there have been too many discussions about how horrible this is for performance, that it is always worth mentioning the fact that internally this simplistic view is not true.
- dave333 2y agoChanging the background color of the div id=content from chocolate(?) to white makes this 1000% more readable. PS now that I've read it - great summary.
- BoingBoomTschak 2y agoI've bumped the font-size and line-height a bit, should be better. But I must admit that with redshift enabled, it isn't the most pleasant reading experience; otherwise, it's more grey than brown.
- dave333 2y agoI wasn't familiar with redshift and it seems like a really bad idea for usability. The example menu shown on the wikipedia page https://en.wikipedia.org/wiki/Redshift_(software) https://en.wikipedia.org/wiki/Redshift_(software) with a red orange background is almost illegible.
- BoingBoomTschak 2y agoNever even heard of f.lux? It was pretty popular with Windows users. About Wiki, 1400K is an exaggeration, the default curve minimum (at night) is 4500K.
- dave333 2y agoProbably a case of young vs old eyes. If I wanted a toned down screen I would probably go with a light text on dark background that is still high enough contrast. I even have a large script backlit keyboard so I can see what I'm typing.
- fithisux 2y agoI think people should buy Ashok P. Nadkarni's "The TCL Programming Language" and they will understand why Tcl is still relevant. I hope he releases an update for 9.0.
- bsdooby 2y agoYes, very complete, and thus highly valuable.
- BoingBoomTschak 2y agoThe recent Tcl 9.0 release thread had some good discussion going on and my summary post about personal reasons for using it seemed to interest some people, so I fleshed it out a bit more on my website and decided to shamelessly link it on HN.
- mdaniel 2y agoThe recent Tcl 9.0 release thread https://news.ycombinator.com/item?id=41661906 https://news.ycombinator.com/item?id=41661906