Which new computer language for fun?

Mat8iou

Ars Praefectus
5,084
Subscriptor
Fwiw, I'd definitely call it a programming language, albeit a visual programming language. The amount of complexity you can get out of those nodes is impressive
I'd agree - although arguably it is a front end for another language - IIRC it transpiles to Python, but of course the interface is nothing remotely like Python. In many ways it makes sense to do this - why go to the effort of coding a whole new language when you can already use another one as the backend.
 
  • Like
Reactions: Aleamapper

ajk48n

Ars Centurion
334
Subscriptor
Is Houdini still about? I thought I heard at some point it was discontinued (but I could be confusing it with Softimage).
Very much still about, thriving really. Softimage is the one that was discontinued.

I'd agree - although arguably it is a front end for another language - IIRC it transpiles to Python, but of course the interface is nothing remotely like Python
Yeah that's an interesting point. Houdini nodes aren't wrappers for python, but Blender's most likely are. I never quite thought about it like that
 
  • Like
Reactions: Mat8iou

Aleamapper

Ars Scholae Palatinae
1,390
Subscriptor
Just a reminder, Advent of Code should be starting up soon.
I've never gotten very far with AoC, I lose interest really quickly. The puzzles seem more like work than fun, imho.

One programming challenge that I have really enjoyed is Cryptopals, which has you implementing and breaking many different forms of crypto. It gets intimidating quite quickly, but it's all doable with bit of reading, and writing your own AES implementation is really rewarding, let alone breaking it.
 
  • Like
Reactions: Mat8iou

Aleamapper

Ars Scholae Palatinae
1,390
Subscriptor
After having completed its track on Exercism.org, I think Zig is a good candidate for this topic.
Zig is great.

I'm currently (and slowly) working my way through tutorials for the Lean language and theorem prover, which is really interesting. It won't get used for anything, but sometimes it's good to learn a language that's way outside your wheelhouse just to expand your horizons and maybe bring some ideas across to what you know.
 

fitten

Ars Legatus Legionis
53,325
Subscriptor++
I've never gotten very far with AoC, I lose interest really quickly. The puzzles seem more like work than fun, imho.

I think they're pretty fun. I tend to get about 1/2 to 2/3 of them done from a combination of knowing what they want and knowing what to look up and then doing it. I've gotten all 50 points on some of the years from doing some research to find out what I need to look up to learn to be able to solve it. But usually, after about 2/3 they get pretty far into "if you don't know the algorithm, you won't get it done" because for the Part 2s for each day, the brute force approach would take literally weeks to years to solve. The Part 1 of each is usually not bad, though. AoC does tend to lean hard on actual Computer Science, though... knowing the right approach/technique/algorithm means your program runs in a second or less. If your program is running longer than 20 seconds, you know you aren't doing it the way they are wanting/expecting.
 

Mat8iou

Ars Praefectus
5,084
Subscriptor
Has anyone ever come across a language called CODIL?
For years I had vague recollections about a brief article about an interpreter for a cut down version of it for the BBC Micro that I saw in a magazine in the late 1980s. Since then, I assumed that I must have misremembered reading COBOL as most lists of languages made no mention of it. Googling it just now though, it appears that it did in fact exist (including the BBC Micro MicroCODIL version). That said, there is relatively little information about it. It seems like a fair bit of work went into it for a while, but then it was just abandoned and this happened pre-internet, so there is relatively little out there about it.

I actually found an old magazine scan with what is possibly the same advert that I saw.

1733117553289.png

There is a description of it in an article from The Computer Journal from 1970.

https://academic.oup.com/comjnl/article-pdf/14/4/327/927066/140327.pdf
It is intriguing, in that there is no distinction between instructions and data. Some things feel slightly familiar in it - there is a hierarchy of indentation which forms part of the program, similar to Python. Some aspects of it remind me a bit of how Prolog works, with most of the program made up of data contained within clauses (and Prolog originated a few years after this - possibly this approach was commonplace at that time).

