Okay, the mirrored moon project were a bit ideally. Well, actually, a lot(that doesn't means that we won't take any action on the future if we can), so… lets talk about something that is happening right now, the Iris Project, a brand new programming language. Short showcase that only shows ...
Okay, the mirrored moon project were a bit ideally. Well, actually, a lot(that doesn't means that we won't take any action on the future if we can), so… lets talk about something that is happening right now, the Iris Project, a brand new programming language.
Short showcase that only shows the compilation of const global vars -> https://vimeo.com/357272053
Long showcase that shows the whole UI(we will make it more beauty, don't worry) and a bit of the features the language will have, unfortunately, it's in Spanish -> https://www.youtube.com/watch?v=eZWAON-Lg5A
But… Why we did reconsidered to don't develop the C++ framework. Simple enough, C++ is deprecated. And no, don't get us wrong, we know the C++ language features have been evolving(C++11, C++14, C++17, C++20...) and the libraries/frameworks has also been in constant development. We say it's deprecated, because its low level features are odd, a lot(we can explain that further in the comments section if anyone have any doubts about how we ended up into that resolution).
We try to see other languages that offer some solutions to the C++ problems, such Rust & Go, but Rust memory model didn't offer what we are looking for, and Go just has a lot of problems of design for us.
So now we have the initial motivation to go for, but it's not a real reason to design an entire programming language and the tools that it implies. Why we would do that then?
The answer is the language itself. We really loved each new piece of design that came to our mind. And we are gonna share that here, today, now.
First, we decided to make the language totally network dependent.
What does this means? And why would we make it?
This concept implies that the code written by the client, would be sent to our server, hosted(TOTALLY) by us, being compiled, and send back the response to it(a binary or a retina map(similar to AST format from Clang/LLVM)). Obviously the data would be encrypted for both sides.
The reasons to do that:
- Multi-platform(i.e., compile from a Windows machine for a Linux)
- Multi-architecture(i.e., we could compile the same code sent by the user for the different target architectures, lets say SSE2 and NEON, without any explicit intrinsics or SIMD instruction lossy, absolutely everything will be handled by the compiler in a perfect way by generating a new binary for each architecture specialization).
- But wouldn't generating a binary for each different target architecture consume a lot of the client hard disk space? No, because the library/application will be offered by stream:
·Libraries:
- The code will be formatted to Retina map, so further compilations will take shorter times.
- The retina map will be stored at the server, and it
returns an ID and the public, external methods symbol/arguments,
so the Iris IDE will know how the exported methods are structured.
- The ID and exported methods are stored at the client
hard disk with the extension .retina, and it's imported at the
Iris IDE importing project at anytime it's gonna be used.
- Once we compile using that library, the ID will be
sent, and the server will create a relationship between that ID
and the library code formatted before to retina map, so the
compiler knows we are linking against that.
Application:
- The code is being compiled for the different platforms/architectures on their respective ABI format, and
stored at the server hard disk.
- A retina file with(only) the ID that links against
the location of the compiled application will be provided for
the programmer client.
- The end user must have installed Iris Manager, which
sends to the server the input(the retina file with the ID), and the detection of the actual user OS/Arch capabilities, retrieves the
most appropiate(if any) version of the compiled application.
MORE FEATURES AT THE COMMENTS SECTION