开发者

Where are the new ideas in programming languages? [closed]

开发者 https://www.devze.com 2022-12-31 21:22 出处:网络
Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing
Closed. This question is opinion-based. It is not currently accepting answers.

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 7 years ago.

Improve this question

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 pro开发者_C百科gramming languages since 1980 or so just combine aspects of their predecessors?

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


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.


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.


What about Subtext and Coherence?


Mankind hasn't invented the wheel every two years again; we consistently improve it. The same applies to programming languages; we improve it not replace it.


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.


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


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.


New languages are always coming, look at scala.


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.


I think we can collect the design patterns we use everyday and add them to a specialized language.

For this purpose Vala is a good idea, especially when you are using C mostly. It gives you object oriented, garbage collection feature and many more. I think this is one of the most successful source to source compiler I have ever tested. And it is still a soft muddy thing to play with.


If it aint broke, dont fix it.


New languages do incorporate new ideas; there are more physical computing things than ever. Look at Arduino; it's language helped it become popular, not to mention without it it would only be a pile of wires. It's not only the languages, it's how we use them. If people need something that isn't available, they can make it. Not to mention, programming languages are closely tied to the hardware that they run on and who makes them and the operating system. Windows can only allow programs to do so much. Plus, the people who make languages sometimes just want a more lightweight, easier to use, and open source alternative that does the same things as the same things already available. "You cannot have you cake and eat it."

0

精彩评论

暂无评论...
验证码 换一张
取 消