Live data from Hacker News

XL: An Extensible Programming Language

xlr.sourceforge.io

21–30 of 87 posts

Re: XL: An Extensible Programming Language

#21
post #14

Earlier quoted context omitted.

> There are lisps without parens too Are there any that come close to the usage of lisps with proper s-expressions? I've seen them come and go, but no "lisp without parens" that seem to stick around for longer period. I guess that should say something? Maybe we just haven't found the right way of exposing it though. Personally, when I've given it a try, the indentation-based syntax always makes it hard to use without…

I am pretty sure logo is mostly a lisp without parenthesis. I find it a lot more readable than most lisp dialects. I am not sure why it never caught on.

I was about to post exactly the same… haha.

I’ve been doing a recent deep dive in languages as part of my own overly ambitious language attempt and only recently found out that Logo was in fact Lisp based.

I’m guessing that the reason it might not have taken off is because, unfortunately, it was looked upon as a ‘kid language’.

The goals of Papert and others seem a far cry from where tech has landed today.

edit: for an egregious typo

Re: XL: An Extensible Programming Language

#22

Obligatory "lisp has had this for ages". Herein, macros seem to be invented from first principles, having only been exposed to imperative languages like C++. It is interesting to see macros here invented in the context of a language that is not homoiconic. I wonder how it stacks up against Rust macros.

Obligatory "FORTH has had this for ages". :-)

Is Forth really homoiconic? I’m asking as a recent fan of Forth. I would’ve thought to describe it as having strong, interactive metaprogramming but not necessarily homoiconic. Unless ‘code = data, data = code’ because they’re all bytes… haha.

Postscript would count as homoiconic, I’d think. Though I haven’t actually seen programs that so this.

Re: XL: An Extensible Programming Language

#24
I've been working on something centered around extensibility, or metaprogramming, coming from a strictly imperative angle, with the belief that anything else (functional, relational/logic based, whatever) can be built on top of that.

A few guiding principles are:

- simplicity above all, with as few fundamental elements as possible

- the parser is a separate issue, just write your own syntax to avoid the most divisive bikeshed element of PL design, or pick the C like or ALGOL like one out of the box. You very likely want your own syntax anyway as you write extensions.

- every language element, from modules down to function calls, are first class, ie have an (implementing) type, can be stored in variables and used in expressions, be introspected and evaluated/deployed.

- runs at compile time, compiles at run time (code generation/partial evaluation/dynamic code)

- generates C, Java, Python and various bytecodes to maximise interoperability, code availability and deployability

- has no standard runtime or standard library of its own, is entirely parasitic on other environments

Even if it ends up being completely useless, it's a really interesting exercise in design.

Re: XL: An Extensible Programming Language

#25

Seems cool. But I'm not convinced extensible languages benefit from adding a variety of syntactic forms. As your ability to extend the feature-set increases, the need for a single regular syntactic form increases. Lisp may not be appealing to beginners because of its parenthesis, but they absolutely are what makes it work so well for its intended use cases. Really, all use cases. I'm actually a fan of the parenthesis…

I'm starting to be increasingly certain that making a new (sub)language to express and solve your problems is the highest form of programming. You'd think the ability to define custom syntax would be the most important, but paradoxically lisp makes it a lot easier simply because there is no syntax.

Exactly this. In addition, I've found that in almost all Lisps, macros are a niche feature that are not needed to solve many problems; however, because the actual invocation of macros and normal functions is the same S-expression form, almost all Lisp programs end up as some sort of DSL. Especially when you have arbitrary heterogeneous data structures like Clojure.

Instead of dealing with chains of single assignments as in older C-like languages, you've got a bunch of compact calls fully in-context.

Re: XL: An Extensible Programming Language

#26
Quite an ambitious offering by the author. Kudos to him/her.

I have my own little (overly) ambitious language effort in a different direction and tend to beat myself up a bit since I feel like I should have more to show after almost 4 years.

Then I noticed in the author’s history section towards the end that they’d been working on this sine the early 90’s and felt better about that.

Re: XL: An Extensible Programming Language

#27

Seems cool. But I'm not convinced extensible languages benefit from adding a variety of syntactic forms. As your ability to extend the feature-set increases, the need for a single regular syntactic form increases. Lisp may not be appealing to beginners because of its parenthesis, but they absolutely are what makes it work so well for its intended use cases. Really, all use cases. I'm actually a fan of the parenthesis…

> Lisp may not be appealing to beginners because of its parenthesis

You may have been referring to Lisp beginners, as opposed to overall programming beginners, but I’ve heard anecdotally that overall programming beginners take to Lisp better than those with experience in Algol style languages.

I could see that. And will prob be testung that hypothesis out soon.

And I too have become a fan of the parentheses.

Re: XL: An Extensible Programming Language

#28
Other than here, are there any other places online where folks writing their own languages tend to congregate?

Having recently joined that tribe, I think it does take a particular worldview and type to be willing to undertake that. I suppose folks writing an OS perhaps even more so.

Re: XL: An Extensible Programming Language

#29
Author of the project here... Weird to see this generates such a discussion when the project is something like 20 years old, and has been quasi-dead for a while now ;-)

An interesting derivative of XL is Tao3D, which shows what you can do with it. https://tao3d.sourceforge.net

A FOSDEM workshop about Tao3D (which includes initiation to XL): https://www.youtube.com/watch?v=uE9LwSuZD64

The design philosophy, and why it's not "just another Lisp" is here: https://xlr.sourceforge.io/Concept%20Programming%20Presentat...

Re: XL: An Extensible Programming Language

#30
post #29

Author of the project here... Weird to see this generates such a discussion when the project is something like 20 years old, and has been quasi-dead for a while now ;-) An interesting derivative of XL is Tao3D, which shows what you can do with it. https://tao3d.sourceforge.net A FOSDEM workshop about Tao3D (which includes initiation to XL): https://www.youtube.com/watch?v=uE9LwSuZD64 The design philosophy, and why it…

Well, quite an ambitious and impressive piece of work. And as I mentioned elsewhere here, reading your history made me feel a lot better about not having a ton to show after 3-4 years, haha.
Post reply on HN