I was wondering, why are there so many programming languages out there? I mean, I've learned a bit of Visual Basic, a bit of C++ and a bit of Java (which I didn't like) and I was wondering, why others keep making more langauges.

I can see Java having to be around, for web-based applications, and Visual Basic for teaching programming fundimentals, but if C++ has shortcomings, why not just add to that language (seince its apparently not even standardized).

I know some languages are older, but whats the purpose of making whole new ones? I'm reading a book 3d game programming all in one, and it has its own language called Torque, which apparently is only used by this ONE individual series.

So I do wonder: Why not just standardize the languages and work off those, instead of making so many to learn?

>why are there so many programming languages out there?
[satire]
I was wondering, why are there so many tools out there? I mean, I've learned a bit of hammering, a bit of wrenching and a bit of screwdrivering (which I didn't like) and I was wondering, why others keep making more tools.

I can see screwdrivers having to be around, for getting screws that a knife can't, and hammers for teaching tool use funduhmentals, but if wrenches have shortcomings, why not just add attachments (since its apparently not even standardized).

I know some tools are older, but whats the purpose of making whole new ones? I'm reading a book "Serpentine Belts and You", and it has its own tool called a Serpentine Belt Tension Relief Tool, which apparently is only used to install serpentine belts.

So I do wonder: Why not just standardize the tools and work off those, instead of making so many to learn?
[/satire]

commented: 100 +0
commented: Excellent +6
Member Avatar for iamthwee

>I'm reading a book "Serpentine Belts and You"

You know I've been looking for that book all my life. I've even searched amazon. If you could let me know where to get my hands on it I would be greatly appreciative.

You have too much time on yours hand narue. Get a job where you have to do work. Tee he he.

One would think someone with your number of posts would give me sometime useful Narue, BUT I guess I was wrong there. That british site is definatly more useful than this one...

I can see Java having to be around, for web-based applications,

That's not where Java shines.

and Visual Basic for teaching programming fundimentals,

What?????????????
????????
??????

~cries~

