Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 13 2016 03:24
    @PeterWAWood banned @Vexercizer
Pierre Baille
@pbaille
@guraaku i think the metaprograming capabilities of Lisp (via macros) leads naturally to Red, which seems (at least to me, i'm new to red, but am a long time clojurian) to be more powerful than most lisps for building your own language. Kernel is an exception (a lisp with Fexprs)...
guraaku
@guraaku
thanks @pbaille , I'm pretty new to Red too - am using it to implement a language previously implemented via a handwritten recursive descent parser in C#. I'm looking at different options, came across the Racket thing and just wondered if Red enthusiasts had any view on how it compared to Lisps
So far, yes, I'm finding Red to be very flexible, the little I have read so far from that Racket book looks more complicatedf
Pierre Baille
@pbaille
red is really something... it let you do so much things... I don't have the big picture yet, but I have searched a new language for a while, and the only that makes me feel the kind of joy that i have experienced learning lisp is Red. Syntax is beautiful, and it the core language is so powerfull... in lisp you have a sublanguage for implementing macros which is not so fine (i spoke for clojure), in red, you can do the same things (at runtime or compile time) more easily it seems.
guraaku
@guraaku
yes, that was the same feeling I have
Gregg Irwin
@greggirwin
@guraaku Red inherits from Lisp, Forth, and Logo (also a Lisp), along with Self for the object model. It adds many new ideas, but offers many things Lisp does. This room is a good place to talk about what Lisp features match up, and how to offer things in Red (e.g. HOFs) that match Red's design.
JacobGood1
@JacobGood1
lisp macros are still more powerful than red macros, however, the metaprogramming features of red are more user friendly
@pbaille "in lisp you have a sublanguage for implementing macros which is not so fine" that is not true, the reader macros only simplify what you would write by hand but they are not necessary.
I am sure that red macros will improve over time, but one cannot expect them to reach lisp potential due to the free form nature of red
Pierre Baille
@pbaille
@JacobGood1 i was talking about the macro dsl ( ~ ' ` ~@ ...) which is not so fine in my opinion. My comparaison wasn't really between red macros vs lisp macros, but lisp macros vs red funcs (which can be viewed as runtime macros or fexprs i believe). I don't really know red macros, and for now don't feel the need to, since most commonly used lisp macros can be implemented with a simple func.
JacobGood1
@JacobGood1
reds "runtime macros" are not as powerful, they do cover most use cases but not all
Pierre Baille
@pbaille
@JacobGood1 could you please give me an exemple? i cannot find one.
Pierre Baille
@pbaille
i taught that red metaprograming approach was somehow analogous to Fexprs (which i believe is more general than macros) but maybe i'm wrong.
Vladimir Vasilyev
@9214
@pbaille that's true, Red and Rebol functions are close equivalents to fexprs.
Vladimir Vasilyev
@9214
@JacobGood1 do you have The Book of Shen btw?
Pierre Baille
@pbaille
I have it, it is wonderfull
any of you have spent some time with shen?
Vladimir Vasilyev
@9214
@pbaille I believe @JacobGood1 tinkered with it and also proposed its macro system to be a reference implementation for Red's macros.
Meanwhile I'm on the hook. :)
Pierre Baille
@pbaille
should be a good source of inspiration :)
Vladimir Vasilyev
@9214
I'm a little baffled by Tarver's way of doing things though :confused:
Pierre Baille
@pbaille
you mean the closed source stuff?
Vladimir Vasilyev
@9214
Yeah, and no digital versions of documentation books.
Pierre Baille
@pbaille
yes...
maybe he's not ready to handle an open source community
JacobGood1
@JacobGood1
@pbaille for one thing, only mezzanine(I think that is what they are called) functions are available for the creation of macros, while in lisp the whole language is available including anything you or anyone else have made. Another problem is expansion, since there are no syntactic clues as to when the expansion should occur, it will occur, by default, wherever the macro's symbol is found. There are other problems as well, but these are the easiest to digest.
@9214 yes, I have it somewhere...
Pierre Baille
@pbaille
@JacobGood1 Forgive me i was not clear. I missused the word macro. For my practice, a macro is a meta-programming facility before being a compile time thing. so in fact i was comparing red functions with lisp macros. It does not make so much sense... With eval in lisp you can probably do what red functions do, also it is not encouraged, in red, code manipulation seems to be at the heart. In lisp (clojure specifically) macros and functions that call eval are marginal, and thinking of it, i'm not sure you can always tweak the environment before evaluating some expression in lisp at runtime (as the 'bind function of red seems to do). So the big thing is, in my point of view, the mindset in which red puts you (encouraging meta-programing) vs the mindset of lisp (functional?). in the red mindset macros are more interesting has a compile time unit than as a meta-programing tool, but in lisp it is not so clear... I hope to be clear, but i have some doubts! :p
JacobGood1
@JacobGood1
Most people mean common lisp when using the word lisp, it does have a proprietary ownership of the .lisp extension after all =). Common lisp allows one to have environments of evaluation, which can be tweaked as much as desired. Lisp, historically, was not a very functional language at all, it was more of an oop one, oddly enough. As for as mindsets go, the clojure community does seem a little allergic to meta programming, however, the lisp community does not.
Pierre Baille
@pbaille
@JacobGood1 I understand, thanks for the clarifications!
JacobGood1
@JacobGood1
Don't get me wrong though, I really like rebol/red/ren-c, there is something to be said about the simplicity of meta-programming in red, and programming in general in red. I would not be here if I did not like it. I do not really get to program in the language all that much, but when I do, it is very enjoyable. One thing I love about rebol, is the fact that parsing is a fundamental feature of the language, it is pretty ridiculous that this is not the case for most languages.
GiuseppeChillemi
@GiuseppeChillemi
@JacobGood1 , do you know other languages with REDBOL like parsing ?
Gregg Irwin
@greggirwin
Racket may aspire, but nothing I've seen comes close to Redbol and parse. If you don't mind the Lisp/Scheme approach, Racket is worth a look.
Vladimir Vasilyev
@9214
@GiuseppeChillemi Racket has whole macro system dedicated to DSL creation, Shen has built-in YACC compiler-compiler.
JacobGood1
@JacobGood1
Most languages have parsing in the form of a library. I do not know many languages that focus on parsing as part of their standard.
Asking if I know of rebol like parsers... Most parsers I know of operate on strings almost exclusively, so I do not know of any other parser that has a duel mode such as rebol. However, there are many types of parsers, some of them do have benefits over rebol while simultaneously having deficits; there are no silver bullets.
Vladimir Vasilyev
@9214
@JacobGood1 any thoughts on Dart 2.0?
JacobGood1
@JacobGood1
I have not programmed in Dart in a while, but I am sad to see the language go in a more mainstream direction.
They just had too many fans of static typing crying all the time.
Vladimir Vasilyev
@9214
Puny mortals. :japanese_goblin:
JacobGood1
@JacobGood1
The main draw of Dart right now is Flutter
Oddly enough, one of the most exciting things for me right now is the graalvm
Vladimir Vasilyev
@9214
I see, they probably gonna push it hard with new OS.
JacobGood1
@JacobGood1
They already said it will be the official OS language kinda like C# is to Windows
I wish that red/rebol would become a hosted language honestly, I do not care that much about underlying complexity and the size of executables. It would be great if the red team could do everything in their vision but it is going to take a loooong time. I would care more about those "pure" ideas if they were more attainable before I become a crusty old man.
It worked very well for clojure, I think it would work well for rebol too
Vladimir Vasilyev
@9214
Problem is that world doesn't need another Clojure :^)
JacobGood1
@JacobGood1
Hehe, I am not talking much about Dart am I?
Vladimir Vasilyev
@9214
JacobGood1
@JacobGood1
I do not want another clojure, I want a hosted red =)