What programming languages and language features a

2020-05-16 05:49发布

It seems there are many 'new' languages around but in reality it seems like most of the popular, non experimental, ones are already in their teens and the truely mainstream are older than most junior programmers. Now I just remembered this obvious fact when I realized even the 'hip' Ruby language is 15 this month (February 1994). While stuff like Haskell, that's in everyones 'to learn' list is even older than that.

Thinking about it the only really new language, in common use, I could think of that's under 10 is C#. But even C# doesn't really have any new features to it, although it has picked up some of the best features of it's predecessors.

So I'm wondering what new languages, and their corresponding new features/ideas are under 10 right now? Anything that's likely to be big 10 years from now? Any new language features to look forward to? Or are we done already???


Apparently there is nothing really new that isn't a hybrid or refinement. Maybe LOLCODE because it's designed to be absurd above all else, but even stuff like Brainf*ck and WhiteSpace are basically ancient stack based assembly languages.

Have we reached the encyclopedic era of programming languages?

17条回答
地球回转人心会变
2楼-- · 2020-05-16 06:19

The Blue Programming Language shows great potential. Think "Python but easier to use and extend".

No, I am not saying Blue is better than Python, I'm just saying its brewing, easy to use and (already, after only a couple of years) quite stable. Its been growing on me for about a year :)

查看更多
beautiful°
3楼-- · 2020-05-16 06:21

Ok, we know Code Contracts since Eiffel - so that's 20+ years, and Code Analysis for years and years, but I have never seen such a complete combination of Code Contracts, Code Analysis and Unit Testing as in c# 4.0 and Pex. Maybe I'm wrong and ignorant about other languages and products that did offer that level of functionality years ago - but I surely would call that degree of help towards "bugfree" software a feature. So, is it new?

查看更多
贪生不怕死
4楼-- · 2020-05-16 06:24

The E language made light-weight promise pipelining accessible. This ought to be a crucial idea for the upcoming multi-core revolution, as it makes it possible to write code that's easily parallelized, has low-cost dependencies between communicating sub-processes, and sidesteps all the standard problems with managing locks and avoiding deadlock. The main ideas in E have been ported to a variety of other languages. E is part of a long (though somewhat obscure) line of object capability languages, which has some very important contributions to make in software robustness and security. E is just about 10 years old now.

查看更多
你好瞎i
5楼-- · 2020-05-16 06:26

Languages evolve. You don't necessarily need a new language to get a new language feature. As an example, Haskell is not a new language, but it does have many "new" features, including STM.

查看更多
叛逆
6楼-- · 2020-05-16 06:26

I'd say C# latest additions like LINQ, extension methods, lambda expressions and the rest are relatively new. If they are not big right now, they will be.

ASP.NET MVC though it is not a language feature is going to be big (I am almost sure), though I know many will never accept it.

查看更多
不美不萌又怎样
7楼-- · 2020-05-16 06:27

The D programming language is just under 10 years old. Its unique features include transitive const (everything reachable from a const object is also const), compile time function evaluation, and the ability to annotate functions as pure and have them statically checked by the compiler for side effects visible outside the function. Also included is a template system that puts C++ templates, Java/C# generics, etc. to shame:

  1. Variadic templates that "just work" for unlimited numbers of arguments.
  2. Strings, floating point numbers, and function aliases can be template parameters.
  3. The static if statement, similar to what exists on paper in C++0x, is actually implemented and works.
  4. String and template mixins, which allow the injection of arbitrary parametrized boilerplate code into any place in your source, and for arbitrary compile time code generation. In the extreme case, this has been used by Don Clugston to build a matrix math library that actually parsed code given as string literals at compile time and generated optimal inline assembly code for these operations, before the compiler's code generation stage.
  5. Structs can be represented as tuples, allowing iteration over their fields. This allows for some interesting generic programming with structs.
  6. Ridiculously powerful compile-time reflection/introspection. I once wrote a function template that could deep copy any struct as long as no runtime polymorphic class objects (which compile time reflection simply can't work on) were involved. This was done using only compile time reflection. No runtime type information was used.
查看更多
登录 后发表回答