How can you have a website displaying a live-coding language, without a video displaying someone actually live-coding? :P
Seriously though, I'd love to see a video of someone doing live-coding. I've been looking for a good live-coding environment ever since I found fluxus[1], and subsequently found out that development of it had stopped.
Super cool. Maybe think about just cutting those videos into a 30-second montage to drop onto your landing page until you want to do a proper demo-- for live coding, showing beats telling any day of the week.
Why would you think development of fluxus "has stopped"? The mailing list [1] is active enough for such a minority project, and the git repo [2] shows a reasonable activity for a mature (i.e. "done") project, with functionality commits from October last year, and French localisation commits from April this year (last one on the 19th, so less than 24h ago).
Excepting crashing bugs development depends a bit on when people have time or a need for a new feature but Fluxus is indeed still actively developed. As I see it it's indeed "done" in the sense of being useful for it's intended purpose right now, but there is space for big improvements like redoing the editor itself in Scheme, morefunctionality in the Windows version, etc. I'm personally working on and off on a little library for new ways of interacting with generative music in it. We're alive and well, I'd say.
Fair enough, but "OSX is not as well supported as I'd like" is a far cry from "has stopped development". FWIW, I get the updates just fine through Ubuntu PPAs.
Obligatory mention of "Inventing on Principle" by Bret Victor (https://vimeo.com/36579366) which explores a lot of similar turf. With Circa though we get to have these things today though, and with C integration to boot. Great work.
Significant whitespace in a live coding language? I like and use Python, but that seems like a show-stopper of a bad idea for a language designed for throwing code around in real time.
Can you expand on this? If I get my indentation wrong then it will be obvious very quickly. I'm guessing that it will only update if the basic syntax is correct though.
Using # for both comments and colors does not sound like a good idea! Just stick to --, I think. It looks prettier anyhow :P.
Also, how do you do scoping without a var or val keyword? E.g. what if I want to have a variable local to a function (or method, I guess?). Or what if I want to reassign a variable outside of the current scope?
Definitely a good point and I'll make that change. I was hesitating to only use -- because I thought it might be unfamiliar to some. But it works great for Lua & Haskell!
For variable scoping, if you use the same name inside a "for" or "if" block then it'll assign that name in the outer scope. A function however can't assign to names outside of the function - each function needs to explicitly declare its inputs & outputs. There's some holes in the current design, so adding a "val" keyword is the current plan.
For the repl, can you try "circa_d -repl" (one dash instead of two)?
There is definitely some breakages in there, and most of those samples won't run currently. I'm rewriting the app that runs things in a graphical shell and I hope to have that ready soon. If you are feeling brave, you can go back in time to use Plastic (the SDL-based shell that I was relying on for a while). Instructions for that:
Checkout revision efb5300
Delete the files at src/generated/*.cpp and run prebuild.py again
scons build/plas_r (this will require SDL)
Launch with: build/plas_r samples/asteroids.ca (or some other sample)
With that version I can build build/plas_r but there are some missing Box2D files. Might come back to it later when I have more time or when the the next app is out :-)
I always wonder why so many languages eschew multiline comments. Is it monumentally harder to make a parser that supports it or is this a conscious decision?
It's not too hard, it was just a combination of laziness plus not being able to decide on a multiline comment syntax that looks nice. Anyway I just added it, using {- and -} separators (as in Haskell)
I was just curious since there seem to be a few languages that only have single line comments. But usually it just results in people finding "hacks" so they can make them anyway (like Python's doc-strings) which just ends up being uglier than supporting them natively.
Code reflection seems like an awesome feature to play around with, and it seems really cool that you can modify the AST and have the changes saved back to the source text.
Until Cicra is ready, where else can I learn to use these features?
Definitely possible, though you would store those tweakable variables in special MyVariable objects (rather than have them be normal C++ variables). With Circa you could grab the object that holds then variable's data, and then have C++ code that reads it as often as you want.
Seriously though, I'd love to see a video of someone doing live-coding. I've been looking for a good live-coding environment ever since I found fluxus[1], and subsequently found out that development of it had stopped.
[1] http://www.pawfal.org/fluxus/