I also found this post on Google Groups, which gives a bit more background to it:
https://groups.google.com/g/ontolog-forum/c/D8-Ltvx0Vlk
The CODIL project was started in 1967 and was designed to provide a transparent, self documenting and human friendly interface in large commercial data processing systems but was interrupted by a major company merger, and continued on a smaller scale. In 1980 it was involved in a British Library research project called BLEND (not vto be confused with a later project with the same naame). BLEND was designed to explore the possibility of using interactive systems to write, publish and access scientific papers. CODIL was used to write the only fully interactive paper in the project. This allowed the reader of the paper to interactively run the software the paper described, and interrogate the relevant "program" and "data" files. As far as I know this was the first system where this could be done.

There is also a fairly recently updated site about it on Blogspot (I was unaware that anyone still used that platform).
https://codil-language.blogspot.com/
Has anyone else ever come across this language? It intrigues me - purely because of the old memory of having it mentioned (on a platform where few alternative input languages were available) and because it seems to have been almost completely forgotten since then.
 

ImpossiblyStupid

Wise, Aged Ars Veteran
189
Subscriptor
Does anyone know of a good (probably scripting) language that is designed to be, or is at least amenable to being, "containerized" into something like an SQLite database?

My plan for fun projects in 2025 is to get back into using SQLite more; I blogged about it, so now I'm accountable. :biggreen: Since everything's going to revolve around the DB, my mind got to wondering if I couldn't just bootstrap the code up without accessing the filesystem. In theory, it shouldn't be all that difficult to do for any language that exposes a require/include interface that essentially does an eval on the data blob it gets.

I'm reminded very much of when I used a Smalltalk IDE way back in the 90's. I don't recall ever having to poke around in the filesystem to deal with the code itself. I'm sure I can sandbox a Lua environment that ends up looking like that. Is there anything cool out there that starts like that?
 

AdrianS

Ars Tribunus Militum
2,382
Subscriptor
Does anyone know of a good (probably scripting) language that is designed to be, or is at least amenable to being, "containerized" into something like an SQLite database?

My plan for fun projects in 2025 is to get back into using SQLite more; I blogged about it, so now I'm accountable. :biggreen: Since everything's going to revolve around the DB, my mind got to wondering if I couldn't just bootstrap the code up without accessing the filesystem. In theory, it shouldn't be all that difficult to do for any language that exposes a require/include interface that essentially does an eval on the data blob it gets.

I'm reminded very much of when I used a Smalltalk IDE way back in the 90's. I don't recall ever having to poke around in the filesystem to deal with the code itself. I'm sure I can sandbox a Lua environment that ends up looking like that. Is there anything cool out there that starts like that?

I'd definitely look at Lua as the scripting language to use; it’s gloriously customisable.
 

ImpossiblyStupid

Wise, Aged Ars Veteran
189
Subscriptor
That's pretty extensive and interesting, but it actually seems to be going in the opposite direction of what I have in mind. For example, their filesystem extension allows you to use SQL to get to files, but I'm looking to sort of chroot filesystem calls to database tables. I basically saw how SQLite supported Zip files and internal archive files and wondered what a programming language might look like if the base/default persistence layer was a structured database.

Your blog is timing out for me :D
My firewall is . . . excessive, really. Lots of ISPs (and especially VPNs) just aren't policing their network and/or intentionally mixing the abusers in with benign traffic. If you gave me a CIDR range, I could manually whitelist it and you'd be good to go as long as no attacks trigger automated blocking. But it's just my shitty blog, so you're not really missing much. Although, as part of my experiment, I will be looking to make version of my site that is self-contained in a SQLite database and thus could be hosted/federated anywhere. :geek:
 

koala

Ars Tribunus Angusticlavius
8,015
That's pretty extensive and interesting, but it actually seems to be going in the opposite direction of what I have in mind. For example, their filesystem extension allows you to use SQL to get to files, but I'm looking to sort of chroot filesystem calls to database tables. I basically saw how SQLite supported Zip files and internal archive files and wondered what a programming language might look like if the base/default persistence layer was a structured database.
Hmmm, interesting. What I saw about Aquameta is that it kinda allowed code to be stored in the database (with version control) and execute it. It's quite bizarre and sprawling.

