Intents are an open messaging system. The fact that they use java package names shows you they're meant to be user-extensible and infinite.
Compare this to the bit-packing retardedness that is the Win32 message crackers[1]. Commercial software companies used it just like intents, and whenever you licensed "components" you got a print-out of all the magic constants the developers thought were available.
Dammit, Java IS a better language than either C and C++ for application development.
What do you mean fewer features? Intents are how everything is done. Android is basically four major components: Activities, Intents, ContentProviders and Services (Views are not really a components, just a nice hack which uses reflection & XML to make the GUI DOM-like .. but without having the foresight to allow for DOM-like manipulation -- why can't I configure layouts & content with xpath-like selectors?)
Android has the cleanest architecture of any visual environment out there, bar none. D-Bus is far lower level than Intents (you can't send a D-Bus message to fire up the default "camera" application to take a picture, then fire up another message to the default "email" application sending the picture you just took as an attachment.)
Java libraries ARE better than anything on win32. They're equally verbose, but java has better tooling, and it wears toddler gloves, so it doesn't scratch itself and doesn't gouge your eyes out while you feed it.
Can you explain what you mean about 'cleanest architecture'? Having written a content provider, service, activity, and of course used intents in the past few weeks (and for months before), I would not really identify Android as "clean".
Compare it to any major API and tell me what you think. there are just about 4-5 platforms of the same calibre, and none come close. They thought it out well, and whatever other platform got you spoiled, I can tell you it's not win32, .net, mac, symbian, java2 anything, XNA, or anything on X. Enjoy the sub-single digit market share! ;-)
(you can't send a D-Bus message to fire up the default "camera" application to take a picture, then fire up another message to the default "email" application sending the picture you just took as an attachment.)
Sure you can. Or at least you could, if you defined a well-known bus name and interface for the camera app and email app. DBus supports auto-activation, so it'll take care of starting the apps that register themselves as providing those bus names. That's all more or less what you have to do with intents, even.
Compare this to the bit-packing retardedness that is the Win32 message crackers[1]. Commercial software companies used it just like intents, and whenever you licensed "components" you got a print-out of all the magic constants the developers thought were available.
Dammit, Java IS a better language than either C and C++ for application development.
--
[1] Remember Me? MagicProc(HWND hwnd,WORD msg,WPARAM wParam, LPARAM lParam);