why isnt there just one programming language?

Recommended Videos

careful

New member
Jul 28, 2010
336
0
0
my house mate occasionally asks me questions that i cant answer, this being one of them. some other notable deep erudite questions from him that i'm still working on include:
what is the difference between a duck?
how is it that the more swiss cheese you have the more holes you have and the more holes you have the less swiss cheese you have, hence the more cheese u have the less cheese u have?
if there was only nothing and ice cream to choose from, wouldn't you choose nothing, since nothing is better than ice cream?
what does x equal?

anyways, this being one of the more legitimate questions hes ever asked me, why isn't there just one programming language? i mean they all do the same thing in the end right?
 

llafnwod

New member
Nov 9, 2007
426
0
0
careful said:
anyways, this being one of the more legitimate questions hes ever asked me, why isn't there just one programming language? i mean they all do the same thing in the end right?
No, they don't. Many, many other people will probably give you more in depth explanations, but I recommend you just go read about programming instead.
 

FalloutJack

Bah weep grah nah neep ninny bom
Nov 20, 2008
15,489
0
0
Just checking, does your friend go by the name "Yossarian"? No fair asking nonsense questions, dude.

As for your actual question, there's different languages because there's different people with different contentions on which one is best. Ergo, there cannot be 'one language' unless all parties agree to it.

Oh, and that hacking is removed forever. But other than that, no sweat, right?
 

BelfastSpartan

New member
Oct 5, 2010
128
0
0
Different languages are capable of different things, work on different platforms, etc. Some languages can use parts of other languages some can't use any other languages.

It would probably be so much easier if there was 1 language but then it would be a huge language!

The difference between a duck and what?

Yes technically the more cheese you have, the more holes you have so the less cheese you have lol

Ohhh there are lots of things better than ice cream =]

x equals a random number that is found by solving the equation it is presented in!

=]
 

klakkat

New member
May 24, 2008
825
0
0
Hell, there's more than one machine language. That is, there's more than one set of instructions for basic machines to read in and interpret; this is the simple 1's and 0's that make up digital logic. In fact, there's probably thousands of different machine languages. Why? Because different companies build these, and don't care to conform to each other's standards.

This is like asking why there isn't a uniform language across the globe. Simple: different people originated each one and don't see the advantage of switching to the other guy's language.
 

Blind Sight

New member
May 16, 2010
1,658
0
0
careful said:
my house mate occasionally asks me questions that i cant answer, this being one of them. some other notable deep erudite questions from him that i'm still working on include:
what is the difference between a duck?
how is it that the more swiss cheese you have the more holes you have and the more holes you have the less swiss cheese you have, hence the more cheese u have the less cheese u have?
if there was only nothing and ice cream to choose from, wouldn't you choose nothing, since nothing is better than ice cream?
what does x equal?

anyways, this being one of the more legitimate questions hes ever asked me, why isn't there just one programming language? i mean they all do the same thing in the end right?
1. Just a duck? Not touching that one.
2. You still have more cheese with the more you gain, he's just using tricky wording.
3. Nothing is a purely metaphysical concept that we can't even begin to understand or interpret correctly, as even dark matter is not a form of nothing. Find me a sealed jar of 'nothing' in a vacuum and you've still got quirks running through it once and awhile.
4. x=x (this question is so old, it's based off of the Objectivist concept of 'A is A')

There isn't one programming language for several reasons: one, computers are rapidly changing and innovating, that requires gradual changes or even whole new coding systems. Two, although English is the primary business language it's still not that widely used in computers. Thus you have very, very different groups of people, who speak different languages, using coding systems based on their own norms and ideals. I actually read a paper awhile back that argued that the Japanese gained such an advantage in computer tech after the 1950s because their language is far more complex then English, making the system requirements to run kanji script higher, forcing them to design better hardware. If anything, diverse programming languages are a good thing, diversity often causes rapid innovation to overcome problems.
 

Danzaivar

New member
Jul 13, 2004
1,967
0
0
Sometimes you want speed above everything else (for say ultra high performance games), sometimes you want portability (so it works on windows/mac/linux/phones(symbian/android/iphone)), sometimes you just want code that's easy to read and follow. Sometimes you just want to make something very specific (Websites), or something you can change quickly without needing to recompile (Scripting languages). Or to just retrieve queries from a database(SQL).

To bring in a pretty crappy metaphor, using one programming language for everything would be like trying to build a house just using a screwdriver. You could technically do it, but the end result would suffer and frankly I wouldn't trust living in the place. How would they cut the timber safely and measure it right with a screwdriver?!
 

dududf

New member
Aug 31, 2009
4,072
0
0
I actually twitched reading the title.

Different languages do different things.
 

c-square

New member
Sep 2, 2010
5
0
0
Yes and no. All programming languages instruct computers to do stuff. But they each do it in a different way and at a different level. Some lower level languages like C++ are able to really work with the most basic components of the computer. These languages offer a great amount of control of how the computer does what it does, but often means your code will only work on one type of computer. Then there are higher level languages like Java. These languages rely on pre-built libraries that hide the inner workings of how they work with the computer. The advantage is that you can easily plug someone else's library into your program and almost immediately start to use it. It also means that, because you don't have to worry about how the language is actually interacting with the computer, you can often write your code once and it'll work on many different computers. The down side is that, with the lack of control, it's hard to really optimize your code to get it to run blazingly fast, or pull off the sneaky coding tricks that you can do with lower level languages.

Generally, video games are written in low level languages. This is because optimization is perhaps the most important aspect in video game programming. On the other hand, business applications are usually written in higher level languages because fast code is not as important as the ability to reuse code and to be able to run it on various platforms.

Finally, there are also some specialty languages that are good at very specific tasks. For example, the way LISP is structured is perfectly suited for artificial intelligence applications (as it allows the computer to program itself to a limited extent), but would be horrible for something like gaming.

Long answer to a short question, but I hope that clears things up. :)
 

