This question has already raised a bit of controversy on the site. I'd like to take advantage of this and work together as a community to formulate a series of questions (and responses) that serve as a definitive resource on the web for understanding the tradeoffs when not only selecting a programming language, but a series of paradigms to espouse as well.

I have a few suggested ground rules for getting these questions off the ground.


Edit the question to get it right (and don't get sidetracked)

It is important to phrase these questions properly. We have already run into trouble here on what is really a side issue (whether C is or can be used as an object-oriented language). If you think something is distracting from the main thrust of the question and you are an expert in the topic, suggest or make an edit. We have editorial powers on the website for exactly this reason. If you find yourself at odds with another user over a series of edits, bring it here or to chat.

For the above question, I have edited the original post and deleted several comments to avoid the derail.

Not too broad, not too specific

The goal of these questions is to provide factual, reference-backed (where possible), guidance to making decisions with respect to software design and implementation. The questions should be phrased, when possible, to elicit examples references, or authoritative experience to illustrate specific points. Questions that ask simply for opinions (and are receiving them) will be closed.


Provide references, when possible

The best sort of references to provide are refereed articles in the literature that demonstrate the usefulness or harmfulness of a given approach in scientific computing. Opinions count, but they are not as helpful as quantified facts.

Illustrative examples are good too

Sometimes, you can make a point with a figure, small set of equations, or a code sample. When explaining language features or paradigms, this can help make a point on the usefulness or danger of a particular approach. Try to provide examples to justify your answers.

Justify your expertise/authority

Sometimes, experience is the best reference we have available. If you are going to state an opinion based on personal experience, try your best to quantify why your experience is authoritative (or should at least be considered).

Meta and Chat

We value your opinions and questions, we really do! If you would like a formal discussion, do not hesitate to put a question on meta (even if it is not really a question). If you would like to start an informal discussion, feel free to start a conversation on chat. You can use the '@' symbol, like @GeoffOxberry to 'notify' a person (I think of it as a Bat-Signal), and they will receive a link in their inbox to your post the next time they log in.

You must log in to answer this question.

Browse other questions tagged .