Today, January 8th 2015 (wogel mot wav’wing 69188.8.131.52) I’m not 18 anymore and well in many ways that age was very good for me. but also very bad for me. However I would call it one of the really best years I ever had. In many ways 18 was so great, I bought a Mac which is my love ( and the magic mouse… sexy! ), I got into university which is so cool because most off my time I’m so free and I can use them for my projects. This year somehow my social skills improved so much in a way I don’t understand why but coolest of all I started something that is now my all time project and it’s my programming language Arendelle. Arendelle was by far the most creative, most innovative, most useful, most well designed and well done project I’ve ever started which hopefully we will release the first version for the Android in about two weeks. Our little but strong team: Me and my very great friend Micha Hanselmann worked together for months to create it.
I started it on my Ubuntu station as a very simple language which I developed using Mono C#, Something fun was that I implemented it on the terminal. It used characters to render images but it only works on GNOME Terminal because the only terminal that understood that chars are it.
I could do so much with it. Actually, I have developed a way to calculate the minimum move for a Chess Knight to move from one bottom left of a screen to it’a top right. And I could simply program it by Arendelle which is explained here. And yet that power was just a beginning for my cute Arendelle
After that Micha came and then he wrote a Java-based engine for it which is called JArendelle, For now, we have 3 different cores which make it possible for us to have Arendelle on any platform. We’re coding new UIs right now and well soon there will be Arendelle on iOS, Mac, Windows and GNU/Linux as well as the web so you can have Arendelle everywhere running.
Something very cool that Micha wrote for his core development as a temporary UI was JArendelle. JArendelle is actually the name of Arendelle’s java engine which comes with a UI to just test it so we know this UI as JArendelle. Fun fact of JArendelle is it works exactly like a Swift Playground. You write code and you see the result in real time. Something fun is JArendelle has a special support for key inputs. This way you can create games with it! This is the snake.arendelle by Micha, He created the game to prove the face that Arendelle is really powerful! And you just have to play the game, It just ROCKS!
Micha made this really magnificent Arendelle Android app. It is a full featured IDE from any scale. It has a really gorgeous gallery that gathers to together all your projects in one place. There’s this pretty super easy to use the editor which makes everything really easy. You can simply manage your functions. You have this “ShortKey” that is a shortcut for you to get all the characters you need. The app has color plates which make Arendelle looking magnificent as always.
Also, I wrote a book for Arendelle which is by far the hardest thing I’ve done in my life. I published the book free and open source like the rest of our project. And something really cool was I used GitBook which is the coolest way you can write. This way I could use iA Writer which means using the language I really love “Markdown” using one of the prettiest applications on Earth, I could use any HTML code I wanted and then a tool I love so much Git!
Working with Micha was really great. I’m sure we’re the best team ever existed. We have never met each other however we talked via Telegram for 6 hours a day, 24/7 for months. He kept me focus and worked really hard. I always looked for someone to work with and for the first time I think I’ve found this one who works hard and shares the same vision in many places like I do.
Something fun I wrote this year was the Cliff library which has two main namespaces. One if Cliff.Highlighter that is a simple compiler that reads an Arendelle code and highlights it using HTML/CSS and then you can have highlighted code on the web like this:
// A simple code // to show how the highlighting // actually works 'Random Line Maker for screen in size of | #j |x| #i |' ( space , 0 ) [ #width , i [ @space , r ] [ #rnd * #j , pd ] // going to the next col ( space , +1 ) ] // done
But something I really like is the other namespace: Cliff.AutoFolder, AutoFolder is a full featured compiler based on the original codes of the C# compiler of Arendelle that understands Arendelle. And then it automatically changes the spaces, new lines, tabs and then it makes the code look professional and readable.
All my life I was obsessed with REPLs (read-evaluate-print-loop). The command line software where you write your code block by block and it reads, evaluates it and then throws you errors in real time. You can see how the code is working, You can test sub-compilers and my favorite: When you write code; the prompt knows when your multi-line code is finished. When I saw that I can easily write one for my own language I was feeling like a god! So I wrote one for my language, It’s a developer tool actually for myself to develop the Apple core of Swift which powers the iOS and Mac apps of Arendelle (For now both of them are under development) but the fact is the software, my own REPL exists!
So yes possibilities are so much. For example, I’ve created a font that compiles with Arendelle called Gothi, This way you can have tested in Arendelle. Gothi works very simply, It’s a database of glyphs coded with Arendelle and a very simple script that generates an Arendelle code for the text you’ve passed to it so you can have text really simply:
Something very cool Micha is just started is when I created Arendelle it was for 2D graphics but as we both knew it has everything for 3D we added and reserved 3D features for the compiler and now based on JArendelle Micha started JArendelle 3D
It’s fun and really fun to develop Arendelle. You can do so much with it. I’m working on a language called “Pabbie”. Pabbie has a source-to-source compiler that compiles it to Arendelle. The idea is to have a language very much like to English. You don’t have the full English but the syntax is English. The compiler is really basic but as soon as I finish with other stuff I will refactor it and finish it by well maybe most of it.
The most awesome fact about a language is it shares a culture, When you learn English you learn the people who speak it, You learn traditions of them, their culture, You see how their minds work when you hear the sounds of their words when you analyze their grammars. And Arendelle is my language, When I look at it, It shares many of my personalities, It is designed to share the way I think, It has many of my complexities and simplicities, The fun fact is when Micha suggests me things, They are very right to Arendelle, because we share a very likely mindset. It’s the most fun thing in the world when you create a “culture”. I’ve developed much software but none of them gave me the feel I had after Arendelle that’s how I think all my life I was born to be for this When I was 7 or 8 I created my first substitution cipher which I have it’s original version in the back of my door:
After that I created few other cyphers on my computer. This one is my favorite, The text you see is our famous loving “Hello, World!”:
And then one day that I started to write a novel which maybe someday I finish and send it to you. The story was about some astronomers who comes back to Earth and see that everything is changed and they realize they are in a parallel world. To get back to their home they start to travel into many worlds which are how the story happens and well I can’t spoil it for you! But for the people of one, this worlds I started to create a full featured language called “Nahouii”. Nahouii has a full grammar to express any possible expression. It has its own words and a rule to how to develop words, It has its own type system. And I have developed a very special design to design each glyph based on a blueprint like a grid. And result is a fully harmonic natural language with two rich bold and narrow fonts:
In the design of Nahouii’s typeface, I put so much attention on the simplicity of writing each character. Writing Nahouii is really easy when you get use to it. Also as the all the characters use one grid you can shape them as squares, as circles, as exactly whatever you like
So when I look at this timeline, Maybe creating and developing languages is what I’m born to do. That is why I’ve decided to continue my education in programming language developments. It’s the coolest topic of software development so why not!
However we’re releasing Arendelle in the two weeks and I hope you be as excited as we are. For us this big move, Big start. We already have some very awesome feedbacks like being featured in the book Create your freaking awesome programming language’s website as it’s author Marc-André Cournoyer says Arendelle is Amazing!.
The beta test people who we tried Arendelle all loved Arendelle as they could create art, their programming performance increased in a very remarkable way, Some people also loved it for its extreme simplicity and well design.
From me and Micha we wish you download Arendelle, read my book and if you loved it the way we do help us share the joy of programming to everyone!