94 points by Levitating 3 days ago | 13 comments
marttt 2 days ago
Tangential, but at least for the minimalism-inclined, Rebol's inventor Carl Sassenrath might be an interesting guy: https://sassenrath.com/computing.html

Wikipedia article: https://en.wikipedia.org/wiki/Carl_Sassenrath

snvzz 2 days ago
The most notable IMO is that he was responsible for AmigaOS's kernel.
hn-ifs 2 days ago
I remember looking at red ages ago but never got round to using it. I like to learn odd non-mainstream languages. Currently learning Nushell which is an amazing alternative shell. And I like the look of roc-lang too.

I'm desperate for a truly cross platform programming language with gui abilities on those platforms. I'm slowly learning dart/flutter for this but truly wish for something simpler. I get the reasoning behind flutters declarative style but it's certainly not simple, especially when you get to state management.

0x0203 2 days ago
Tcl/tk is still alive and doing well. It's cross platform, very quick to learn, and easily embeddable into other languages/projects.
lproven 1 day ago
Version 9 came out last year. I wrote about it.

https://www.theregister.com/2024/10/02/tcltk_version_9/

27 years after v8.0 which may be some kind of record.

hollerith 2 days ago
Can you name an important software written in Tcl or Tk?

Important softwares written in Ruby for example include Rails and Homebrew.

coliveira 2 days ago
Tcl is the embedded language of git. Standard git gui is written in Tcl/Tk. Tcl is also the script language for sqlite.
hollerith 2 days ago
.gitconfig is in an INI-like format though, which is not anything like Tcl.

Also, does anyone use the "standard" git GUI?

>Tcl is also the script language for sqlite.

OK, thanks.

aconst 1 day ago
I never liked other graphical git clients so I switch between CLI and gitk + git gui according to the task at hand.
srott 2 days ago
Only way I know to remove a file from a commit is by using git commit.

I’m also most comfortable with gitk when reviewing branches

srott 2 days ago
git commit -> git gui
hollerith 1 day ago
Thanks for that correction. I was quite confused.
doublerabbit 2 days ago
One of the big investment banks use TCL/TK, for real-time e-trading. Source my last gig.

The "important software" are normally kept behind NDAs, so you never hear about their uses. TCL was also used on the Mars Rover.

Take a look for yourself: https://wiki.tcl-lang.org/page/Who+Uses+Tcl

SomeHacker44 2 days ago
The FPGA software from Xilinx and Altera are scripted with Tcl/Tk.
cmrdporcupine 2 days ago
This. In fact it seems like plenty of hardware-eng tools use Tcl, and looking at all alternatives it's not a bad choice.

With Tcl you get something like a Lisp with a flexible consistent syntax, but less brainy and more pragmatic, and designed to drive other tools.

justin66 2 days ago
My impression many years ago was that it’s really not that bad. I got up and running writing simple programs immediately, and wouldn’t have tried to go outside its capabilities as a simple scripting language.
hollerith 2 days ago
Thanks for the reply.
nilamo 2 days ago
Tk has been embedded in python as the GUI toolkit since at least 2.x days. It's used for IDLE, the IDE shipped with Python, and is also used for the turtle module's graphics.
fuzztester 1 day ago
Tk also works with Ruby.

https://tkdocs.com/

avhon1 2 days ago
Not written in, but AutoCAD supports scripting in TCL (and in its own AutoLisp, which is much less popular among users than TCL).
Qem 2 days ago
progre 2 days ago
First version of Redis was written in Tcl.
AdieuToLogic 2 days ago
> Can you name an important software written in Tcl or Tk?

MacPorts[0] uses Tcl significantly.

EDIT:

The expect[1] command also uses Tcl and has a variant which uses Tk.

0 - https://github.com/macports/macports-ports

1 - https://man.freebsd.org/cgi/man.cgi?query=expect&apropos=0&s...

dmux 2 days ago
A large part of flightaware.com’s systems were written in TCL.
fuzztester 1 day ago
I've read many times in the past that a lot of EDA-related software is written in Tcl and Tk.

Electronic Design Automation.

https://en.m.wikipedia.org/wiki/Electronic_design_automation

See:

https://www.tcl-lang.org/about/uses.html

The section about Embedded Development.

CAD is mentioned there too.

https://en.m.wikipedia.org/wiki/Computer-aided_design

fuzztester 1 day ago
fuzztester 1 day ago
Pasting that section's content here:

Because Tcl is a very compact language, and is easily integrated with special hardware, it is a popular choice for embedded development. You'll find Tcl hidden away on many devices, including many networking products from Cisco and others, and set-top boxes including Tivo. Embedding Tcl within other software projects is of course also hugely popular, and has become the dominant control language in some industries, such as in electronic design automation (EDA) and computer-aided design (CAD) applications.

cmrdporcupine 2 days ago
I wish the nu-shell stuff was set up so that its language could be used as a Rust crate independentl of the shell? Like in your own runtime? Because it's not a bad general scripting language and kind of makes sense to me to embed in things like editors etc. Places where people would use Tcl (e.g. hw eng / fpga tools etc) or a Lisp (emacs) or an embedded Python/Lua now.

