When comparing ActFramework vs Ruby on Rails, the Slant community recommends Ruby on Rails for most people. In the question“What are the best web frameworks to create a web REST API?” Ruby on Rails is ranked 11th while ActFramework is ranked 20th. The most important reason people chose Ruby on Rails is:
The sheer scale and massive number of developers using Rails has produced a large number of guides, tutorials, plugins, documentation, videos and anything that can help new and old Rails developers.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Performance
There are two aspects of performance: how quick a developer can deliver a feature and how fast the app is running on the product server. Act is designed to deliver excellent results in both aspects. With unbeatable developing experience, Act makes it very easy to release a feature; on the other side Act is very fast in runtime. Check out this 3rd party benchmark result.
Pro Hot reload
You never restart while you're working on your Act application. Act's hot reload feature is fast and stable, it makes you feel like dealing with scripting language frameworks like Django or NodeJs. Watch this video and feel it.
Pro Scalability
Act is built as a stateless framework. It supports horizontal scale.
Pro Secure
Act is built as a secure product. It provides built-in CSRF/XSS prevention mechanism. And act-aaa makes it very easy to implement Authentication/Authorization/Auditing in your app.
Pro Superb RESTful support
Act makes creating RESTful service a kids game. It features AdaptiveRecord (allows front end to drive the data structure), JSON response control (just declare the fields you want to present or hide) and RESTful URL routing with path variables.
Pro Easy to deploy
ActFramework is not a servlet framework and there are no requirements on containers/app servers. It has a small package size (a helloworld distribution package size is less than 20 MB), a small memory feet print (a helloworld app heap usage is less than 20MB) and a fast boot up speed (a helloworld app starts in less than 3s).
Pro Templating
Act's view architecture is very flexible and support using multiple view engines in your app. The default template engine is Rythm, a very developer friendly and powerful template engine. Act also support other templating solutions including freemarker, velocity, thymeleaf, and mustache via plugins.
Pro Configuration for multiple environments
Act supports load configuration from a common dir and then overwriting it from a profile dir. Makes it very easy to manage configurations in different environments (e.g., dev, uat, sit, prod) Watch this video to see the innovative way Act delivers its configuration support.
Pro Concise and expressive
Act does not require you to put Annotation when it is able to infer the intention from other parts of the code, i.e., you don't use @PathVariable
or @RequestParam
to tell Act the binding parameter name. And you don't need a ModelMap
to bind variables to render argument names. Act has sophisticated byte class scanner to detect the variable names to do bindings automatically.
Pro Comply to standards
Act's IoC is built on top of Genie, a fast dependency injection library that fully supports JSR330, and Act's validation solution is built on top of JSR303. Act is NOT an odd framework to most Java developers. Unlike Play1.x, ACT applications follow the standard maven project structure and it is very easy to integrate other Java libraries.
Pro Database access
Act's DB layer is extremely easy to use. It supports SQL databases (through ebean orm) and MongoDB (through morphia). Using multiple datasource can never be that easy with Act's DB layer. Go here for more information on this.
Pro Fast and flexible routing
You can configure your routing in either Spring MVC/Jersey style with annotation or Play style with route table or a combination of both. Act's routing supports RESTful URL path variables, optionally validated with regular expressions.
Pro Massive community with lots of tutorials and guides
The sheer scale and massive number of developers using Rails has produced a large number of guides, tutorials, plugins, documentation, videos and anything that can help new and old Rails developers.
Pro Many plugins (gems) available
There are many third-party plugins (Ruby gems) available for Rails development. The larger ones and those that have a lot of downloads and users are very well documented and easy to use.
Pro Ruby is a nice readable language
Ruby has a very clean syntax that makes code easier to both read and write than more traditional Object Oriented languages, such as Java. For beginning programmers, this means the focus is on the meaning of the program, where it should be, rather than trying to figure out the meaning of obscure characters.
presidents = ["Ford", "Carter", "Reagan", "Bush1", "Clinton", "Bush2"]
for ss in 0...presidents.length
print ss, ": ", presidents[presidents.length - ss - 1], "\n";
end
Pro Good conventions
MVC is a great starting point, and perfect for APIs. You'll rarely if ever have to wonder "where should I put this code?"
Pro Small projects are very easy and it's possible to finish one in very little time
The large number of documentation, tutorials, videos and guides which help new developers who are just starting with Rails make it seem very easy to create a small and simple application by relying on code generation and components that come out of the box with Rails.
Pro Cool language
Pro Supported on every major cloud or VPS hosting service
Rails is supported on every major Cloud hosting service nowadays. There are also countless tutorials that help developers deploy their Rails apps if there are any problems on the way.
Pro Meta-programming capabilities
Cons
Con Incomplete microservice support
Although Act is built to be a great framework that supports microservice development, it lacks some of the key features at the moment, like sending requests to other microservices from within the app, service governance, and messaging handling.
Con Very small community
As of February 2017, Act is a brand new framework (even though the project started at the end of 2014). Community is still forming.
Con Functional testing support still under development
Developers are still working on innovative functional testing support for Act.
Con Documentation is still being written
Act's documentation is still under development.
Con Learning curve seems low at first, but starts becoming steeper
Rails' simplicity is deceptive. It's learning curve is really low at first, and the huge number of tutorials and guides out there for starting with Rails make it even easier. But it starts getting harder and harder as apps become more complicated. If good code conventions and OO design are not followed, then the codebase will be all over the place and it becomes impossible to maintain it.
Con Too much magic
So much behavior is implemented with dynamic behind-the-scenes changes to existing classes that obscure bugs are way too common. Conflicting interactions between multiple plugins that both try to change the same objects are a particularly pernicious example.
Con Too much convention
Con Not a very popular language outside of web development
Con Bad performance
Among the slowest frameworks. If you want to scale, you will have to migrate to another land.