Tangential, but at least for the minimalism-inclined, Rebol's inventor Carl Sassenrath might be an interesting guy: https://sassenrath.com/computing.html
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.
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.
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.
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.
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.
"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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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.
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.
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.
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.
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.
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...
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. :)
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.
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.
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.
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).
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.
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)
Wikipedia article: https://en.wikipedia.org/wiki/Carl_Sassenrath
reply