But when I looked at their crate structure it did not seem like this was possible. I don't love nushell the language but it actually fits a niche that not much else fits.

gcanyon 2 days ago
"simple cross-platform GUI+programming language" livecode.com fits that description. It's been my daily driver for years, but full disclosure I'm now looking for something similar to your requirements, but python-based.
RodgerTheGreat 2 days ago
Depending on how elaborate your GUI needs are, CardStock might be suitable: https://cardstock.run
WillAdams 2 days ago
Any progress from the openXtalk people trying to keep the opensource of Livecode (from before the rugpull) going?

I bought a book on using QT6 from Python --- hoping to finish an initial read and then give it a try (unless something better comes along).

bobajeff 2 days ago
Many people here hate on Electron but cross platform gui app development really sucks without it.
nesarkvechnep 2 days ago
How about C?
dlahoda 2 days ago
yeah, C is great xplat.

so I wait Zig to target https://github.com/jart/cosmopolitan at some point too

avhon1 2 days ago
With what GUI library? The unmaintained GTK1?
codr7 2 days ago
Speaking of non-mainstream languages :)
airstrike 2 days ago
Consider iced, which brings The Elm Architecture to Rust

https://iced.rs

7thaccount 2 days ago
This comes up from time to time. A really cool idea, but it didn't go anywhere so far. It seems like a lot of work has occurred according to github, but to the potential users, it doesn't seem like much has ultimately changed since when I was super excited for it in 2014. The team did some detour to look into block chain and an ICO like 5+ years ago that seemed to have derailed things. Last I checked, Windows flagged the installer as suspicious. It would be really cool to get this off the ground though.
ModernMech 2 days ago
Looking at the github tracker it seems like development has really stalled. That's the way these low bus factor projects go sometimes, especially when the main dev loses interest and the contributors are left to pick up the slack. But since there's so much history there, hope remains that it will see renewed interest one day. Sometimes life just gets in the way.
7thaccount 2 days ago
Thanks for that. I haven't checked in awhile now.
vanderZwan 1 day ago
Nothing has changed because I still can't compile it on 64 bit Linux without a lot of hassle. I think that added friction to get it to work and try it out is enough to keep the majority of potential contributors away from it.
kseistrup 3 days ago
> For Linux 64-bit distros, you need to install 32-bit supporting libraries.

Will it ever be 64-bit?

kseistrup 3 days ago
> The 0.7 should be the last big milestone for the 32-bit Red version and current toolchain and we will be working on that first.

> v1.0b : (beta) completed self-hosted Red with 64-bit support.

See you at v1.0, then.

baranul 2 days ago
That is a major showstopper for it getting attention. Don't know how making sure it runs on 64-bit OSes was not/is not a top priority. Appears that people have been complaining about that for years.
araes 2 days ago
Has the same annoying issues as REBOL. Special characters are allowed in words.

  a+b
is a word. Unlike

  a + b
which is a sequence of three words separated by spaces.

Dealbreaker. a+b*c + a+b * c / a+b/d + a+b / d % a + b So easy to miss or add a space while typing. Reading afterward, its difficult to tell if there's even spaces in some areas.

DemocracyFTW2 2 days ago
I actually think languages should rather enforce spaces around (most) operators for a number of reasons. One is clarity, another one is that it should make the grammar simpler. Whether `alice+bob` is a good name for a variable is certainly up for debate but using hyphens for compound names (as in CSS) is in principle even better for readability than using underscores (and def better than cAmElCaSe). I find this a similar issue to the (to me, mal-) practice of allowing `.86` for what should properly be written `0.86`; this, too, introduces complexity with very little gain, if any, in usability.
voxl 2 days ago
Dealbreaker for you. I'd hate for you to see Agda..
bronlund 2 days ago
I remember being really impressed by REBOL, I thought it was a really cool language and I did make some small tools with it. To bad greed ruined it for everybody.
fuzztester 2 days ago
how did greed ruin it?

I had tried it out a bit earlier, but don't remember reading anything about it getting ruined.

bronlund 2 days ago
As I remember it; it was free for personal use, but if you were to use it commercially, you had to pay a license cost. There also was a server version which could set you back thousands of dollars. If you wanted to export the REBOL API which you could create using the REBOL SDK to users, you needed a separate distribution license. It was a mess. When REBOL finally went open source in 2012, it was too late, everyone had moved on.
praptak 2 days ago
I sure hope that merely not being free, for all uses, forever, would be enough to tank it. Not to hate on Rebol specifically nor people wanting to make money off their work in general but a non-free language is just unacceptable.
bronlund 2 days ago
I think it was more about it not being worth the money. REBOL was clever and all, but when you do compete with free stuff, you can't just set whatever price you like - it has to make sense for the customer.
praptak 2 days ago
GP probably means being initially released under a proprietary license.
justin66 2 days ago
The problem at this stage is, the older versions of the software which are complete and which everyone historically used are closed source and now out of date because they target OSes from eleven years ago, and there’s an open source version which nobody contributes to because it’s incomplete and different than the version everyone used.

