I found this really old Snap! distro called "bloP"

I found a really old mod of Snap! called bloP.
I looked up "how to make your own block coding language" and found this

I suspected it when I saw the title was "bloP - Build Your Own Block Language" but I thought it was a coincidence.

Then I ran "bloP.html".

Interesting that it seems to support first class lists but not first class procedures. That's because Stefano's target languages were ancient ones such as C and C++. :~)

isnt those used to make operating systems?

also wasnt this featured in snapcon 2020?

C is definitely for making operating systems, but operating systems (real ones, not Scratch-style simulations of them) have to run right on top of the bare hardware, not in a block language on top of a browser. It's still not clear to me what good C++ is.

And yes, Stefano's work is a real tour de force, which pushed the limits of what BYOB could handle when he started working on it. I didn't mean to say his work was no good, just that I think I understand why the screenshot you showed includes list reporters but not HOFs.


whats that?

"Tour de force" means a display of extreme ability, with a vague connotation that the display (rather than some practical purpose) is the object of the exercise (although I'm not suggesting that about Stefano's work).

"HOF" is the acronym for "higher order function," a function that takes a function as an input and/or reports a function. MAP, KEEP, and COMBINE are the paradigmatic examples. (Don't ask me what "paradigmatic" means! If you don't know, ask your computer. :~) )

I actually asked it as a joke what it meant, and siri answered me and scared the hell out of me :skull:

How? The "Try it online!" link doesn't work.

The only use I knew of was to make games, but Google (well, Programiz) says that it can be used for making browsers and parts of operating systems.

I got this from googling “what is C++ used for”.

Yes, C/C++ is mostly used for things that need to be close to hardware, like operating systems or embedded systems like calculators and microwaves (I think?), or things that need to be very performant, like game engines.

The two languages are quite different, despite the similarity of names and the fact that C++ was originally implemented as an extension of C. (Think "Scratch/BYOB"!)

C is a small, fast, elegant language for manipulating computers at the hardware level. So, yes, operating systems are the most obvious application, and in fact C was invented to implement Unix. The part of a compiler that deals with register allocation and optimization is also a good match for C.

C++ is an attempt to be a high level language (of the object-oriented school) and a low level language (c) at the same time. In my opinion it fails at both tasks. (Not just my opinion; Java (not JS) was designed with the explicit purpose of cleaning up the messes of C++.)

Yes they are pretty different, but they are used in similar fields, am I wrong?

Speaking of C++ not being a well designed language, what languages would you recommend for similar use cases? I heard of Rust and it seems to be a pretty interesting language. Which is weird because one of the reviews on the sites praised Rust for being “boring”. I also heard of Go. I don’t know much about Go.

I downloaded it instead

damn, whats next, toasters?

Probably. I think if it has electronic parts, it might have a processor with a program that was written in C or something.


Offtopic but interesting tidbit! JS was intended, in the early days of the internet, to work with or replace Java applets and things like that in websites.

oh, interesting...

It did replace Java in websites! Almost entirely, but not quite.

Remaining off-topic. This is probably the last I'll say about Java vs. JS here.

Not, like, immediately after its launch, it did take a bit of time. But then JS really caught on! Then Java started being phased out (in general, it's not like everyone suddenly dropped it) for security reasons, yadda yadda yadda.