Hacker News new | past | comments | ask | show | jobs | submit login
Red Programming Language 0.5.4 released (red-lang.org)
58 points by 0x1997 on June 14, 2015 | hide | past | favorite | 23 comments

Just when the world is getting ready for IOT. Might have the potential to become the Javascript for IOT devices for it's low footprint and highly embeddable nature.

Red could potentially become a really good platform for popularizing lisp since it's cross-platform, have a logo-like syntax and is compiled fully to machine code. Someone should write a Go to Red transpiler as it would be a really a good way to increase the amount of libraries Red currently has since Go seems to be a really good language to target due to its consistency and simplicity. My only gripe with it is that it feels too "big".

I'm not sure I understand your comment.

Specifically, Red is a dialect of Rebol, not Lisp. And after a quick glance through the docs (or I guess the Rebol docs they recommend using), and the Wikipedia pages for Red and Rebol, it doesn't seem any more Lispy than Ruby or Python.

Also, the easiest way to get a lot of libraries would be to have easy C interop. At this point there are far more C libraries available than Go libraries.

> it doesn't seem any more Lispy than Ruby or Python

Homoiconic syntax is one of the features of Lisp that people know the best. REBOL and Red are homoiconic, while Ruby and Python are not. This means that syntactic extension, which is impossible in Python and Ruby without modification of the parser, is easy to do in those languages. The other similar language (besides Lisp and REBOL/Red, excluding Forth and some more esoteric langs) is Tcl: it's also homoiconic and enables easy syntactic extension.

Red isn't a dialect of Lisp, nor exactly of Rebol. Red is descended from Rebol, and the two are very compatible. Rebol, in turn, has its heritage in Lisp, Forth, and Logo, with prototype objects as in Self. Both the Red and R3 teams see compatibility as a good thing going forward.

And you have C interop today, though it will get easier in the future.

TBH, Lisp is far more popular than Red and/or Rebol. I think most programmers who pay any attention to C++, Java, Scala, Clojure, Python, Ruby, Perl, or any other modern language can tell you a little bit about Lisp, because their language of choice has probably recently borrowed some Lisp features. The same thing can't really be said for Red/Rebol.

The irony is that some core concepts in Rebol have been borrowed into the mainstream, the trouble being that people just don't realize it. Rebol was a major influence on JSON. Crockford used to be active in the community, and had really hoped for an opensource Rebol. Carl, who created the language didn't want that, so Douglas created JSON instead, as a way of bringing some of the concepts of Rebol's Data Exchange Dialect to the opensource masses. One regrettable thing is that the there was a definite loss in the syntax and semantics by making what would become JSON intelligible to Javascript.

I didn't say anything about popularity. Scheme is arguably more popular than Lisp, and Clojure and other Lisp derivatives are currently on more radars as well. But Red/Rebol are different, more Logo-like at the user level, but quite different even than that. For me, it's about what I can do best with each tool. Success is largely perception. Logo is Lisp (see Brian Harvey's works), and yet most people only think of it as turtle graphics for kids.

Red/System is interesting - http://static.red-lang.org/red-system-specs.html#section-1 - a similar approach to Lua/Terra - http://terralang.org/

“For Linux 64-bit distros, you need to install 32-bit supporting libraries.”

Does that go for the binary distribution only, or also if you want to compile the source yourself?

The compilers for Red and Red/System are written in Rebol2. The binary distribution is just an encapsulated Rebol interpreter with source code. Rebol2 needs the 32-bit supporting libraries.

Oh, ok. So Rebol2 isn't compilable on a 64-bit machine? Too bad.

Rebol 2 isn't open source, and, AFAIK, is only available in binary distributions.

R3 is open source (Apache License), but Rebol 2 is proprietary.


It seems Red is not comtaible with Rebol3 (or I did something wrong).

Red is not compatible with Rebol3, due in part to the fact that development on Red started before Rebol3 was open-sourced. The binaries for Rebol3 at the time were too unstable, so the older and much more solid Rebol2 was chosen. There is a major undertaking underway currently though to refactor and fix large portions of Rebol3's core code. Which will then be rolled into the community edition and also hopefully the corporate sponsored Atronix fork. Also there is some talk going around about packaging and integrating TinyCC with Rebol3. IMO both projects show alot of promise, and have many progressive ideas.

It will still run on a 64-bit machine just fine though.

The binaries produced by red compiler are really very small. With an IOS and Android target, it can be a very interesting choice to mobile apps. And writing code in red seems very concise. It's like having the expressiveness of a functional language and the efficiency of a compiled one.

Red seems like a very ambitious project to be completed by a single developer. I've only briefly looked at the syntax, but it seemed to me that it's not very clear. The excess use of brackets is visually confusing.

The syntax is minimalist for a reason. The primary paradigm of languages in the Rebol family (like Red) is language-oriented programming of which creating domain specific languages in an important factor. The more minimalist the base syntax the less you force the end-user into a syntactic corner, when they go to design their own DSL's. As for blocks (those things delimited by brackets) they're technically a data-structure (actually all code is an implicit data structure). In Rebol for example all the typical control flow structures are actually functions which take as arguments vectors of code.

Red was a single, primary developer (with some ancillary support) for some time, but that is no longer the case: http://www.red-lang.org/2015/01/dream-big-work-hard-and-make...

Too many brackets is rarely the initial complaint. Usually people complain about the lack of parens in function calls. Free-ranging evaluation is an important design element, but it can take some getting used to. One of those "With great power..." things.

Its an Open Source project and, while it could use more developers I'm sure (most OSS projects could), it is definitely not only being worked on by one developer.

Once you start writing in it you realize how much the syntax often reads like an English sentence. And the brackets make perfect sense when you begin to understand blocks. And besides; its no more than curly braces in C and definitely fewer than parentheses in Lisp.

Parenthesis in Lisp are not more than those in C. It's just that there is only one type of parenthesis and the accepted convention is to pile all the closing ones at the last line. When you have some time play with them in both C and Lisp and count them.

everything but sliced bread. looks very good.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact