15 ms·
Rails is omakase
- naithemilkman 14y agoI guess that makes Python/Django an international buffet.
- orangethirty 14y agoDjango does not accomodate all. The architecture is a bit more adaptive than rails, given the way the desginers allowed for plug-in "apps" inside the system. Aside from that, its the same stuff basically.
- TylerE 14y agoDon't see how Django apps are really any different from Ruby Gems/Plugins. Furthermore, ActiveRecord is much less tied into Rails core than the Django ORM is to Django.[1] [1] - Yes, you technically can not use the ORM, but then you don't get the Django Admin, which, frankly, is the only thing Django has over many other Python web frameworks.
- pekk 14y agoRuby gems are like Python packages. Django apps are very often not installable as Python packages.
- jrochkind1 14y agoHuh, i'd say Django is LESS flexible than Rails, as it comes with it's own ideas about end-user UI (Rails does not). Rails doens't have "plug-in apps" in the same way as Django, because Rails doesn't have "apps" at all, apps are what you build with Rails, not part of Rails. (And Rails does sort of support plug-in apps in the form of 'engine gems' -- but there are no conventions for how different engines interact with each other, because Rails doesn't establish conventions for end-user UI, it consistently does not go to as high a level of abstraction as Django. This has plusses and minuses of course).
- njharman 14y ago> own ideas about end-user UI Really, like what? I don't consider the admin to be end-user and even if it is, its highly customizable. Django is really more modular and customizable than people give it credit for. Perhaps, because it works one way "out of the box" and you have to look deeper and learn it to have it work some other way.
- batiste 14y ago"it comes with it's own ideas about end-user UI, (Rails does not)" I can remember the Rails HTML helpers with Javascript mixed in and the framework relying upon Prototype. On the other hand I can't find any example of Django forcing UI stuff onto the developer other than maybe the widget/forms rendering methods.
- zalew 14y ago> Django is LESS flexible than Rails, as it comes with it's own ideas about end-user UI what? Contrary to Rails, Django never forced front-end solutions upon the user, and every suggestion on the dev list to do so is dismissed, which I'm in particular very happy with. The exception is admin, being a full-featured out of the box solution, but even there are some occasional talks about decoupling the orm/forms/admin and provide generic APIs.
- shuzchen 14y agoSure, in terms of features either available in core or through third party gems/apps, both Rails and Django are pretty much on parity. You won't find anything worthwhile in the Rails world to tout over Django, since there probably exists an equivalent (or if not a port is soon to appear). Likewise, this works the other way around. What makes me personally prefer Django is the approach the developers take, which when compared to Rails is more conservative. If something is to change in Django, the old way generally gets marked as deprecated a few version prior, and changes are introduced to have limited impact. I mean, even when Django changed the base directory structure of a new project they made sure that old code with the old directory structure would still work in most cases. For the new url template syntax in 1.5 (they changed it to fix an inconsistency with other tags, as well as to support a new use case to allow variables as an argument), a from-future fix was introduced early on (in 1.3 even!) so that people with slow moving projects could safely ignore the problem until they could get around to fixing it, while people with fast moving projects can adopt the new "correct" behavior early. Not to say incremental upgrades are always painless, but the pain is limited and well documented. Things that can be introduced on the users schedule (like the new url template syntax), are. In some ways, that could end up being a disservice. Django can't move as fast or change as much as Rails can. But really, that's what you signed up for. If you bought into Rails and now you're mad that the floor is moving, you really should've considered that in the first place. Likewise, if you bought into Django and you wonder why it doesn't have ZOMG coffeescript (or whatever) as a default, then you probably should have considered that. Personally, I'm okay with Django core moving slowly, because I can augment it with reusable apps that are able to move a lot more quickly. You also don't see douchey posts from the Django developers. They generally show respect for competing frameworks, and aren't afraid to be critical of their own. There's a lot to like here.
- orangethirty 14y agoAren't all frameworks like this? The designer picks what he/she thinks is the best architecture and builds it around that idea. That's why there are a thousand different frameworks. I think DHH is experiencing what I call "Linus Hell." Which is the hell Torvalds has to go through every n amount of time when dealing with obtuse programmers.
- crusso 14y agoI don't think that DHH is feeling that his experience is any different than other maintainers. He's just trying to explain it to the masses. Maybe he's hoping that a few borderline whiners will catch a clue and decide to put up or shut up... maybe he's just venting. Regardless, I sympathize with him. I love rails. I love where his leadership has taken the framework steadily over the years.
- orangethirty 14y agoRe: Whiners. They never shut up. :) Given the size and pop culture around Rails I think he gets to deal with more stuff than the usual maintainer. I mean, there are people who actively celebrate when there is a security issue in Rails. When github was hacked due to a foolish mistake people where celebrating! This is the sort of thing that keeps me from joining any Framework community. Fanboyism.
- steveklabnik 14y ago> that a few borderline whiners will catch a clue Just so you know, those 'borderline whiners' are mostly other members of the core team.
- mattmcknight 14y agoClearly this post is not primarily aimed at the core team, but the random people harassing him on Twitter and elsewhere.
- fbuilesv 14y agoNot necessarily. Some authors think that the best thing they can provide is a small framework that does the most basic stuff and then you plug-in the rest of the components you need. An example of this is Sinatra where you get a router, some helpers and not much more. You choose your ORM, testing library, etc. Others (like Rails) choose to include the 8 AA batteries. In general, this is aligned with the author way of thinking and it also applies to stuff like languages (think C vs. Java) or even window/desktop environments (Fluxbox vs. Gnome).
- sergiotapia 14y agoI've come to enjoy Rails defaults and "just solve the business problem" attitude, coming from ASP.Net MVC3 it's a breath of fresh air. It's quite liberating to have things have a default naming convention and location. I can imagine it makes working on teams exceedingly easier other alternatives.
- slap_shot 14y agoI think this an interesting point. I feel like the ASP.NET Web Forms stack got a bad name because it so closely coupled a web application framework with proprietary, abstracted, controls (which I agree was bad). But an empty MVC4 application makes no assumptions about frameworks (JS, CSS, ORM, Tests, View engine, etc.), and yet it generates criticism that there isn't enough dependencies built-in. It seems MS can't find the middle ground. I agree that it fragments open source projects (you won't find any two MVC4 apps that follow the same methodology), but I find the flexibility for an internal team to be more desirable than Rails.
- cbs 14y agoWhat is this post responding to? And who is the target audience? Reading this feels exactly like reading the passive aggressive facebook posts of someone currently in a fight with their boy/girlfriend. We get it, Rails is "opinionated", sorry I guess we're saying "omakase" these days. Who really gives a fuck? The reason DHH is getting loud complaints is because people feel that they carry a legitimate grievance but also feel no way to voice that opinion (or are trolls). Douchetastic talking down to them like exemplified in this post won't help (and will encourage trolls). People with limited knowledge and understanding of something and/or restricted mobility in tech aren't in a place to see things the way you see them. Help them get to that place, instead of just telling them how to see things with metaphors that only work once you're at that place. Or just don't engage them at all. Edit: Huh. This DHH blog post doesn't really feel on par as a response to the conversation in that github issue. But if it is, know that my post was written assuming the criticism was of the type he describes, not the type that transpired.
- sync 14y agohttps://github.com/rails/rails/commit/61b91c4c55bcbd5a2ec85d6e1c67755150653dff https://github.com/rails/rails/commit/61b91c4c55bcbd5a2ec85d...
- bguthrie 14y agoI read that entire comment thread, and maybe my perspective is skewed, but I saw none of the behavior that DHH described there. The discussion was generally polite, the participants were mostly experienced Ruby developers with open-source and community track records, and their objections were well-supported. I have less sympathy now for the original post than I did.
- malandrew 14y agoExactly my thoughts. For example, I know for certain that José Valim is (or at least was last time I checked) a core ruby dev and he's against this change for example. DHH wants to sound like he's talking to trolls and the casual Rails user, but it's clear from the github thread that he's responding to seasoned members of the community as well, which quite frankly is a pretty shitty way to treat people who are known contributors. It's not a community, it's whoever screams loudest. To me that thread and this posts shows that DHH is willingly wearing horse blinders instead of keeping his opinions being open to being amended through thoughtful discussion with others as talented as he is. The biggest problem with this "omakase" attitude is that it's causing Rails developers to miss the boat on many new developments in the state of the art in web app development because legacy is now baked in via opinion. 37Signals hasn't been the forefront of web-app design for a few years now. There are plenty of single page web apps out there that are far more responsible and present a better user experience than tools from 37Signals. Don't get me wrong, they are still decent, but they aren't demonstrative of what is achievable insofar as excellent user experiences are concerned. Maybe this has changed, but I spent a year working on a single page webapp built on Rails and the asset pipeline was excruciatingly painful to debug to get your javascript and other assets handled properly.
- camus 14y ago> "Nobody ever got to have a meaningful impact on the direction of Rails by contributing no code and just showing up in a Github comment thread and yelling about the evils of CoffeeScript" I think it sums up some kind of state of mind on the internet today. it's not just about software or programming.
- rnicholson 14y agoeh, its kind of always been a meritocracy...
- demetrius 14y agoThis site doesn’t tell its encoding (neither via HTTP nor via meta tags), so my Firefox displayed the first sentence as “There are lots of ГЎ la carte software...”. Also, I don’t understand why the article was written, every software developer makes their own decisions that not everyone will like — isn’t that obvious?
- mylittlepony 14y ago> This site doesn’t tell its encoding Same problem here. So much for the master chef with a decade of experience...
- bdcravens 14y agoThis is just his blog. He's the chef of a framework, not an avowed HTML guru. Have you seen the design for YCombinator.com? 1998 called and it wants its Arial font, <table> and <center> tags back. By your logic, YCombinator is worthless for helping Web startups launch.
- phillmv 14y agoIf you wanted your password reset for the first couple of years, didn't you have to email pg personally?
- shareme 14y agoyes
- yeonhoyoon 14y agohaha
- Firehed 14y agoYes, but frameworks are supposed to solve issues like UTF8 encoding by setting up sane defaults automatically. If I wanted to deal with solved problems myself, I wouldn't be using a framework. Also, YC's crappy HTML doesn't make the site less useful for visitors. This blog's poor unicode support does.
- nkuttler 14y agoHe lost me at "á la carte". Incidentally, no proper unicode support is why I never used rails (or ruby) for anything more than a tutorial. Yes, that was a long time ago.
- fbuilesv 14y agoThis has nothing to do with Ruby or Rails. Setting a proper HTML encoding (UTF-8) would fix it.
- espadrine 14y agoAnother way to phrase this is that DHH forgot to add <meta charset="utf-8" /> Beyond that, the expression isn't "á la carte". It comes from the french "à la carte" (grave accent, not acute).
- nkuttler 14y agoHence "incidentally". Couldn't help but to make a connection.
- bdcravens 14y agoYes, you could help it. The connection you made applies to any language/framework.
- steveklabnik 14y agoThis is FUD. Rails actually does have UTF-8 support, and it's on by default, to the point of fixing bugs in IE to make sure everything is UTF-8: http://intertwingly.net/blog/2010/07/29/Rails-and-Snowmen http://intertwingly.net/blog/2010/07/29/Rails-and-Snowmen
- sramsay 14y agoI think what this guy is trying to say is that Ruby on Rails is . . . on rails.
- benlower 14y agoThe analogy here is just off. DHH might consider just saying "I have good intentions. Rails is my thing. I will ultimately make the choices but do consider feedback." The reason the analogy is off: when was the last time you went into a restaurant and said, "i'm going to base my work/livelihood on this menu"? Never. Sometimes when I go for a meal I know what I want and I order that. Often I'm looking for an experience and I'll ask, "If the chef were going to die tomorrow what would they eat tonight?". Omakase is a formalized way to see what the chef recommends at that moment in time. Rails is not the same as me going into a restaurant looking for a great experience at that moment. I might have a mind-blowing meal but I'm not going to base my livelihood on it. I'm not saying that DHH or Rails are flaky. I am saying that comparing a serious tool for serious work to omakase/the whims of the chef does Rails a disservice.
- bdcravens 14y agoDHH has long held that Rails meets his (Basecamp's) needs first, so the whims of the chef hold true. Implicit in this post was the idea that it's not the only serious tool for serious work, and if you don't like the chef's choices, you're better served in a different restaurant than complaining about the menu in this one. Even if you've staked your career on Rails, it's important to realize it's your choice, but his framework.
- steveklabnik 14y agoBasically, here's the deal: this is a change that every member of Rails core (and others with commit, like me) who is not an employee of 37 Signals disagrees with, as well as the entire maintenance team of Bundler. Every single one. And DHH's response is that we all 'haven't really paid much attention to how things are run on a day-to-day basis.' This change 'breaks every single new Rails app on Heroku that uses rbenv', in the words of Heroku's Ruby platform lead. It is not a trivial change. This is David going against the wishes of every other maintainer of every other piece of software Rails works with, as well as other Rails maintainers, and then painting their comments as 'nerd rage' and 'organizational failures.' Ugh.
- deleted 14y ago[deleted]
- steveklabnik 14y agoSince I cannot edit this post: After lots of discussions in Campfire, we're working through all these conceptual issues as a team, and steps are being taken so that EVERYONE is happy with what happens with regards to this feature.
- xentronium 14y agoWhy is it such a big deal? It's not like you can't add a line to gitignore?
- malandrew 14y agoI think it'd be funny if one day they even start prescribing the production environment via a Vagrant box.
- deleted 14y ago[deleted]
- dreamdu5t 14y agoSo use Sinatra instead of Rails and create the stack and build system that works for you. People are way too into Rails...
- rubynerd 14y agoI don't know about you, but every time I've attempted to use Sinatra for a project, it's either been for something that wouldn't ever see the light of production, or I've just ended up with franken-rails. We had this problem at work: a Sinatra app that had pieces and pieces of ActiveSupport bolted on, and it got to the stage where we needed a beefier database than Redis before the CTO eventually generated a new rails app and transplanted the Sinatra app on top of it. It's all well and good saying "use Sinatra", but when you get to the stage where you're adding ActiveRecord because it's the most mature ORM out there, it's usually late enough in the game that you're actually writing a poor excuse for a Rails application.
- Argorak 14y agoI hear that sentiment a lot (I blogged about it here: [1]). Basically, "every time I use Sinatra, I ended up with franken-rails" means that Sinatra was either picked for the wrong reasons or misused. If you want to build something large based on Sinatra, for the love of $deity, please use organization systems people have built for you, be it Padrino, some Sinatra stack or something else. It doesn't mean that Sinatra is bad, but its often misunderstood. [1]: http://www.asquera.de/opensource/2012/10/22/the-rails-monotheism/ http://www.asquera.de/opensource/2012/10/22/the-rails-monoth...
- yb66 14y agoWhat has using ActiveRecord got to do with whether Sinatra scales? You could've used it from the start. Strange argument to make about any framework.
- andybak 14y agoSo use C and Assembler instead of Linux and create the OS and kernel that works for you. People are way too into Linux... My point is - some of us are trying to build websites and get work done and were attracted to a full-stack framework so we didn't have to keep reinventing the wheel and so we can benefit from an ecosystem.
- rbirnie 14y agoDoes DHH post regularly? His "Archive" shows 3 posts in the last 4 days, you'd think he'd have more history posting. http://david.heinemeierhansson.com/archive.html http://david.heinemeierhansson.com/archive.html
- bdcravens 14y agoProbably related to Rails 4. Once it's gold, I'm sure he'll have less to say.
- skateinmars 14y agoHe used to have a blog called "Loud Thinking": http://david.heinemeierhansson.com/posts/archives http://david.heinemeierhansson.com/posts/archives
- mtkd 14y agoDHH vexes me on a few issues but I respect his passion for what he believes Rails should be. The conventions being enforced result in existing Rails code being easier to penetrate for new team members and more maintainable over time than was the case pre-Rails for web apps. Rails is stronger for it.
- karterk 14y agoBut if you actually read through the github thread, you will see that DHH is going against conventional practice in this case.
- programminggeek 14y agoRails doesn't have to be a one size fits all framework if you use it as a web delivery mechanism. That is the point of the Obvious Architecture http://obvious.retromocha.com/ http://obvious.retromocha.com/ You can see an example "twitter" app here: https://github.com/RetroMocha/obvious_status https://github.com/RetroMocha/obvious_status In the case of my example you could swap out the /delivery/web/app.rb or delivery/api/app.rb out for rails no problem. You wouldn't need to change any of the code in /app or /external to do so whatsoever. Just because DHH thinks you should write your code one way and you don't agree doesn't mean you have to throw rails away entirely to have a different or better structure. Rails might be opinionated, but that's just like their opinion man.
- bobowzki 14y agoá la carte. UTF-8. Use it :-)
- lkrubner 14y agoThis is why I like the Clojure community, which in this regard is very different from Rails. Clojure has developed a culture that favors small libraries over monolithic frameworks. The eco-system of Clojure is all about picking and choosing among a variety of tasty dishes, which is the exact opposite of this: "Rails is not that. Rails is omakase. A team of chefs picked out the ingredients, designed the APIs, and arranged the order of consumption on your behalf according to their idea of what would make for a tasty full-stack framework. The menu can be both personal and quirky. It isn't designed to appeal to the taste of everyone, everywhere." The folks who like omakase are of course free to enjoy Rails. More power to them. I personally learn more, and enjoy more, when I get to assemble a different menu for each project -- a menu suited to the project.
- malandrew 14y agoSame with the Node.js community. When I moved from Rails to Node.js, the focus on small libraries held together by an exceptional package manager was a huge breath of fresh air. If anything, Rails poisons things in the Ruby community because the monolithic approach of the biggest framework in the community simply works against small libraries with small interfaces that are very compatible and remixable. In fact, one of the best developments in the Ruby community lately has been the increase of other frameworks like grape, padrino, rack, sinatra, etc. I know some of these have been around for a long time, but it wasn't until Rails started getting long in the tooth that they started getting more and more attention.
- mylittlepony 14y agoSame with Symfony2. All of its components are decoupled and can be used as standalone libraries. They even have their own separate docs.
- phillmv 14y agoYou really can't lump Rack in there, given that it's a meta framework, and a meta framework to which Rails has been built around since 2.3.
- deleted 14y ago
- elomarns 14y agoRails has become extremely popular over the years, but we have to remember that in the end it's a software created by a guy containing his particular beliefs. And this is great! A good web framework need its own set of core beliefs.
- protonfish 14y agoThis is assuming that those who make rails are master chefs. This is debatable. Also, the analogy does not hold well because at a sushi bar, the one who orders is the end consumer. Rails is a tool for developers so a more accurate metaphor would be I am the chef, my customer orders omakase and Rails supplies all my tools and ingredients. If those tools and ingredients are what I need to make my customer happy, then great. If not, then I'd prefer to throw them away and do it right instead of dogmatically defending my framework like it's a religion.
- sergiotapia 14y agoWho would you consider 'master chefs'?
- protonfish 14y agoGood question. Web development has been around for only about 20 years and changed significantly during that time (CSS, JavaScript, Ajax.) Cooking has existed for thousands of years so I would argue that there has not been nearly enough time for any master chefs to come into being. That does not mean that many (mostly due to Dunning-Kruger) will claim to be masters and that even more will rush to the charlatans hoping for a magic spell that makes complex, new and continuously emerging technology easy without the need to learn or practice.
- silentmars 14y agoThere's an old saying that goes something like, the lower the stakes, the more bitter and destructive the disagreement. It goes along with that old anecdote about how the disputes among people involved in volunteer organizations are more charged than in situations where money is involved. In this case, this drama was triggered by... a one-line change to the default gitignore file.
- steveklabnik 14y agoThis 'low stakes' change breaks every single new Rails app on Heroku that uses rbenv.
- andrewem 14y agoHonest question: how popular is rbenv? Should I be using it rather than rvm? https://github.com/sstephenson/rbenv https://github.com/sstephenson/rbenv lists apparently bad things that rvm does; are those significant reasons to prefer rbenv?
- steveklabnik 14y agoI personally use chruby.
- rapind 14y agoIt doesn't really matter. I switched for a little while and ran into all sorts of path issues. As I was working through my issues, I noticed there seemed to be a lot of attitude around it and what I thought was unwarranted criticism of rvm. Soured me, and I haven't bothered with it since. I'm sure it works great for some people though.
- jevin 14y agoGranted, everyone should be able to choose their own tools. But different tools can sometimes (in extreme cases) create inconsistent behavior. And you don't want to see the consequences of that roll into production. That's the one reason I wouldn't recommend each dev using a different package manager. However, if we follow that logic, only experienced devs will venture to choose a different package manager. Which implies that he/she would be knowledgeable enough to edit his own .gitignore and whatnot.
- instakill 14y agoAlright, somebody has to draw the line somewhere. Every time DHH goes off on one of his little rants and angers a lot of people in the process it's not just those people that get affected, and not just emotionally either. These Ruby [on Rails] dramas have a real-world impact on the rest of us, the hundreds of thousands of us that use Rails every day to make a living. It affects us in that it makes us all look like unprofessional schoolground children. Rails already has a stigma of "hipster" developers that tend to be up their own asses, and episodes like this really don't help our image. Especially not when the global developer community is not as massive as you'd like to believe, especially when people talk - to other developers, to potential and existing clients that then get per-conceptions of unprofessionalism, and to newbie developers that shy away and look into alternative languages and frameworks because they don't want to be associated with this wankery. DHH's post, particularly the second paragraph, seriously comes across as if the core "team of chefs" is doing us all a massive favour and if we want to keep benefiting from the really beautiful thing that Rails is then we should shut the fuck up and take what we're given. Well this isn't Pyongyang (if we're going to play with metaphors) and DHH is not our dear leader. Yes of course I, and all the other Rails developers and immensely grateful for the framework's existence, but it's OSS now. There are thousands of contributors and so many more times commits than that to the projects since it did become OSS. The community either needs a revolution or a fork because this downward spiral of foul air is just going to continue spreading and affecting us all. I'm sure if a couple of well respected individuals decided to take that route, a whole lot of people would back them up - I know I sure as hell would. Pawel - a Rails developer.
- pretoriusB 14y ago>Pawel - a Rails developer. I'd like people adding those kinds of claims to also give an estimate of how much they have contributed to the project. I.e. John S., Linux Kernel developer, contributed maybe 10 lines of code, or 0.0001% of the kernel source or: L. Torvalds, Linux Kernel developer, wrote the kernel code from scratch, that's my name on the project, biatches Else, this "a Rails developers" signature tells us we should give extra credit to your opinion, but we don't know how much compared to DHH. I don't mean it about you, Pawel, or your comment (I don't follow Rails that much anyway the last 2-3 years), I mean it in general.
- mgkimsal 14y agoCome on, this isn't how porn stars work! Now, someone diagram this discussion and put it up on slideshare.
- grandalf 14y agoThere appears to be a lot of disgruntlement about rails lately. I like Rails but switched to Sinatra about 5 years ago b/c I didn't like Rails 2 and realized that the Rails APIs were a lot less stable than I'd expected. DHH is right, there is no reason to complain.
- sankage 14y agoIs anyone else suddenly craving some unagi?
- fingerprinter 14y agoJust read the whole thread here and on github (https://github.com/rails/rails/commit/61b91c4c55bcbd5a2ec85d6e1c67755150653dff https://github.com/rails/rails/commit/61b91c4c55bcbd5a2ec85d...) Technical: DHH is wrong, plain and simple. No amount of defending the decision makes it right. Community Management: DHH, while not as abrasive as Linus (another thread here linked to a kernel thread), IMO, DHH is (much) worse than Linus. Linus is abrasive and swears and yells. DHH is dismissive and condescending. DHH thinks he has better opinions, more depth of experience, smarter, more insight and generally "gets it" more than everyone around him, including the other maintainers.
- jurre 14y agoI really don't see how you could say he is wrong. It's his open source project that he's put thousands of hours into and is providing for free to everyone that wishes to use it. You might not agree with what he says or decides on, that's completely fine. In that case you're completely free to use a different framework. Plenty of choice out there.
- minhajuddin 14y agoIt's not completely his. Other developers have put in much more than him alone into rails, and you need to respect them for that.
- fingerprinter 14y agoSo you don't think it is possible to have an opinion on a project you maintain and be objectively wrong in that opinion[1]? For instance, the GNOME3 guys and the design direction they are taking. No matter what, they can't be "wrong" (whatever that means in this case) in that opinion? I get that objective right/wrong can get complex and murky rather rapidly, though I feel with experience people can actually make judgement calls on these. And in this case, checking in binary assets is wrong, from experience. It causes many more problems that it solves. So, DHH is "wrong" in this instance even if he himself feels that it is the way to go. [1] - "wrong" might have been an improper word to use, though for the sake of consistency, I'm going to continue ;)
- re_todd 14y agoJust saw Tenderlove's tweet, which is pretty funny "while we're at it, we should check in the .so files too. Binfiles won't work so well without them."