2 ms·
The blog post (and Ruby's) emphasis on programmer happiness really resonates with me: other than Rust (which induces programmer happiness for fairly different r
by woodruffw 3y ago
The blog post (and Ruby's) emphasis on programmer happiness really resonates with me: other than Rust (which induces programmer happiness for fairly different reasons), I've seldom run into a programming language and ecosystem that tries so hard to make programming mirthful.
(Does that make Ruby a good programming language? That's unclear to me; what's clear is that I have fun writing it.)
- drewcoo 3y ago> I've seldom run into a programming language and ecosystem that tries so hard to make programming mirthful. Perl felt like that in the 90s. Ruby (not Rails) seemed like it was trying to do a better Perl - better OO, better functional style, better syntax, etc. Both of them inspired a lot of things in other languages. And lots of people groan and complain about both of them today. From what I can tell, a lot of complaints are from people who don't really like to code. Expressiveness means choice and that means thinking about coding instead of just following a "one way to do it" pattern over and over. Thoughtful coding, making something unique and making it easier than other examples, is also the kind of coding that LLMs can't do - they only munge together mediocrity out of what exists.
- jes5199 3y agowhen Ruby was up and coming, people compared it to Perl a lot, but I never saw the similarities. I guess they both have first-class regexp. But ruby has very standard semantics, almost interchangeable with Python and Javascript in most cases. Perl… like, I would have to look up “how to access a nested array” because its sigils, arrows, and types form such an alien system
- mech422 3y agoIIRC, the comparisons were because Ruby was supposed to be a fully object oriented 'perl-like' language. Even the name was a nod to its Perl based inspiration.
- vidarh 3y agoRuby shares command-line options with Perl, the use of sigils, many of the single character globals. Besides Smalltalk Perl is probably the biggest influence on Ruby, but the Perl influence is more superficial.
- jes5199 3y agoto me, using sigils for scoping rules is a completely different idea from using sigils to declare types
- lmm 3y ago> From what I can tell, a lot of complaints are from people who don't really like to code. Expressiveness means choice and that means thinking about coding instead of just following a "one way to do it" pattern over and over. Thoughtful coding, making something unique and making it easier than other examples... The complaints are from the poor suckers who had to maintain that "mirthful" code after it was written. Writing greenfield code is already fun in most languages; understanding existing code is already the hard part, and having to decode the "unique" thoughts of whoever came before you makes it worse.
- imnotreallynew 3y agoThere’s a lot of praise for Rust in these comments. I always understood Rust to be for low level “close to the metal” sort of software. Is it at a point where it’s suitable for writing web applications? I know it’s “possible” with frameworks like Rocket, but I’d like to know if Rust is at a point where it can compete in the web app space with Rails, Go, Node/Express, etc.
- drdaeman 3y agoIt sure can, but you can't be as sloppy as you can be with Ruby, Python or JavaScript or Go. It's a high-level language, it just has its own rules that encourage correctness and prohibit sloppiness (which is a de-facto standard in the webdev industry, especially when prototyping rapidly by throwing shit at the wall and then letting whatever stuck live in production until it's no longer manageable). For better or worse, Rust simply doesn't forgive a lot of things that are easy to do elsewhere, like not caring about less probable scenarios. And, again, for better or worse, you also have to satisfy the borrow checker, where in other languages there's simply no such thing. Which is sometimes easy as calling clone() (not always a good idea), but sometimes can be quite a headache thinking about value lifetimes and how you just can't have something somewhere else (which can be super subtle so you wouldn't normally think about it in other languages with GC).