4 ms·
Red will have GC, but it's not there yet. Soon. Red/System is a C level language, where you have to alloc/free yourself. Why do you think it's pointless to lea
by greggirwin 10y ago
Red will have GC, but it's not there yet. Soon. Red/System is a C level language, where you have to alloc/free yourself.
Why do you think it's pointless to learn without knowing how it handles memory?
- MichaelMoser123 10y agothanks for answering. > Why do you think it's pointless to learn without knowing how it handles memory? I think that a non trivial program will have to employ dynamic memory allocation, so if it is not obvious how to do that then it will not be possible to write a complex program. Learning a language that can handle only simple cases may have some uses, but you already have existing tools for that.
- greggirwin 10y agoGot it. Red does manage memory for you, but no GC yet so can't do long-running procs without care. I've written small Red apps that used 800MB, loading a large dataset. Totally stable but, again, maybe wait for GC if you're going to grind a lot. Red's complete toolchain, compiler, linker, etc. are bootstrapped entirely in Rebol2. Red is more capable than R2 (though alpha, with features pending), so it's safe to expect that it can handle more than simple cases. In fact, one of the reasons Red 1 was implemented in R2 was to prove that Red would be able to self host. It's possible most of the current toolchain would even work at 1.0, but the team has learned a lot while building this version, and has said on many occasions that Red 2 will only keep the best bits. All that said, even if you never use it in production, it's a great language to play with and expand your thinking, because it's so different.
- throwaway7645 10y agoI'm waiting for a "Red in Action" book or the like. What I've seen in the Rebol examples hasn't helped me a ton with understanding the Parse dialect...etc.
- dmitriid 10y agoThe problem with a lot of Red's features is that core language/runtime features are added to the language last. - GC is added after a lot of language is already there. - Actors are planned to be added _after_ I/O, and _after_ GC, and _after_ all the GUI capabilities (Trello board lists "figure out how to rewrite event loop with actors") - A lot of FFI is already there, so GC, and actors are coming after FFI. These are not features you add on top of a language and hope they magically work. Actors directly affect how I/O and GC work. GC should be very aware of how FFI works. etc.etc.etc. A lot of these issues are dismissed by the core team as "it's not difficult to write a GC, we have it in a branch somewhere" (referring to a naïve mark-and sweep stop-the-world GC).