‏إظهار الرسائل ذات التسميات open-source. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات open-source. إظهار كافة الرسائل

السبت، 29 أكتوبر 2011

Kalimat-related open source project ideas


Do you like open source and want to create your own project? Do you like Kalimat? Do you want to contribute something to the future of programming in the Arab world?

Here are some new projects that I would love to see for the Kalimat programming language, and which can be done independently of the main Kalimat package of you want to 'own' your project:

Kalimat for .Net

If you write a .Net implementation for SmallVM (the virtual machine of Kalimat & Kick) then the rest would be easy: Just recreate the compiler that translates from Kalimat to SmallVM, or even use the original compiler.

Why Kalimat for .net? It would make Kalimat both usable as an educational language and a professional one; opening the door for libraries that wrap ASP.net, ADO.net, ...etc into an Arabised API and make it available for Arab programmers; kids and adults alike.

Automatic code documentation

The CoffeeScript language has a tool called Docco, that takes commented source code and generates documentation that puts the code and the explanation side by side like this

I really want a tool that works the same way; it would make it so much easier for educators to write Kalimat tutorials with heavy source code and notes, which is why the language was created in the first place!

Kalimat environment on the web

This would make trying the language much easier without needing to download anything and make Linux users happier (since currently Kalimat for Linux has an Ubuntu-only ready made package and other Linux users have to compile from source).

Again, the secret is in SmallVM: If you write it using JavaScript and implement the run-time library (Graphics, Sprites, ...etc) with HTML5 then the IDE itself would probably not be too hard.

More platforms

In addition to .Net, Kalimat could be ported to other platforms. If done right we could have some sort of a "Kalimat everywhere" ecosystem:
  • SmallVM could be translated to, or interpreted by, ActionScript bytecode (ABC) to enable running Kalimat programs as Flash applications (suggested by Issam Elbaytam in the comments)
  • Could similarly be translated to Java, to use the Java platform or to create Android programs
  • Or perhaps translated to Objective-C, to create iOS applications ;)

الأحد، 31 أكتوبر 2010

Two new open source projects: QPeg and LogoArabic

I've been coding for a while!

During and after the previous Eid, I created two new projects:

LogoArabic

The first is LogoArabic: An interpreter for an Arabized version of the well-known LOGO programming language, as a part of my project for teaching children programming. I was reading an old childhood book called "تعلم مع صخر لوغو", and wished there was a way to run the book's examples for new-generation kids. Now there's a way! (almost...my syntax is similar but not identical to the Sakhr Logo syntax. But the differences are small).

The code is available now on Google code: http://code.google.com/p/logoarabic/

QPeg

The second project is QPeg: a parser generator for PEG grammars...I'll explain:

You give it a grammar (a way to describe language syntax) and it will produce C++ or Java code, this produced code in turn will try to parse (or recognize) its input according to the grammar.

To learn more about PEG grammars you can visit here.

Again, the source for this project is on Google code: http://code.google.com/p/qpeg/

Want to participate?

Both projects are still in their starting phases, so there might be a chance for external contributors to join early before the projects get more complex!

Both are written in C++ and use the QT library (and are worked on with QT Creator instead of Visual C++). If people are interested I could post documentation and design documents on the project's web site. Perhaps I could also meet interested participants or have a "dissect-a-project" session (remember "dissect-a-project" from my post about the new ACM?).

If you don't want to participate, I hope you still enjoy the projects :)