Ready for InfoQ 3.0? Try the new design and let us know what you think!

What's Your Next Native Language?

| by Werner Schuster Follow 9 Followers on Dec 12, 2014 |

InfoQ's research widget has been deprecated. It should continue to work however, and we hope to relaunch it at some point in the future.

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.

Tell us what you think

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

Email me replies to any of my messages in this thread

APEX by Michael Brown

I find myself doing more and more in So APEX.

Dart by Anders Holmgren

You're missing the dart vm

Lisp by Michael Bohn

What's with Lisp?

My vote goes to Dart by José Antonio Puche Rico

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

Re: My vote goes to Dart by Luis Espinal

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

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

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 called "A Word from The Beegoist", which has become quite popular.

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

Email me replies to any of my messages in this thread

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

Email me replies to any of my messages in this thread

7 Discuss

Sponsored Content