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
JacobGood1
@JacobGood1
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 =)
that way they get a gc, optimizations, and libraries galore... obviously there would be downsides, just like there has been with clojure being a hosted lisp
making lisp symbiotic with a vm has been mostly positive in my opinion
Vladimir Vasilyev
@9214
@JacobGood1 do you have any other examples of "symbiotic" relationships between two languages, aside from Lisp family?
JacobGood1
@JacobGood1
anything being written for the graalvm, https://www.graalvm.org/, take a look at the languages near "High-performance polyglot VM"
however, none of these languages were created with the idea of being hosted
Vladimir Vasilyev
@9214
@JacobGood1 I'm actually interested in those that were created with this idea in mind.
Shen in particular is a very cunning example.
JacobGood1
@JacobGood1
yea but it is in the lisp family so I was not thinking about that one