Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I was wondering what are the strengths and weakness of using Ruby on Rails for Web Application development. I would like an insight from other developers as to why they have chosen to write in Ruby on Rails over other languages and technologies.
What does Ruby on Rails provide that has the edge over other web application technologies and languages?
Are there any unique capabilities that the language provides?
Thanks in advance, hopefully I will be able to make the choice as to use the language or not.
Ruby on Rails is a server side technology, it cannot be compared to Flash or Silverlight that are client side technologies, like apples and bananas.
EDIT (for the edited question)
Rails's main strength over other server side tech's is ease of use and development speed. This comes from 2 factors:
ruby is a expressive and easy language
rails provides a simple yet powerful API (call it "programmer interface") that lets you focus on "doing your stuff" rather than "how to do it"
You write less code and don't struggle with side problems.
I'd add a great mature community and plethora of plugins and ready-made code.
Ease of learning and speedy development are big pluses
It runs pretty slow though (compared to, say, ASP.net)
Faster development, slower runtime
I think, Ruby on Rails' strength is a community.
There are a lot of people to ask about framework.
Also there are many books, libs, plugins, etc.
No matter which technology or framework you will choose,
just do not limit yourself with it.
Disadvantage is that many of the folks building larger apps have continued to work with C#/Java/PHP; there's not a lot of huge apps running on Ruby.
From my understanding - it runs slightly slower than the big three up there - large apps are staying where they were.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
What do you recommend (or not) to use for Real Time features (like chats or auctions) in web applications?
The most important for me is your opinion or benchmarks about the efficiency / performance / speed of specific frameworks, technologies and solutions.
For example:
Ruby on Rails + ActionCable
Phoenix + Elixir
Socket.io
QUESTION'S CONTEXT:
Each framework, programming language, technology has some advantages and disadvantages which make it more or less effective for Real Time needs. Sometimes we can use multiple technologies to build app's backend, for example when backend is a set of cooperating services (SOA, micorservices, etc.). Due to both, we are able create some features in Ruby on Rails (because the implementation is fast) and other in Java (beacuse it works fast).
If I would be on your side, I would follow Elixir & Phoenix path.
Elixir is basically Erlang with better syntax and it's open for extensions via macros, so you can customize it whatever you want.
Please take a look on these great articles about that:
The road to 2 million websocket connections
Phoenix Channels vs Rails Action Cable
Basically:
Elixir was created to do handle such scenarios with grace, efficiency, low latency, great scalability and fun.
Ps. Please remember that the time of the compilation is not that important as time of handling the request / getting the response / handling multiple websocket connections.
Elixir is not the fasters language, but it leverages concurrency and it's unique in terms of responsiveness.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I have been using Ruby on Rails for a while now and I'm really comfortable with it.
Lately I've also been using rails for simple static websites that consist of about 10 pages and some form handlers & mailers.
Now I'm wondering the following:
Is it overkill to use Rails for such sites with regards to memory usage?
What would be the cons for using Rails for such websites?
What would you guys suggest as an alternative?
I thank you all in advance for your replies.
Regards
One of the most important aspects of web design is the ability to expand/update/read the code. If you're most comfortable in RoR, use RoR. It's not overkill, especially because you can get extremely good test coverage with such a small website. If you or any person that inherits the website ever wants to add model code, it would be extremely easy.
BTW, I would highly suggest checking out the high voltage gem from thoughtbot. Very good for hosting static pages.
Take a look into Middleman please. It's a wondering tool for static websites on Ruby.
Although, Rails has higher memory foot print, since it gives you a lot of development power it is not an overkill. The pros are far more than cons so if you are comfortable with Rails use it for static pages too. You may need to update these pages to more advanced sites and applications at some point and with rails you will always have the option.
There really aren't many alternatives that are much simpler than RoR. In terms of memory usage, you could use PHP to fix that issue, but who wants to use PHP? No one, that's who :)
You could take a quick look at something like Node.js + the Express framework. Overall Node with Express is pretty different from RoR (it's purely javascript), but the way you generate views, etc is pretty similar.
I haven't don't too much in it, just some simple sites, but with little to no data-handling, you aren't going to be digging into the complicated stuff anyways. This framework would fix your memory woes completely.
You can look at it quickly here:
http://nodeguide.com/beginner.html
http://net.tutsplus.com/tutorials/javascript-ajax/introduction-to-express/
In my honest opinion, I would just stick with RoR. It's super easy and relatively lightweight in everything but the memory footprint, but if memory is REALLY that much of an issue, then give Node a try, it's fun. Some people love it, some hate it. It's still fun to learn.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am wanting to learn a new programming language, and am wondering what the difference is between the two beyond the fact that one is a framework based on Ruby and one is an actual language. What are the limitations of the two languages?
Ruby is a scripting language, as are Python and Perl.
Ruby on Rails is a Web app framework that is built on the scripting
language Ruby.
Ruby on Rails makes it easy to use the language Ruby to write stuff that
makes a dynamic database driven website work (like a wiki, or a social
networking site).
Rails (not ruby itself) is proud to be "Opinionated Software".
What this means in practice is that the authors of rails have a certain target audience in mind (themselves basically) and aim rails specifically at that. If X feature isn't needed for that target audience, it doesn't get added.
Off the top of my head, things that rails explicitly doesn't support that people may care about:
Foreign keys in databases
SOAP web services (since rails 2.0)
Connections to multiple database servers at once
That said, it is very easy to extend rails with plugins, and there are plugins which add all of the above functionality to rails, and a lot more, so I wouldn't really count these as limits.
The only other caveat is that rails is built around the idea of creating CRUD web applications using MVC. If you're trying to do something which is NOT a CRUD web app (like twitter, which is actually a messaging system, or if you are insane and want to use a model like ASP.NET webforms) then you will also encounter problems. In this case you're better off not using rails, as you're essentially trying to build a boat out of bicycle parts.
In all likelihood, the problems you will run into that can't just be fixed with a quick plugin or a day or 2 of coding are all inherent problems with the underlying C Ruby runtime (memory leaks, green threads, crap performance, etc).
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Why would I choose Ruby on Rails instead of PHP or ASP.NET when starting a new middle-sized project that has no restrictions? (not limited by hardware/operating system/memory/etc)
It's not a "web programming language" (whatever that means); it's a web application framework written in Ruby (a programming language, though certainly not just for the web!).
I'd say the primary advantages of Ruby on Rails (RoR) are:
the productivity of the Ruby programming language in general
the "Convention over Configuration" paradigm that decreases how much the developer must write to see a webapp running in their browser
stronger adherence to "Don't Repeat Yourself" (DRY) principles than PHP or ASP.NET (though you can still repeat yourself all you like if you try hard enough !)
The primary advantages of Ruby on Rails are:
1: That it takes very little effort to get started in web application development.
2: There is a huge community built around it and loads of people who are happy to help you get going.
3: For many applications you don't even need to look at SQL (which doesn't mean that you shouldn't)
4: There are probably more tutorials for the different aspects of the Rails framework than there are for any web framework out there on the net.
Summary: It's a great way to start your web application career, hobbykick, or what have you.
Some things that Ruby on Rails could do better:
1: Documentation, the proliferation of resources on the framework means it can be very hard to find thorough, concise and up-to-date documentation for certain plugins or gems. One SO user described it as "documentation via blogging."
2: When you work with Rails in the beginning you really don't need to know much of anything about your database. However, sooner or later you'll want to get more sophisticated with some of the SQL behavior, tune things to increase performance and so on. This may be a personal preference, but it's much harder to know what needs tuning when you have never needed to look at the SQL before.
When studying, I generally learn simple things, then get more complicated and advanced as time goes on. With Ruby on Rails it can be very easy to omit learning the easy database stuff, then when it comes time to do advanced things, you have to go back and start from scratch.
Hope that helps.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
What are some great Learning resources? What kind of problems do I solve with Ruby? Is learning ruby on rails same as ruby? If my current background is visual studio and microsoft.net framework, is IronRuby the best way for me?
Awful lot of questions, please suggest.
Ruby on Rails is an application framework around ruby.
It's like saying is "Asp.Net MVC" the same as learning C#?
Ruby is the language powering the Framework, but many have taken the good points and implemented it into other frameworks now.
Ruby is an interesting language. IronRuby compiles Ruby down to MSIL, just like C#, VB.Net etc. So it's a good start for implementing Ruby, as it maps Ruby to be able to be used in the CLR.
but if you want to learn the language itself, one good (and fun) way to get the basics is here:
http://tryruby.hobix.com/
Wiki to more about Ruby
Funniest and most creative intro to a language ever:
Why's (Poignant) Guide to Ruby
As for IronRuby. Here's more info on that:
Going Ruby: Straight to IronRuby?
What kinds of problems?
Pretty much anything that where the performance of a dynamic language is acceptable. It's general purpose (like Java, Python, C++, etc.) so you could use it for most any kind of application.
Is learning ROR the same as learning Ruby?
No. Ruby on Rails is a set of extensions to make Ruby good at web application development. To answer another question you asked, this is probably what Ruby is most famous for. It's use in Ruby on Rails and the ease of development it has offered to web developers.
How is a DSL useful?
It's useful because it is "domain specific". That's what the DS in DSL stands for. You're making a language with constructs which are appropriate for the particular problem domain you're working in. A DSL for arcade game development would probably have parts of the language to make it easy to animate multiple things and start them in motion and react to collisions between them. Whereas a DSL for accounting might have things for adding entire sets of numbers and comparing them to other sets.
Great learning resources?
I'm partial to video learning so my choices would be Railscasts.com and PeepCode.com.