tags:

views:

114

answers:

6

Hi to all! I can't choise between Microsoft stack and Java stack. I'm start to develop highload system. Over 500 000 transactions per day. Best choice is Java stack or Microsoft ?

A: 

Both Java and .Net stack can support most of your needs. Also look at other solutions such as memcached, Solr, etc. that are designed to solve specialized problems. Both .NET and Java have connectors available to work with these systems. I would personally prefer .Net platform for reasons such as better tooling, language support, ASP.NET MVC.

CodeToGlory
+7  A: 

The Microsoft and Java stacks are comparable in performance terms. Whether you can achieve 500,000 transactions per day (or better) depends more on what those transactions are doing and whether you get your system architecture right.

So I would recommend that you design your system architecture first, then decide between the various implementation alternatives based on:

  • how well the stacks (and related third party technologies) can implement your design,
  • a "total cost of operation" assessment taking into account hardware, software licenses, staff and training costs, and
  • consideration of your organization's long term IT plans.
Stephen C
+3  A: 

Between those two I would say it's not the stack itself that will be the key to success (or failure). You can write a brilliant service using both, as well as writing one that sucks. The important thing is to study how to get what you need using the stack that you choose.

Fredrik Mörk
+1  A: 

The number 500,000 on its own isn't determinative because the size (in terms of computation power) of each transaction is not known, but assuming it defines a very heavy load, although a properly configured Windows cluster could handle that, I think you will find many organizations are more comfortable on *nix systems in production for that kind of load (at least in my geographic area), where things that you don't think much about in development (such as simultaneous network connections) come into play, so that may need to play into your considerations. This system will be maintained by someone. Are they agnostic about Windows vs. Linux or Unix?

I think that will be the first driving factor here. If you truly have freedom with regards to the OS this will be deployed on, then either technology will get the job done, or fail to if not done right.

Yishai
+1  A: 

The only real differentiating feature would be cost. Every server you have running Windows costs you a new Windows license. If you run Java on some flavor of Linux/Unix, you can probably get away without paying the "Microsoft Tax."

Beyond that, your developers' expertise, familiarity and availability of local resources is your best indicator.

Drew
+1  A: 

Both technologies will let you build your system. Both have great communities. You should really choose the one you are better familiar with.

Everyz
I agree. However if you expect sustained peak loads > 100 transactions per second then J2ee etc. etc. is the way to go but at the cost of increased complexity, longer dev times etc. etc.
James Anderson
You never know. If you are great in Java you will do it faster and better. If you are .NET master - you should choose this platform.
Everyz