3 ms·
I am always glad to see people pursuing creating their own programming language. More people should give it a try, IMHO. A tricky thing that comes up with Rust
by steveklabnik 2y ago
I am always glad to see people pursuing creating their own programming language. More people should give it a try, IMHO.
A tricky thing that comes up with Rust comparisons is that often, Rust has a feature that's weird or hard to use, but it's because that's the only solution that makes sense within the constraints Rust has placed upon itself. Clicking some links gets me to https://git.yzena.com/Yzena/Yc/src/branch/master/docs/yao/design.md https://git.yzena.com/Yzena/Yc/src/branch/master/docs/yao/de...
> Yao's biggest goals are: Correctness, Convenience, Performance, in that order.
Having clear goals is a great thing when making a language, because they give you guidance on what is appropriate to include and what is not.
Rust has certainly demonstrated having similar goals, but in a slightly different order: Correctness, Performance, and then Convenience. So it wouldn't shock me if Yao could do some things better than Rust, in accordance with its goals. But that also means that sometimes, Rust would be useful where Yao cannot be. Everything is tradeoffs.
Incidentally, I actually think that figuring out what your values are, and what your needs are, is a great way to pick a programming language. Decide what matters to you as an engineer, and then find a language that shares similar values. I gave a conference talk a few years back on this idea, and how I viewed Rust's values at the time https://www.infoq.com/presentations/rust-tradeoffs/ https://www.infoq.com/presentations/rust-tradeoffs/
This was based off of bcantrill's Platform as a Reflection of Values, which was very influential on me. https://www.youtube.com/watch?v=Xhx970_JKX4 https://www.youtube.com/watch?v=Xhx970_JKX4
If you've ever heard about Oxide's focus on values, this is some of the older background on that.
- gavinhoward 2y agoI wish I could upvote you twice. I decided on my values because of bcantrill's talk. Everyone should watch it. A more complete list of my values is at https://git.yzena.com/Yzena/Yc/src/branch/master/docs/adl/0000-values.md https://git.yzena.com/Yzena/Yc/src/branch/master/docs/adl/00... .
- andai 2y agoCould you elaborate on value #0 being users (and what it means to prioritize users over programmers)?
- gavinhoward 2y agoGood question. I will add that. It means that users' convenience comes before my convenience. (I am the programmer in question.) This means that if there is something I could do to make things easier on users, I do it, even if it is a lot more work for me. An example is https://git.yzena.com/Yzena/Yc/commit/c9086af225d42b2f125959a384706c08a7f102c0 https://git.yzena.com/Yzena/Yc/commit/c9086af225d42b2f125959... . Comments in Yao do not use the `#` character, but I added the shebang to the parser specially so that scripts could be run just like any others scripts.
- timeon 2y agoThis is nice to see. I often came across opposite sentiment here. "Dev time is precious, user is OK with un-performant/etc. software."
- gavinhoward 2y agoThank you for your kind words!
- whateveracct 2y ago> A tricky thing that comes up with Rust comparisons is that often, Rust has a feature that's weird or hard to use, but it's because that's the only solution that makes sense within the constraints Rust has placed upon itself. Hah I find the same thing about Haskell. People are a bit less charitable about Haskell's quirks though I find.. The place I work definitely has a culture of whining :P
- _0ffh 2y ago> I am always glad to see people pursuing creating their own programming language. More people should give it a try, IMHO. I must agree that it's certainly lots of fun and a learning experience, but I must also always think of this amusing quote I once read somewhere: "What is a gentleman? A computer scientist who doesn't invent his own programming language."
- steveklabnik 2y agoI've never heard that, and that's very funny.
- ivanjermakov 2y agoThis is what I want more people participating in "language wars" to understand. There is not much sense to compare projects that pursue completely different goals. And having a background in programming language design surely makes understanding of solutions and compromises a lot easier.
- steveklabnik 2y agoI have said this recently a few times: I have found that most of the time, various people involved in working on languages themselves have far kinder attitudes towards other languages than their respective communities tend to. I've always chalked it up to some sort of collegial professionalism, but maybe understanding the tradeoffs more deeply is an aspect of it too.