Hacker News new | ask | show | jobs
by zokier 6067 days ago
I, for one, think that Assembly is just beautiful in its simplicity.
1 comments

Having read and written assembly on a daily basis for years, I have to disagree entirely. The only simple thing about assembly is that it happens to map to machine code directly, but macros and quasi-instructions even make that iffy. There are so many idiosyncrasies in every ISA, so many ways in which the code you write has side effects. Assembly isn't just complex in practice, it's complex in concept.

If you want simplicity, you look at lisps; homoiconicity is perhaps the most elegant, simple concept known in computing. It may be more complex in practice (many more layers above the bare metal), but in concept it's simply beautiful.

Try ARM. x86 assembly is ugly and wart ridden. ARM is like a breath of fresh air. Unbelievably well designed.
And amusingly it's possible to write some significant desktop software, just in ARM assembler.

http://www.cconcepts.co.uk/products/publish.htm http://www.cconcepts.co.uk/products/artworks.htm

Although I wouldn't recommend choosing assembler for a destkop app, but it made sense when they were written. And I still think Impression beats many a word processor and DTP package available today, and it ran in 2MB of memory with no hard disc.

I learned ARM while working on iPhone reversing, and it's certainly nicer, but there are still a ton of considerations. It's much nicer to write, but when reversing it you have to handle so many edge cases it's not even funny. Writing a decompiler for it really drives that home.
Testify!

15 years ago, I did Intel-style assembly--and loved it even with all its clumsiness. But I just dove into ARM a few weeks ago, and am loving it even more. Such sweet pleasure to code so close to such a beautiful and simple machine!

Stack-based machines are even simpler. Too bad Forth didn't took of.