Introducing Jancy

What?! Yet another programming language? Like, there isn't enough of them already?

Believe us, we know how it sounds! We also likely know every possible argument against creating a new programming language. But the truth is, Jancy was not created just to fix the infamous fatal flaw of other languages -- although we admit that the passion to invent was a significant driving force.

The main motivation to create Jancy was our software product called IO Ninja.

What we needed was a scripting language with safe data pointer arithmetic, integrated lexer generator, extensive facilities for UI programming (properties, events, etc.), and easy integration with the host C/C++ application.

We couldn't find such a language! So we created it. Meet Jancy.

Main design goals

  • Object-oriented language for IO and UI programming with C-family syntax
  • Designed to be used as a scripting language from the host C/C++ application
  • ABI (application-binary-interface) compatibility with C/C++
  • Automatic memory management via accurate GC (garbage collection)
  • LLVM (Low Level Virtual Machine) as a back-end

Key features

  • Safe pointers and pointer arithmetic
  • Properties (the most comprehensive implementation thereof)
  • Multicasts and events (including weak events, which do not require to unsubscribe)
  • Reactive programming (one of the first implementations in a general-purpose imperative language)
  • Exception-style syntax over error code checks
  • Built-in incremental lexer/scanner generator (incremental here means they can process input chunk-by-chunk)

Other notable features

  • Multiple inheritance support
  • Const-correctness support
  • Thread-local storage
  • Weak pointers (that do not retain objects)
  • Partial application support for functions and properties
  • Scheduled function pointers
  • Bitflag enums
  • Perl-style formatting
  • …and more
Jancy Scripting Language


DS110x Family