4 ms·
I beg to differ. I started doing rails before things like bundler and rvm. It was easier to get started back then, but without these tools most people found the
by jshen 15y ago
I beg to differ. I started doing rails before things like bundler and rvm. It was easier to get started back then, but without these tools most people found themselves in a pile of shit really fast.
I think the mistake people are making is assuming that what is best practice for a trained professional should also be the starting point for someone that is just learning to do web dev.
It's like saying, "building skyscrapers is too hard, there's all this stuff you have to know. Why can't I just do it like I did when I was a kid and stack bricks on top of each other?".
- ajross 15y agoTo extend your analogy, it's more like: here's how you build a house. Skyscrapers apply all of the same principles in a more complicated way, but this house here solves a very clear real world problem in a way you can understand and emulate for yourself. Now, picture a world where all the "serious" people with "mindshare" spent all their time explaining why skyscrapers were the best thing in the world, and how only PHP-using dinosaurs would every build "houses" any more. And fast forward to the inevitable attempt to explain to construction newbies how to build skyscrapers from scratch. So I ask you: where are the houses of modern web development? I don't see any. More to the point: I see some, but they're "old" technologies the cool kids don't use any more. Everyone freaked out about Rails not scaling up, but it also fails to scale down to the level of a new developer.
- jshen 15y agoSinatra is good for building houses. I haven't seen anyone here say that rails is the right solution to everything. However, I have found that it is the right choice for the vast majority of web apps I've built. For most things you will want a testing framework, a model layer, dependency management, form helpers, routing and linking apis, etc, etc, etc. And if you're doing a medium to large size, consumer facing web site, you'll want an asset pipeline.
- bradleyland 15y agoYou'll never be able to equate Rails development to dead-simple, single-page PHP scripts, because they're not even remotely similar. You want dead-simple, single-page web development in Ruby? Check out CGI [1]. Once you get in to Rails, all examples are completely incongruent, because you're dealing with a large(ish) framework. When you compare Rails to a framework like Symphony or CodeIgniter, the learning curves and tool stacks begin to compare a little better. I don't know what version of PHP ships with OS X, but I know the web is full of HOWTO articles explaining how to get a more sensible stack of PHP version x.x.x on OS X. Many PHP devs are how using Nginx with PHP-FPM, which isn't there by default. Then there's the question of versions. Does a version manager for PHP even exist? What happens if you need to run an old PHP 4 application? Those questions are rhetorical. I'm sure they all have answers, but that's not my point. My point is: you end up with the same problems on a different stack once you move past trivial examples or start dealing with other people's code. IMO, Rails scales downward just fine. A new developer shouldn't jump right in to Rails development. MVC is too complicated for someone who can't handle basic tools If you're uncomfortable with tool chains like XCode, Terminal, RVM, and Bundler, then you have some learning to do. You don't get to be a doctor without understanding anatomy, and you don't get to be a programmer without understanding the fundamentals. 1 - http://www.ruby-doc.org/stdlib-1.9.2/libdoc/cgi/rdoc/CGI.html http://www.ruby-doc.org/stdlib-1.9.2/libdoc/cgi/rdoc/CGI.htm...
- ajross 15y agoWhich sounds like you're agreeing with me. Rails (I'd extend the argument to most web frameworks, honestly) is simply too complicated for newbies. They should use something else. So I ask you: if a platform is so complicated that it simply doesn't support new developers, can it survive? By analogy, is Rails turning into the C++ of web development?
- bradleyland 15y agoI think the notion that a framework should simultaneously be suitable for someone who can't use a bash shell and able to host some of the worlds largest web applications is a little silly. You have to know what problem you're trying to solve. MVC alone is a bit much for a beginner. Beginning programmers should not start with large frameworks. Period. "So I ask you: if a platform is so complicated that it simply doesn't support new developers, can it survive? By analogy, is Rails turning into the C++ of web development?" This is so tough to answer. From my perspective, the question is completely absurd. It's like asking "if a semi-tractor-trailer is so complicated that a new driver simply can't drive it, can it survive?" Programming is conceptually difficult. Even with the best tools we have today, and probably the best tools we have tomorrow, programming will remain a challenging task. As the problems become bigger and more complicated, so do the tools. Rails is large, so there is a lot to learn. The notion of a framework is that we should avoid solving the same problems over and over again. People are often frustrated that it can take a year or more to really learn the Rails framework, but it would take orders of magnitude more time to solve all the same problems Rails solves if writing from scratch. The more relevant question is, "What problem are you trying to solve, and does the Rails framework help you do that?" A garden spade is fine if I want to plant a few daisies, but if I want to build an inter-continental pipeline, I'm going to need something a little more robust. I'm also not going to stick a 16-year-old driving permit holder at the helm of a multi-billion dollar tunnel boring machine.