7 ms·
Problem is, none of the frameworks allows you to get up and running as quickly as Rails. Even Django doesn't come close in matching the sheer amount of magic in
by Immortalin 9y ago
Problem is, none of the frameworks allows you to get up and running as quickly as Rails. Even Django doesn't come close in matching the sheer amount of magic in the Rails. There are gems available for everything under the sun; it's fun and all to play around with new frameworks but having to reinvent the wheel gets tiresome really quickly. Debugging can be a bit tricky and it's not the most performant framework out there but the overall productivity still outweighs everything else on the long term. Nothing else (except perhaps MS Access and their RAD tools) comes close to the speed at which one can get a CRUD app up and running and CRUD apps are pretty much 80% of all web apps.
- computerex 9y agoThe nodejs ecosystem with npm allows you to create CRUD apps very quickly. Look into express.js. Also, my experience with the nodejs ecosystem has in general been better than with Ruby Gems. I have always hated Ruby magic and the problems it causes in gem incompatibilities.
- shagie 9y agoMagic is wonderful when it works right, and painful when it goes wrong. I will absolutely agree that the magic built around speedy crud apps that handle 80% of what a web developer does making it only take a small fraction of time is a wonderful thing for productivity. The problem with the magic for the 80%, is that the remaining 20% takes up the remaining 80% of the time. With the first 80% of the delivery in 20% of the time, the final 20% taking 4x longer because of the lack of understanding of the magic gives no advantage in the end. Thats if everything goes well. If the 80/20 rule fails, you get the ninety-ninety rule ( https://en.wikipedia.org/wiki/Ninety-ninety_rule https://en.wikipedia.org/wiki/Ninety-ninety_rule ). RoR lets one build crud without understanding what goes on beneath the ActiveRecord. RoR is great when there is low complexity of the code and it is easy to follow the data through the pipes. Once it goes beyond that, adding complexity to that with the spooky action, highly declarative style that RoR encourages it can be painfully difficult to do - and something that far beyond what the 'write crud in 30 mintes/hours/days' classes offer. Beyond that, with the failure to understand the before and beneath, one gets the impossible to debug bugs and security holes that lie within libraries that have been imported ( https://williamedwardscoder.tumblr.com/post/43394068341/rubys-principle-of-too-much-power https://williamedwardscoder.tumblr.com/post/43394068341/ruby... ).
- RangerScience 9y ago> RoR is great when there is low complexity of the code I disagree. RoR is great when there's moderate complexity. Microframeworks (Sinatra) are better for low complexity, and everything with high complexity is a unique and special snowflake. > Magic is wonderful when it works right, and painful when it goes wrong ...and really educational when you start digging into it, and then you generally realize it only went wrong because you were trying to do something stupid. > the remaining 20% takes up the remaining 80% of the time Sure, but that's because the first 80% took a fraction of the time, not because that last 20% takes a multiple. Do you have a particular example? > spooky action, highly declarative style that RoR encourages This is a bit of a "cognitive style" difference. In most of RoR - particularly your models - you want to be describing the idea of the thing. Since most people start programming by writing procedures, this is a bit of a leap. RoR Models are not about how a thing gets done, but about what that thing is. When you think from this perspective, RoR models are easy and nice. > Beyond that, with the failure to understand the before and beneath... Straight up, I want you to explain the complete before and beneath of your favorite tech stack or this is problematically hypocritical. I would then also want you to explain why it's reasonable to expect this of all programmers, rather than just senior programmers.
- treehau5 9y ago> Straight up, I want you to explain the complete before and beneath of your favorite tech stack or this is problematically hypocritical. I can answer this one. I could explain to you every aspect of go's net/http package and database/sql package. The interface is compact, and even the source is very legible and easy to digest. You don't need all the extra bullshit to build API and run CRUD operations. I am a former RoR developer. I have lost no speed in just using simple tools and simple packages. Also, I can have a junior or associate developer from any background get up to speed in a matter of days. Where as when I was at the Rails shop, you specifically had to hire a "rails guy/gal" and even then still took them days to get started. (Don't mean for this to be a "go is great" rant, I am sure there are equally simple tools out there - Dropwizard is another one that comes to mind -- just a bunch of jars glued together)
- vosper 9y agoBut I think if you really are just starting out learning programming then it's still a lot of effort to get a Rails system up and running (you need a database, too, which is another new thing) compared to the bare minimum, which is to use something like Meteor, Firebase, or even (gasp!) Mongo. I'm not saying that Rails has no place, and it might well be the best next step, but I wouldn't put it (or Django, maybe Express) in a course for absolute beginners. Perhaps in the follow-up course :)
- wolco 9y agoGetting php with the laravel framework running is much easier and quicker
- cercatrova 9y agoBut then you'd have to work in PHP
- Xoros 9y agoYeah, who would do that ? Seriously, who are those Facebook, Wikipedia or Wordpress anyway...
- sethrin 9y agoI'm currently working with Laravel and have worked with other PHP frameworks, as well as Rails and Sinatra. Both Rails and Laravel can be very easy to create new projects with, but I don't think that claims of a clear advantage for Laravel can be substantiated.
- icelancer 9y ago>none of the frameworks allows you to get up and running as quickly as Rails Nearly every single PHP framework is faster and more intuitive to deploy than Ruby on Rails.
- trcollinson 9y agoI find that rather hard to swallow. If you are trying to deploy PHP frameworks on your own there are a number of hoops you need to jump through on the server side to get things going. If you are using a deployment service, it's hard to beat things like Heroku and AWS ElasticBeanstalk for deploying Rails application. I am definitely a fan of Ruby and Rails. So I am biased. But I have deployed my fair share of PHP and find it hard to imagine how it is easier.
- wolco 9y agoFor many php frameworks it's as simple as downloading a zip file and ftping files to your hostgator shared account. Places like digitalocean have prebuilt machines for both. On a new centos or ubuntu server installing php/composer/laravel can be done in 10 steps. In the laravel world we have forge which allows you to script and provision your stack
- icelancer 9y ago>AWS ElasticBeanstalk We're talking about novice web development and you're invoking AWS? PHP is unzip, plug and play. Or single click any VPS "LAMP" package and go. EDIT: Also, let's assume the target person runs a Windows machine. XAMPP is at least... 10 times easier to set up than Ruby/Rails on a local instance. And that's being exceptionally charitable.
- sjellis 9y agoFor me the value of Rails is that it puts a lot of good practices into every application. Once you are more advanced as a developer or have a larger project then you might not like some of the choices that Rails makes, but it not only saves work but does more than most teams could or would realistically do if they have to assemble an application with just Sinatra or Express as a base. For learners, having the framework lay out known-good stuff in a standard structure for all of the dozen or so elements that a Web application needs is incredibly helpful. You can let Rails create the application skeleton, and then work through the different parts, knowing that it all hangs together.