1. Platform explosion.
More and more smart phones and notepads come on the market each year. iPhone 5 was released some days ago and Windows 8 and Windows Phone 8 is expected at the end of the year or early next year.
2. Why assembly?
Apple use iOS, Google Android and Microsoft Windows Phone as the operating system. The development language for Apple platforms is Objective C, C# for the windows phone and Java for the Android platform. Some (that don't know assembly well enough) claim that todays compilers produce so efficient and optimal code that assembly is not needed. But there are things that can be done in assembly that is not (easily) possible in higher level languages. Human beings can see patterns in assembly instructions of a program that a compiler may not see. Then human beings can improve efficiency and speed dramatically. On mobile platforms where every byte and clock cycle count this is important.
3. The application (app) revolution
Today, it seems that every serious company supply an app that can be downloaded and installed on your mobile device. Good programmes may get a well pay by delivering applications that are sold on Apple Store or Windows Phone marketplace. Smart phones are now so powerful computers that much of a companys infrastructure can be stored on an iPhone, Windows Phone etc.
4. The easy days of assembly on Intel processors (computers).
Personal computers and Intel processor wasrelatively easy to program in assemby. Intel delivered good manuals to their family of processors with clear listing, explanation of each instruction and good examples of how to use the assembly instruction. Today the situation is much more complex and fuzzy with so many producers and platforms. Some companies will not allow application developers access to the assembly of the processor that is used in the device. Personally, I have not seen a book or manual of the assembly instruction set of a mobile device. Does anybody know of any?
5. Closed for ever or more and more open?
It is said that it is to early to know the futere, so I end this post with the following questions:
- Will it be possible to develope applications in assembly on mobile devices?
- Is it a waste of time to learn and program in assembly generally and especially on mobile devices?
- Will openess in the sense that manuals and assembly instruction sets are delivered to the application developer pave its way or will assembly access to the prosessor be closed for ever?
Links to other articles or forum threads (in Norwegian):