BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Research What's Your Next Native Language?

What's Your Next Native Language?

Bookmarks

InfoQ's research widget has been deprecated and is no longer available.

InfoQ has previously asked "What's your next JVM language" and "What's Your Next Language on the Javascript Platform?".
But what about systems that require neither of those platforms or even need to be independent of heavyweight VMs? What about tools and services that need instantaneous startup and can't support long warmup delays common in JITed systems. What about systems with restricted resources (CPU, memory) that would still benefit from being written in a modern language without the horrific security track record of C.

The Languages

  1. Go: Google's Go language has seen steadily increasing uptake in the industry as well as powering new tools such as Docker, etcd, Doozer, and others.
  2. Rust: has been in development for a few years and promises to give ultimate power over memory allocation and other important aspects, as well as removing many common security and stability problems commonly associated with native lanugages. The 1.0 release is close and the Mozilla Servo code base has been built using Rust.
  3. D: has been gunning for C++' position in the market for quite a while, being a more modern, yet as flexible language for native development. 
  4. Swift: Apple's new language seems destined for fast adoption in the iOS and OS X development space, while bringing some long expected improvements over Objective-C.
  5. Objective-C: Sticking with Objective-C rather than Swift for Apple platforms?
  6. Haskell: Haskell compilers allow to use both leading edge functional language concepts while compiling down to binaries.
  7. Ocaml: Ocaml has seen adoption in certain areas like finance and has a strong community with interesting projects like OpenMirage.
  8. C++ 14: modern C++ is a very different language than 10 years ago, with Lambdas, etc. Is now the time to adopt C++?
  9. C 11: are you staying away from languages invented after 1980 and sticking with C, albeit in its 2011 revision?

As usual, this is not a complete list of native languages and is probably missing your favorite native language, be it Ada, Eiffel, or Delphi; feel free to use the comments section to tell us all about it.

 

 

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • APEX

    by Michael Brown,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I find myself doing more and more in force.com. So APEX.

  • Dart

    by Anders Holmgren,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    You're missing the dart vm

  • Lisp

    by Michael Bohn,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    What's with Lisp?

  • My vote goes to Dart

    by José Antonio Puche Rico,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Dart could be considered as a native language as there's a Dart VM Implementation.

  • Re: My vote goes to Dart

    by Luis Espinal,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Sorry, but no. The universally accepted interpretation of what a native language is requires that the language gets compiled by default to something directly interpreted by the underlying hardware (regardless of whether the resulting "native" opcodes are interpreted directly by the CPU or via an in-the-die micro-code translator as in the x86 architecture.)

    Granted that modern VMs can do JIT and produce native code out of bytecode already executed and analyzed. But because there was a VM specific bytecode first produced by the compiler, that language would not be considered 'native'.

    Again, the prerequisite for a language to be considered native is that its compiler's final output and deliverable consists of hardware specific machine instructions as delineated by some type of hardware specs. This is independent of the language's merits and capabilities.

    Arguments about whether there are distinctions between VMs and hardware are, for the most part, moot and fall into the 'it's turtles all the way down' metaphysics realm.

  • Still Too Complex

    by Richard Eng,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    modern C++ is a very different language than 10 years ago


    It still has nearly the entirety of old C++ as its core or subset, therefore making it the same complex behemoth that it has been for 30 years. You don't simplify things by merely adding to it, you have to subtract things. A lot of things. So, no, it's not time to adopt it.

  • I Love Go

    by Richard Eng,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    This is a very practical, very simple, very powerful, and very fast language. I abandoned Python in favour of it. I switched from my favourite web framework, web2py, to Beego. I even wrote an advanced Beego tutorial at Medium.com called "A Word from The Beegoist", which has become quite popular.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT