Live data from Hacker News

Type resolution redesign, with language changes to taste

ziglang.org

281–284 of 284 posts

Re: Type resolution redesign, with language changes to taste

#281
post #279
post #277

Earlier quoted context omitted.

> The problem is, Rust isn't really object-oriented either. I'm interested in a mostly consistent and hopefully majority definition. May I suggest "programming language"? I think you will find that most everyone agrees that Rust is a programming language. In context, it's functional, but I think you rejecting that historical definition means that you agree with me that the attempt at categorization here doesn't provi…

> So, the question here is: What specific information is it that you think is failing to be effectively communicated? Expressivity. As the video I linked before shows, there is a quantifiable and objective difference between a language that has exceptions and one that doesn't. Or lambda's or async. What terms like "message passing" and "inheritance-based" capture is unique ability of each language to do something nov…

> Expressivity.

Then you might say that Rust is an expressive programming language. But then I'm going to ask: What does expressivity mean?

Ruby is always hailed for its expressivity. Is it also an expressive programming language despite having very little in common with Rust technically?

It seems to me you're going back down the road Kay did thinking that "object-oriented" could become the way to describe his actor based, message passing model. It never caught on because what that means isn't well understood and had to be explained in more detail, so a single word didn't add any value, and thus nobody ever took note of it.

> there is a quantifiable and objective difference between a language that has exceptions and one that doesn't.

Well, I suggest we have a way to say that: {X} {has|does not have} exceptions. The terminology there already exists and is commonplace, as far as I see. If you need to talk about multiple features, then make it a list: {X} has exceptions, lambdas, and inheritance. Laundry list of features are easy to describe. It is when one wants to speak more conceptually that it is harder to find something of actual value as it is usually the concept that you want to explain.

And maybe that's all you really need to get the information conveyed here? "Rust is a programming language" → "Rust is a programming language that has x, y, and z."

Re: Type resolution redesign, with language changes to taste

#282

What makes zig special as a language? I have the impression that it has quite a large fan base here on HN but don't really hear any talks about it anywhere else.

For me, it's the toolchain. The Zig cross-compiler is beyond anything I've seen.

Re: Type resolution redesign, with language changes to taste

#283
post #93

Earlier quoted context omitted.

My take, unfortunately, is that Zig might be a more modern C but that gives us little we don’t already have. Rust gives us memory safety by default and some awesome ML-ish type system features among other things, which are things we didn’t already have. Memory safety and almost totally automatic memory management with no runtime are big things too. Go, meanwhile, is like a cleaner more modern Java with less baggage.…

Zig gives things we really dont have yet: C + generics + good const eval + good build system + easy cross compilation + modern niceties (optionals, errors, sum types, slices, vectors, arbitrary bit packing, expression freedom). Are there any other languages that provide this? Would genuinely consider the switch for some stuff if so.

+1 The zig toolchain is the state of the art currently.

Re: Type resolution redesign, with language changes to taste

#284
post #281
post #279

Earlier quoted context omitted.

> So, the question here is: What specific information is it that you think is failing to be effectively communicated? Expressivity. As the video I linked before shows, there is a quantifiable and objective difference between a language that has exceptions and one that doesn't. Or lambda's or async. What terms like "message passing" and "inheritance-based" capture is unique ability of each language to do something nov…

> Expressivity. Then you might say that Rust is an expressive programming language. But then I'm going to ask: What does expressivity mean? Ruby is always hailed for its expressivity. Is it also an expressive programming language despite having very little in common with Rust technically? It seems to me you're going back down the road Kay did thinking that "object-oriented" could become the way to describe his actor…

> Then you might say that Rust is an expressive programming language.

That's not what I mean. Expressivity allows you to objectively test if two languages are different. The functional/objective/imperative are trying to capture some expressive features.

Using expressivity, you can finally put a Turing machine to that feeling and test it.

> The terminology there already exists and is commonplace, as far as I see.

Missing the point. Message oriented language captures the expressivity of having the ability to send and receive arbitrary methods. This is what I mean.

If OOP or MOP is just a marketing term, then it carries no value.

Post reply on HN