The future of client/server deployment?
December 2, 2008 6:35 PM   Subscribe

How are people deploying web applications with client/server interaction these days?

After a failed attempt at getting a Java servlet up using Apache Tomcat, I'm looking to see what else is out there. Ideally, I'd like to stick with JAVA, but I suppose it's also in my best interest to pick up other popular languages if that's seems to be where the flow is going.

Tomcat was useful, but documentation on it was sparse and outdated, and troubleshooting just to get the thing working was a pretty hairy experience. What's a good alternative?

Bonus points to employees that actually use said alternative for their own job. I'm not too worried about ease or interface, just as long as it's a technology that is well documented, meaning more than 100 articles/posts made about it within the past year!
posted by nikkorizz to Computers & Internet (12 answers total) 7 users marked this as a favorite
I'm not sure what you mean by "web applications with client/server interaction," as any web application is client/server to begin with (i.e. the browser is the client and the web server is the, well, server). So, if you mean something more specific than that, clue me in.

If you just mean what are people using as a web application platform, there are many options, and everyone has his favorite. I like the basic LAMP stack (Linux Apache MySQL PHP). I've built plenty of things, for fun and profit, with that. But Ruby/Rails is growing in popularity and the language itself is elegant. I doubt either would be a problem for you if you're familiar with Java. Those are the free options, there's always .NET if you have to (and C# is almost a clone of Java's syntax).

Again, apologies if I've missed the point entirely. And I totally understand your frustration with Tomcat and servlets. I wouldn't go that route, unless you absolutely had to.
posted by wheat at 7:32 PM on December 2, 2008

I've been using Rails for 4 years now, as well as some of the other Ruby-based frameworks (Merb and Sinatra, mainly). It's a cinch. I was ready to give up on Web application development before Rails came along. And.. since earlier this year it's been ridiculously simple to deploy on Apache thanks to Phusion Passenger.

If you want to see a Rails development process, this video shows a basic app being developed in 15 minutes. This video shows how to install Passenger for development-level deployment (but the production rollout is similar).
posted by wackybrit at 7:51 PM on December 2, 2008

Also, don't miss the incredibly deep Getting Started with Rails guide. There's a crazy amount of documentation for Rails nowadays, as well as Ruby. Plenty of books, tons of blogs, etc.

Alternatives would be Django on Python, CakePHP on PHP, Catalyst on Perl.. and, there are a lot more, of course, but I prefer those based around dynamic languages in general. Java, for example, can be an overstructured, verbose nightmare.
posted by wackybrit at 7:54 PM on December 2, 2008

Apache/mod_perl with Mason and Apache::Session::Memcached. static_source on and static_source_file pointed at .git/index in the site dir for easy migrations. PostgreSQL back end. Easy to set up, versatile, fast, scales well, vast and helpful user community.
posted by nicwolff at 9:33 PM on December 2, 2008

Ruby on Rails. I'm almost done taking a class on it, and it's pretty good stuff. Documentation for version 2.0 and 2.1 is still being written/revised, a lot of tutorials that I came upon were for pre-2.0 versions, but for the most part, it's pretty easy. Check out Peepcode for some great screencasts on Rails. They aren't free, but they're worth watching. Sitepoint's Simply Rails 2 is a good beginner's book.

According to conversations with professors and students working with RoR, if you know it, you'll stand above most other web developers in credentials.
posted by curagea at 9:35 PM on December 2, 2008 [1 favorite]

We use Adobe Flex on the frontend, and Java with a Jetty server on the backend.

Flex leverages the coolness of the swf format (works the same on all browsers, vector coolness), and gets rid of almost everything people hated about developing in the Flash IDE.
posted by drjimmy11 at 10:41 PM on December 2, 2008

try django (python). i studied up on it for work and it pretty much covers all the bases. the documentation is pretty good and the framework gives you endless opportunities to hack your own stuff. doesn't obfuscate too much. it has built-in ORM and template systems.

working with flex/blazeds is awesome, too. actionscript is pretty easy to get started with, but it takes a hell of a lot of brains and talent to make a flash/flex project not suck. many try, few succeed.
posted by klanawa at 11:27 PM on December 2, 2008

Without the target application it is a real crapshoot to recommend the most appropriate solution. If you have an arbitrary choice for languages or frameworks, make the most of it and pick something because it fits well, not because its "new flashy and on digg lately".

In general i'd recommend starting with Rails, Django, or something similar. If you have scalability problems, you'll probably need to optimize a bit or reimplement in a high-performance language. But that's not very likely, or you would have chosen such an architecture already.
posted by mezamashii at 4:37 AM on December 3, 2008

Without knowing more about your problem and your skillset, it is impossible to say what language/platform/framework is appropriate for you.

For drop dead simple you can't beat PHP. Once your web server is setup appropriately (many distributions of Apache come pre-configured with support) it is pretty much fire and forget in terms of just writing PHP files. I mention this because it seems like your primary problem with Tomcat is dealing with the setup/workflow of doing Java development. With PHP, the minimum workflow is very, very minimum.

With that said, there are tons of resources out there on Tomcat. The Tomcat User Mailing List alone is averaging +1000 messages/month for a long time. Undoubtedly there tons of articles and books and what not that describe the product in extreme detail.
posted by mmascolino at 7:29 AM on December 3, 2008

Just wanted to chime in that my organization is indeed using apache / tomcat for java servlet apps. Some use a framework (mostly Struts and Hibernate) and others use a proprietary java framework.

I don't take care of the servers of course, so I don't know how challenging that is, but I am able to run tomcat locally on my machine to do testing if necessary. I usually just use the tomcat integrated into my IDE to do my testing as I go, and then submit builds for test / production and those are handled by infrastructure fellows.

I am interested in this thread because I have been wanting to dive in to some new language and I haven't really been sure what to do!
posted by utsutsu at 7:34 AM on December 3, 2008

Java is a pain to learn. There's the language, there's the war file standards, XML mapping for everything, then you get the frameworks (struts, vs. spring vs.... half a dozen others).

The Java language is easy, it's the crazy complex environment built up around it that's a pain.

I have used Java (Tomcat, Weblogic), Perl, and Ruby (Rails, Sinatra, Merb) to build web apps in the last year. If you want to MeFi mail me, I can probably get you setup and have a basic app setup.
posted by cschneid at 11:07 AM on December 3, 2008

If you really want to stick with Java, I can tell you that we use Apache Tapestry quite successfully with our enterprise web application. Other than that, Rails and Django, Catalyst, and CakePHP as others have mentioned.
posted by boba at 8:36 PM on December 3, 2008

« Older Why can't I get DVDs to play properly?   |   Campus Architecture Newer »
This thread is closed to new comments.