Tower of Babel: Where did all the languages come from?
Posted by
Brad Wood
Aug 03, 2008 08:34:00 UTC
In the beginning was assembly, and it was with the programmer and it was good. Through it all programs that have been made were written, without it no programs were written. The compiler shines in the darkness, but the darkness has not understood it. Then came a design pattern sent by Alan Kay, its name was OOP.
The other day, someone asked me a really dumb question. "Why are there so many programming languages? Why don't you just all use one?" Ok, that was two questions, and they aren't really dumb, but I felt kinda' dumb trying to answer them.I mean, the gall of someone to ask such a thing. Don't they know? We NEED all these languages for... err.. what do we do with them again?
Ok, so I'm being a little cheeky, but do you ever find yourself on the receiving end of a question so innocent and simple you aren't sure exactly what the answer is. It would be like explaining why the Middle East can't "just get along" to a kindergartener. At some point in the answer you stop and ask yourself the same thing.
I know that some languages are faster or easier to code for different operations. Some are domain specific. I'm sure we could get along without some of them. Heck, languages like ColdFusion wouldn't exist without ones like Java.
I pretty much mumbled an answer about different languages being better for certain tasks and that seemed to satisfy the asker. How would you have answered the question though?
clark slater
Well I woulda asked them a question in response. Why are there so many different types of cars in the world? Why don't we all just drive model T's?
Justin Carter
Well initially there is really just machine language, which is all 0's and 1's and which is used to program a CPU.. Assembly language is a 2nd generation language which compiles to machine code and the compiler takes care of the CPU (platform) specific stuff. From there everything just goes higher level for a number of reasons, but mostly to get things done quicker (less code to write) and to make programs more human readable. On top of that you have different programming paradigms (procedural, object-oriented and functional are the most common, but there are dozens!), each of which can be better suited to solving particular types of problems.
The harder question to answer would be why so many languages exist within the same paradigm at the same level... I think in the end it comes down to reasonably small differences which lead to a developers personal preference for one reason or another.
Brian Lesser
People learn by doing things. A student taking a translators course may be asked to write a parser. Does the world need another parser? Sure it does. That's because we want students, and people learning to develop software, to have the experience of creating a new one even if no one else ever uses it. Constant reinvention - in or outside of the classroom - has another benefit: lots of people explore and re-explore a problem space. Sometimes they find new ways to do things or different ways to apply a solution to a problem. That's also part of how we get a dynamic and competitive economy.
Brad Wood
@Justin: I was waiting to see who would point that out. :) I actually started with Machine language, but Assembly flowed better in my verse.
@Clark: Hmm.. Model T's. I wouldn't mind driving one of those-- say if the body was channeled about 4 inches over the frame, the top was chopped about 6 inches, the suspension lowered and the wishbone split with a suicide tranverse leaf spring out front, the hood sides removed, and a small block chevy breathing through a giant four-barrel carb. :) But I guess that sort of modification is exactly the kind of thing that drives newer programming languages to be developed, huh?