Categories

See More
Popular Forum

MBA (4887) B.Tech (1769) Engineering (1486) Class 12 (1030) Study Abroad (1004) Computer Science and Engineering (988) Business Management Studies (865) BBA (846) Diploma (746) CAT (651) B.Com (648) B.Sc (643) JEE Mains (618) Mechanical Engineering (574) Exam (525) India (462) Career (452) All Time Q&A (439) Mass Communication (427) BCA (417) Science (384) Computers & IT (Non-Engg) (383) Medicine & Health Sciences (381) Hotel Management (373) Civil Engineering (353) MCA (349) Tuteehub Top Questions (348) Distance (340) Colleges in India (334)
See More

Single technology stack vs. multiple technologies for high scale site

General Tech Technology & Software
Max. 2000 characters
Replies

usr_profile.png
Brian Burl

User

( 4 months ago )


I have recently been come to for advise on an idea of rewriting an existing site due to massive maintenance problems in their old design.

Basically, the company is considering a complete rewrite of aprox. 90% of their site which is currently written in PHP using an in-house framework.

The company would like to rebuild the backend and some way down the road the front-end as well in order to minimize their maintenance problems and make it easier to bring in new tallent which doesn't need to spend months learning the architecture before they can become affective developers.

We've come up with several possible architectures, some involving rewriting the whole site using an existing scripting web framework such as Cake, Django or RoR and some compiled language frameworks in Java or even .Net. In addition we have come up with some cross technology solutions - such as a web application built in Django with a Scala backend.

I was wondering what merit would there be to using a single technology stack (such as RoR) as apposed to using a cross between two (such as RoR with Scala, like Twitter now do) and vise versus.

Take into consideration the fact that this company's site is a high traffic site with over 1 million unique visitors a day, which will be transitioned onto the new architecture slowly over a long period (several month to a year)...

Thanks

usr_profile.png
Rahul Chaudhary

User

( 4 months ago )


Generally speaking, I don't think any particular technology stack is better than any other in terms of performance; Facebook runs on PHP and I know first hand that Java and .Net scale well too. Based on what you've said I'd be worrying more about the maintainability related issues than performance and scalability just now.

Generally speaking, I would keep within one well known technology stack if possible:

  • It'll be easier to find (good) staff for a well known platform / technology stack; there will be more in the market, and rates will not be as expensive as the skills are too rare.
  • Splitting your technology means you need a wider range of knowledge; by sticking with a single technology stack you can focus on it, with better / faster results.
  • People tend to focus on one platform / technology stack, so it'll be easier to find developers for technology X, rather than technologies X, Y and Z.
  • It's easier for team members to work on different parts of the system as it's all written in the same technology - presumably in a similar way.
  • In terms of integation, items within the same technology stack play nicer together, crossing into different stacks can quickly become more difficult and harder to support.
  • Where you do want to use different technology, ensure the boundary is clean - something standards based or technology agnostic like web service / JSON calls.

what's your interest


forum_ban8_5d8c5fd7cf6f7.gif