What is a "modern" programming language?

What features should a modern programming language have?

  • The features I'm asking for can not only be evolutionary (some specific features of existing languages) but also revolutionary. Any programming paradigm.

  • Answer:

    First class functions. Almost all new languages created in past 10 years have this, *weep for Java*.

Nhan Dao at Quora Visit the source

Was this solution helpful to you?

Other answers

First Class Everything, Baby Undoubtedly, this is the way of the future. Making more stuff first class does nothing but make your programming language more powerful. You start with something like C or Java (pre-8), which have first class almost-nothing, and explode from there. Add first-class functions (and a ton of other stuff you can read about ) and you get languages like Haskell and the entire functional programming paradigm. Start making everything objects and making it all first class with decorators and extremely liberal syntax and you get Python. These languages are far more expressive and far more powerful than something like Java, because you can easily encapsulate and repeat design and execution patterns. If your language is really cool, you can even write abstractions on top of those patterns to get really amazing stuff. The rabbit hole goes much deeper, though. Adding first class functions and classes is a start, but there's much more you can do. Ask any Lisp programmer what his or her favorite thing about Lisp is, or what the most powerful thing about Lisp is, and they'll tell you Macros. Macros are a function of making the very language itself a first class object. Macros let you manipulate not just execution patterns, but entire program types. The more things you make first class, the more you can change and abstract and encapsulate to make your code clearer and easier to manage. With first class functions you can create higher order functions or monads, with first class classes and objects you can use decorators, with first class expressions you can modify your language on the fly. Ultimately, these are just higher levels of abstraction - calling something first class lets you build better abstractions on it. Better abstractions -> more productivity and cleaner, more concise and easily manageable code.

Jonathan Reem

Not exactly language features, but there should be three things built into language: Standard build tools Standard package management system Standard deployment tools

Riyad Parvez

HIgh level of abstraction to implement domain processes and structures.

Alex S. Constâncio

If speed is at all important, a http://en.wikipedia.org/wiki/Memory_model_(programming) for threading to allow the language to take advantage of parallel platforms is essential.

Alexander Duchene

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.