Which Platform to choose Ruby on Rails or GWT? - php

I have a need to create a web2.0 application with the following features:
UI screens
Integrate with a forum framework
Integrate a blogging framework with the application
Real time chat application (Optional)
Integrate with a email server
Based on your previous experiences, please suggest good frameworks, toolkits, etc which can help me build this app quickly in with following criterion
ease of use
features richness
Can people suggest me the advantages/disadvantages of choosing GWT over Ruby on Rails.
Also if you believe any other platform like PHP is better please suggest me on that too.
Thanks

Try jRuby on Rails ... you get the ease of Ruby and Rails ... and all features and libraries of Java.

GWT is quite interesting in a sense that you can use on client-side regardless of the backend technology. So comparing it directly to Ruby on Rails isn't much fair because ROR is a full-stack solution (except javascript libraries for UI work). Still, in your case, if you want to use GWT, you should be clear with the following points:
You'r comfortable with Java
You app is purely web 2.0 (means no more than different pages than can be viewed as different modules)
Forum, mail server integration won't pose any difficulties
You have a bit more time for development
I would suggest that if any of the above points don't work out for you, then you should move to ROR. Now why I built a checklist based on Java? Because you'll find quick development tools like "Spring ROO"(yes, Spring Roo is the smartest code generator) and scalable, integrable, full-stack technologies like "Spring" in Java. And Spring supports the development of everything you've mentioned. And even if you think GWT won't suffice your needs(in terms of short development time) then you can easily go for JQuery and it's Spring glue library to develop UI stuff.
P.S: Spring Roo 1.1.0.M2 and GWT 2.1 have been integrated to reduce development time many folds but it's not production ready yet.

If you are into java: have a look at grails, its based on a bunch of well known java frameworks like spring and hibernate. You can combine Java business logic with easy to write groovy code.

Related

Ruby on Rails or PHP Framework for a Java developer

I am aiming to write up a web service program in either a PHP framework (such as CakePHP or Yii) or writing it up in Ruby on Rail.
I have experience in Java and Perl. One of the thing I really like about Java is Eclipse - it was made for Java and is really helpful when handling objects. Although Perl has its plugin for Eclipse, it is no where as good as using Eclipse for Java.
My question is which framework would I be better off - Yii/CakePhp or Ruby On Rails. I gave Yii a try, an it took me minutes to set up php objects based on the SQL tables. I was wondering if Ruby On Rails is that easy. Although it looks like there is more support for Ruby On Rails ...
And does Eclipse integrate well with either Ruby On Rails or Yii? eg. by typing object name followed by a dot, I can see the attributes of the object in a drop down list.
Thanks!
I was Java developer and migrated to Ruby On Rails 2 years ago and I'm happy! I offer to use it for your work because:
It has a big community, as you have already seen
It has a wonderful support
It goes with new web technologies (HTML5/CSS3, Twitter bootstrap and etc.)
It is object related language as Java
It updates VERY FAST
And does Eclipse integrate well with either Ruby On Rails?
You can use Rubymine (Ideja) or Aptana (the same as Eclipe)
eg. by typing object name followed by a dot, I can see the attributes of the object in a drop down list.
Yes, but it works buggy because Ruby is not typed language
For Ruby On Rails I offer use TextMate or Vim (Gvim, MacVim)
I prefer ruby on rails first, if you want to spend time on php frameworks try cakePHP latest version, codeIgniter (easy to use) but my feelings - whatever technologies we used - some good principle comes with Ruby On Rails framework like
Test Driven Development
Behavior Driven Development
Pair programming
Don’t Repeat Yourself” (DRY) - removing the repetition code
these type of concepts and Agile Methodology if we implement in php, java or any Dynamic Programming language no need to migrate but I am agree to say depend on business logic we can choose language.
You can't go wrong with yii if it's php but I'd say rails. I was in the same situation you're in and never looked back since switching to rails.
Yii 2 will soon be out by the way but rails receives updates really fast and the support on here is incredible. I'm quite sure I would have lost patience with rails if it wasn't for the support I receive here.
I crunch PHP all day but i would go with Rails due to the environment surrounding it.
Ruby has RubyGems = awesome package / dependency management.
PHP has Pear and PECL = headaches.
Rails has Rspec and cucumber for TDD which are awesome.
PHP has PHPunit which is an admirable effort but requires tons of configuration.
Rails has a console for scaffolding, migrations etc that is far better than any PHP framework i have used.

What can be the best Practice for a Rapid Web Application Development?

