Is Ruby Dying?
New submitter John Moses writes "I have been working with node.js a lot lately, and have been discussing with co-workers if node.js is taking steam away from Ruby at all. I think the popularity of the language is an important talking point when selecting a language and framework for a new project. A graph on the release date of gems over time could help determine an answer. The front page of RubyGems only shows data on the most popular, but I am really interested in seeing recent activity. My theory is that if developers' contributions to different gems is slowing down, then so is the popularity of the language."
Long answer: a better indicator is how many Google queries for the respective languages are issued. And those suggest that Ruby is standing stronger than ever. Ruby is more than just Rails. And just because there is yet another web apps framework, it doesn't mean that the other ones automatically lose traction.
Computer simulation made easy -- LibGeoDecomp
I sure hope so. Ruby is just too much overhead for not enough deliverables. Ugh. Ruby is do "ugh" that it makes me want to use PHP.
It is now official. Netcraft has confirmed: Ruby is dying.
One more crippling bombshell hit the already beleaguered Ruby community when IDC confirmed that Ruby market share has dropped yet again, now down to less than a fraction of 1 percent of all languages. Coming on the heels of a recent Netcraft survey which plainly states that Ruby has lost more market share, this news serves to reinforce what we've known all along. Ruby is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent programmers survey.
You don't need to be the Amazing Kreskin to predict Ruby's future. The hand writing is on the wall: Ruby faces a bleak future. In fact there won't be any future at all for Ruby because Ruby is dying. Things are looking very bad for Ruby. As many of us are already aware, Ruby continues to lose market share. Red ink flows like a river of blood.
Netcraft confirms it (http://everything2.com/title/BSD+is+dying)
-I'm just saying
The cool kids are using Go for their server apps and infrastructure projects.
While their parents are taking real jobs and paying the bills!
Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
You are all fucking bastards who need to get raped by horses.
Seems legit.
yes.
Chef and Puppet are huge in DevOps. It seems Ruby has found its niche.
Now people can spend much more time actually writing applications than writing supporting infrastructure.
"To those who are overly cautious, everything is impossible. "
Node.js invents threading/processes and is webscale.
The best part is once you start coding it you will find yourself with a neat trimmed beard in designer plaid in a hip coffee shop listening to music not even out yet with 2 georgous ladies by your side giggling and being turned on by your most awesome code that is on your laptop screen.
http://saveie6.com/
Ruby as a language is progressing well and Ruby 2.1 will be out soon.
Ruby gems is still active.
Just because it's not getting all the buzz from the young kids doesn't mean it's dying.
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
We had to swallow a dagger and use JavaScript on the client as it is the only game in town. Please someone, enlighten me, why would I use this horrific language on the server side? What exactly am I missing? What is so great about Node.js that warrants having to deal with JS.
No. Next question, is Slashdot dying?
Slashdot will be dead as soon as the new "design" comes out.
(i.e. Slashdot is) - as far as content and quality are concerned. Look at my UID, I've known the site since the beginning. These days I don't really know why I still come here, reddit has MUCH better comment quality on average (not a joke - this includes that the really good comments are easy to spot while the garbage quickly disappears). Slashdot is living off of past glory completely. Back then the moderation system was state the greatest asset - today it's still the same while everyone else continued to develop. I'm not bitter at all - as I said, reddit is pretty good so I know what I read most of the time...
No. Next question, is Slashdot dying?
Slashdot was reported as dying back in 2011.
Damit Jim, I'm a doctor, not a developer in a dynamic, reflective, object-oriented, general-purpose programming language that supports multiple programming paradigms, including functional, object oriented, and imperative.
Thank you, Wikipedia.
The cool kids are using Go for their server apps and infrastructure projects.
While their parents are taking real jobs and paying the bills!
Sadly, those kids are hired and keep chasing the latest and greatest (including jobs) and leave their one trick pony app behind that was written in "the next big thing" language with no knowledge transfer or support.
Those of us in industry are very fed up with Ruby and Ruby on Rails, but I think it's much more because of their communities than it is because of the technologies themselves.
I don't know if there's a polite way of saying this, but far too many of the people involved with those communities are utter disasters who in turn create utterly disastrous software systems. For every Ruby success story we may hear about, there are probably 10 or 20 total disasters that aren't as widely known. The disasters are usually because of the people involved, not the technologies.
Those of us who've been in the industry for many years, if not decades, and have had to engage in hiring over the past 8 or so years will know what I'm talking about. We have to deal with candidates who have no formal education at all in computer science, software engineering, or a related field. They don't even have the equivalent of a single four-month community college programming course. If we're lucky, they've read a single book about web development using Ruby on Rails. (This is ignoring their other serious flaws, such as the complete inability to dress or act with even a minimal level of professionalism; I've interviewed some of these hipsters while they're wearing t-shirts with dumbass sayings on them, and fedora hats.)
Now, having been in the industry for years, I can see right through these people. When they get past HR, they don't get past me. But I can't be everywhere. I've worked with a few organizations lately where the people making the hiring or purchasing decisions in the past didn't know better, and now these organizations have ended up with their very own Ruby on Rails disasters.
The Ruby community may not realize it, but they're getting a very bad reputation in the industry. It's nearly as bad as the reputation that the PHP and JavaScript communities have now. But this is exactly what's expected to happen when dealing with programmers who do shitty work in the first place, or who think it's perfectly normal to write unmaintainable code, or who think it's acceptable to job hop 3 or 4 times a year, or who can't work in a professional manner, or who deliver one under-performing and costly software disaster after another.
At more and more places, "Ruby" and "Ruby on Rails" are becoming synonyms for "costly disaster". That's not the kind of reputation that a programming language or a web framework can have if it wants to survive and flourish past the short term. Maybe the people in these communities don't realize it, but they're losing trust at an alarming pace.
Trends always die.
All-purpose languages that adapt over time are better tools to learn.
You learn more in depth, instead of having certain tasks be very easy.
This is similar to the trade off between wizard-based interfaces and actually knowing what you're doing with an operating system.
Futurist Traditionalism
Is he wrong though? There are no functions in Ruby, are there? Everything has to exist within a class, does it not? Clearly, I am not a Ruby programmer; enlighten me if I'm wrong, please.
This isn't about anyone's "personal feelings" about JavaScript.
This is about the hard, objective facts. This is about basic software engineering principles. This is about a minimal level of professionalism.
JavaScript is objectively a bad language. I really hope that we don't need to go through the list of problems with it, but maybe we should address at least some of the most serious problems. Its type system is very broken. Its object system is a joke (prototype OO is always inferior to class OO; that's why everyone tries to fake classes using prototypes, and the result is always terrible). Its comparison operators are broken. It doesn't offer sensible modularity. It doesn't offer useful namespacing. Its implementations are generally bad, even the ones receiving much investment and effort from large and well-funded organizations like Google, Apple, Mozilla and Microsoft. Its development tools are a decade or more behind those of Java and C++. It's rife with stupidity like semicolon insertion. It has almost no standard library, and what does exist exhibits complete idiocy in almost every respect.
For crying out loud, the most respected JavaScript book is Crockford's "JavaScript: The Good Parts". Almost the entire book tells you to not use significant features of JavaScript! Only a very broken programming language would have a book like that become so popular and recommended.
Professional software developers can only express disgust when it comes to JavaScript. There's just no way that anyone who cares about doing a good job can seriously consider it anything less that a terrible disaster. JavaScript is indisputably a horrible programming language. It's just not possible to suggest otherwise.
Dear Ruby: Please leave Chef behind and go and die in some dark corner. Take rails with you. Thanks.
For quick and dirty scripts, you can just define your methods and variables and not deal with classes. They're added to the main object, much like javascript globals and functions are added to the window object.
Do you even lift?
These aren't the 'roids you're looking for.
No you do not need to place a function in a class.
irb :001 > def add5(x)
:002?> x + 5;
:003 > end
:004 > add5(10)
:005 > add5(12)
2.0.0-p353
2.0.0-p353
2.0.0-p353
=> nil
2.0.0-p353
=> 15
2.0.0-p353
=> 17
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
He probably doesn't expect, or even want, them to wear suits. What some of these Ruby hipsters wear doesn't even approach "casual", let alone "business casual" or anything remotely considered "formal". It's better classified as "freak" or "social outcast".
Too many of them dress, groom and act in a way that makes them come off as total fools. I mean, do I really want to hire somebody who wears thick-rimmed glasses without lenses? Do I want to hire somebody who spends hours styling his mustache, but ignores the rest of his personal hygiene? Do I want to hire somebody who turns every discussion into how his preferred beer or music is trendier or more obscure than some other brand of beer or type of music? Do I want to hire somebody who refuses to take off his fedora, even when in the presence of customers? Do I want to hire somebody who wears clothes in what's likely an intentional effort to stand out like a sore thumb? Do I want to hire somebody who tries to incorporate "irony" into everything? No.
I'm not sure about you, but I don't think it's too much to expect a software developer to wear clean clothing without offensive messages or an overtly distracting appearance while on the job. I don't think it's too much to expect a software developer to shower and brush his teeth at least once on workdays. I don't think it's too much to expect a software developer to be presentable to clients who may expect even the smallest bit of professionalism.
What they wear or how they act on their own time is their business. But if they're getting involved with a workplace of some sort, they sure as hell ought to be at least trying to act like adults, not just oversized children stuck with a high-school mindset and mentality, while on the job.
Clearly I am not in "the web world" and I am seeing this question from an external viewpoint. But I never really saw anybody exciting about ruby or using ruby or praising ruby except one single phd student who was using it to make his experiments repeatable and automatically logged. Sure there is an occasional article on a new version of ruby, a flaw in ruby-on-rails. I heard people talk a lot about PHP, about Python, about javascript, to do pretty much anything. But quite frankly I never hear about ruby. Actually I hear more about LUA than I hear about ruby.
For that reason I never took ruby for more than an hobbyist pet project. Maybe I am wrong, but seen from my chair of low-level programming guy, no one uses ruby.
Hmmm. 46 here. And apparently still too fast for Slashdot who tells me to "Slow down, cowboy!"
http://goo.gl/k07tpC
The Kruger Dunning explains most post on
I'm 35 since a couple of months back
:snicker:
I'm so old I used to program a computer with core memory. 64kx16 of core memory. FWIW, Node isn't better than Ruby, but it is in some sense more convenient, in that you only need to be immediately fluent in one programming language. But if I had my druthers, I'd go back to using scheme, just like we used to back in the days of the Old Republic. There's just no point in bragging about the programming language you're using if it's got two different ways of ending a sentence.
I'm 53 - but was relatively late to the party (and I've tended to have younger coworkers, one of whom introduced me to /. a decade or so ago).
I suspect any age to UID correlation has a pretty large sigma. I wouldn't be surprised if the four and five digit UIDs demonstrate a big cluster of people who are now between 30 and 40, though.
#DeleteChrome
I'm a CS prof and I'm sorry but I must agree with you.
The trend is similar to other industries like butchers or the food service industry. Trade skills were optimized out and tasks were specialized to the point where a moron could do the job in the assembly line. The pay that came with skill and pride in a job well done was replaced with depressed drones who need to be morons so they don't kill themselves... or quit... or become a citizen.
Most programming can be made into small problems that take less understanding and skill than used to be required. It's not assembly line but it is the same trend and at some point it'll be simple enough that the degree is little more than a tech school course dragged out into massive debt. Luckily, due to the nature of the work, there will be many years of higher level jobs... for 3rd world CS majors. May as well stick with your toy language because your only stable employment option will be scripting as a digital janitor... as I.T. likely part of a digital cleaning service (because that beats having to hire as many house janitors.)
Has Ruby really been alive?
When Ruby was red-hot, it was when people were building entire apps in Rails. But now everyone realizes that the future is in JS-based front-ends based on Ember, Angular, or Chaplin, but that doesn't mean that people aren't using Ruby and Rails in the background for their back-end setups. It's quite common for me to hear about a fancy JS front-end being powered with JSON api endpoints being served by Ruby and Rails. Maybe this too will change, but right now from where I'm sitting Ruby seems still alive, just repurposed.
Without a doubt, the lower the barrier to entry into programming, the more competition can be expected from less qualified individuals. This may very well be taken as a threat, as you seem to take it. However, if we consider the economy as a whole and not just a single industry (or even a slice of a single industry), there are great advantages to lowering these barriers. It allows things to be done cheaper, for those who would not have had a chance to make a living in the industry do just that: make a living. When an entire industry's costs are reduced and competition increased (especially an industry as pervasive and important as the tech industry), the rest of the economy is made richer. Exceptional quality C/C++ is not the only thing that matters.
His point is that certain tools attract bad programmers, because of the peculiarities of the culture that is formed around those tools. It doesn't mean that the tool itself is bad.
You're wrong. While it's true that "everything is an object" in Ruby, a lot of it is implicit. E.g. you can define "global" functions - they just end up as methods of Object. And because Object is a base class of any other class, you can call those methods directly in any piece of code. So it's OO, but you can completely ignore it if you want.
"Everything is an object" in Python, too, by the way. Global functions there become methods on the module object for the module in which they are declared.
All in all, this just means that the type system is simplified (no separation into primitives and objects etc).
It's funny because it's always poignant; as long as something is a good tool for some job, it's got legs.
In the future, I would want to not be isolated from my friends in the Space Station.
Well, you're not quite correct. When you run irb you're in an Object singleton class:
irb
irb(main):001:0> self.class
=> Object
irb(main):002:0> def add5(x)
irb(main):003:1> x + 5
irb(main):004:1> end
irb(main):005:0> method(:add5)
=> #
You don't need to know about the object, but it is there.
You had 64k? "Mine" was an HP2100 with 16k. Assembler, Fortran, HP Basic, and Algol. Oh, plus machine language counting the times I had to reload the program loader by toggling switches in octal. I still remember the HALT 102077. Great times.
Slower rate of change in gems might indicate less need for change.
PDP 11/45. We had Basic Plus and TECO. It was pretty dire.
Does it do what you need it to?
One definition of "dying" is when a project is no longer maintained to keep up with changes in the underlying platform. A language whose implementations are "dying" in this way does not "do what you need it to".
Can you get your project completed using it?
Another is that it becomes harder for a coder to find jobs or for an employer to find people to maintain a project in a given language. A language "dying" in this way interferes with "get[ting] your project completed".
I mean you don't see the engineers going "ZOMFG my VHDL is as out of fashion as an iPhone 3!" /swoon/.
You do if, for example, state-of-the-art FPGAs start shipping only with Verilog compilers.
Ruby has, since it has become popular, mostly been used for webdev tooling and frameworks. In that department it combines the crappyness of PHP with a communities arrogance of C and the toolkit variety of Perl. So it could be that traction won't hold as long and good as some would like it to. PHP is deeply entrenched in serverside web development and the new kid on the block definitely is JavaScript with Node.js offering Serverside development in the turing complete language that also drives todays web frontend logic.
New serverside web projects I'd personally do in PHP or - if time and resources allow for experimenting - I'd use Node.js. For the simple reason that it offers the same PL on the serverside that we use for Ajax.
Bottom line:
With Node.js on the rise and JS offering basically the same features that people rave about in Ruby I would be suprised if Ruby loses traction again.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
I bet some ugly, ugly things get built with it. Gives me chills.
as long as something is a good tool for some job, it's got legs
Counterexample: Kevin Michael Connolly is a good tool for the job of photography.
Sadly, those kids are hired and keep chasing the latest and greatest (including jobs) and leave their one trick pony app behind that was written in "the next big thing" language with no knowledge transfer or support.
What can I say? Taking advantage from dumbasses with money to lose is not a crime and everybody (including the ones that can't code) must eat!
Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
Ha! We had two RK05s and an RM05!
I used to program a CDC machine that had "fast core" and extended "slow core" memory. Not to mention figuring out how to get your loop into 7 instructions so it fit into cache.
I'm 37...
Do not meddle in the affairs of sysadmins, for they are subtle, and quick to anger.
Python and/or Django: Instagram, reddit, YouTube, Disqus, Pinterest, bitbucket, The Onion, New York Times, Washington Post, The Guardian, Yahoo Maps, Battlefield 2, Civilization 4, etc...
Ruby and/or Rails: Hulu, Funny or Die, github, Groupon, Twitter (dropped due to scalability concerns), etc...
graph on the release date of gems over time could help determine an answer.
Perhaps that would just show you if 'gems' are dying. COBOL^H^H^H^H^HRuby, could still be thriving.
This is like trying to use CPAN project release dates to determine if Perl is dying.
I've written many Ruby scripts and not a single one of them defines a class. Regardless, even if I had to, that hardly makes it OO. Actually most code that people call OO isn't even remotely close to OO. It's just code that has classes with the standard 3-tier separation.
Are agnostics skeptical of unicorns too?
It's called maturation and it has little to do with anything. Java is still used extensively and yet the news stream for it is pretty dead these days. The reason is that the massive flow of new libraries and tutorials and blog posts, etc. aren't there anymore. There's no point since everything you need already exists and new stuff is usually a modest improvement at best over the old stuff.
Are agnostics skeptical of unicorns too?
I'm so old I have a core array inside a picture frame on display in my living room... along with a magnifying glass. And keep a tin of some genuine East German VEB Elektronik on the bookshelf in the office.
This is moot. The effect is the same. Or are you complaining about the implementation details you don't actually have to deal with?
If you can build ugly, then you can build beautiful. Do not fear.
I'm not complaining. The original question was "Everything has to exist within a class, does it not?". It may be moot, but it is interesting to know what is going on.
PDP 8 with punch cards.
Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
Good grief! At least I don't keep my old 11/70 core memory board in my living room; I keep it downstairs hanging on the wall next to all the other computers. The missus would kill me if I insisted on having it upstairs.
(Psst... you want a Q-bus wirewrap prototype board?)
CUR ALLOC 20195.....5804M
That makes me a real outlier adding a data point in support of your theory about that sigma being rather large.
CUR ALLOC 20195.....5804M
Too many people here suffer from butthurt. Detach yourselves from the desire for more butthurt. There are two types of languages: the ones people complain about, and the ones nobody uses. All this butthurt proves this point.
FWIW, at one place I worked there was a table anyone could dump a book on for others to "borrow". No real expectation of getting it back, but a way to pass on unwanted books to someone who might find it useful.
I wanted to reduce my collection of books. So I dumped a less-popular Ruby book onto that table. It vanished before the end of the day. I dumped a couple other ruby books, including The Ruby Way and some book on Ruby brain-teaser quizes, something like that. Poof, as if done by a magician trying to impress members of the opposite sex, they vanished quickly and completely, by the next time I passed through that room. Interesting.
Then I dumped Andrei Alexandrescu's The D Programming Language. It sat for a day, then another day, and another. After a week it was still there. Eventually someone took it. At least at this one company, D is 1/100th as popular as Ruby. Neither language is used officially on company projects - it's all Java, C++, C# and Python. Internal web sites do not use RoR that I know of.
Ruby is a fine language, but in practical implementation other languages, in particular, Python run circles around it. A circle. Maybe half a circle, but you know what I mean - Ruby is fine but never in first place. I still use it for some electronics graphics (http://www.darenscotwilson.com/spec/stereo888/stereo888.html) It's certainly not dying if there are such quick book-snatchers in a company not using it.
OTOH, those who know of D like it quite well, actually use it, try to spread the word, and that includes me. Maybe D is in the stage of early growth outside it's originating community, where Ruby was in 199x where I'm not sure what 'x' is.
D is clearly growing, but has a long way to go, while Ruby is way up there, and has a long way to go if it is in fact shrinking.
Sorry AC. You might be right, but you've spewed so much crap over the years I just cant believe you. 30
The original question implies that you have to wrap everything withing a class Foo ... end construct, which is false.
40 here, birthday's in March.
Breakfast served all day!
But did you have the gt40 display subsystem so you could run moon?
TECO was the biz unfortunately on our 11/03's it took up to much room to allow any real work :-)
If someone doesn't have a CS background and yet would like to get into programming in some fashion, what should they be doing instead of Ruby? Python or Java?
Nice troll. So good I'm replying even though I recognize it.
You are clearly demonstrating an ignorance of Ruby and also of the history of Python. (I'm not enamored of the whitespace indentation, either, but there were justifications [reasons?], and if you use tabs for the leading whitespace and spaces internally, then it's not that bad, but merely takes a bit of dicipline.)
The real problem with both Python and Ruby is the lack of decent ways of documenting code. That's one thing that Java got right. Ruby tried, but it's default mechanism isn't much better than markup. (YARD is a better alternative.) With Python, fortunately you can use Doxygen. That's not an ideal solution, but it works. Epydoc was much better, but it doesn't understand inheritance in Python3.
Note that this is a difficult problem that every language needs to come to grips with. C/C++ were fortunate in that they didn't have much competition, so lots of people wrote tools for documenting them. Post Java things are a lot tougher. It would be nice if there were some standard documentation system for all languages, but in order to work it would need to be so flexible that it would be too clumsy to use. Good documentation tools need to understand the language, and know about things like inheritance, private, and whether modification of a parameter within the routine can cause changes outside. So I think that every language is going to continue to need to come to grips with it individually.
N.B.: I'm talking about creating documentation for programmers, not users. That requires a totally different approach, and is best handled by tools like LibreWriter.
P.S.: Python's decision to make Sphinx the official documentation tool for the language is one of the most boneheaded things that has been done during the entire development of the language.
I think we've pushed this "anyone can grow up to be president" thing too far.
Nice try (intentionally spelling "java script" is not cute, dude!).
What makes you think that this was intentional and not just a typo?
Computer simulation made easy -- LibGeoDecomp
Back in the day (archive.org is your friend), there were drop downs to select the threshold, flat/nested/no comments (wtf?)/threaded and sort order. Feeling nostalgic? kuro5hin is like a trip back in time...
Comments were paged (50? 100? 250? per page) and the threading really fucked up their multipage logic. (imagine a 10 page article where pages 1-9 are all page 1 and page 10 is page 10) At least they fixed that when they javascriptified.
Do you even lift?
These aren't the 'roids you're looking for.
Technically main isn't a class it's an object. Class implies that a new instance can be generated. An object is an instance of a class.
In Ruby, functions do not have to be explicitly placed in class definitions. Compare this to Java which requires every function to be placed in a class definition.
The fact that Ruby places all of its global functions and values within the application object doesn't change anything and does provide some syntactic sugar since the same reference mechanism can be used for the global functions and values as well as user defined object attributes.
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
42 but this is also my second account. Forgot login credentials for my old one way back when.
Sorry, typo...
Computer simulation made easy -- LibGeoDecomp