views:

1672

answers:

7

Until recently I'd considered myself to be a pretty good web programmer (coming up for 10yrs commercial experience on a variety of e-commerce, static and enterprise applications). I'm self taught and have always used the Microsoft product stack (ASP, ASP.NET)...

My applications are always functional, relatively bug free, but have never been lightening quick. As a frequent web user I always found this to be the norm... how fast are the websites from the big tech players (eBay, Facebook, Microsoft, IBM, Dell, Telerik etc etc) - in truth none are particularly fast. I always attributed this to "the way things are with web apps"...

...then I cam across a product called Jira from atlasian and this has stopped me in my tracks...

This application is fast, and I mean blindingly fast.. too fast to time the switches between pages, fully live content, lots of images and data and cross references etc etc...

I run this on an intranet, with a large application DB, and this is running on a very normal server (single processor, SATA HDD, 8GB RAM).

Am I missing something?? Are my programming techniques that bad?? I am wondering if this speed gain is down to it being written in Java and running on Tomcat.

Does anyone have any benchmarks to compare JSP / ASP or Tomcat / IIS???

Thanks, Mark

NOTE: this isn't a blatant plug for Jira. I don't work for them or have any affiliation to them... but I would like to be able to write applications like them :)

+3  A: 

YMMV. But one of the longest-lived Things That Aren't True Anymore is the assertion that "Java Is Slow". Excepting floating-point (where most Java implementations aren't at liberty to use the floating-point hardware), Java is generally as fast or faster than compiled code. Some of the best and brightest have spent years of effort ensuring this, including such things as dynamic recompilation/re-optimization of code based on run-time metrics - something that statically-compiled languages like C or assembler cannot boast.

ASP is sort of the opposite extreme, since the original ASP had to recompile each page request each and every time it was made. ASPX addressed this by allowing retention of the compiled page code. That got rid of a lot of useless overhead.

A more compelling reason to prefer Java over ASPanything/IIS is freedom. A Java/Tomcat webapp will run under almost any OS on almost any hardware. IIS runs on Windows. Period. And for the most part, that also means Intel. Not Sparc, Not zSeries. Maybe you don't care. But then again, maybe next week IBM will offer your employer a can't-refuse deal on a mainframe.

I don't have benchmarks, and there are a lot of things that can make one platform preferable. But I permanently gave up on the "Java is slow" idea when I encountered the Poseidon UML tool with its cool real-time graphics UI and the FreeMind mindmapper tool. A small hit to startup the JVM, but after that, you'd never know what language you were working under.

Tim H
Are both these apps running in browsers? They "look" like desktop apps.
Mark Cooper
I love the bit "IBM will offer your employer a can't-refuse deal on a mainframe". I've never heard of IBM offering a deal you can't refuse on hardware!
RichardOD
@Tim the mono project (http://www.mono-project.com/Main_Page) allows .Net to run on almost any platform. Banshee(http://banshee-project.org/) is a great example. Written C# and targeted to run on Linux and OSX. I myself haven't found much value in being able to run the same code base on different platforms, especially with the advent of the browser. Now days you can have the same experience in the broswer as you can in a thick client.
Chuck Conway
1. Yes, Freemind and Poseidon are desktop apps. Just held up as observations that Java can be pretty snappy these days.2. You obviously didn't see the Godfather or know IBM back when Bill Gates was in diapers. I never *said* IBM was offering a discount price!
Tim H
3. I've worked with Mono - customized Tomboy Notes, which I'm very fond of. But while .Net and Java have a lot in common - including both being sponsored by OS vendors and both being allegedly open architectures, Sun has maintained a reputation for strictly keeping its OS specifics out of its language environments and Microsoft has a reputation for rather the opposite. Which is why I apprectiate Mono, but wouldn't bet my company on it.But the original question related to (named) webapp server platforms, and I don't know what, if any web application servers have been built on Mono.
Tim H
+2  A: 

The great debate. Java vs. .Net.

When .Net first came out there was an application written called "The Pet Shop." Which was a .Net port of Sun's J2EE reference application, "The Pet Store". It was announced that Microsoft's implementation was "faster."

As with anything, especially anything to do with marketing, you have to dig deeper to find the truth.

Any technology can be fast with enough hardware and the correct design. In my experience there are two factors to speed: What type of hardware is used and how you architect your application (this includes database tuning).

Chuck Conway
I agree. The fact that this app is running in house on a fairly noddy server tends to imply that the architecture (or the technology) is good. We have plenty of other in-house apps that are running slower on faster servers. Mark
Mark Cooper
+2  A: 

Caching at various levels (response, db, etc.) makes a huge different in responsiveness of a web application. There is also a lot of things that are done to reduce time consuming operations like db connection pooling, sql statement caching, etc. As much as I'd like to say Java is better :-), I think in this case the performance is due to the way Jira was written and the fact that it's being run internally (probably with few users as compared to eBay, Facebook, Microsoft). This site, Stackoverflow, uses ASP.NET MVC and IIS and is very responsive and my guess (since code is not open sourced, yet) is that they use many of the same techniques you would find in Jira or any other web application built to scale.

John Wagenleitner
+1  A: 

I think that it is not typically the frameworks and languages used that make an application slow. In my experience, some frameworks like JSF or .NET server side controls give developers alot of freedom to make too many database calls and look things up too often, but that's definitely not the fault of the framework used.

Keep your application as light as possible and focus on keeping the data sent to the client as small as possible, and you will have a fast application. It's usually faster to develop fast applications too.

The Jira folks have written a best in class application (and charge for it) - nice work crocodile dundees.

stevedbrown
A: 

How to use iis for java application without tomcat software?

Ramakrishnna
Probably best to create a separate question for this.
Zaps
A: 

Hello World Maybe, but sometimes is really important this ¿¿ASP.Net?? What the He.. is This Shit?.

  • More Fast
  • Smart apps
  • You're just a fcking bastard {MS Fans ftw..}

## Welcome to my first Post ##

Nice .. Textarea Plugin, i love it

PD: Testing :: 1,2,3,4,5,6

[Who is the King ?][1] I don't know, Linux?

Incorrect Answer ': Please, wait here 5 seconds to try again!

Bill Gates
Wtf is this post?
Aram Hăvărneanu
A: 

People's opinion is mostly biased. Most people have never really tried the other while claiming the other is slower. I wouldn't trust any answer: it's mere opinion. It's boring to always read the same 4 cents again and again.