I am coming up with a web application which will be primarily based on PHP. I would like to know some of the best practices and technologies that I can make use of to come out with the app as fast as possible. My team will be working remotely, so I want to know the best ways of collaborating through web resources too. I'm expecting in here, the options or a framework of technologies that can get me a great app in a shorter time.
I've given a small example out here. Please extend my plan and give me suggestions...
Server Side Scripting - PHP (CakePHP for rapid development)
Client Side Scripting - JS (JQuery - A JS framework for rapid development and compatibility)
Authentication - OpenId
Database - MySQL (Stable and OpenSource)
I want more to be added to this list so that I code less and reuse more. Please help me out.
Reusability is the key factor. How do I leverage already available classes, frameworks, etc in an efficient way? I want to know my options.
Try to find a framework that suit your needs. If you want reusability, make sure you learn/understand the concept of the MVC pattern (OOP). I personally work with Zend-Framework which has a very big community.
(However, a good practice is building your own framework. Look at other frameworks and learn about the pro's and cons.)
Every project starts with an UML design: http://en.wikipedia.org/wiki/Unified_Modeling_Language
Don't try to invent the wheel again, for example: learn/play with the 960 css grid http://960.gs, jQuery and different database-types.
Documentate everything!
Test everything http://simpletest.org
use subversion for easy access of previous versions of your project http://subversion.net
Good luck!!

Cakephp, what is it good for?

I hear a lot about cakephp, it's even a requirement for some hiring companies on job boards. I'm a beginner programming but I like making things from scratch because I understand everything and it feel more flexible.
For my next project I want to build a site which has users, users can vote and they can post entries as well as manage their entries. Would cakephp be a good framework for this or should I just do it on my own?
I'm a great fan of CakePHP and, up until recently, I've used it for all of the projects I've worked on over the last four years, introducing it to two companies along the way. Now I'm working in Coldfusion so I don't use it at work, but I still do at home.
If you're just starting out then you don't need to worry about CakePHP as a job requisite just yet! Learn PHP as well as you can - get your hands dirty and do all the repetitive stuff like connecting to databases and building queries.
More important in a job application (and when developing using CakePHP or any framework) is to have a good knowledge of the underlying language, in this case PHP. Once you know it well you can make an informed decision about frameworks and MVC. Then you'll really see the advantages, whether it's Cake, Codeigniter or something built by the girl nextdoor.
CakePHP is an MVC framework that was built using the Ruby on Rails style of architecture. More than anything it gives you a convention that you can follow, and other developers can follow, that is well documented. If you build it yourself from scratch you may learn more about the underlying PHP APIs, but you'll lose out on the benefits (likely) of a commonly accepted design architecture.
I would suggest learning CakePHP or try out CodeIgniter instead. The idea is that you can quickly roll out an application with a very robust feature set, that is well tested, that doesn't require you to spend months building out the core components. It is more important that you are capable and efficient then specifically that you know one framework over the other.
CakePHP is a web framework for PHP implementing the Model-View-Controller (MVC) paradigm. It's designed to make PHP web development easier, but the overall workflow is completely different to that of plain PHP.
No-one here can tell you what works best for you, but I'd suggest learning to use PHP before learning to use CakePHP (just as the Ruby on Rails guide suggests learning Ruby before Rails). You won't need to, but it will help a lot.
Model-View-Controller (MVC) frameworks for other languages that you may be aware of and/or familiar with include Django for Python, Ruby on Rails for Ruby, and ASP.NET MVC for ASP.NET.

Rapid Web Application Development ASP.net vs. Open Source Platforms

Good morning -
I'm an intermediate-level developer who wants to build on online data-driven app (CRUD with a few calculations and basic HTML form inputs, nothing fancy) that keeps track of user sessions, and looks "professional" (or at least not "homemade").
I'm looking to develop something with the look-and-feel that users get from sites like:
http://www.datamasher.org/
http://www.thisweknow.org/ (About page says it was made with Ruby on Rails, which I'm unfamiliar with)
(stackoverflow.com)
Any pointers on whether I should just go the Miscrosoft route, and develop in ASP.net with WebForms, or if there's a quick way to do this kind of development (with a WYSIWYG environment) on an open-source platform? If so, I'm willing to learn, if it's somethat intuitive, and I can use to quickly drag/drop, add code, and publish online. Templates would be a plus, too - I'm not a heavy HTML/CSS developer.
I apologize is the question seems a bit vague.
If you go ASP.NET route use ASP.NET MVC. It is very robust platform. It also depends on your skill set as to which technology to pick.
Is this a personal project or a professional one? If you use ASP then you'll have to host on a microsoft server (which isn't free) that is one thing to consider. If you use Ruby on Rails you can use Heroku (free while you're small).
It also depends on what the purpose of the app is. if it is to get something out there as quick as possible, and you have experience with ASP, then use that. I use Ruby on Rails and find the online support fantastic (props to stack overflow) as well as a large number of plugins and gems you can integrate make development pretty straightforward. Every AustinOnRails meeting i go to, i hear more and more .NET people wanting to jump ship and move to Rails, though this is based on an availability bias.
If you had no experience on either, I would suggest RoR since it is free to deploy, open source, and has an extremely active community. I would recommend the Agile Web Development with Rails book if you want to learn Rails.
Aside from that, its really your call.
Rapid application development is not used for building sites you have mentioned. For RAD, there are tooling support inside VisualStudio, like GridView controls, DataSets, SqlDataSource and similar. That's rapid development! But with that approach, you're loosing most of things that was important in building sites like this, and those you mentioned.
For building cool new, web 2.0 sites, you have to do lot of things "by hand", and you need framework that gives you control over page rendering. From request, through business logic execution, database requests, to html rendering process for which you must have absolute control!
Frameworks like Rails (Ruby), Django (Python), ASP.NET MVC (with c#, Ironruby, ironpython,... and some ORM frameworks) are made for that. If you're familiar with asp.net, you should look at asp.net mvc and community around it! But in my experience, there is no quick, rapid way for building sites like stackoverflow, no matter which framework you choose!
Use the Open Source ASP.NET MVC Framewrok, is easy and powerful

Which PHP frameworks are used by corporations?

There are several questions about PHP frameworks, but I'm curious as to which one(s) are used in the commercial world when developing web applications with PHP. At my first web-based job, they didn't have a framework for the PHP codebase. Is this common when dealing with PHP? If not, what frameworks to companies producing a product (either a site that provides a service of some kind or a web-based product that can be purchased) using PHP tend to use?
Is this common when dealing with PHP?
In my experience, unfortunately it is. This is of course a gross generalization, but people who tend to learn PHP as their first programming language don't learn the essentials of maintainable software development and often don't really know how to write good code. I think this is a failing of the PHP community, where historically most learning resources don't emphasize good practices (probably because the authors didn't know any better!). You can of course write good code with PHP, as long as you understand underlying programming principles.
Companies will often start out with a hap-hazzard code base of PHP scripts that get re-used and gradually extended from project to project (often without source control!). The companies that know what they're doing and take it seriously will evolve this into some kind of in-house framework, or I have often found they'll move onto something without the historical crapness of PHP, like Django or Ruby on Rails.
If you're just starting out, there are several decent MVC frameworks that will form a good base for all your developers to learn and use. In no particular order:
CakePHP
CodeIgniter
Zend Framework
There are of course others as well.
That said, as always it depends on the project. Sometimes a framework either won't make sense or will be overkill, othertimes you're better off using a pre-built product (like a CMS) and building extensions to it.
Most frameworks are strongly focused on the presentation layer. Now, "corporate" is of course a rather vague term, but I assume you mean for more typical IT tasks, such as accounting, CRM etc. For these tasks, the presentation layer is a much smaller part of the entire application. Not only does this make said frameworks less important - it actually disqualifies them somewhat, since you don't want the restrictions on your model layer, that they impose.
I think it gets more and more common to use a framework. A few years back most programmers developed their own framework. But the cost to train a new employee for such a framework gets higher and higher. Therefore many companies are moving now to well known frameworks.
I guess that Zend is currently the most used Framework in the corporate environment. One reason is that it does not give you any restrictions on the model layer.
I can not predict the future but I guess that Flow3 will be used in the future too. It is the new Framework behind Typo3. And many Typo3 developers (web designers) who need to write web applications will probably use Flow3 then.
In last two three places I've worked the company had their own (private, built in-house) framework.
According to a PHP Framework Popularity at Work survey by Sitepoint in 2015 (7554 survey participants) the five most used frameworks are
Laravel (22%)
Symfony2 (14%)
Nette (9%)
CodeIgniter (8%)
Yii 2 (7%)
Furthermore survey results indicate, that
5% use a company internal framework,
3% use no framework at all,
3% use a CMS for everything,
1% use a simple MVC framework.
There seem to be continent specific framework preferences: In America and Asia, Laravel seems to be the framework of choice (except for Russia: Yii 2), whereas in Europe you'll find more Symfony2.
(Be aware that this is just referenced from one source -- see links above.)
The only enterprise-level framework I can think is Zend Framework. CakePHP, Code Igniter and others are only focused on RAD development.
Having experience with CI , yiiframework and calephp (not much, really) my opinion is that CI is not flexible as ohter 2, so I do not recommend it on larger-scale projects.
Anyone who disagree, just can try a demo project with cakephp and Yii and he will see how things are easier with them as crud,form validation etc.
Of course all have their disadvantages :)
recently i talked with a CTO of a company, offering a e-lecture solution and we talked about PHP for a while ... we both agreed, it is not the best language for rock solid solutions, but he pointed out the symfony framework, they used just before moving to java ...
also, flow3 mentioned by raffael is quite powerful ... most interesting thing to me is, it brings AOP into PHP ...
greetz
back2dos
You may want to look at www.flow3.org, it's a pretty comprehensive approach to PHP application frameworking and is rapidly approaching its first mainstream Beta release.
I'm not sure if PHP has gone into the enterprise market in the US yet but when i worked in a corporate office the language what they use is Microsoft .NET.
PHP is yet to enter the corporate world IMO. It is popular with the hacker world and maybe micro and small software/web companies.

Categories