Welcome to the developer guide for mulle-objc. This guide will enable you to get up and running quickly with Objective-C on the platform of your choice.
Why Objective-C ?
If you are comfortable writing in C, you will notice that C is fine until you reach a certain level of complexity. If you don’t want to spend your lifetime in C++ bureaucracy, Objective-C is the answer:
- Easy to learn
- No magic
- A dynamic messenger
- A powerful class-system
This guide doesn’t have detailed installation instructions for mulle-objc. Read the instructions on foundation-developer and follow them.
Afterwards you should have mulle-clang and mulle-sde in your PATH.
mulle-clang --version mulle-sde --version
Objective-C is an Object Oriented Programming Language. With that comes the expectation of a plug-n-play programming environment. It should be possible to add and remove functionality, without breaking the application. This expectation has been historically never fulfilled, due to deficiencies with the compilation tools, the Objective-C runtime and the way headers are handled.
The modern workflow provides such a plug-n-play environment and it is necessary to wield the full power of mulle-objc.
If you are a seasoned Objective-C programmer, who would like to try porting some of his existing code to mulle-objc, then start with the legacy workflow.
mulle-objc is permissively - BSD3 - licensed and free of cost, meaning you can use it anywhere you like and wish.
mulle-objc is C, so anywhere C runs Objective-C should run too. But that’s not entirely true. mulle-objc is not suitable for tiny CPUs. When you build the Foundation library as a shared library you end up with 2.5MB (mulle-objc 0.5MB). So any system with less than 4MB RAM, will likely not cut it. The CPU needs to be 32 bit wide at least to use mulle-objc selectors efficiently.