(The problem with Visual Basic, as a relative of mine who uses it jokes, is that it's "just not nerdy enough.")

And, um, Narue answered you with the right answer. I don't know what you expected.

>One would think someone with your number of posts would give me sometime useful Narue
Here's the same answer, but much less fun:

>why are there so many programming languages out there?
Because there are so many different jobs that need to be done, and no language is best suited to all of them. Any attempt to make such a language would be futile because the language would become bloated and impossible to learn. Such a language would ultimately fail in one or more of the goals set to a one-size-fits-all language.

>I can see Java having to be around, for web-based applications
Java is better used elsewhere.

>Visual Basic for teaching programming fundimentals
Utter BS. Visual Basic is awful for teaching programming fundamentals.

>if C++ has shortcomings, why not just add to that language
C++ is already too bloated for anyone to learn it all in a reasonable timeframe. You want to add *more* features?

>seince its apparently not even standardized
Apparently you haven't done your homework. C++ has been standardized since 1998.

>whats the purpose of making whole new ones?
You sound like you would fit in perfectly with the diehard programmers who think that punch cards were the golden age.

>So I do wonder: Why not just standardize the languages and
>work off those, instead of making so many to learn?
Nobody is forcing you to learn all of them. Obviously you lack the creativity to realize that a problem might just exist even though you haven't encountered it. That a language might be useful to others even if it isn't to you.

I recommend you spend more time learning than complaining and you'll be in a better position to not sound like an idiot. It's also wise to see the benefit of satire instead of acting like a whiney little baby who had his bottle taken away. I wasn't insulting you, and I gave you an accurate answer even though you didn't see it. But you felt the need to get all pissy, and you're lucky I'm feeling nice today. Otherwise I'd take the time to flay you to the quick.

Now run off to your "British site" and leave us be, if it's so much better. We have better things to do than listen to inane questions and newbie flames.

See now wasn't that easy?

I don't like satire when I need answers. Satire is entertainment.

>See now wasn't that easy?
Yes, it was much harder to come up with something witty and entertaining without diminishing the potency of my message. It's a shame that so few people are capable of appreciating the effort.

>I don't like satire when I need answers.
Satire is a form of answer for those observant enough to interpret it.

*Mumbles something about under-rated satire appreciation*

IamtheWee....I know your secret message on your post to narue! funny!

Where does Java shine then? Its always been more refered to here as a web-useful language due to its applet creating abilities.

Keep in mind I am a novice...

>Where does Java shine then?
Embedded software for things such as cell phones.

>Its always been more refered to here as a web-useful
>language due to its applet creating abilities.
Applets were a fad at first, but they died rather quickly when the novelty wore off. Java is actually better at server side web applications than client-side applets, which are little more than bloated toys these days.

Hm...I'm hoping my school gets unretarded for classes in the next years and gets the updated stuff for the languages they teach; if C++ Has been standardized seince 1998, and the stuff inthe book dosn't work any more, its serriously out of date, and if I do a java application at home with the SDK I have (Right off their site) and then try to run it at school, it wont even compile for some reason (Change in the language I ruled out, cus I copy right from the book and it still dosn't work)

Oh well, not much can be said, though I find it odd that my AP teacher dosn't even have a degree in Computer Science!

>and gets the updated stuff for the languages they teach
Unfortunately, schools prefer to focus more on theory than practice, and updated tools are irrelevant to the accepted theory that they teach.

>though I find it odd that my AP teacher dosn't even have a degree in Computer Science!
You would be surprised at who has and does not have a degree. I know people with PhD's in CS who would never make it through an interview with me for a job on my team. I've worked with people who dropped out of high school and could program circles around me. A piece of paper doesn't say anything about your qualifications. ;)

In retrospect you do have a point there...accually the supprise is that they allow her to teach without a degree. In all honesty I've come to learn that she infact knows little more than we do.

My high school had a math teacher teach the few programming classes there. The guy was an absolute buffoon. (He enforced the following programming style:

20 IF x = 3 THEN GOTO 100
...
90 GOTO 200
100 ...
...
200 ...

To his credit, he was also a buffoon at teaching math classes :-)

They replaced him with another math teacher, that they had recently hired, who taught the 'intro to programming' class using Java (since AP CompSci used the same). She was apparently not so much of a buffoon.

Good programming teachers are hard to find. Thats how it was at my school...

Hi,

My personal opinion is that there can be as many programming lanugages as people can make some up (even I have a Virutal Machine of my own which has a proprietary assembly lanugage w/ 22 opcodes including NOP); but at the end of the day it's the balance of supply and demand which decides who is the winner and which are unnecessary. I believe that some of the most praised PLs of today are useless for real life applications because of performance/maintainability/scalability/learning curve/etc issues. According to Evans Data Corporation's survey on November 2005 w/ over 700 participating developpers the distribution of IDE choice (thus relatively PL choice) is as follows :

Which of the following IDEs do you MOSTLY use for development today?

IDE Count Percent of Responses Percent of Cases
Microsoft Visual Studio .NET 411 26.8 53.0
Eclipse 195 12.7 25.2
Macromedia Studio MX 116 7.6 15.0
Oracle Developer Suite 108 7.1 14.1
Borland JBuilder 78 5.1 10.1
IBM WebSphere Studio 67 4.4 8.6
Sun Java Studio 67 4.4 8.6
IBM Rational Developer 59 3.9 7.6
NetBeans 51 3.3 6.6
BEA Weblogic Workshop 47 3.1 6.1
Sun Studio (C/C++/Fortran) 41 2.7 5.3
Borland C#Builder 36 2.4 4.6
CodeWarrior 29 1.9 3.7
Other 226 14.8 29.2
-----------------------------------------------------
Total responses 1531 100 197.7

So my final opinion is C# and Borland Delphi Rocks. C and C++ are ok for performance on native code, portability and legacy stuff. For scripting and DHTML we can keep JScript (not Java Script) I guess and that's all. Tell me your favorite PL and I can tell you why it isn't necessary today w/ proofs.

Loren Soth

Well, I'm only a lowbie programmer lol

But I'd say I like C++, mostly because I heard of its widespread use and because its what the game industry uses, and thats where I wanna go :-p

What is the best way to learn Java?

So my final opinion is C# and Borland Delphi Rocks. C and C++ are ok for performance on native code, portability and legacy stuff. For scripting and DHTML we can keep JScript (not Java Script) I guess and that's all. Tell me your favorite PL and I can tell you why it isn't necessary today w/ proofs.

"Necessary"? What does that mean? A programming language doesn't have to be "necessary," it has to be better. The only "necessary" language is machine code.

The other summer, I had a bunch of data in one text file, and then in another text file (an HTML file), I had a bunch of other data. I needed to process the information. One hour of Perl later, the job was done. Could the job have been done so quickly in C, C#, Delphi, C++, or Jscript? No. So add Perl, or some language inarguably more powerful than Perl, to your wall of necessary programming languages.

There are many tasks that the languages you've listed are not good for. For (a self-referential) example, if you needed to write a programming language interpreter, to run on PCs, as quickly as possible, what would you use? Haskell would be a better decision than the languages you've mentioned (and it would probably be the best decision).

If you measure programming languages by how much money they can make your business, then to claim that all you need are C#, C++, Delphi, C, and Jscript is laughable, unless you've limited yourself to the problem domain in which these languages are useful.

So tell me why Lisp is not necessary.

So to be a programmer do I need to know all these languages...

So to be a programmer do I need to know all these languages...

You would just need to make computer programs. That's the definition of programmer...

You know, you should try Scheme.
http://www.drscheme.org/

It's a lot more fun than Java and Visual Basic (and C++). And you'll be better at programming, having used it. Don't quit until you understand closures and call-with-current-continuation!

"Necessary"? What does that mean? A programming language doesn't have to be "necessary," it has to be better. The only "necessary" language is machine code.

I used the word necessary in a context where the opposite is unnecessary; which means not needed, useless, has better equivalents.

The other summer, I had a bunch of data in one text file, and then in another text file (an HTML file), I had a bunch of other data. I needed to process the information. One hour of Perl later, the job was done. Could the job have been done so quickly in C, C#, Delphi, C++, or Jscript? No. So add Perl, or some language inarguably more powerful than Perl, to your wall of necessary programming languages.

First of all Perl is almost out-dated by Python. Second the job could be done in less than half an hour w/ both Delphi or C#. (Don't take the language alone, the acompaniying wizards and IDE features are also a criteria of choice.) And I challeng you to write the same code in Delphi w/o using a single line of code typing.

There are many tasks that the languages you've listed are not good for. For (a self-referential) example, if you needed to write a programming language interpreter, to run on PCs, as quickly as possible, what would you use? Haskell would be a better decision than the languages you've mentioned (and it would probably be the best decision).

You best bet would be DCG (Delphi Compiler Generator) which is an enhanced lexical analyzer-parser generator (from gcc bison and yacc) which is free. Haskell is as old as berlin wall.

If you measure programming languages by how much money they can make your business, then to claim that all you need are C#, C++, Delphi, C, and Jscript is laughable, unless you've limited yourself to the problem domain in which these languages are useful.

TM (Turing Machine) equivalance proove us that any language or language feature can be emulated with any other. So my problem domain is all problems with all complexity classes including NP-Hard and NP-Complete. Also the PLs I listed are so extendible that anlthough not needed I can incorporte the best features of your favorite PL to mine within a matter of hours. (Google C#'s, VS.Net IDE's and Delphi's extendibility.)

So tell me why Lisp is not necessary.

For the sake of the debate, I will respond to that within today with deserving academic arguements.

Loren Soth

First of all Perl is almost out-dated by Python.

What does out-dated even mean in the context of programming languages? As I said, add Perl or some language inarguably more powerful than Perl to your list of languages, so add Python, if you consider it better.

Second the job could be done in less than half an hour w/ both Delphi or C#. (Don't take the language alone, the acompaniying wizards and IDE features are also a criteria of choice.)

No, I don't think so. Please introduce me to this magical wizard you use for stripping text out of malformed HTML, organizing it into rows, categorizing it, indexing rows of a CSV by words stripped out of company names, and then throwing up a soundex-like search through a CSV file for similar words and prices, and then combining that information and communicating it to a picky telnet server.

And I challeng you to write the same code in Delphi w/o using a single line of code typing.

What is the value of not typing lines of code?

You best bet would be DCG (Delphi Compiler Generator) which is an enhanced lexical analyzer-parser generator (from gcc bison and yacc) which is free. Haskell is as old as berlin wall.

Then why didn't the Pugs project use it?

No, Lisp is as old as the Berlin wall. Haskell was created in the 80s. I fail to see your point about old = bad; Pascal is older than Haskell, after all, but you like Delphi. You might say that comparing Delphi to Pascal is like comparing Haskell 98 to earlier versions. Or like comparing GHC to Haskell 98.

TM (Turing Machine) equivalance proove us that any language or language feature can be emulated with any other. So my problem domain is all problems with all complexity classes including NP-Hard and NP-Complete. Also the PLs I listed are so extendible that anlthough not needed I can incorporte the best features of your favorite PL to mine within a matter of hours. (Google C#'s, VS.Net IDE's and Delphi's extendibility.)

Okay, implement call-with-current-continuation in C# in a way consistent with the rest of the language. Alas, implementing something like it would be tantamount to writing your own Lisp interpreter, but then what's the point anyway. Okay, so then implement Lisp-style macros in C#. But you can't do that either. Implement an 'amb' (http://c2.com/cgi/wiki?AmbSpecialForm) that can be used with ease in these languages. Well okay, some programming language features are out of reach. Then still, you should be able to develop quickly a program that can compute the sum a^n + (a+1)^n + ... + (b-1)^n + b^n, in O(n^2) time, independent of the values a and b. It took me 30 minutes (and 100 straightforward lines of code) in Scheme, how much time would it take you or me in C#?

Member Avatar for iamthwee

You and ur DrScheme. A ha ha.

So tell me why Lisp is not necessary?

Because without one people can talk properly.

Tee he he.

http://img476.imageshack.us/img476/5171/cut20ln.png
Piworld ™
Tis simple as Pie

Hi,

God, I like flame wars, but my main intention was to retalliate to the Narue's "Holier than thou" attitude which is clearly stated on her web site as "she acts purposely antagonistic towards all on DaniWeb" but here we are. Anyway, after more than necessary honesty, here are my scientific arguments.

What does out-dated even mean in the context of programming languages? As I said, add Perl or some language inarguably more powerful than Perl to your list of languages, so add Python, if you consider it better.

Why do you keep asking the meaning of simple words like "out-dated" and "necessary" ? In all possible contexts it means that it belongs to a long time ago, in a galaxy far far away. Python is outdated by JPython, JPython is outdated by Java 1.5 (1.6 soon to be released), and they all are out-dated by C#. (I don't want to manually count my spaces and tabs on the editor to match my code blocks and variable scops, do I ask for too much ?)

No, I don't think so. Please introduce me to this magical wizard you use for stripping text out of malformed HTML, organizing it into rows, categorizing it, indexing rows of a CSV by words stripped out of company names, and then throwing up a soundex-like search through a CSV file for similar words and prices, and then combining that information and communicating it to a picky telnet server.

These are all possible with Delphi XML,XSLT and databinding infrastucture, for CSV just use the Excel as a parser it has soundex too. You can set up Telnet accessible net services ( or any kind of net client/service) w/ Delphi Indy Components w/o coding a single line of code (if you don't want to ofcourse)

What is the value of not typing lines of code?

The answer is left as an excercise to the reader.


Then why didn't the Pugs project use it?

No, Lisp is as old as the Berlin wall. Haskell was created in the 80s. I fail to see your point about old = bad; Pascal is older than Haskell, after all, but you like Delphi. You might say that comparing Delphi to Pascal is like comparing Haskell 98 to earlier versions. Or like comparing GHC to Haskell 98.

If you checked Evans Data Corporation's survey on my previous post there were no mention of Haskell, Lisp, GHC, ADA, Fortran. I never said bad, because the word "bad" is such a vague expression and relative. I say that they are old, useless and no body use (/remember) them anymore. The languages you mention are like Latin, maybe cool for the sake of it, but pretty much dead languages.

Okay, implement call-with-current-continuation in C# in a way consistent with the rest of the language. Alas, implementing something like it would be tantamount to writing your own Lisp interpreter, but then what's the point anyway. Okay, so then implement Lisp-style macros in C#. But you can't do that either. Implement an 'amb' (http://c2.com/cgi/wiki?AmbSpecialForm) that can be used with ease in these languages. Well okay, some programming language features are out of reach. Then still, you should be able to develop quickly a program that can compute the sum a^n + (a+1)^n + ... + (b-1)^n + b^n, in O(n^2) time, independent of the values a and b. It took me 30 minutes (and 100 straightforward lines of code) in Scheme, how much time would it take you or me in C#?

What the heck ? If I didn't misunderstood, the variables here are a and b and n is constant. (Assume E is sigma operator) k=a to b E k^n
You can't calculate time complexity over the constant, your time complexity is O(k) = O(b-a) which is linear time. I can code that under a minute on almost any language.

Loren Soth

Why do you keep asking the meaning of simple words like "out-dated" and "necessary" ?

Because it seems those words do not mean what you think they mean.

If you checked Evans Data Corporation's survey on my previous post there were no mention of Haskell, Lisp, GHC, ADA, Fortran. I never said bad, because the word "bad" is such a vague expression and relative. I say that they are old, useless and no body use (/remember) them anymore. The languages you mention are like Latin, maybe cool for the sake of it, but pretty much dead languages.

Your claim that nobody uses them anymore is contradicted by reality.

You call Haskell old, but it's newer than Delphi.

What are you talking about Ada and Fortran for?

What the heck ? If I didn't misunderstood, the variables here are a and b and n is constant. (Assume E is sigma operator) k=a to b E k^n
You can't calculate time complexity over the constant, your time complexity is O(k) = O(b-a) which is linear time. I can code that under a minute on almost any language.

No, constant time relative to a and b, O(n^2) relative to n. n is not constant, why would it be constant? Well, O(n^2 + n log ab), if a and b are arbitrary size integers, but not all programming languages have that built in. The algorithm is a matter of algebra.

This is all distracting from your original claim that C#, C++, C, Jscript, and Delphi are the only languages that could ever be needed. Which is a pretty ludicrous claim, and you've only been able to defend it by calling everything else "old."

JUst stop learning all languages. Just U stick ot Single and try to Master in dat....

You call Haskell old, but it's newer than Delphi.

Well, there is a new Delphi version every 1 and half years, last version being Delphi 2006.

What are you talking about Ada and Fortran for?

I ment to talk about B too (C is the successor of B) because they are stereotypical old languages along with Prolog and Lisp.

No, constant time relative to a and b, O(n^2) relative to n. n is not constant, why would it be constant? Well, O(n^2 + n log ab), if a and b are arbitrary size integers, but not all programming languages have that built in. The algorithm is a matter of algebra.

1.An algo can't have both constant time and O(n^2).
2.There is no such thing as O(n^2 + <something>)
3.Time complexity of an algorithm is independent of PL, OS or anything at all. Even if you have hardware quick sort on your machine it is still O(n log n) (Worst case O(n^2))
4.I still have no idea about what is the algorithm we debate on its time complexity.

This is all distracting from your original claim that C#, C++, C, Jscript, and Delphi are the only languages that could ever be needed. Which is a pretty ludicrous claim, and you've only been able to defend it by calling everything else "old."

Also I argumented that
a) no body use them in real-world applications (w/ a survey result)
b) Turing equivalence ensures that even a single PL is more than enough for all tasks, but I selected those for convenience of maximum coverage of domains (which are RAD (C#,Delphi), Performance(Delphi, GNU C),Legacy Code+Non-x86 platforms (GNU C,C++ Compiler) and WEB (ASP.Net, PHP, JScript))
c) Why are there so many languages? It simply isn't needed. If we accept all PLs as needed, I can make up thousands of them by randomly generating parsers and lexical analysers using bison and yacc.

I even don't believe in P-SQL as you can code Stored Procedures w/ C or C#; but it can be allowed for cost reduction and lesser expertise requirement.

While people bother w/ JSP instead of ASP.Net or PHP ? If they need speed, then they can code ISAPI filters or Apache Mods on C with less hassle.

Delphi, C# rules.

Loren Soth

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.