OF Programming Language


have you ever think to create a programming language for Open Frameworks ?

For example, instructions like Pixel X Y

Syntax user friendly

Anyone can code something.

If interested I should want spend my time with you to create this.

This is the reason why I started hating Qt. They had created a language called QML and then after some time they made it “first class citizen” in front of C++.If one day Openframeworks does the same/similar thing, I stop using Openframeworks immediately… Why to create a new language instead of protecting the nice one we have? :angry:


Hi @massimiliano I think that it would completely miss the point of OF.
openFrameworks came out, as the myth says, as a much more powerful sibling of Processing yet guided by the same principles, which would let you grasp all of the computing power you had.
If you’d like to make a new language equally powerful you’ll need to write a compiler, which is a gigantic feat just for a single platform, I don’t want to imagine such thing for all the platforms that OF currently supports; at the end all energy would be lost trying to make this new compiler instead of making this great tool for making programming easier and more fun.
It would be like a needless reinvention of the wheel.
On the other hand you can write your own programming language that runs on the javascript engine. It is actually really fun, specially as a tool to question the programming language itself, but as it runs on a virtual machine, its power so much less than any code that is compiled as a native application.

1 Like

C/C++ are languages that are powerful but lack of a user friendly syntax.

Each row of code is considered as a mathematical function with parentesis, commas, etc.

Missing an approach to declare variables as byte or multiples of bytes , but all are typed.

I should want declare for example a variable of 2 bytes untyped and then I used to output a string, char, hexadecimal etc, with a specific instruction, but 2 bytes are only and only 2 byte, not char, integer etc.

C++ must remain in Openframeworks, but i see a new imperative language where everybody, including non programmers can use to code something without technical knowledge.

I don’t like Processing because behind there is a virtual machine where code is not compiled and runtime suffer of performance.

A C/C++ compiler just exists on Openframeworks.
Capability with same code to deploy multiplatform applications is a great thing !

But miss of a language that have a simple syntax, with an only instruction is possible to do a complex series of things and with simple instructions do a low level things.

No, I hate programming languages that interpreting instructions o with virtual machines in a runtime application in release mode for production . Runtime must be a results of a compile code !

My idea is to create an application that translate easy syntax of a new programming language in Openframeworks code ready to be compiled (software write OpenFrameworks code, not human).

I would personally not use oF if it implemented its own language - its the best platform to learn C++ which a powerful language even though its a bit difficult to learn, its just the initial learning curve. There is a lot about the language that makes certain processes a bit convoluted but it has its advantages and disadvantages - just as creating a new language would.

There is a cross platform tool-kit called Haxe which is somewhat like what you describe.

@massimiliano what makes C++ powerful is its complexity. You can type your own wrappers around C++ common functions (eg. typedef vector Numbers; void Join(Numbers & a, Numbers & b)) for a more user friendly interface, but you will lose optimisation power.

You can also type python bindings for a more “user friendly” interface, but again, you don’t know whats happening inside!

Edit: Moreover, the higher level (easier user interface) you go, the more your code base grows. If you want to code a function for each possible thing you want to do, then your code will be bloated everywhere. Imagine a Print function, there are a long number of options for printing: font, color, size, italics, spacing, line spacing, first letter bold, alignment… if you had to code a global Print method, you would not be able to cover all the possible options. On the other hand, if you allow for a modular approach, then you can handcraft your own print method for the case you need, and thats it!