5 ms·
Ruby is one of those things people love to hate. I've worked with Ruby for nearly ten years and have been hearing some variation of "Ruby is dying" since forev
by lbrito 4y ago
Ruby is one of those things people love to hate.
I've worked with Ruby for nearly ten years and have been hearing some variation of "Ruby is dying" since forever.
- thesz 4y agohttps://www.youtube.com/watch?v=06x8Wf2r2Mc https://www.youtube.com/watch?v=06x8Wf2r2Mc - at 10:52 Simon Peyton-Jones talks about life of programming languages. Ruby, having at least million users around the world, is in immortal category. What fascinated me in the original post is "...data model on the principles of the Value Object, introduced by Martin Fowler." I mentioned Haskell because there is a long, long history of the use of immutable objects in computing science, dating back to Church and Turing's communication. The immutability is what differentiates lambda calculus and Turing machine. That is why I remembered Haskell and the video above. Yet, it is "introduced by Martin Fowler," for some reasons. This is very sad.
- revskill 4y agoThose Java Enterprisey guys as Martin Folwer is the reason i stop caring about Enterprise. Shitty stuffs get complicated for no reason.
- pjmlp 4y agoPeople love to bash Java for what has been typical enterprise architectures since large corporations have used computers. Or do people think that before Java we didn't have any architecture astronauts on large corporations?!?
- revskill 4y agoHacking on Java frameworks is mostly a pain. Both from IDE tooling (too much RAM, configuration fighting,...) to the documentation. Basically it made simple problems harder for just "JAVA" reason. For comparison, i've spent many months to hack on Java framework in a company before to deliver a hackable feature. By the same time, i also released 3 production applications from scratch with Rails. The issue is not Java is impossible to have such productivity, it's the mindset, the culture issues from Enterprisey people.
- pjmlp 4y agoAgain, that culture was already there decades before Java came to be, COM, SOM, CORBA, Taligent, ER model, Booch method, Rational Unified Process, Structured systems analysis and design method. Yes, I am an old dog at this game. Had Ruby and Rails been embraced at the same scale, you can bet there would exist a comparable flavour of Ruby EE.
- revskill 4y agoAs i said, it's about the mindset that matters (rather than throwing me a bunch of design patterns). If you're at work and want to get shit done fast for the salary reason: There's no reason NOT to use Rails. If you want to go enterprise, use something lightweight and modular, composable instead. Throwing a bunch of inheritable BeanClass serves no purpose on the job. UNIX philosophy came long ago, before JAVA.
- pjmlp 4y agoUNIX philosophy is cargo cult from a book worshiped by FOSS folks. CORBA was born on UNIX, original implementation targeted C, C++ and Smalltalk. Java was years away to be created, again by a UNIX company. Java EE, was reborn from an canceled Objective-C project created by Sun and NeXTSTEP, again two UNIX companies.
- revskill 4y agoNo, unix philosophy is what make things work together as i see. A big mess of inheritance tree doesn't solve large scale problem. That's the misunderstanding of "large scale engineering" that i've seen from most companies. You don't solve problem by solving it. You solve it by decomposing it, and compose again.
- pjmlp 4y agoThe technical architects, solution architects and business analysists couldn't care less about what a worshiped book says about the UNIX philosophy. On the enterprise mines, the minions do what they say.
- thesz 4y agoOkay, I'll bite. Java could be a much nicer language with much less allowance for architectural space programs. Type classes were introduced into Haskell as early as 1988-1989. At 1991 you could have programming in language with parametric polymorphism, type inference and principled (albeit called ad-hoc) overloading, there was at least one. The ST monad, one of the first effect-containing abstractions, was introduced as early as 1992 - I think it was close to introduction of IO monad. So, at the time Java was introduced in 1995, it could have all these nice properties which greatly simplify programming and make architectures easier to understand and more future-proof (Haskell's solution to an Expression Problem [1] is one of the simplest, it uses what was available in 1995, more or less). [1] https://en.wikipedia.org/wiki/Expression_problem https://en.wikipedia.org/wiki/Expression_problem Thus, we could have a programming language that makes architecture rocket launch much harder. But we did not. The slogan was "write once, run anywhere" without any regards on how much is needed to be written or how to safely compose what is written.
- pjmlp 4y agoI guess you never seen Haskell code in production with endless GHC feature flags...
- thesz 4y agoI saw, of course. I use Haskell professionally for 15 years now. These feature flags are not "architecture space odyssey," though. Usually they reduce boilerplate, often significantly. They are also artifact of Haskell being "research language," as mentioned in video above.
- OkayPhysicist 4y agoProgramming languages exist primarily to provide pretty paths for certain kinds of development, which is to say by the structure of the language they make certain kinds of solutions more natural to the developer, while making others more painful. Java's pretty path is large, object oriented towers of classes, with state scattered rough-shod throughout the application. To be fair, there has been some effort to ease the insanity. Record classes, lambdas, and the like lessen the pain of trying to write Java against its original orthodoxy. But before that, a simple "sort list of lists by first value" method involved making a class available in the current scope that implemented Comparator<List<X>> which contains a method "compare". As opposed to "sortby (comparing fst) list_o_lists"
- pjmlp 4y agoLanguages are orthogonal to the desires of technical architects, solution architects and business analysts, that control the helm of enterprise shops. There was no Java when GoF book came out, CORBA and DCOM were used all over the place, SOAP was initially driven by Microsoft and its COM/.NET group (see Don Box), when enterprise architects get FP into the enterprise, scalaz happens.
- jeltz 4y agoYeah, I do not even get why people hate Ruby so much. They do rarely even attack the actual weaknesses of Ruby but instead goes on about Rails specific stuff, the slow performance (a Ruby < 1.9 issue, these days it is as fast as Python if not faster) or just imagined stuff which has never been true. Ruby is a flawed language (I especially dislike the lack of real namespaces) but the hate it gets is often not based in reality.
- sacnoradhq 4y agoThere are namespaces, there just aren't standards like Python. And there aren't many good Ruby developers. There are too many noobs who write Ruby code that make my eyes bleed. I know, because I have to see this at work and they're supposedly "rockstar" developers. Ha! I swear most so-called "engineers": 0. don't grok software engineering, 1. weren't formally-trained in software engineering AND computer science, and 2. happily push shitty code that there will be no incentive to refactor through automated means. If you want to enforce coding standards in Ruby, you better learn LISP / S-expressions, because that's what Rubocop uses.
- geowwy 4y agoThere are modules, but they aren't real namespaces.
- bigDinosaur 4y agoI associate Ruby with a particular era of hipster web and app development, ~2007-2010. I don't know why but it's not quite attractive. That said the serious reason I don't try it out is because I fear it would be like Python, and I don't need two Pythons in my life. If Ruby had been dominant I'd likely be using Ruby and thinking the same of Python.
- Xylakant 4y agoI do think the same thing about python. The occupy a ver similar space and I already know ruby, so I have very limited incentive to start doing stuff in python. But that doesn’t mean I dislike it, or believe it’s a bad language.
- germandiago 4y agocurious. Ehat are you using Ruby for? Rails? I use Python bc it is almost everywhere but I always liked Ruby a lot.
- seattle_spring 4y agoI don't hate Ruby, but at my previous workplaces the Ruby evangelists would absolutely lose their minds if you criticized anything about it. They'd even jump to ad hominem and personal attacks. "Man it seems Ruby has a lot of pitfalls for engineers that aren't intimately familiar with each and every one of its ins and outs!" ... would get a response, "it's because you're just fucking stupid and a horrible engineer."