My experience is that many big SaaS kinda implement "code in the database" + CRUD framework (Salesforce, ServiceNow, etc.), but it kinda sucks to develop in such a closed environment with many standard tools missing. (If you are doing very involved development, of course.)
My firewall is . . . excessive, really. Lots of ISPs (and especially VPNs) just aren't policing their network and/or intentionally mixing the abusers in with benign traffic. If you gave me a CIDR range, I could manually whitelist it and you'd be good to go as long as no attacks trigger automated blocking. But it's just my shitty blog, so you're not really missing much. Although, as part of my experiment, I will be looking to make version of my site that is self-contained in a SQLite database and thus could be hosted/federated anywhere. :geek:
Oh, it was just a heads-up because you referenced something I could not read. No worries.
 

ImpossiblyStupid

Wise, Aged Ars Veteran
189
Subscriptor
I wouldn't say so, but that page dumps SQL itself into the "image" bucket, so clearly there is a huge overlapping scope in the minds of some people. I mentioned Smalltalk already, and to my recollection it went a bit too far in stuffing everything in the image blob. I much prefer the idea of a database as an integrated-yet-independent piece of the system. I mean, it's a standard component of any modern software stack, so why aren't languages including it at a high level in their standard library (i.e., being useful mostly without having to drop down to writing queries in SQL directly)?

Hmmm, interesting. What I saw about Aquameta is that it kinda allowed code to be stored in the database (with version control) and execute it. It's quite bizarre and sprawling.
Without detailed documentation, it's hard to know what the final intention was/is supposed to be. It's a impressive proof of concept, but it's not clear where it would really shine or what heavy lifting it would be doing that would make adoption a good idea. The scope for what I'm after is quite modest in comparison.

My experience is that many big SaaS kinda implement "code in the database" + CRUD framework (Salesforce, ServiceNow, etc.), but it kinda sucks to develop in such a closed environment with many standard tools missing. (If you are doing very involved development, of course.)
I hear that, and that's why I'm looking to start small with something like SQLite rather than some grand scheme that turns into a distributed cloud-based monstrosity! The FUSE mount seems like it would provide a standard interface to any tools that do filesystem operations. I'm just hoping I to find a language/library that's already done all those bits so I can focus on the application code itself.
 

ShuggyCoUk

Ars Legatus Legionis
10,174
Subscriptor++
SQL is the abstraction/language. It’s a pretty good one for a RDMS. Trying to pretend a RDMS is a file system is a bad idea on multiple levels. No reasonable file system has transactions (MS ‘s abortive attempt to add it to NTFS died swiftly and mercilessly) they have exclusive gated locks, and most RDMS don’t have those, they use some level of opportunistic locking and resort to killing an arbitrary offender if the opportunity fails to materialise
 

AndrewZ

Ars Legatus Legionis
11,604
SQL is the abstraction/language. It’s a pretty good one for a RDMS. Trying to pretend a RDMS is a file system is a bad idea on multiple levels. No reasonable file system has transactions (MS ‘s abortive attempt to add it to NTFS died swiftly and mercilessly) they have exclusive gated locks, and most RDMS don’t have those, they use some level of opportunistic locking and resort to killing an arbitrary offender if the opportunity fails to materialise
NTFS transactions are a thing.
 

ShuggyCoUk

Ars Legatus Legionis
10,174
Subscriptor++
NTFS transactions are a thing.
I am well aware of it, and looked into it.
Also best read that first section:
[Microsoft strongly recommends developers utilize alternative means to achieve your application s needs. Many scenarios that TxF was developed for can be achieved through simpler and more readily available techniques. Furthermore, TxF may not be available in future versions of Microsoft Windows. For more information, and alternatives to TxF, please see Alternatives to using Transactional NTFS.]