As with - for example - the classic Netscape browser, it would have made more sense to just open source the one people used, rather than some new and incomplete thing. The pertinent difference being there weren’t thousands of open source developers waiting to take up the slack and help finish an incomplete version of REBOL.

(Someone more familiar is welcome to correct me on the details)

fuzztester 2 days ago
thanks, guys.
exikyut 3 days ago
Does the GUI work on Linux yet?
Levitating 2 days ago
I tried some of the examples using red-view and it worked perfectly.

It uses gtk3 behind the scenes.

austin-cheney 2 days ago
Red describes itself as functional imperative. I used to use Red as an example of what programming could be when people try to ham fist declarative extremism on me. Seeing the words imperative and functional used together with examples would silence most of the nonsense.
7thaccount 2 days ago
It is difficult to pin down how to describe it. It is homoiconic as well like lisp (at least the scripting part of Red), but seems to be used in some kind of functional imperative style.
WesBrownSQL 2 days ago
SNOBOL FTW!
tomdickandharry 2 days ago
[dead]
drivingmenuts 2 days ago
I’m guessing not to be confused with REDEngine, the main driver of Cyberpunk 2077 and the Witcher series of games? REDEngine has its own language is my understanding.
shakna 2 days ago
Red the language came along in 2011 - the same year as Witcher II used REDEngine for the first time. So I guess I can see where some confusion can arise.

Red is a general programming language, instead of a game engine's personal DSL.

Nekorosu 3 days ago
Impossible to run on macOS. The provided "binary" is a complete mess. It's actually a zip archive with an app inside of it with a binary that doesn't match a modern Appple Silicon architecture.

I don't understand why the download link is even there. In practice, macOS is not supported. I hope it works better on Linux. Can't care less about Windows.

anta40 2 days ago
Last time I tried (perhaps 4 years ago?), it works on 64-bit Linux. But you still need to install 32-bit compatibility libs. On macOS, well sadly it's still 32-bit. Not sure how many folks are still using Mojave...
coliveira 2 days ago
So this probably won't run on Apple silicon. They don't have support for 32bit apps.
anta40 2 days ago
It also doesn't run on Big Sur, Monterey.... back when I was still on X64
Nekorosu 2 days ago
For downvoters. I made an effort to file a very detailed bug report regarding this issue. I'd love to make it work but it seems like original REBOL binary is also 32-bit only. I still don't understand why the provided binary is a rabbit hole of problems. I do want to try it on my system and open to making an extra effort to make it work. :)
avhon1 2 days ago
IIRC, Red is not yet fully self-hosted, so it makes sense that the download would embed a copy of the original 32-bit x86 Rebol to bootstrap / compile.
zkmon 3 days ago
Wow - what's driving the quest for new programming languages? Is there a gap that is still not addressed by the existing languages?

At the core, there is only one control statement (GOTO) and a few operations that work on values in memory - IF, READ, WRITE, ADD etc. Anything else is a recipe that uses these ingredients.

mpweiher 2 days ago
It's all just Turing machines, or Lambda calculus, or NAND gates

   https://en.wikipedia.org/wiki/NAND_logic
Even FORTRAN was unnecessary.

Or maybe...maybe...we're having some problems that our current programming languages aren't addressing:

https://www.hpi.uni-potsdam.de/hirschfeld/publications/media...

And so we should:

https://dl.acm.org/doi/10.1145/3689492.3690052

justin66 2 days ago
It’s all ball bearings nowadays.
ModernMech 2 days ago
That's like asking "What's with all these people writing books? Is there a gap that is still not addressed by existing books?" Programming languages are fun to write, it's not more complicated than that.
cmrdporcupine 3 days ago
REBOL is 28 years old.
brabel 2 days ago
And Red has been around since 2013.
wiz21c 2 days ago
languages are not about what you can do but what you can safely (that is, without introducing bugs) abstract while remaining productive (you can code easily) and conducive of human organizations (you can organize team communication around the code).
novosel 3 days ago
True, true. But maybe somewhat reductive? What about complexity? The one arising from the growing code, and the other in the brain using the language? I feel new languages try to strategize in the domain of complexity management.
anonzzzies 2 days ago
Are they? Examples (this (red/rebol) are OLD)? I see more crap. We already have ways to manage complexity; we have VERY advanced type systems that are finally feasible (my joy) but no one can work with them, and llms not yet. You can manage resources, logic, proofs etc all with typesystems. Rust is a step (people like it as they can make changes to large codebases without leakage somewhere you 'forgot' is there and others like it because there are less footguns), but we have the future already in a bunch of other languages it's just not used. So what do you mean with " I feel new languages try to strategize in the domain of complexity management."?

(Disclaimer: I think the GP comment is of a level that I don't think should even be considered replying to, so I didn't)

petralithic 2 days ago
Languages are for humans, not for computers, who read binary anyway.