Posted by psxuaw 2 days ago
Also, apart from a quote from David Heinemeier Hansson the home page doesn’t even mention that ruby is a programming language.
For comparison, the following all mention that above the fold, with a short phrase indicating what you would want to use the language.
- https://www.python.org/ has “Python is a programming language that lets you work quickly and integrate systems more effectively. Learn More”
- https://www.perl.org/ has “Perl is a highly capable, feature-rich programming language with over 37 years of development”
- https://www.php.net/ has “A popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.”
- https://www.swift.org/ has “Swift is the powerful, flexible, multiplatform programming language. Fast. Expressive. Safe.”
Python is pretty well known as a data, analytic and machine learning oriented language, and they lean into a more broad characterization.
Perl might be described as dead/dying, and they characterize its development as ongoing.
PHP might be described as a web scripting language, and they characterize it as general purpose and broad.
Swift might be described as an Apple platform a language, and they really want us to know its multi-platform.
A site (re)design starts with determining who’s your audience, and what you want to tell them.
These sites will want to serve both existing and new developers.
What they want to tell them will be different for the two groups, but the existing ones won’t be chased away by a short description aimed at newcomers, but newcomers can easily turn away by the lack of such a description.
As to what to put in the description: it sort-of is an advert, so you often don’t exactly say what you are, but more what you want to be.
https://www.swift.org is a clear example. They definitely want to tell everybody that Swift is multiplatform, giving cloud services, command line tools and embedded development more prominence than iOS apps.
I think they do that particularly well, much better than this ruby site (https://www.ruby-lang.org/en/)
For example, on the swift site, they claim ‘embedded’. If you click on that, you get examples for various platforms such as Raspberry Pi and STM32 (https://www.swift.org/get-started/embedded/). That allows you to verify that claim.
In contrast, this Ruby site makes claims such as 'Easy to write, easy to read. Natural syntax like spoken language’, 'Do more with less code', but it’s not easy for users to check whether that’s true.
Ruby have YJIT, which is a production ready JIT compiler that generates native machine code. But it requires enabling via flag "--yjit" rather than running by default.
Why? I think it's primarily to avoid build time dependencies on Rust and prevent unexpected overhead for users. This keeps binary light and avoids forcing Rust installation on users, especially for those who run interpreter only, where YJIT adds no value.
Note that including YJIT also bloat binaries by 5 to 10MB (Rust static lib + code cache structures) for source builds and complicates cross compilation since Rust targets vary by architecture (focus x86-64 and arm64, not all platforms).
Also, Rails 7.1+ enables YJIT by default, so JIT (to native code) in Ruby is being utilized when actually needed.
The current experimental JIT is ZJIT. And the fastest Ruby JIT Runtime is TruffleRuby. ( I wish JRuby gets more love )