<story><title>OS X app in plain C</title><url>https://github.com/jimon/osx_app_in_plain_c</url></story><parent_chain><item><author>justsaysmthng</author><text>Don&amp;#x27;t do this at home. 
It looks so ugly because it&amp;#x27;s dangerous and vice-versa.&lt;p&gt;If you really want to write (and read) code like this:&lt;p&gt;id titleString = ((id (&lt;i&gt;)(id, SEL, const char&lt;/i&gt;))objc_msgSend)((id)objc_getClass(&amp;quot;NSString&amp;quot;), 	sel_registerName(&amp;quot;stringWithUTF8String:&amp;quot;), &amp;quot;sup from C&amp;quot;);&lt;p&gt;((void (*)(id, SEL, id))objc_msgSend)(window, sel_registerName(&amp;quot;setTitle:&amp;quot;), titleString);&lt;p&gt;instead of this&lt;p&gt;[window setTitle:@&amp;quot;sup&amp;quot;];&lt;p&gt;then I guess it would be easier to write a Objective-C to C converter (if there isn&amp;#x27;t one already) and convert your Objective-C app into C for added coolness. 
I</text></item></parent_chain><comment><author>dmytroi</author><text>One practical example would be tigr [1] - a cross platform window framework for making simple applications, could be compiled as one header drop-in only lib. You simply cannot make it one header without making calling ObjC runtime from C. Why it&amp;#x27;s necessary to make it work as one drop-in header? Well it&amp;#x27;s a new trend in C libraries, which allows using libraries with the least resistance possible, it&amp;#x27;s like a package manager but nicer - you only have one file! Great example of modern one header libs is probably the famous stb package [2].&lt;p&gt;- [1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;bitbucket.org&amp;#x2F;rmitton&amp;#x2F;tigr&amp;#x2F;src&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;bitbucket.org&amp;#x2F;rmitton&amp;#x2F;tigr&amp;#x2F;src&lt;/a&gt;&lt;p&gt;- [2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nothings&amp;#x2F;stb&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;nothings&amp;#x2F;stb&lt;/a&gt;</text></comment>
<story><title>OS X app in plain C</title><url>https://github.com/jimon/osx_app_in_plain_c</url></story><parent_chain><item><author>justsaysmthng</author><text>Don&amp;#x27;t do this at home. 
It looks so ugly because it&amp;#x27;s dangerous and vice-versa.&lt;p&gt;If you really want to write (and read) code like this:&lt;p&gt;id titleString = ((id (&lt;i&gt;)(id, SEL, const char&lt;/i&gt;))objc_msgSend)((id)objc_getClass(&amp;quot;NSString&amp;quot;), 	sel_registerName(&amp;quot;stringWithUTF8String:&amp;quot;), &amp;quot;sup from C&amp;quot;);&lt;p&gt;((void (*)(id, SEL, id))objc_msgSend)(window, sel_registerName(&amp;quot;setTitle:&amp;quot;), titleString);&lt;p&gt;instead of this&lt;p&gt;[window setTitle:@&amp;quot;sup&amp;quot;];&lt;p&gt;then I guess it would be easier to write a Objective-C to C converter (if there isn&amp;#x27;t one already) and convert your Objective-C app into C for added coolness. 
I</text></item></parent_chain><comment><author>deanCommie</author><text>Seriously, I don&amp;#x27;t know who&amp;#x27;s downvoting you. This needs a huge &amp;quot;for academic purposes only disclaimer&amp;quot;. Higher level abstractions exist for a reason.</text></comment>