Tranquil is a programming language built on top of LLVM & the Obj-C Runtime
github.com
github.com
$( command )
$() is better than `, because you can nest them (TBH, I probably haven't had a need for nesting them in the past year or so, but I remember vividly that a few times I needed it badly and would be lost if I only had `s)(Also worth a mention: xnomad is written in tranquil)
Watch your spare time for awesome compilers go down the drain when you acquire one or more of these.
Yes, I'm a Googler. No mortgage right now but rent is pretty pricey. Yes, a wife, a toddler, a baby, two dogs, and two cats. Also a one hour commute, each way.
I also have:
https://github.com/munificent/
http://finch.stuffwithstuff.com/
http://journal.stuffwithstuff.com/
You'd be surprised how much you can get done if you just throw half an hour a day at it.
Unfortunately, many of these awesome things will never have the impact that something like a web form for building permit requests might have, outside of the greatly limited tech sphere.
Never, ever, ever underestimate the role of MONEY in your career choices. Not everyone has the heady mix of extreme intelligence and bloodyminded foolhardiness it takes to keep their feet in the startup world. For the rest of us, a steady comfortable position in ERP implementation/customization or somesuch will keep your head well above water in this shite economy.
Anything that stops doing 10,000 nothings from compiling out is dirt to me... too easy to screw your performance by accident with Objective-C messaging and objects. (don't get me wrong, I enjoy their enormous power, I'd just like to only pay for it if I actually need something that dynamic - which is almost never)
Actually, I don't get all this "Messaging is slow". In the ObjFW runtime, it's just 12 instructions for x86_64. That's barely noticable. I even used ObjC in an HPC application and compared it to the C version, just for fun. There was no measurable difference in performance.
What's more important in the average application is that the foundation classes are fast. For example, C#'s and Cocoa's dictionaries are really slow (but I don't know why). While C# and Cocoa both need 1.2 sec to insert 1 Mio objects into a dictionary and retrieve them, ObjFW only needs 0.3.
Tranquil achieves good performance (when compared to other dynamic languages like ruby or python) by using tagged pointers for numbers & bypassing messages for arithmetic operators if both operands are tagged; batching allocations for objects frequently used in the fastpath, and other tricks.
If you compare it with writing straight C ..obviously it's slow. But then so is anything else.
my issue with objective-c and its runtime is the message passing implementation and the reliance on it - it is incredibly powerful, but the cost is phenomenal in the contexts i work with - and a common optimisation i find myself doing is making C++ style calls out of c functions with a 'this' as the first parameter.
there is no real need for this cost if the compiler could have more information about use and respected the "don't pay for what you don't need"
The classic case of someone criticizing a screwdriver for not being a chisel. (And then saying, "Oh, look, see how well my chisel chisels?")