Includes talk about concurrency and performance topics:
Corresponding tweet for this thread:
Share link for this tweet.
Argh, Iām so behind on all the conference videos! I still have 14 tabs open from RailsConf.
Iām the sameā¦ but for books
Surely you mean 1400 and not 14, right? RIGHT?!
A bit of a hater comment incoming:
On a more general note, I never did have anything against Ruby in general, letās make that clear from the start. I liked working with it for quick scripting, actually a lot. I can see why Macās Homebrew is written in Ruby.
That being said, Matsumoto in general has been very disconnected with the real world programming. I watched many interviews and he always struck me as a shy guy writing manga slash-fiction for middle-schoolers. Kill me if you must but I trust in my experience with people. Heās one of these people that āplays with technologyā and then people get crazy about what he invented. One of the people whoāll naively tell you ājust follow your dreams, itās that simple!ā (while likely not having to think about bills and college funds ).
It took him like 10 years to admit that having first-class baked-in parallelism and concurrency that are painless and less likely for the devs to shoot themselves in the foot with, is a good thing to have. WTF? How is this guyās opinion on technology relevant at all? Why should he be listened to? Heās not living here on Earth where we must work for money and maintain projects for years, thatās for damn sure. Heās likely handed money because of his reputation. In the evolutionary sense, his thinking likely stagnated in his privileged positive bubble.
I moved on from Ruby (mostly from Rails though) for good 5 years now and my opinion on the topic is likely worth nothing but then again, time and distance give you perspective which IMO shouldnāt be ignored either.
So here it comes:
Ruby is worthless apart from being a very nice scripting language. Itās NOT suited for web apps (yes, even with Rails in the picture) and itās NOT suited for any data science or algorithm coding as well.
Iād only use Ruby just as far as not having to use bash/zsh for scripting.
Sorry if this is too negative but I had to get it off my chest. Strong personal opinion that need not be respected: Ruby should just be forgotten. They can try hard emulating actors and JIT but itās a waste of energy and a fanboyism taken to the extreme where people just forget that other technologies exist.
I agree with some of your points. But, Ruby should just be forgotten
is just not possible at all.
There is so much stuff built with ruby, you could as well be saying PHP/Javascript should be forgotten
.
Sure the language is not perfect (by a loooong shot), but since we are talking Real World/Planet Earth we both know the only way on the near future for languages like ruby is to move forward and accept it wont be perfect but can always be improved.
Yep, thatās true. We canāt eliminate it or anything, itās just my opinion that continuing to work on Ruby is a meaningless waste of energy driven only by sentiment.
Rewriting the MRIās core in Rust or Zig would be a more valiant effort, for example. But even that wonāt help because the way Rails works just makes Ruby crawl to almost a halt so. Making a sub-set of Ruby that does away with mutability would probably have the maximum impact however.
But hey, I am getting a bit more realistic and somewhat jaded with the tribal nature of the programmers at large and I seriously am not impressed by most work these days. Especially with everyone and their dog inventing new languages left and right.
Thereās creative chaos that helps us find good ideasā¦ and then thereās this age where individualism trumps all other concerns because yeah, I am absolutely sure that person X is exactly the one who is going to figure out the perfect language exactly today. Sigh.
But yep, back on topic, I agree with your take. Itās just that what I said was partially influenced by emotion (but still stand behind what I said) ā I am aware that Ruby wonāt cease to be used just like that. Thereās too much money and legacy involved for that to ever happen. My thesis is: Ruby is a lost cause at this point.
Itās your opinion and you are entitled to it however I think a lot of people might disagree with youā¦ me included
I love Ruby despite its faults, it is still one of the nicest languages around. I really canāt overstate the importance of how intuitive and natural feeling a language is for users like myself.
Again I wouldnāt agree with that, and if that was the case then nobody would be using it in a āreal world/professionalā setting, yet, time and time again we see it being used on projects like Github, Shopify, etc
Some might argue that itās actually very connected with āreal worldā programmers - it has always intended to be a programmers best friend after all
I donāt think following your dreams is a bad thing Dimi
Ruby has helped inspired some awesome languages - just look at Elixir, and others like Crystal and Coffeescript. If there was no Ruby, itās possible we would never have seen Elixirā¦
Heās not alone there, few languages can match Erlang on that front and Erlang is so ahead of the pack because they needed those features a lot more desperately in those sectors many decades ago.
A lot of people make a good living out of programming Ruby, and for the most part they enjoy it (I would say a lot more than a lot of other languages).
Itās good to know that you have some uses for it
And I think thatās the beauty of having a number of viable languages - you can almost always find one for the task you have in mind. For you and Ruby that is scripting, for others it is web dev, for others it might be hybrid apps with RubyMotion, or frontend ones with Opal.
Ultimately everyone has different tastes and those tastes are not static - they change as we get to experience new things. I for one am very grateful to Matz and everyone involved in Ruby for making it possible for me to experience it
And I canāt overstate how little that matters when you have a job to do.
Although I canāt deny, Elixir is a bit of both and thatās why itās a very loved language.
No correlation between both. Matz just did a few things, other people liked it and picked Ruby up to where itās at today. Matz himself has very little to do with Rubyās success, heās the āvisionaryā who started the whole thing. That is what Iāll give to him. A lot of much more serious and professionally oriented people made Ruby succeed ā not him.
Fully agreed on that and IMO it should stay that way. āHey, look at the language that could have been so much more but at least it inspired Elixir and a few othersā. Thatās its role.
Yep, I concede this, although Rust is fairly close lately, and OCaml are poised to do the same after their 5.0 release in eight or so months.
Which in our real world has zero correlation with actual merit. I know at least 10 programmers who curse their lives for having to write Python but (a) they donāt have the political clout in their company to change this technical decision and (b) donāt have passion for the profession, they are just regular folks who are attracted to a lucrative profession.
Letās not forget the adoption phases of stuff, Aston. Most people simply hop on a bandwagon. Merits were a criteria only at the start.
As a slight tangent, Rails was undeniably much better than the state of the art at the time. The world has moved on though (and I donāt only mean Phoenix; modern PHP Laravel is also quite good even if PHP itself is total meh).
Sure, I agree. But IMO (a) thereās now too many of them and (b) people hold on to nostalgia and/or the ābut I donāt want to learn new language!ā sentiment for far too long.
Nothing I can do about that of course, I can only point it out.
I guess we will just have to agree to disagree
But, back on topic. Iām really excited to see the core team focus on tooling.
Language server integration with RBS is a must. All tooling arround RBS in general needs a lot of love.
The āpackagingā problem he mentioned is something that always bothered me too, sure global require
is convinient but I think we could have import/export
semantics like ES6.
Where I agree with @dimitarvp is that I dont have high hopes on huge performance improvements, unless async stuff like GitHub - socketry/db-postgres (https://www.youtube.com/watch?v=Y29SSOS4UOc) becomes mainstream.
Never say never Cassio - remb Java used to be a hog and look at it now
But it does matter to a lot of people, particularly evident when choice is involved - such as when a project decides to use Ruby over another language. Maybe it matters little to you, but from conversations Iāve had and witnessed, I know it matters to a lot of people
In languages, one person alone canāt do it all themselves - this is true for pretty much every language out there
When I think about what helped get Ruby off the ground and what might have helped make it popular/successful, a few key things come to mind:
- Ruby and its creators choices/design itself
- Dave Thomas writing the pickaxe book (thus making Ruby accessible to more English speakers)
- DHH creating Rails (thus proving a ākiller appā that allowed people to use Ruby in a substantial way in projects)
- Key players spear-heading a friendly community - eg MINSWAN (and on community platforms like the Ruby Forum - which was around long before Stack Overflow, and through conferences like Ruby Conf, which people felt part of even when not present)
- Ryan Bates and Railscasts (which made Rails very accessible)
- All the other authors, content creators, bloggers, gem-makers, newsletter-creators, etc
Thatās an oversimplification, but the story is probably not too different for numerous other similar languages. I donāt think itās fair to say Matz had little to do with Rubyās success tho, he created it after all, and was the person that inspired most of the people that went on to do the other important key points above
Thatās coolā¦ and, Erlang (and Elixir) will keep moving forward too - perhaps the Erlang team are already working on something that weāll need more and more a couple of decades from now
Standing still in tech is very dangerous - as our understanding and experience increases, newer/better ways of doing things are always emerging and in this space I think you really do have to keep evolving and progressing otherwise you might find you get left behindā¦
I was like that at one stage - and I think part of it was because I still had loads to learn and being able to do it all (web/mobile/desktop) via one language would just have made things easier. I still like the idea, but am more open and inclined to try and reach for the best tool for the job (depending on the job - some projects allow more of a compromise in some areas than others).
Wanted to end on this quote because I just wanted to highlight that what you think has merit may not be the same as what others might think, and for me at least, I think the important thing is that if something or some tool can enable people to make cool things, or better still, make the world a better place, then thatās gotta be a great thing
Hopefully we can agree on that
Iām not going to try and shift the meaning of āmeritā, thatās not what I was saying.
I was saying only that actual merit, no matter what it is, plays a role only in the first phases of an innovative technology. After that, hype sets in and most people adopt the said technology due to network effects.
That was my point. Do you disagree with it?
We agree on 99% of all of this anyway, Aston. Weāre only discussing opinions as far as Iām concerned and thereās no ill will.
If we say merit equals perceived āplus pointsā or benefits, then yes but itās important to note that these āmeritsā are the driving force or ammunition that those ānetwork effectsā rely on - so usually, in this space at least, the hype has to be grounded in some sort of reality or in some way that is meaningful to the prospective adoptee.
For tech like Erlang that could be very much about the technical aspects, for other tech, say something like React, Go, or Swift, things like who made it could compensate or mitigate them maybe being not so technically good. There are of course other reasons too, such as language design, type of tooling available, etc, but whatever it is itās usually something that can be capitalised on to drive adoption.
For some people a language backed by a tech giant may be enough. For others it could be one that has technical prowess and powers huge systems like Whatsapp and for others it could just be that the language is āfunā or nice to use - whatever it is, itās usually something that draws that person to it or could draw that person to it.
I think groundless hype can only get you so far in the dev space because most people are at least somewhat technically minded - probably why we see so many ānext big thingsā in JSā¦ they seem like a good idea at the time but on closer inspection or after some experience it transpires that they werenāt all that after all
We agree on this. Where I think we kind of are passing each other along the way is this: when is merit important. I am saying that itās only important during the initial adoption phase, you are saying that it matters all the time. Itās OK to disagree on that.
But Iāll allow myself the liberty to point out that you are very positively biased. By your sound, you never āworkedā in your life and always picked jobs that you liked/loved and which piqued your interest. I would also like to point out that most programmers are NOT in this group of yours.
I am mentioning this simply to draw attention to the myriad of miserable teams I knew who were struggling with legacy Rails mastodons. They didnāt seem to think Ruby or Rails have any magic in them.
So you know, we can concede that weāre both rightā¦ in our own bubbles. More often than not, Iāve seen the very ugly side of commercial programming where people started out wide-eyed optimistic and ended up jaded cynics who hate every minute of their work at no older than 25-26.
Thatās correct but where we seem to have a differing assessments here is how long it takes. People eventually got sick of C++ and made Rust but it tooks DECADES. People got sick of Angular.JS and made React, but it took no less than 5-6 years.
So even though you are right ā devs get tired of inefficiency and iterate further ā it sadly is a very slow process.
I completely understand where youāre coming from, and it sounds like the distinction you are making is between developers who are ātoldā what to do/work on (most hired developers) as opposed to developers who choose what to work on (most business owners/startup CTOs etc).
The second group includes people like DHH (Basecamp) and other startup entrepreneurs (like the team who created GitHub) all the way to independents who work on projects ranging from small to large (resulting in varying revenue that can, and often is, in 6 digits or more). I certainly wouldnāt say these people have ānever workedā, hence me coming to the conclusion in the paragraph above.
I think if you fall in the first group (hired devs) you are unfortunately almost always not going to be entirely happy - because youāre not getting to decide what tech to use, how/what methodologies to use or how to architect the system, what exactly to work on etc, and youāre probably also going to be maintaining or working on stuff that someone else has made - and while it may have been put together to their exacting tastes or preferred workflow, it may not (probably will not) be to yours.
So the problem isnāt whether you are a working dev or not, itās what type of dev you are - one that is hired to work on something (which they prob wonāt completely like) to one that can choose exactly what they work on and how they work on it. Thereās no surprise the latter are going to be happier and I think my best advice to anyone who falls in the initial group is to either keep looking for a job that better suits your style/tastes, or, try to move into the second group - i.e. work for yourself or try to find a position or company which better reflects your own practices or where you can work on what you want.
I really do sympathise with anyone who anyone who falls in the initial group and who is deeply unhappy with their situation, I sincerely hope things get better for you whoever you are, HUG. Lifeās too short to spend on things that make you unhappy, and so I would strongly encourage you to find something that makes you happy and helps you live a more fulfilling and content life.
I think itās inevitable that as we become more knowledgeable about stuff, people will spot problems earlier - so hopefully we wonāt be stuck with bad tech for as long. Hereās hoping anyway!
I happen to agree with almost everything @dimitarvp has stated about ruby, and Iād also apply it to Python. There are older languages that did what both of those did, but significantly better, and fits in the same type of work as both of those as well, for example OCaml is a HUGE one. OCaml easily should have been what python and ruby became as it is succinct, it ācan beā just as magical (though thankfully the ecosystem tries to not do that stuff), itās strongly typed so you get errors at compile-time instead of run-time, it compiles even faster than python and ruby (which yes they do compile before executing) and it can be used as a scripting language, and at worst running in its interpreter itās still faster than python and ruby and when fully optimized compiled makes fully standalone self-running binaries of native code that is about C speed.
I donāt like python and ruby, they are both very very poorly designed, and I donāt know how they got popular when every single positive thing Iāve heard said about them also applies to OCaml and a great deal more, and yes I say this knowing python (though not ruby) very very well.
There are just so so very many design and productivity issues in python and ruby, and their users donāt see it, mainly just because they donāt seem to know any better languages in that same field. Whenever the only tool you have is a Hammer, then everything starts to look like a nailā¦
The amount of times Iāve experienced exceptions of code that just shouldnāt exception except purely by language faults that shouldnāt exist in python still bugs me to this day, and yes this is so fresh because I just hit another python one in a root system package on debian that bugged the tar out of me this morningā¦ >.<
Well, after 10 years working with ruby I can assure you that I am very painfuly aware of almost everything that can go wrong on a ruby project (and, for all the good its done in the past, Rails is the number one cause of bad things happening in a project in my opinion)
Butā¦ my friends, I totally understand the dislike for ruby, or python, or js, or rust. Everyone knows the tecnical shortcommings dynamic scripting languages have, I cant simply choose to not use ruby anymore and dont care for the language future.
Given the oportunity would I rewrite everything in Elixir or F#? Absolutely!
Can I realistically expect to do so? Absolutely not !
Why not though? Iāve changed main language focus in my career like 5 times at least.
Itās tough of course, but very doable still.
Well, now Iām not sure I follow you dimi
You just pointed out that most programmers are NOT in the position to pick what they work with, and you are absolutely right.
Iām not saying that I choose ruby and wont switch because its hard for me.
Its hard for the company, we are a very small startup and have a ton of ālegacyā code.