iTuring: Why did you create MEAN? What was the original idea like?
iTuring: What was your plan to attract developers to contribute to MEAN?
After I showed the project to my friends and colleagues, some of them suggested I should release it as an open-source project. I didn't plan to attract any traction at all, I just wanted to offer my humble opinion on the way I think projects should be built. The major traction peak was actually generated by an HN post, however the real reason for this traction, was the face developers really gained some value from the project.
iTuring: Is MEAN capable of handling product or enterprise level development?
I've seen MEAN implemented in various ways, from small hackathons to large-scale distributed applications. It's been production ready for a while now and in my experience, enterprise developers are usually enjoy using MEAN even more than the average developer. Bottom line, I have seen startups and very high profile companies using MEAN and loving it.
iTuring: What are the advantages of the MEAN Web development comparing to tradional web development such as JS+Java?
iTuring: Meteor has over 4K packages, comparing with MeteorJs, what is the advantage of MEAN?
Meteor is an amazing open-source project. I know many of the developers that work on the project and they're doing an excellent job. To me it's like comparing oranges and apple, Meteor and MEAN are not competitors, because they offer different advantages. To begin with, Meteor is a for-profit company, which means you get a lot of the known advantages and disadvantages of using a commercial product compared to a community lead product. Second, everything in MEAN is open and adjustable, it is meant to be like Legos: Your imagination, your responsibility.
iTuring: Some great alternatives to MongoDB has been around for some days, for example TokuMX and Postgre SQL. What scenes of development would you use MongoDB? Do you think it's possible to replace MongoDB in MEAN?
The community have been talking about replacing every part of MEAN for quite a while now. Some developers wants React instead of AngularJS, some prefer PostgreSQL over MongoDB, and the open nature and structure of the project allows any developer to modify it for its needs. Official community support for those versions is what you'll lack. However, I firmly encourage developers to tweak MEAN and hopefully build their own communities.
iTuring: Node.js is a grand ecosystem consisted of lots of modules, to avoid problems of scaling and architecturing, which modules should we choose?
NPM is doing some amazing stuff right now. The team there is extremely talented and they're dealing with their noise-to-signal problems quite well. As a general rule, I usually choose the older and more popular modules, which I surround with some abstraction layers so I'll be able to replace modules easily.
iTuring: MEAN is combined with four different rich components, is it possible that cohesion and coupling would turn the ongoing project into heavyweight development? How to avoid that?
It's a problem we've been discussing since the beginning, so one of our guidelines was to develop the project in the most modular way possible. The ideal would have been to create a plug&play plugin system, but these efforts usually turns up more complicated than needed. The key advice here is that developers should maintain a clear separation of components to make sure they can migrate easily.
iTuring: Are there any open-source projects based on MEAN that you would like to recommend to people who wants to learn MEAN?
I think the current state of online information is great. So developers can easily find great books/articles/demos that can help jump start their project. It will be quite hard to find a large scale MEAN project that is open-source, since companies tend to not share this kind of proprietary asset with the open-source community. I would recommend any developer to just jump in, pick some small idea you have and work on it with new technologies. It's a win-win situation: You end up creating something meaningful to you and learn a new a technology.