What is Luban?
Luban is a component oriented scripting language. Luban is free and open source. Luban is named
after a legendary ancient Chinese civil engineer and carpenter two thousand year ago whose
constructions are still in use today.

Why Luban?
The programming language spectrum seems crowded. Do we have all the tools we need? The author
of Luban likes the scripting languages in general because of their usability. Though he always feels the
pain for the lack of suitable component model for scripting. And he personally considers object oriented
scripting is too complicated for scripting purpose and will never compete with C++/Java. He eventually
created Luban, a scripting language with a robust component model tailored for scripting purpose.
Luban is an easy scripting language that is as clean and manageable as Java.

What Exactly Is Luban Component?
There have been numerous discussions about software component without clear definition. Luban's
definition of component is property based object that is similar to Java Bean. User interacts with
component by reading and writing property values, and computation could be triggered by the
interactions. The idea is that scripting language needs a different component model other than
conventional class hierarchy to fit its scripting environment. A complete mechanism is built in Luban to
define, save and categorize components, which is a fundamental feature of Luban.

Any Bells and Whistles?
Here is a brief list of some interesting features of Luban language:

NEW!  Luban Java Bridge to load and use arbitrary Java classes
                                  Luban Java Bridge screen shot

- Component can be a process or a composition        - Unified interfaces for all components
- All components reside in a name space hierarchy    - Component interface inheritance
- Dynamic type checking mechanism                              - Built-in common container types
- Built-in multi-threading mechanism                               - Exception free error handling                                     
Reflection                                                                             -Component can be asynchronized                            
Serialize/De-serialize any object                                    
Persist/Restore any object through file and network   - Import new data type from C++

Ready To Say "Hello, World!" ?
If you are still interested up to this point, you may want to go ahead and write your classic "Hello, World"
masterpiece in Luban. To get started, you can
download the source code and build Luban package on
your computer or install the
binary package on your Windows PC if you prefer. You can also check out
more details of Luban language in
The Luban Programming Language document. And remember
telling your friends about it if you enjoy using Luban!

Luban: The Component Oriented
Scripting Language