Why do languages, like #rust, for example, need so many new features?

@tomekw Not all of them require, many factors at play.

But #Rust to guarantee safety brings abstractions to a very high level, in result, to allow flexibility in getting things implemented fast it needs a lot of (proven) features. Some may argue these may be ceded to libraries (crates), but then we have a scrutiny issue of our supply chain.

@michalfita does it NEED them, actually?

Call me an ignorant, and by no means I want to fight #Rust. I’m happy it exists and it’s great. I just think we, as people, love to reinvent the wheel. I can’t stop thinking we had Rust 40 years ago, but simpler and called #AdaLang.

@tomekw Nope, we didn't. #Ada has safety mechanism utilised in run-time, like #Pascal does. #Rust is first language with practical implementation of a compile-time borrow checker for native compiler, while the actual science behind it wasn't new.

In #Ada productivity is low as you have to chisel your code, compile and run to check for correctness, while in #Rust the compiler stops you for knee-shooting attempts.

@michalfita I think it works both ways: if you don’t know #AdaLang well enough, you have to fight the compiler, if you don’t know #Rust well enough, you have to fight the compiler / borrow checker as well :)

I do not agree with the sentiment of one tool being more or less productive than the other: I am amazed how productive I am with Ada.

Skills > tools.

@tomekw I'm more productive in #Rust than in #Python. The consistent nature of the standard library makes conversion of thoughts into code easier and less prone to stupid flops, that Python then throws at you during run time.

I didn't program in #Ada, I read about it, run some example and talked to some people using it. The opinion circulating about it is that it can be tedious to write large Ada applications or even systems.

@michalfita @tomekw Rust solves a class of errors that require more knowledge to solve in C, but a really good C programmer would avoid those errors as well. Rust is more about ensuring that ALL programmers can avoid those kinds of errors. The cost though is more complexity when writing your code. That complexity does reduce coding speed on average.

@rayk @tomekw It's my experience that convinced me the #Rust is the right way, despite things I don't like or lack of things I like.

The reason of why new projects in #Rust pop up like mushrooms are in fact Rust's complex features and safety mechanisms. It makes people confidently build more advanced stuff quickly.

2/2

@michalfita I’m sceptic about “more advanced stuff quickly”. My prime evidence: web frameworks. Everything I saw in Rust is barely at the level of the most primitive frameworks in Ruby/Python. Rails is being shat on for being a resource hog and stale and stagnant but it's literally decades ahead in terms of features and DX. Sure, your axum microservice can handle a billion requests a second but you spend 2 days building a mildly complex form while in Rails you can build a whole damn blog/cms in 15 minutes.

@rayk @tomekw

@pointlessone @rayk @tomekw I'm afraid you have biased view. There are two angles to the "web frameworks".

1. #Axum and #Rails don't even play the same sport, the former's performace comes at cost of orders of magnitude more complex implementation; it was never intended to be #Django in #Rust

2. The fact we have web frameworks in Rust is "an accident", the language was never intended to specifically write ones. Rust is a proper system programming language, the same class as C (not #Go w/GC).

@michalfita I'm not sure what point you're trying to make.

  • I didn't mean Axum specifically. I can accept that it put its complexity budget into performance but why noone else put “more advanced stuff” on the features and DX budget?

  • Ruby wan't built for web apps either. It was (and is) a general purpose scripting language. In a way, Rails is an accident, too. There was nothing inherently web-oriented that made it uniquely suited for web frameworks. When Rails started there wasn't even a proper web-server in Ruby. It was plain CGI. So what stops Rust from having an advanced web framework? Let's say, it wont be as fast as Axum but surely it will be faster than Rails. Isn't that enough? Especially if it’s feature set and DX even remotely resembling Rails with types and memory safety on top. Why doesn't anyone build an advanced Rails in Rust?

  • @rayk @tomekw

    @pointlessone @rayk @tomekw There are frameworks in the making aiming for that, more over there are frameworks aiming at that with use of WebAssembly instead of JavbaScript on the browser side. It's just complex problem to crack. Rails is 21 years old.

    The point was you're focused on web frameworks ignoring tons of other stuff built from zero within last 5-6 years, including adding #Rust to #Linux Kernel, #RedoxOS, #Cosmic Desktop and embedded ecosystems.

    @pointlessone @michalfita @rayk @tomekw I think I can at least give you all a clue on why such thing does not exist (yet?). From my perspective as someone in a position to potentially write such a thing the main thing missing is funding and potentially capacity to work on such large expansions. For context: I have some prototype stuff laying around that would make writing that crud stuff much easier for years now, I just do neither have the funding, the capacity nor the manpower to got it into an state to make it public in any reasonable way. If you know how to fix that I‘m happy to hear your suggestions
    @pointlessone @michalfita @tomekw I’ve had some success using yew, but it’s not pretty.