Unveiling the Next Wave of Programming Languages - Haneke Design

Buzz / 12 04, 2023

UNVEILING THE NEXT WAVE OF PROGRAMMING LANUAGES

The evolution of computing technology is a dynamic interplay between the capabilities of computers and their application in various fields, fueling innovation and advancement. For example:

  • The realm of video games, with its demand for real-time processing, has driven the development of CPUs boasting multiple cores and sophisticated optimizations, enhancing computational efficiency.
  • The field of Machine Learning, reliant on simultaneous operations, has championed the evolution of GPUs. These are now equipped with versatile programming pipelines, extending their utility beyond mere graphics processing.
  • The business world, with its need for maintaining decades of legacy code, has led to the creation of modern systems that seamlessly integrate with venerable mainframes, ensuring backward compatibility while embracing contemporary technology.

These shifts in hardware paradigms don’t just necessitate the development of new tools and frameworks; they often inspire the creation of entirely new programming languages. These languages are specifically designed to harness the potential of these emerging modes of computing, heralding a new era of technological possibilities.

In this Tech Top 3, we talk about three upcoming programming languages — Mojo, Carbon, and Jai — that each aim to solve some of the challenges involved with an increasingly diverse computational world.

 

Mojo: Bridging Python’s Usability with C’s Performance

To explain Mojo, we must first explain Python. Python is a popular programming language for its ability to act as a “glue” language, meaning it can wrap around and facilitate interoperability between packages written in many different languages, including C++, FORTRAN, and CUDA.

This gluing ability made Python the perfect choice for many Machine Learning frameworks, such as TensorFlow and PyTorch; however, this gluing ability also comes at the cost of horrible speed and memory efficiency when using the language on its own.

Enter Mojo: A language that takes the syntax and binding ability of Python, but replaces its interpreter with a more modern and advanced compiler, and features to take advantage of that compiler.

“This means that code written in Mojo is far “closer to the metal” than code written in Python, despite looking almost identical,” explains Matt Giallourakis, Lead Mobile Developer at Haneke Design.

Mojo’s Key Features

  • Superset of Python: Mojo is fundamentally based on Python, addressing Python’s performance and deployment challenges while maintaining its simple syntax.
  • AI Hardware Programming: Unique to Mojo is its ability to program a wide range of low-level AI hardware, such as GPUs, without the need for C++ or CUDA. This feature is particularly advantageous for AI developers​.

Availability Status: Currently, Mojo is now available for local development, providing an SDK and CLI tools here.

 

Jai: A High-Performance Language for Game Development

Jai is developed by Jonathan Blow, known for his work in the puzzle-game genre of video games.

Unsatisfied with both the developer experience and data management shortcomings of C++ (one of the most popular programming languages for custom game development), Blow is designing Jai to be a superior alternative to C++ for game and real-time systems programming by making performant code natural to write and understand rather than requiring obscure techniques and hacking.

Jai’s Key Features:

  • Game Development Focus: Gaining popularity among game developers, Jai is tailored for high-performance systems programming, a critical requirement in game development​​.
  • Modern Language Features: It offers modern features like modules, generics, and compile-time code execution. Additionally, Jai supports automatic parallelization, simplifying multi-core utilization​​.

Availability Status: Jai is in a closed, invite only beta, and will be released as open source.

 

Carbon: Google’s Experimental Successor to C++

While some systems can take advantage of entire rewrites in new languages, others, like legacy business applications that have been around for decades, may be too costly to replace all at once. Carbon, an experimental language created by Google, aims to bring older systems to the modern era by being interoperable with C++ without inheriting the decades of technical debt.

Carbon’s Key Features:

  • Successor to C++: Positioned as an experimental successor to C++, Carbon aims to address some of C++’s shortcomings, providing a modern alternative for the vast community of C++ developers.
  • Gradual Adoption: While aiming to succeed C++, Carbon is also interoperable with C++, allowing for features and fixes to incrementally be rewritten.

Availability Status: The programming language is open source, available here, but the language isn’t expected to have a 1.0 release until 2024-2025.

 

Mojo, Jai, and Carbon each bring unique strengths and innovations to the programming world.

“Mojo’s focus on AI, Jai’s dedication to high-performance programming, and Carbon’s aim to refine and extend the capabilities of C++ highlight the diverse needs and directions of software development,” says Matt. 

As these programming languages evolve and gain adoption, they are set to significantly influence the landscape of computing, each in their respective domains. The future of software development is bright and diverse, with these new programming languages leading the charge towards more efficiency and accessibility. 

CONTACT US

    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.