Live data from Hacker News

Red programming language 0.6.2: LibRed and Macros

red-lang.org

81–86 of 86 posts

Re: Red programming language 0.6.2: LibRed and Macros

#81

Earlier quoted context omitted.

Agreed, but those languages aren't trying to be a "Full-Stack" language. With great power...blah blah you get the point ;)

PreScheme, Nim... Very powerful. Compiled to C for performance.

Yea, kinda see what you're saying, but not 100% at least with Nim. It has a nice high level syntax, but no REPL shell, so not quite as high level as Red. Using on Windows also requires MinGW, which is kind of hacky.

Re: Red programming language 0.6.2: LibRed and Macros

#82

Earlier quoted context omitted.

thanks 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.

Got 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 expec…

I'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.

Re: Red programming language 0.6.2: LibRed and Macros

#83

Earlier quoted context omitted.

Where do you see a nice list of these types?

The Red website has it somewhere, but they're focusing on the Lang and not the site at the moment, so it might be hard to find. I think the Rebol website (successor language that is mostly compatible although interpreted only) should have a lot of those.

> I think the Rebol website (successor language that is mostly compatible although interpreted only) ….

I think that this is backwards; Red is inspired by Rebol, which is relatively old:

> Red is a computer programming language. Red was made to overcome the limitations of the programming language Rebol.

(https://en.wikipedia.org/wiki/Red_(programming_language) ).

Re: Red programming language 0.6.2: LibRed and Macros

#85
post #68

Earlier quoted context omitted.

No need to apologize, that was a good example :) I liked this big: >> unique collect [foreach val blk [keep type? val]] == [word! time! email! url! paren! file! issue! pair! tuple! set-word!] I think it could almost be read and understood by a person who does not know REBOL or Red.

Yup. We often write code like normal programmers, but sometimes we do build up vocabularies more, even when not using `parse` to write DSLs. "Red or REBOL" = Redbol (sounds like Red Bull) :) And where Perl has Mongers, Ruby has Rubyists, Python has Pythonistas, and Rebol has Rebolers, Red has Reducers.

Ha, Reducers is a good term, considering: the goals of Red (reducing complexity being one), the small size of Red (and REBOL) programs that get non-trivial things done, and finally the size of the software itself (the interpreter - and also compiler in the case of Red). Even the small EXE sizes, in fact (though I've only created EXEs for small programs so far, with it).

Re: Red programming language 0.6.2: LibRed and Macros

#86

Rebol looks interesting; what does Red do for memory management? Is it garbage collected or does it do reference counting? If it is reference counted then what does it do with circular references? i did take a glance at the documentation but did not find the answer to this question - without knowing how the thing allocates memory it is sort of pointless to invest time into learning the language...

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?

The 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).

Post reply on HN