Quora is the most popular question and answer forum that consists of all the categories of discussion. If you have a Quora account, you know how deep the rabbit hole goes. There are so many features and functionalities that it no way less than a complete social network site. The question and answer platform are more like the comment system on the social network site. There is up and down vote and share option. One can see the views on any particular answer.
There are options for bookmarking, suggesting edits, thanking the writer, report the answer, and much more. As a user, you can do a whole host of activities like following a particular category or niche, you can follow another person and write messages, and most importantly, write blogs. If you are wondering as a programmer what it will take to create such a platform, the following is the answer you are looking for.
Programming Languages and Frameworks Behind Quora –
It is very clear that developing such a robust platform requires multiple programming languages. Since most of the developments are taking place through framework these days, it is safe to assume that there are multiple frameworks used in creating Quora. According to the Wikipedia page of Quora, there two main programming languages used are Python and C++. It is written by two former Facebook employees Adam Angelo and Charlie Cheever. It has been stated that they chose C++ over C for its high-performance services and sustainability over the long run.
Frameworks – The Tornado Web Framework is used for live updating. This helps in better handling of huge open connections and long polling as well as push notifications. Apart from these, HAProxy for the frontline and Nginx for the reverse proxy server have been used. Along with that, Pylons has been used. On top of that, Webnode2 and LiveNode are used internally for managing the content. The job of Webnode2 is to generate HTML, JS, and CSS for displaying the content for the web pages.
Final Words –
If you are a programmer and wanting to develop something similar or any such big platform, you need to understand the developmental stages of Quora. The programming languages and frameworks have to be something that can take a huge load and have scalability. Quora team has done a fantastic professional job by developing the parts one by one and integrating them with the platform. First, the basic Q&A platform was done followed by adding videos in Q&A pages.
Then came the credits system and threaded comments and voting system. Then they introduced the top writers program to encourage the writers and give them recognition. Almost one year later, they introduced the blogging platform. The bounty program has innovative to provide financial bounties to the best answer to selected questions. Now they are working on advertising the pages and introducing multiple languages. Once the planning is done and you have decided the modules, you can choose any programming language you are comfortable with like Python or Java and get started.