views:

315

answers:

10

I've recently been looking into the topic of programming languages and from what I've seen, few to none serious languages try making really "new" things that were not seen before their creation.

  • Why do all more or less successful programming languages since 1980 or so just combine aspects of their predecessors?

I just can't believe that programming languages "can't get any better"..

A: 

If it aint broke, dont fix it.

Dal
If you can't name 5 things you hate about your current language you haven't been using it enough.
Yacoby
Thanks for the downvote - if you read the comment by '– S.Lott ' in the OP post I think it makes clear sense... sure its great that languages develop more features over time, but the OP argument seems to be that all principles from the 1980s should be changed - my argument is, if there's a need then sure...but despite these methodologies and concepts being fairly old they do work very well even today.
Dal
+2  A: 

Mankind hasn't invented the weel every two years again. Instead it is consistently improved. The same applies to programming languages.

Roflcoptr
A: 

Well, lisp has some stuff no one has copied yet and has been around forever (I'm looking at common lisp, specifically)

krzysz00
+3  A: 

New languages are always coming, look at scala.

fastcodejava
Well, scala is a combination of ruby and java, so his statement that languages just combine is still true.
dbemerlin
@dbemerlin: Which one of ruby or java (or any other language) has extractors (pattern-matching on non-constructors)? How about path-dependent types? Self types?
sepp2k
+3  A: 

Computer Languages get new Ideas all the time but they still have to compile down to the same assembler instructions, so there can be no fundamental changes. In the end all your code will still consist of loops, memory segments (=> variables) and lots of jump instructions.

A new path of programming languages is Quantum Computing which might be a "new enough" idea for your taste.

dbemerlin
Haskell and C compile to the same assembly language, but I'd still consider programming in haskell a fundamental change versus programming in C.
sepp2k
A: 

Because we haven't yet figured out how to use many of the "old ideas" that have been around since at least 1970 really well, and there haven't really been any fundamentally new ideas that look like they'd completely change the game in a way that would make using them more useful than improving what we already have.

Michael Borgwardt
+3  A: 

What about Subtext and Coherence?

Mark Byers
Frum the Subtext FAQ: "Subtext is a research prototype that is far from being a usable language". In other words: It's a nice idea but we haven't found out how people can make anything usefull with it.
dbemerlin
@dbemerlin: It's an experimental language. Quite often with experimental languages the ideas lie dormant for 20 or 30 years before a mainstream language will pick up some of the best ideas, perhaps in modified form. But mainstream languages are slow to change because people are slow to change their habits.
Mark Byers
@dbemerlin: Every feature is experimental until it's not. Many of the features we take for granted today wouldn't exist if they hadn't first been implemented in experimental languages.
sepp2k
This was rather interesting, thanks.
rjh
+10  A: 

Rather than being genuinely "new" I'd say that modern programming languages are gradually bringing in ideas which have been known about in computer science for decades, but haven't really hit industry - or which have previously been in niche languages, but not in mainstream ones.

For example, many of the ideas of LINQ aren't new per se - but for many developers LINQ will be their first experience of them.

Think of it as a process of "productising" previously "experimental" features. When I talked with Eric Lippert recently he said that the C# team was trying to avoid including "open research" ideas into the language - simply because they can't tell whether or not those ideas will pan out in the long run. There's plenty of room for experimentation in language, but probably not in mainstream languages.

Jon Skeet
+1. I think that "idea -> experimental (proof of concept) language -> niche language -> mainstream language" is probably the path that most programming concepts took before ending up in todays mainstream languages.
sepp2k
+5  A: 

Uh, Perl 6?

  • active metadata on values, variables, subroutines, and types
  • parameterised roles
  • macros (implemented in Perl) that can rewrite AST or source code
  • a grammar that is implemented in Perl 6 itself, and can be extended or modified by code
  • multiple dispatch, distributive dispatch, delegation to the next item in the call chain
  • grammars as first class objects in the language - can parse pretty much anything
  • user-defined infix, prefix, circumfix operators that can use any Unicode character
  • optional strong typing
  • multimorphic equality tests
  • hypothetical variables
  • hyperoperators (SIMD processing of lists)
  • coroutines
  • lazy lists
  • junctions (variables with multiple values)
  • automatic parallelisation of code

Perl 6 takes the feature set of Perl, Ruby, Python etc., adds an optional strong type system, the OO of Smalltalk, and the functional abilities of Haskell - plus a few more innovations: just as Perl 5 brought regexes into the mainstream, Perl 6 makes non-regular grammars first-class citizens. And yes, it is under development; while not complete, it's moving fast: Rakudo Perl 6.

rjh
But will it ever be finished? I had been waiting for Perl 6 so long I forgot about it.
Callum Rogers
I'm looking forward to when Perl 5 steals all these features. Perl 5 is here now!.
Kent Fredric
I have a fear that Perl 6 will be too difficult for me to understand.
Snake Plissken
+3  A: 

Programming languages can get much better! Have you looked at languages like Agda or Epigram? Of course these are research languages, so perhaps not what you would call 'serious languages'. However, if you are interested in where mainstream languages may go in the future they may offer some insight.

Alasdair