I have programmed extensively in Amibroker, Ninja (NT7), MetaTrader 4 and Metastock.
Programmability in Metastock is a "Joke", although I have to admit that I've seen many individuals achieving amazing feats with it, particularly its Expert Advisor. Overall, it gets very slow very fast and follows severely amputated programming paradigm as compared to any other software.
NT7 and MT4 are pretty easy to navigate for those who come from a programming background. What I mean is that they adhere to programming paradigms and philosophy a little more rigidly. In both of these, the programmer has 100% control over where how an Indicator will be rendered on the screen. Both require a compilation step. Both seem to be reasonably comprehensive but MT4 is definitely a notch better than NT7.
In contrast of these two, Amibroker (ver 5.3 onwards) steers clear of their limitation in a very unique way thereby creating an excellent
platform for newbie as well as experienced.
What typically consumes 250 lines in Ninja and 200 lines in MT4 can be accomplished in 15 lines in Amibroker; Of course, you do need some skill in figuring out the precise contents of those 15 lines ...
Of course, those with programming background can grasp things faster but Amibroker does accomodate newbies and allows them to experiment.
In short, Amibroker is excellent for experienced while offering sufficiently relaxed environ for clueless folks. If you plan to algo trade, both NT and MT4 are slightly ahead of the curve w.r.t Amibroker, but this may change in next release.
About the only feature of Amibroker that annoys me is it enjoys making several copies of the source code that gets activated if you ever save and close a "chart" and analysis templates. If you mistakenly close the chart and analysis template, but subsequently edit the master copy of source AFL and then reopen the chart, Amibroker will disregard the more recent master copy and instead it will stubbornly hold onto the outdated version (often without explicit warning). Help document does provide a reasonable explanation as to why this feature is necessary, but it is still a minor annoyance.
P.S: I have no marketing objective for providing feedback on any of the software and I do not represent any of these companies.