Kevin Boyd
Kevin Boyd

Reputation: 12379

How to rapidly build a Web Application?

To build a Web Application, what kind of open source web application frameworks / technologies are currently present that would be:

I would want this web app to communicate to a Java client. I am not bound to Java on the server side and free to try out any good rapid application framework.
To summarize, I haven't done much work for the server side hence am not conversant with the tools and technologies for the same.
What would you suggest?
Any and every input would be welcome!...

Upvotes: 5

Views: 4708

Answers (8)

DavidWho
DavidWho

Reputation: 1

You can build an runnable Java Web application within 5 to 10 minutes by using the following online Java web application generator:

http://www.webappexpress.net

Upvotes: 0

poseid
poseid

Reputation: 7156

I would say part of the learning curve will go into understanding concepts. I have been learning about web-apps for some months now, and with my improved understanding of concepts right now, most frameworks show very much similarities. Here are my results so far:

  • PHP: Great to learn about concepts for doing forms, http-post-requests, http-get-requests. easy interaction with database layer, and it is possible to obtain a working basic application in couple of hours. Almost no hassle with build-systems and web-server configuration.
  • Ruby-on-Rails: Great to learn about REST and more complicated CRUD applications. Great to learn about the complexity behind MVC and especially simple and powerful interaction with the database layer by using ActiveRecord. Introduction of meta-programming (code-that-writes-code, code-scaffolding) is great. Nice opportunities for free cloud-deployment, e.g. heroku.com and there is a very active community
  • Java: Powerful interaction with web-server possible (Tomcat, JBoss, ...) MVC is rather complicated here, and in general many configuration-steps necessary (build systems, ORM layer, ...) Grails is a great simplifaction and introduces meta-programming for Java. Jboss Seam introduces REST for Java (but have not looked into this yet)

Upvotes: 2

T. Stone
T. Stone

Reputation: 19495

Django has a few notable 'rapid' items including automatically generated administrative interface, bundled ORM (lowers dev time by not having to write SQL and some other code), and a large community with several re-usable apps.

Where Django (or Ruby on Rails or any other MVC framework for that matter) isn't going to be rapid is the learning curve when you first come to developing on them. Django (and RoR) have quite a bit of seperation-of-concerns and if you're not used to that sort of environment, it takes a while to learn the framework. If you're using an ORM that's something to get used to as well, and then of course for any framework you go with there's the API to learn as well.

PHP on the other hand is a little more intuitive in terms of where you put the code and how pages make up your web app. It'll basically let you slap code wherever you want so in the beginning it will probably be faster. In the end it will be quicker but your final product will be sloppier and probably require re-factoring later on.

This comes down to a question of what's the use of the framework. If it's for a hobby site, just go with what's easy (php), otherwise you might want to consider a well-supported MVC framework.

As others have pointed out, jquery is probably the pick for pre-made GUI widgets.

Edit -- And apparently now Django (as of 1.1) has a very awesome set of unit testing tools it comes bundled with. Things like an extended TestCase specifically for Django, a test client (you can do test page request w/o an actual client or server), a tool to give you a % of test coverage you have of the project, and a bunch of other neat stuff.

Upvotes: 8

Wilfred Springer
Wilfred Springer

Reputation: 10927

I would vote for Grails.

Upvotes: 1

Itay Moav -Malimovka
Itay Moav -Malimovka

Reputation: 53603

Speaking only in terms of speed of development, Ruby on Rails is the fastest one out there.

Upvotes: 1

cletus
cletus

Reputation: 625097

There is no single "right" answer to this question. As a Java programmer of some 10+ years when asked this question my usual answer is... PHP. There are several reasons for this:

  • Low resource usage (Apache, nginx);
  • Cheaper hosting;
  • Really low barrier to entry;
  • It's really Web-oriented rather than being general purpose that can be used for Web (like Java);
  • The fact that PHP scripts aren't persistent (like Java servlets are) between requests makes them much more forgiving and less likely to cause memory leaks and other problems;
  • No deployment step (like Python, Perl, etc). I'd say this is about the best thing about dynamic scripted languages. Just save the file and click reload on your browser;
  • PHP might be inconsistent in syntax and several other things but it's also mature and used by some really large sites on the Web (eg Facebook, Yahoo, Flickr, Wikipedia);
  • PHP is by far the most popular Web development language.
  • Widgets can be done by any manner of Javascript frameworks like YUI, ExtJS, SmartClient, jQuery UI, etc;
  • PHP fits well with MySQL.

That being said, a lot of these apply to other languages too (eg Python/Django).

I don't think you necessarily need a framework for PHP but if you do I'd look at one or more of:

  • Kohana: it's like a more modern version of the more popular CodeIgniter;
  • Zend Framework: it's modular so you can use as much or as little of it as you like;
  • Smarty: it's a powerful templating system.

Upvotes: 8

Daniel Pryden
Daniel Pryden

Reputation: 60957

You've already tagged your question with "java", "php", "python", and "ruby-on-rails", so researching and learning more about those tools would probably help to answer your question.

However, I believe that rapidly building an application is almost never actually the correct goal. Normally, what you want to do is build an application that can be rapidly maintained -- that is, maintained with the lowest possible overall development cost over time.

Upvotes: 4

timdev
timdev

Reputation: 62894

There are tons, which ones are "good" depend on what you need.

There's Ruby on Rails, which is pretty handy.

For python there's django.

For PHP (I spend a lot of time dealing with PHP), you can look at:

  • symfony
  • cakePHP
  • Solar
  • Zend Framework

Which are all good in certain situations, and annoying in others.

Upvotes: 1

Related Questions