C++ as Assembly 2.0 - Hello Nim

C++ as Assembly 2.0 - Hello Nim

C++ as Assembly 2.0 - Hello Nim - Nim is also perfectly suited for software typically written in C#, Java, JavaScript, etc. Nim is compiled to C/C++ (and JavaScript among others) and thus interoperability is straightforward and without any performance penalties - lots of existing C/C++ software can be reused and built upon.

Abstract

In C++ it takes more than 5000 lines of code to properly implement optional - a value and a bool (hopefully without bugs and design flaws - fingers crossed! and let's not mention build times…).

Nim is a statically typed systems and applications programming language which offers some of the most powerful metaprogramming capabilities. It is the next iteration of imperative language design and aims to dethrone C/C++ for high-performance coding - among its rivals are Rust and D. Nim is also perfectly suited for software typically written in C#, Java, JavaScript, etc. - basically all types of software. Nim can bridge the gap between business logic and high performance, sprinkling improved developer productivity on top. Nim is compiled to C/C++ (and JavaScript among others) and thus interoperability is straightforward and without any performance penalties - lots of existing C/C++ software can be reused and built upon.

The talk outline is as follows:

  • the landscape of (compiled & high performance) programming languages and their use in the industry
  • thoughts on the evolution of C++ and where it fits
  • introduction to Nim - features and capabilities
  • metaprogramming and introspection in Nim (HTML DSL example)
  • the whole-program compilation model of Nim - how the compiler actually works and what the generated C++ code looks like
  • a thorough comparison with C++ (language features and workflow)
  • interfacing with C++
  • the future of the language and ways to go forward

It's time to treat C++ as assembly and the C++ ecosystem as just another platform which a language such as Nim can target. Typescript is a bright example of a better tool for software development on top of a stable system.

About the Speaker - Viktor Kirilov

With 7 years of professional experience with C++ in the games and VFX industries, Viktor currently spends his time writing open source software (since 01.01.2016) - and occasionally doing some contract work. His latest work has been the implementation of hot code-reloading at runtime for the Nim programming language. He is also the author of doctest - "The fastest feature-rich C++11 single-header testing framework". His interests are the making of games and game engines, high-performance code, data-oriented design, cryptocurrencies, optimizing workflows and incorporating good practices in the software development process such as testing and the use of modern tools like static analysis or instrumentation. Viktor is from Sofia, Bulgaria and his profession is his hobby.

Personal website: http://onqtam.com/.

cplusplus assembly nim programming

What is Geek Coin

What is GeekCash, Geek Token

Best Visual Studio Code Themes of 2021

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Programming In Acceleration: Levelling Up Programming Skills

Some require and some are not. But acceleration programs might require you to build one. I’ll tell you how I made a computer program for the competition.

16/32/64 Bit Assembly Programs

Ok so before we move on and jump into writing and running 64 bit programs (because all programs today are 64bit these days no? j.k.) let's have a look how to compile a simple program for each of those architectures. This knowledge should also help you better understand how to start a nano VM and "debug" problems that might arise.

Top 5 Programming Languages to Learn in 2021 | Top Programming Languages | Intellipaat

In this video, you will know the top 5 Programming languages to learn in 2021. It is always confusing for a beginner to choose a programming language from th...

Coding 101: Programming Language Building Blocks

This article will introduce the concepts and topics common to all programming languages, that beginners and experts must know!

C Programming for Beginners | C Programming Tutorial | Learn C Programming

C is an evergreen language and is widely used across different industries. This language is a must for students and working professionals to become good Software Engineer, especially when they are working in a Software Development Domain. Great Learning brings you this live session on ""C Programming for Beginners"". In this live session, we will be covering major concepts of C, starting with the syntax of the language. Then we will be covering topics such as comments, tokens, variables, etc. Then we will look at different data types and operators used for various mathematical operations, post which we will conclude our session with in-built libraries and conditional statements wherein we will talk about if, else if, nested if, and else block, and how multiple conditions can be replaced by a switch case. We will also understand the concepts of loops wherein we will talk about while loops, for loops and do-while loops including their similarities and differences.