Introdution

From Murga-Projects Wiki

Revision as of 08:42, 8 May 2008 by JohnMurga (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Why murgaLua ?

murgaLua was born from a frustration with the size and licensing of some of the development tools I have been using. I am a Java developer by trade, but for my personal projects I wanted something that was better to deploy, something that :

  • Could provide nice GUI's, Networking, Databases & XML in a much smaller runtime (about 500k).
  • Would allow me to create rich applications easily (preferably with a GUI builder)
  • Must deploy to both Linux and Windows with no changes to my code.
  • I didn't want a completely cryptic and propriety language.

Now, there are many things on the market that fulfilled most of those criteria, however, there is nothing that fulfills all of them or that comes close in terms of size.

How ?

The first step was to find a core language that was small, easy to learn, portable, and that had advanced features.

I settled on Lua (http://www.lua.org/), it is popular in the embedded and game development space and appeared to be easy to bind to.

The next step was finding bindings that where rich and small enough, I found that the Lua community had done most of that work for me :

When it came to my XML requirements I found nothing that really addressed my needs (in terms of size and speed), so I adapted some code I had seen for TinyXML and made it the foundation for my new binding, which I am still adding to right now.

GUI was the next problem, and it didn't seem easy to solve ... However, I stumbled across lua-fltk (http://lua-fltk.sourceforge.net/), and this proved to me that a tiny runtime for both Linux and Windows WAS possible with FLTK. Unfortunately the existing bindings where VERY basic and out of date and there was nothing I could use, as I wanted something that would work with new versions of FLTK and Lua and that I could improve ... So I hacked around and knocked up my own binding.

Having settled on FLTK I wondered if it may be possible to use it's basic GUI builder (FLUID) to generate my code, and much my to my surprise after less than an hour I had written a utility to convert it's generated code to my new murgaLua bindings.

My objective was complete.