November 7, 2014

Programming languages: Next Generation

Everyone inside this little world of programming knows the existence of C, C++, Perl, Java, Ruby, Python, and others not so well known. But there are hundreds, even thousands, from Turing-complete languages to more specifically made ones i.r.t. classification.

In this post we're gonna introduce you briefly about the next generation. Even about where they might end eventually. Because at this moment they are specializing, even the Turing-complete ones, to be better at some purpose, while others are merging the old ones. Let's start this:

1. Slow and powerful languanges:



Where I say "slow", I'm talking about coding time, not running time. It use to be the other way around when we're talking about computational efficiency (runtime average). In this category you can find: C, even Java if you compare it to Python. All the compiled languages are not so fast to code + compile when you need a quick and simple app to do a single task. 

At this moment, there are some projects to merge the beauty of a powerful backup program and a fast simple client program, which is the current method for most of big companies out there. E.g., "D" (Object Oriented) language or "Hack" are some programs that are being invested in, and co-funding by companies like Facebook, to search for a dynamic and wide used language, instead of splitting the code into fast and powerful ones. Well, not exactly.


Facebook "absorbed" D's creator by putting him into its paysheet since 2009. But they first placed him into other department. It's recently that they decided him to focus on languages again, but he never gave up his little creation. Right now many of Facebook code is being used with "D". This language can be compiled using C's, Java's, and other compilers, it's WAY FASTER in coding-compiling-starting average time... unless your application goes real bigger. Then it tends to be the same. But... stills being great for most of applications we need all the time. Social, chat, even photography. Its characteristics makes it the best C++ substitute. So I guess we'll be hearing from it the next few years.

Here you can read more

Official web page -link-
d-programming-language -link-
D language (Wikipedia) -link-

2.1 Fast languages:

About the "hack" language... think of it as a shortcut to get things done. It's php based, implementing the speed. It's compiled using the "HipHop Virtual Machine" -HHVM- (+info), and it's as simple as it looks on this example:


<?hh class MyClass { const int MyConst = 0; private string $x = ''; public function increment(int $x): int { $y = $x + 1; return $y; } }


It's very compressed as you can see, but the important part is that it's VERY FAST. It compiles in time while you are coding it using the HHVM. So when you're done, it just need to add the last lines you just wrote. It's almost an interpreted language execution time.

You can see a video presentation of Hack this March-2014:

Official web page -link-
Hack Dev Day (2014 March) -link-
Hack lang (Wikipedia) -link-



2.2 Reactive programming: (also Synchronous Reactive Programming -srp-)

Well, this is also a fast sort of programming classification. Here you can put "Atom", LabView, Chuck (for sounds) or other functional programming languages. Those are oriented to devices which interacts very often with the user. Think about tablets, smartphones, ATVs, airplanes, PDAs... and so on. ATOM is in fact reactive, synchronous, and functional at the same time. It's new in "town", and many like it.

It's too large and too complicated to reduce it to a few lines, so I'll give you some links if you are interested in further reading:

Functional Reactive Programming -frp- (Wikipedia) -link-.
Reactive Programming (wikipedia) -link-.
Synchronous Reactive Programming -srp- (Wikipedia) -link-.


3. Mobile device's next languages:

Have you heard about Swift? Well, you should have!! It's the next step after Objetive-C, and Apple is happy to introduce us their new toy with this description:

Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.
It's fast, powerful, modern, design for today, and implements years of studying, and innovating programming languages. Cool, right? Let's see an introduction from Apple:

Swift Programming Demo at WWDC 2014 -video-.

It's basically Objective-C, without the "C" baggage. In complex objects sort, it's 33% faster than Obj-C, 400% faster than Python!! But that's nothing... In RC4 encryption (used in SSL for example over the internet)... it knocks down completely Python. Grab your chairs: 22000 % (220x times) faster than Python. Yes, time to move forward. (It's almost 2x faster than Obj-c on this particular subject). I recommend you see the video above.

Will we have the equivalent to Swift about Java? It's about time, don't you think?? So if you are a compiler or language developer, don't wait too long, Android needs to evolve to the next level.

Thanks for reading.


Other sources of information:

"What's next programming language you need to learn?" -article-
Atom (Haskell-based package) -link-

4 comments:

Speak up your mind. We build and "program" this world together ;)