Live data from Hacker News

Steel – An embeddable and extensible Scheme dialect

github.com

21–30 of 192 posts

Re: Steel – An embeddable and extensible Scheme dialect

#21

Earlier quoted context omitted.

It really is kind of frustrating isn't it? Because anyone who's put any real effort into learning Lisp knows that the parentheses are not what's hard to understand, actually. You don't even have to read them, really. So when people complain loudly about parentheses in Lisp that just tells me they probably never made any real effort to learn it, and are actively opposed to trying. It's not a productive starting point…

Counterpoint: why are people under any obligation to try?

Have a learning mindset?

Re: Steel – An embeddable and extensible Scheme dialect

#22

Earlier quoted context omitted.

They're not. But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. Also, in a professional setting, I find it a bit unprofessional and rude to poo poo technical ideas over trivialities.

> But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. I don’t like the parenthesis. I’m not flaunting anything. Is it “flaunting” to calmly and respectfully share an opinion? To you it’s trivial, to me it’s not. It seems like you’re interested in creating conflict with people that don’t like a thing that you like. Which, I would cast this behavior as unprofessional, tbh.

Imagine someone who hates the exponentiation operator but wants to do mathematics nevertheless. For a living.

Re: Steel – An embeddable and extensible Scheme dialect

#23

This is a surprise! Steel is my project, happy to answer any questions anyone might have

Any chance of seeing the things I miss the most from Racket in other langs?

1. Parameters and Syntax Parameters (Syntax parameters make macros more powerful)

2. Turing complete macros (not just syntax-case)

3. Typed Racket

I almost used https://gamelisp.rs/ for a project but the nightly feature it needs broke and it's no longer maintained, glad to see something similar arise! You might want to consider adopting their choice of VecDeque as a list replacement, I think it makes a lot more sense than naive linked lists on modern machines.

Re: Steel – An embeddable and extensible Scheme dialect

#25

Earlier quoted context omitted.

They're not. But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. Also, in a professional setting, I find it a bit unprofessional and rude to poo poo technical ideas over trivialities.

> But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. I don’t like the parenthesis. I’m not flaunting anything. Is it “flaunting” to calmly and respectfully share an opinion? To you it’s trivial, to me it’s not. It seems like you’re interested in creating conflict with people that don’t like a thing that you like. Which, I would cast this behavior as unprofessional, tbh.

I don't like curly braces, but I don't let that decide which programming languages I use.

Re: Steel – An embeddable and extensible Scheme dialect

#27

Earlier quoted context omitted.

> But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. I don’t like the parenthesis. I’m not flaunting anything. Is it “flaunting” to calmly and respectfully share an opinion? To you it’s trivial, to me it’s not. It seems like you’re interested in creating conflict with people that don’t like a thing that you like. Which, I would cast this behavior as unprofessional, tbh.

I don't like curly braces, but I don't let that decide which programming languages I use.

That’s your choice!

Re: Steel – An embeddable and extensible Scheme dialect

#28
post #22

Earlier quoted context omitted.

> But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. I don’t like the parenthesis. I’m not flaunting anything. Is it “flaunting” to calmly and respectfully share an opinion? To you it’s trivial, to me it’s not. It seems like you’re interested in creating conflict with people that don’t like a thing that you like. Which, I would cast this behavior as unprofessional, tbh.

Imagine someone who hates the exponentiation operator but wants to do mathematics nevertheless. For a living.

Interesting hyperbole.

Re: Steel – An embeddable and extensible Scheme dialect

#29

This is a surprise! Steel is my project, happy to answer any questions anyone might have

Any chance of seeing the things I miss the most from Racket in other langs? 1. Parameters and Syntax Parameters (Syntax parameters make macros more powerful) 2. Turing complete macros (not just syntax-case) 3. Typed Racket I almost used https://gamelisp.rs/ for a project but the nightly feature it needs broke and it's no longer maintained, glad to see something similar arise! You might want to consider adopting their…

To answer each of these:

1. I do support parameters now, syntax parameters not yet. I would like to! But Racket has a pretty hefty head start on me so it'll take some time.

2. Right now I have syntax-rules macros, I also have defmacro style macros that get used internally in the kernel during expansion, but haven't yet opened them up for user space yet. Syntax case will be coming soon hopefully.

3. The odds of me being able to come up with an implementation to match typed racket pound for pound is pretty low. I have toyed with using contracts as types (where possible), with medium/promising success in certain situations. I have a soft spot for racket and have been modeling behavior after it, however it will take time to be able to create a macro system powerful enough to match it. It wouldn't be impossible to create an alternative syntax to just lower to steel after type checking, but I haven't put time into that.

On the list type - the list in use currently is an unrolled linked list https://github.com/mattwparas/im-lists, which I've found to yield much better performance for iteration than the naive linked lists. When possible, the vm does some in place mutation on the lists as well when consing, which helps performance as well. I also can hot swap for a vlist, but at the moment have stuck with unrolled linked lists.

Re: Steel – An embeddable and extensible Scheme dialect

#30

Earlier quoted context omitted.

They're not. But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. Also, in a professional setting, I find it a bit unprofessional and rude to poo poo technical ideas over trivialities.

> But they're also not required to flaunt their own ignorance as though it's a well-formed opinion. I don’t like the parenthesis. I’m not flaunting anything. Is it “flaunting” to calmly and respectfully share an opinion? To you it’s trivial, to me it’s not. It seems like you’re interested in creating conflict with people that don’t like a thing that you like. Which, I would cast this behavior as unprofessional, tbh.

I'm not a fan of the parenthesis either, but when I learned about s-expressions and how lisp programs are also a data structures that piqued my interest and helped me look past them.

I question people's judgement who can't look past the syntax when there is a very good, and interesting technical reason behind them.

Post reply on HN