Introducing ARK RUBY — The New Programming Language Integration for ARK

Travis W
ARK.io | Blog
Published in
3 min readAug 15, 2017

ARK is proud to present another programming language integration to add to our growing list of other languages already integrated.

Introducing, ARK-RUBY.

The Ruby programming language was integrated into ARK by a few of our great community dev members, faustbrian and yin. These 2 community members have been working hard in the background to make the ARK ecosystem a better place. Faustbrian and yin also recently integrated PHP-ARK and Laravel Framework completely funded and backed by the community(read more HERE). You can join them and the rest of our great community on our Slack.

ARK RUBY also takes advantages of very powerful Nucleid CLI tool (which we introduced a few days ago made by the Ark Crew) allowing any programming language to reuse and integrate ARK-JS, removing the need to develop custom cryptographic libraries.

ARK RUBY can be found here: https://github.com/faustbrian/Ark-Ruby

What is RUBY?

Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It was designed and developed by Yukihiro “Matz” Matsumoto.

It supports multiple programming paradigms including functional, object-oriented, and imperative. It also has a dynamic type system and automatic memory management.

Some of the more prominent Ruby features:

  • Thoroughly object-oriented with inheritance, mixins and metaclasses
  • Dynamic typing and duck typing
  • Everything is an expression (even statements) and everything is executed imperatively (even declarations)
  • Succinct and flexible syntax that minimizes syntactic noise and serves as a foundation for domain-specific languages
  • Dynamic reflection and alteration of objects to facilitate metaprogramming
  • Lexical closures, iterators and generators, with a block syntax
  • Literal notation for arrays, hashes, regular expressions and symbols
  • Embedding code in strings (interpolation)
  • Default arguments
  • Four levels of variable scope (global, class, instance, and local) denoted by sigils or the lack thereof
  • Garbage collection
  • First-class continuations
  • Strict boolean coercion rules (everything is true except false and nil)
  • Exception handling
  • Operator overloading
  • Built-in support for rational numbers, complex numbers and arbitrary-precision arithmetic
  • Custom dispatch behavior (through method_missing and const_missing)
  • Native threads and cooperative fibers (fibers are a 1.9/YARV feature)
  • Initial support for Unicode and multiple character encodings (no ICU support)
  • Native plug-in API in C
  • Interactive Ruby Shell (a REPL)
  • Centralized package management through RubyGems
  • Implemented on all major platforms
  • Large standard library, including modules for YAML, JSON, XML, CGI, OpenSSL, HTTP, FTP, RSS, curses, zlib, and Tk

Ruby has been described as a multi-paradigm programming language: it allows procedural programming (defining functions/variables outside classes makes them part of the root, ‘self’ Object), with object orientation (everything is an object), or functional programming (it has anonymous functions, closures, and continuations; statements all have values, and functions return the last evaluation). It has support for introspection, reflection, and metaprogramming, as well as support for interpreter-based threads. Ruby features dynamic typing, and supports parametric polymorphism.

For more on the RUBY programming language, visit https://www.ruby-lang.org/en/

To work with the new ARK RUBY integration please visit https://github.com/faustbrian/Ark-Ruby

If you are a developer, don’t forget to check out our Gitter or our Slack, and join the discussion and development!

--

--