What is the best programming environment? Is it Microsoft C#? What about Java? On the other hand, there are the open source scripting languages: are they all about the same, or is python way better than php? While we're at it, how about databases and operating systems? Isn't it true that you really need Oracle if you want a truly scalable application? And if you're really serious, shouldn't you take a close look at DB/2?
As a long-time techie who has the opportunity to work closely with a wide variety of software/hardware groups, and often has the chance to take a close look at yet more groups my firm is considering for investment purposes, I confront this question frequently. I also get it thrown at me, sometimes by anxious investors or business leaders. They are worried about the possibility of making the "wrong" choice. They are bombarded with conflicting advice, frequently from techies who are truly knowledgeable people and speak with authority and confidence. It's tough!
OK, Mr. Smart Guy, dish it out! You've got inside information on all these efforts using the different tool sets. You see which ones are productive, and which are not. You see which scale and which can't. What's the answer?!?!
The good news is, I do have the answer. And I'm going to tell you. But you have to sit through a story first.
The scene is fifth grade. The playground was a competitive place for me. Running games were important. I was pretty fast, but not the fastest. I needed to get just a touch faster. After much begging, I finally got the new sneakers I had been pining for. The sneakers that would make me run faster, just like the ads said. I was real excited. I put them on and tried them out. Darn! It's true! I really can run faster in these sneakers. I would do little speed bursts, and was amazed at what a difference those sneakers made!
Then I went to the playground. I wore my new secret weapons and a smirk on my face. I felt no need to brag; I would let my amazing new speed do my bragging for me. Then the games began.
Something was wrong. VERY wrong. HOW COULD THIS BE?? I just KNOW I run faster in these sneakers! But I'm not winning!? And with that experience I took a small step towards growing up...
Thanks for sitting through that vignette from my childhood. Here's why it's relevant: programming environments are like sneakers, and many of the people who use them are like fifth grade boys who don't actually have to compete against other boys on the playground to find out how much difference those sneakers really make.
Here's the answer to the original question: differences between sneakers (programming environments) are tiny compared to differences between kids (the skills, sophistication and raw horsepower of the people who use them). Put great shoes on weak, slow, unmotivated kids and it won't help them much; force strong, fast, passionate kids to wear crummy shoes and it won't slow them down much.
This is not my "natural" way of thinking about this question. It is what scores of data points over many, many years have forced me to. The data points don't just come from things I've heard; they've come from things I know up close and personal. I could give loads of examples.
That this conclusion about technology surprises many people tells us how isolated the field really is from normal human experience. Who, for example, would be surprised to hear that:
- in baseball, the batter matters more than the bat
- in art, the painter matters more than the paint or brush
- in writing, the writer matters more than the word processing program
Are there differences between the major programming environments? Yes. Can you "prove" that one is better than another for a particular task? Yes, vendors do this all the time. They want you assume that tools are like trains: all you have to do is pick the "fast" train and it will take you to your destination quicker than the slow one. But the reality is that tools are more like sneakers than trains -- the tools are things capable people use to get their jobs done, rather than being machines that transport people to where they want to go.
You still avoid to give the real answer. What IS the best programming environment? People like you contribute to the vague in this world. Vague is when companies hide their prices and ask you to call them, Vague is always based upon fear to perhaps not give the correct answer. Its eassier and trend related to talk vaguely. Sorry dude, Your wasting peoples precious time.
Posted by: Paul | 07/20/2010 at 08:58 PM
Did you even read this? There IS NO best environment! Its about how good you are and what you need done. I thought it was a good article.
I feel like its more of a "Which is best for me" question instead of a "Which is better" question.
Posted by: Bobadilla | 01/26/2011 at 07:04 PM
I appreciate this article.
There are too many discussion about programming environments.
But it is not significant for the result of software development.
We should select suitable language and most popular environment is true.
But we should write more code rather than searching best programming environment.
Posted by: Tandayo Nagato | 04/19/2011 at 02:00 AM
Well, In my humble opinion, The question was not answered, but not for the reasons that you might suspect.
In the strict sense, C# is a language - it has constructs, objects and methods. It is not, in the strictest sense, an environment. Visual Studio is a programming environment because it is a milieu in which the language of your choice can be wielded.
It seems that there have been efforts to build environments around popular languages and this is a good thing. However, l believe it can muddy the waters with regards to distinguishing the language from the environment.
Posted by: Ron | 07/02/2011 at 08:52 AM
There isn't any one particular lagnuage that is more friendly than another, it really depends upon the way you choose to use the one you select.The thing to consider is this Search engines spider web sites and they index the *static results* of the pages they vist So, if you are using a server-side script to generate a page, the search engine will index the resulting HTML, *not* the script that generated it.Depending upon what you're using the script to do, this can cause interesting indexing results, especially if you're depending upon user inputs to generate page content.Again though, the choice of scripting lagnuage is up to the programmer and their comfort level. I personally recommend PHP, simply because it's open-source, very wide spread, and easy to use.
Posted by: Ricardo | 04/27/2012 at 09:44 PM