If you were going to reimplement SO now, what technologies would you use? What technologies would you use if you were restricted to Java technologies.
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
And here’s the answer I was writing.
This is an interesting question, because SO is actually architected in a very conventional way for web applications, but doesn’t share a lot of characteristics with the usual web application. in particularly, it needs to be highly scaleable, but the business rules and data storage requirements are not complex.
So, using today’s technology, I’d use
conventional javascript; SO uses jquery, that’d be fine.
I’d use a workpool-oriented web application like Unicorn for easy scalability.
I’d use Hadoop and Cassandra to store questions and comments.
I’d implement the scoring and ranking rules using MapReduce across the database.
Conveniently, most of these are available from Java, although I’d prefer a scripting language like Ruby or Python.
I would avoid the usual Java EE based world. In my opinion — and I was a very early user of Java EE at Sun — that techno.logy is overheavy. I’d also avoid Windows-based servers; they’re hard to manage and comparatively expensive. (I can build the server hardware for about the same price as the OS license.)