klakkat

New member
May 24, 2008
825
0
0
c-square said:
Some lower level languages like C++ are able to really work with the most basic components of the computer.
Uh. C++ is a HIGH level programming language. You want low level, learn Assembly code languages.
 

SL33TBL1ND

Elite Member
Nov 9, 2008
6,467
0
41
They're all good for different things. If you're friend knew anything about the subject I'd assume that he was speaking about how all programming becomes machine code in the end, but he doesn't.
 

Danzaivar

New member
Jul 13, 2004
1,967
0
0
klakkat said:
c-square said:
Some lower level languages like C++ are able to really work with the most basic components of the computer.
Uh. C++ is a HIGH level programming language. You want low level, learn Assembly code languages.
_asm{
//Assembly code here
}

C++ works for that. :p
 

Priddo

New member
Nov 19, 2009
58
0
0
There's a few reason why.

1) Some are better at things than others

2) Personal preferences

3) Money (see Microsoft...)

4) Had to start somewhere and work our way up.
 

SimuLord

Whom Gods Annoy
Aug 20, 2008
10,077
0
0
"Go to, let us go down, and there confound their language, that they may not understand one another's speech."

- Genesis 11:7

Just a thought.
 

Lukeje

New member
Feb 6, 2008
4,048
0
0
careful said:
anyways, this being one of the more legitimate questions hes ever asked me, why isn't there just one programming language? i mean they all do the same thing in the end right?
Ermm... no, they don't. Here, have a wiki [http://en.wikipedia.org/wiki/Programming_paradigm] article.
 

Weaver

Overcaffeinated
Apr 28, 2008
8,977
0
0
Let's not also forget the proprietary nature of languages developed by large companies. Microsoft made C# and are heavily pushing it's use. Google has GO, Apple has... I forget, is Xcode a language?

Anyways, there is no language for these reasons and also for the reasons there is no singular spoken language in the world. Computers did not just pop up in one isolated location, they underwent a global adoption and that lead to many different schools creating their own versions of things, this fragmented into the seeds that would become future languages, etc.

It's a complex evolution, and since during the uprising of personal computing programmers had many choices, they all kind of adopted the languages they liked best as they do not all function the same. This leads to people unwilling to "kill" a language and simply jump on board with another.

As a large example, C for instance had the ability to inline machine code. This is absolutely essential for companies making embedded systems and other things close to the hardware. Java, as far as I'm aware, cannot do this so is more or less useless for this companies needs.
 

Keava

New member
Mar 1, 2010
2,010
0
0
careful said:
anyways, this being one of the more legitimate questions hes ever asked me, why isn't there just one programming language? i mean they all do the same thing in the end right?
There really is just only one, called Assembly. All the C, C++, Pascal, Basic and others are just an abstract form of the core memory functions, thus making them more readable and user-friendly as well as not bound to specific machine. In the end however the instructions are executed in assembly environment because that's how computers operate.

Generally it goes like that C++ - > Assembled Code -> Machine Code -> Micro Code
You write logical instruction in C++, they get translated into assembly memory access, which gets read by machine and changed into machine code which is what CPU uses, and then it's further transferred into microcode which operates all the ALU's.

Whatever language interpretor you use, your instruction will need to be eventually changed into code that CPU understands.
 

hypothetical

New member
May 12, 2009
8
0
0
The more general a programming language is, the more effort it takes to solve a specific problem. In order to solve a specific problem in a general language, you have to implement what basically equates to an extension of the language; this extension can in fact lead to a dialect of the general language.

As such, in order to solve a set of related problems, it is sometimes preferable to define a problem specific language. Most higher level languages are defined with specific problems in mind.

It is a lot more difficult, for example, to represent an object in an assembly language than in Java.

The quality of a general language can be defined as flexibility in defining problem specific languages, while the quality of a specific language can be defined as flexibility in solving the particular class of problems.

There are few truly general languages (e.g. lisp) and a myriad of specific (to a problem domain) ones (e.g. Java).

I don't know if this makes any sense, but i hope it does.

P.S. On an unrelated topic, "the difference between a duck?" is not a valid question because it does not respect the significance of the used vocabulary :). It can make sense, if you associate another meaning to "difference" and "between", meaning which should be explained.