I recently saw a comment in reference to a new programming language being created by Mozilla Labs (Rust). Here's the comment:
"We flat out don't need any more programming languages! What we need is *efficient* implementations of the ones we have now and IDEs / version control systems that enforce software engineering discipline."
What do you think? Is there still a place for new languages, or should existing languages be polished up and new tools be created to make using them correctly easier?
I think if a new language has a slight chance of being popular it needs support from major players first and foremost. And how do you get that support? The language has to bring something to the table that hasn't been here before.
C# copied Java in the beginning but after time it started innovating and pumping out things that makes developers lives so easy. It's gotten to the point that it's now Java copying some key aspects of C# goodies.
We don't really need new languages as much as we need to identify problems with current languages first. Once we find out what we need a new language can come in and save the proverbial day.
Need? No, not really. Languages are created to scratch an itch. Because someone feels they can solve a problem in a way that's better than everyone else has previously done. I'd argue that new languages often teach the old one's new tricks.
Python is popular. It's not new, pulling from Smalltalk and a myriad of others. However, it's popularity has helped introduce the lambda to a generation of programmers. I blame Microsoft's LINQ on Python.
Languages live and die by the popularity contest. I wish Delphi had hung around, it didn't. I'd like to see Go get off the ground; it hasn't. I'm horrified that Objective-C is still around. You never can tell how these things will go.
Well, I'm pretty much with Baavgai on this. I don't think there's a real reason we need more programming languages. Hell, there's plenty I wouldn't mind seeing disappear. But lots of people think they can reinvent the wheel, and do it either more efficiently, or more logically, or more easy to use, or anything else that sets it apart from other wheels.
Personally, I like learning new languages, but usually from a compare-and-contrast standpoint. I know C#, and I know LINQ. I don't know Python, but I'm starting to learn it. And I like seeing the differences; the points where I can say "I wish C# did that" or "damn I'm glad I don't have to do that in C#." I've also been giving F# a try, but that's a whole different paradigm.
The world evolves, computers evolve, and so should computer languages. Some day somebody may come up with a new paradigm that fixes the problems with others. In that case a new language may be the way to go. Somebody may come up with a language that makes programming easier to pick up for beginners. That wouldn't be such a bad thing. I would have liked to see Delphi make a bigger mark on the world as well. Guess that is from my Pascal roots. Just creating a new language for the sake of creating a new language doesn't make much sense. If you can make one that makes solving certain types of problems easier or more intuitive, go for it.
I see this question "Do we need another language" every so often. And it's the wrong question to ask. It's a flawed question that either assumes that the languages we have now are perfect or doesn't understand the invention process.
Consider science or mathematics. Discoveries and advances aren't made in a vacuum. Each advancement builds on the work of previous people. If there's a mathematical proof, it builds on what has been studied and researched in the past. Not just what worked, but what hasn't worked.
The same happens in programming and computer science. Advances are not made in a vacuum. One learns from experience, either one's own failures and successes, or those of others. Creating a programming language is like that. It's a proposed solution to a problem-- expression of logic that resolves to something that works on hardware-- that makes various tradeoffs (portability, mathematical simplicity, protective limitations, flexibility in expression, etc.).
And you won't get good solutions if you don't have an environment where people are proposing solutions. Will Rust become an important and notable language, or it will die away as yet another language? Who cares. What matters is that there are people trying to create a good language that is an improvement over what exists. Maybe people will use it. Maybe not. But future language designers will look at Rust and learn from what it does right and what it does wrong.
And that's what matters.
This post has been edited by Oler1s: 29 November 2010 - 01:54 PM
There are a myriad of programming paradigms out there so I see no reason why new programming languages won't or shouldn't keep popping up.
C# copied Java in the beginning but after time it started innovating and pumping out things that makes developers lives so easy.
I've said this before and I'll say it many time again, I'm sure:
C# is not original. It in turn "stole" ideas from past programming languages and paradigms. There is nothing new or novel about C#, only rehashed functionality made popular by its ancestors.
I agree that there really isn't a need for any new languages. The current ones cover everything imaginable. Then again if we had that same thought years ago we wouldn't have the languages we do today. So I guess it boils down to it hurt to make new languages. They might be the next C# or Java. Popularity will decide what lives and what dies.
Of course we need new languages! No language is perfect. The only way programming can evolve and change is for new languages to be created. New languages will always come out that provide new innovations and fix the flaws of it's predecessors. I'm not sure how anyone can boldly say "I don't think there should be new programming languages" with a straight face.