3 ms·
It's very interesting to note that you can build and maintain meta web framework like RoR with Ruby, Django and even D language. Go and Rust are amazing langua
by teleforce 2y ago
It's very interesting to note that you can build and maintain meta web framework like RoR with Ruby, Django and even D language.
Go and Rust are amazing languages, but why can’t they produce a Rails-like framework?
Is it just a matter of time before Go/Rust create a Rails-like framework, or is something fundamental preventing it?
Perhaps this article by Patrick Li (author of Stanza language) has the answers [1].
[1] Stop Designing Languages. Write Libraries Instead:
https://lbstanza.org/purpose_of_programming_languages.html https://lbstanza.org/purpose_of_programming_languages.html
- the__alchemist 2y agoI'm wondering this too. Lots of rust web promises, but so far all we have are Flask-likes, and statements-of-intent. Give it time? If you ask about this in rust communities online, they will tell you they don't want something like this, that Actix etc do everything they need. I'm baffled! Maybe they're making microservices, and not web-sites or web apps?
- searls 2y agoI seem to observe that people drawn to rust are into systems programming and people drawn to rust are into minimal services programming and any attempts at building a batteries-included CRUD framework are so against the grain of the community’s common interest that it never goes anywhere. Ruby, meanwhile, optimizes for programmer happiness and Rails optimizes for programmer productivity. What other language-framework ecosystem has the same values alignment?
- the__alchemist 2y agoMakes sense. My thought is, while Rust shines in a low-level setting,(Systems programming, embedded, performance-sensitive scientific computing etc) it has enough niceties that I want to use it elsewhere. Package management, enums, result and option types, clear error messages, expressive data structures etc. These are (to me) not enough to make up for the lack of a batteries-included web framework.
- zzzeek 2y agoDynamically-typed scripting languages like Ruby and Python are well suited to a lot of the kinds of patterns used by the "easy" web frameworks. Once you get into a statically typed, compiled language, the language itself is oriented towards up-front formality which make various "convention-oriented" patterns awkward and ill-fitting to the language.
- do_anh_tu 2y agoI would love to see RoR/Django but in Julia. Performance and easy to read code.
- brightball 2y agoRuby's super power is malleability. Rails isn't just a web framework in Ruby, it actually modifies Ruby to make it a web language. It's the reason Ruby has been used to create so many DSLs too. That creates the closest thing I've seen in the wild the Aspect Oriented Programming, as it was explained to me in grad school at least. The ecosystem is pretty incredible because of it. I'm about as big of an Elixir fanboy as you'll ever meet, but I'm constantly mentally torn between Elixir and Rails as the best options for projects because of this aspect of Ruby.
- Alifatisk 2y ago> Is it just a matter of time before Go/Rust create a Rails-like framework The key to Rails is the Ruby language, it's very flexible. Someone were able to meta program Ruby code to the point that it was able to run JS code.
- oparin10 2y agoIf you're willing to go the meta programming route, Rust is pretty flexible too. You can literally run python inline using macros.[1] In my experience as someone that has been using Rust for a few years (and enjoys writing Rust) the biggest issue regarding adoption is that async Rust just isn't there yet when it comes to user experience.[2] It works fine if you don't deviate from the simple stuff, but once you need to start writing your own Futures or custom locks it gets to a point that you REALLY need to understand Rust and its challenging type system. [1] - https://github.com/m-ou-se/inline-python https://github.com/m-ou-se/inline-python [2] - https://blog.rust-lang.org/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering.png https://blog.rust-lang.org/images/2024-02-rust-survey-2023/w... | (Full Survey: https://blog.rust-lang.org/2024/02/19/2023-Rust-Annual-Survey-2023-results.html https://blog.rust-lang.org/2024/02/19/2023-Rust-Annual-Surve...)
- Alifatisk 2y ago> If you're willing to go the meta programming route, Rust is pretty flexible too. You can literally run python inline using macros.[1] I didn’t mean like embed another languages runtime, I meant that they monkey patched Ruby to the point that they where able to run Javascript syntax as if it was plain javascript code. It didn’t have the js runtime embedded, it was all still Ruby. The point was to showcase how much you can flex and bend the language and turn it into whatever DSL you like. I’ve been trying to find the video but can’t find it, I believe it’s from RubyCon.
- modernerd 2y agoLoco is worth keeping an eye on for Rust: https://loco.rs/ https://loco.rs/ The Go community is more framework-averse, preferring to build things around the standard library and generally reduce third-party dependencies. Go also tends to be used more for backends, services and infrastructure and less for fullstack websites than Ruby/Python/PHP/C#.
- jackbravo 2y agoOr if you want more Next.JS like, but still fullstack framework there is https://leptos.dev/ https://leptos.dev/ and https://dioxuslabs.com/ https://dioxuslabs.com/. Maybe dioxus being much more ambitious in its scope (not just web).