Hacker News new | past | comments | ask | show | jobs | submit login

Antoine de Saint Exupéry once said,

    'If you want to build a ship, don't drum up people to collect wood or assign them tasks and work. Instead, teach them to long for the endless immensity of the sea.' 
This resonates with how I feel about programming languages. Python might be more practical, but does it ignite a passion for coding like Ruby has historically done? I remember dabbling in Python, Perl, and JavaScript (ES5) back in high school, but it wasn't until I rediscovered programming through Ruby that I truly began to enjoy it.

Nowadays, I might not default to Ruby for new projects, having moved on to OCaml and Elixir, among others. Yet, there's something about Ruby's community (its charm and gentleness,) that's missing in many others. This nurturing environment is invaluable for beginners. It's noteworthy how members of the Ruby community, like José Valim with Elixir, Yehuda Katz with Ember.js and Rust, and Chris McCord with Phoenix, have carried this spirit of playfulness and a deep care for developer experience into other communities they've joined.




This is more or less personal preference though. When you say that Ruby ignites a passion for coding for you then that might not happen for other people. For example I only feel a headache when I look at Ruby code.

For context: I worked with C, C#, some Python and now mostly work in Go.


How often do you see people describe that kind of passion for Python? Maybe for lisps, Erlang, Haskell, Smalltalk. It may well put some people off, that's fine, but personally I dread it when I have to work with languages that don't instill that kind of passion.

There are plenty of things I'd like to be different about Ruby and the tooling, but with Ruby I feel like I'm crafting something that at least has the potential for elegance, whereas looking at Python code is like staring at a brutalist building that spews its innards all over its surface.

(and yes, I realise some people love brutalist buildings, and I can too, sometime, when particularly well done, and that's why I chose that example - it's possible to do amazing and elegant things in any language, even - as ugly as I personally find it - Python)


At least when I was learning Python (which admittedly is over a decade ago at this point), there was a lot of that passion for Python and what made it great - you'd get things like the Zen of Python quoted, there was the "import antigravity" XKCD comic, a lot was made of things being "pythonic" and "for humans".

I think the major reason for cultural change is that there's fewer people learning programming for fun, and more people learning it either because it's mandatory or as a career path. In which case, the humour and culture that comes out of that is naturally going to be different. I think that's affected Python more than Ruby just because Python is more widely used, particularly by these newer developers. As a result, there's been less cultural shift in Ruby than in Python.

So I think in a sense, you've got the cart before the horse. Python has less of the twee humour now because it's more widely used by newer developers, who in turn are no longer treating programming as a hobby and instead as a career. That said, I can imagine if you want to teach the joy of programming as a hobby, Ruby might be a better choice. Although with that said, I feel like a lot of the hobbyist Python community has moved to things like Raspberry Pi and MicroPython, so maybe it's just a case of finding other hobbyists and doing whatever they're doing: the community is more important than the tool!


I'd agree there might have been more before, but even back then I didn't see the same level of excitement for the language. For specific uses, sure.

But most Ruby use is "corporate" as well - its use is dominated by Rails shops. The "joy of programming" aspect of Ruby is partially embedded even in corporate Rails use, but also outside of it. It may well have hampered Ruby growth, but it's also not something I think would disappear if Ruby use increased.


In the mid naughts ruby/rails was catching on and rubyconf was getting bigger, but the events were on the _weekends_ because most of these were people doing it for fun and not able to expense it to their employer or get time off. There was pushback from prominent people about how ruby was no longer an insurgency and needed to grow up and have employer-paid conferences, which got a nice response from _why the lucky stiff which I can no longer find.


Don't underestimate Perl's influence on Ruby and its community. Larry Wall's TIMTOWTDI (There Is More Than One Way To Do It) is the essence of what differentiates Perl and Ruby from Python and why creatives tend to gravitate to Ruby. You don't build a creative community on the principle of there being only on way to do something.


I think Ruby is polarizing. It is the only language I have used that I feel a genuine dislike for. Other people I have talked to feel the same. Then there is a group who loves it.


For me that language is Python (well, and x86 assembler). Python just feels fundamentally inelegant and messy to me, in a way that makes it tedious to read and write. I'll work on it if I must, but thankfully I rarely must.


Agreed. Python is the VHS of programming languages.


> How often do you see people describe that kind of passion for Python?

It's part of modern science/technology culture to indiscriminately hate the most widespread things.

Personally, I find Python simply amazing and delightful to work with. And I consider its syntax, especially semantic indentation which eliminates so much visual noise, to be the best among all languages that ever achieved widespread adoption.


> It's part of modern science/technology culture to indiscriminately hate the most widespread things.

This is evasive. How often did you see people describe Python that way before it became as widespread as it is now?

> And I consider its syntax, especially semantic indentation which eliminates so much visual noise, to be the best among all languages that ever achieved widespread adoption.

And for me it is why Python will never even make my top 10 preferred languages, and is a language I actively avoid when I have a chance, because I find it visually absolutely awful. I'd suspect (yes, it's pure speculation) you'll find about as many people who detest Python over that alone, as who find Python "delightful". Useful, sure, but finding people who describe Python as delightful is a rarity.

But as I said, some people find brutalist architecture to be amazing too, and that's fair enough.


> This is evasive. How often did you see people describe Python that way before it became as widespread as it is now?

Quite a lot back in the early 2.x era before the Rails hype first kicked in. It really was a breath of fresh air compared to VB, Perl, JS, early Java or PHP of the time. It had a concise elegant clarity and consistency missing in other mainstream languages back then. And it was a relatively unknown underdog.

eg relevant to HN, here is PG talking about Python 20yrs ago: https://paulgraham.com/pypar.html

I've spent the last decade in Ruby shops and not done much Python recently, but I still miss those early Python days. Ruby never gave me the same sense of happiness it gave others and there are still things I prefer about Python. But it is subjective and I couldn't objectively say Python is better than Ruby.

Things are very different now - it is a much larger language with a much longer history to trip over, pulled in multiple directions with conflicting expectations, and the user base has changed from that small passionate dedicated community to being the intro to coding blub language that Java or PHP used to be where the average skill level is much lower.


Ive been burned too many times by semantic indentation, (by mostly HAML and CoffeeScript though.)


Helm charts... (Yaml). Of course made far worse than necessary because the tooling is awful.


People have different ways of expressing passion. I like Go a lot, but most of the time I'll say that it "just works" or "gets out of the way". But I have a real passion for the way Go was made for software engineering rather than programming. I wouldn't describe Go as elegant, and not as brutalist either. It kind of feels like home to me. We don't have an equivalent to that Exceptional Creatures website, which I find beautiful. But we have my favorite technical writing ever. It's always a joy to read something written by Rob Pike, Ian Lance Taylor, Alan Donovan, Russ Cox, and lots of others.


You can love programming in a language, or you can love making programs, or be somewhere on the gradient between them.

Go, for example, is aimed at people who love making programs.


I think you missed my point, Its the community around a language that creates that "longing for the endless immensity of the sea." Not the language itself.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: