Android: Download Eclipse (Windows, Linux or Mac) and the Android SDK (Windows, Linux or Mac) - no accounts or registration needed for either of these. In your phone menus enable development and connect via USB. In Eclipse make your hello world project, and hit Run or Debug. Enjoy.
Apple: You must buy a Mac. In the App Store (requires an account) or the developer site (requires an account and registration) download Xcode. Create your project. Connect the phone via USB. Right click to enable it for development and then do some song and dance with Apple to get permission to use "your" device for development. (I haven't yet worked out the exact dance required and how much it costs.)
I don't know what it looks like for WP7 but assume it is substantially similar to Apple.
- Download the SDK (free), which includes Visual Studio (For Windows Phone) Express IDE. It also includes an emulator tool. http://create.msdn.com/en-us/home/getting_started
Obviously only runs on Windows.
- To deploy to your phone, you'll need to become an app hub member ($99 per year). Or there's numerous ways to unlock your phone for app deployment (if you search hard enough). And then you can just deploy from within Visual Studio to a USB connected device.
There's probably more to it, but I personally have yet to deploy a WP7 app to a device. I've written a few test apps though.
Also, found this blog (first in a series of a few) that attempts to develop an app using Visual Studio (for WP7 dev), Mono Touch (for iOS dev) and Mono Droid (for uh, Android dev)... Might be of interested to some: http://nicksnettravels.builttoroam.com/post/2011/04/04/Windo...
And the rest of his articles are easier to get to via the archives - http://nicksnettravels.builttoroam.com/archive.aspx#Mobile
What I was more impressed with, they handle signing your xap for release as well; it's all automatic (slightly less so on Android, much less so on iOS).
Hopefully my original post inspires someone to try this with all the platforms. I'm particularly aware of the requirements to create accounts and registrations, the size of downloads, how limited your choice of host environments is etc.
The next fun step is how do you get your hello world onto a friend's device without using a cable or requiring them to be in your presence.
I have to pay to load applications I wrote myself on my own device?
This is even more ridiculous than just locking down the platform. This is
a slap in the face. Good thing WP7 is failing to reach the mass market so far.
I seriously hope it stays that way.
It's even worse like this. What they are doing is essentially making an undesirable
situtation, then capitializing on that by offering you a slightly less shitty
solution (which is still far from reasonable):
"Hey, you could buy a $100/y dev account, but we're so incredibly generous
that we'll allow you to run a few programs at a premium of $10!"
They are charging for something that should be one of the most essential
freedoms of a computing device. This is insane, no matter how you try
to sugar-coat and excuse it.
Will we reach the point where smartphone (or smartphone like devices in the future) are considered computers and we can use them freely? I hope so. It might happen. It might not. What we can count on is there will always be the choice on the market for those who require that choice. Not everyone does. I have a Windows Phone. I've never been bothered by not being able to install my own software. I also have an HP Touchpad with Android and WebOS, the two freest OSes on the market right now. Never sideloaded. I don't need to.
My point? Your outrage is misplaced, for several reasons listed above. People often talk about consumer choice, but the rubber meets the road when consumers willingly make an informed decision (in my case) that the crowd doesn't understand. I bought a Palm Pre not because of the freedom, but because of the UX. I bought a Windows Phone for the same reason. Sometimes a smartphone is just a smartphone. You might not understand my choice, but I do and that's what counts in the end.
Citing examples like feature phones and gaming consoles isn't helpful, either.
Just because nobody complained in the past doesn't make it okay. Also,
as the quite active homebrew scene around most consoles proves, there
is value in being able to run your own stuff on gaming consoles. You might
remember the deep shit that Sony got themselves into when they decided to
turn off OtherOS on the PS3 for no reason whatsoever.
Anyways, I think consoles - while owning quite a few myself - are a thing
of the past. They're eventually going to die. The coming next generation might be
the last we see.
(Well, except Windows making installing VS and the Zune software almost impossible, but that's just what happens with Windows. On a clean install. After installing all the updates it wanted. Of which half failed the first time. And rebooting. And rebooting again. But none of that is related to Windows Phone, except that as Apple doesn't make tools for their competitors OSes, Microsoft doesn't either.)
How I become a team (of one) admin, or where to find this "iOS Provisioning Portal" are of course left out.
I can understand the hoops if you want to sell your app on the official Apple store, but I think it would be very reasonable to allow devs to create and sideload apps. It's your device, your risk. That seems like a post-Jobs compromise that everyone could live with.
Even installing Xcode was a nightmare for me. It was a brand new Mac so there were a whole bunch of system updates. I told it to go ahead and do those. In App Store I found Xcode and said to install that. You don't get any indication of progress at all. A while later I came back to the machine to discover it wants to reboot, so I let it.
Can't find Xcode anywhere so I look back in the App Store. There is an install button but clicking it has no effect. My best guess is that it never occurred to anyone at Apple that a 1.8GB download could be interrupted by a reboot (from Apple's own system update tool) and that being able to continue would be useful. I had to do lots of Googling before figuring out I wasn't the only one and I could do a manual Xcode download from Apple's developer site. Then it took a lot of faffing around to figure out /Developer versus /Applications and how things were looking for it. I'm still not sure it is right, why I have to create symlinks but at least everything works.
For me the single most amusing thing about Macs and the legendary attention to detail is how the first thing I did was use Finder to go into Applications. Despite being on a 1920x1200 screen the default Finder window size is smaller than the Applications view so there were both horizontal and vertical scrollbars to look around the contents. Why can't the icons auto-arrange based on window width? If using a fixed area, why default to a window size smaller than the fixed area? Why default to postage stamp sized window on such a large screen?
Never in my wildest dreams would I've guessed that the actual programming would be the easiest part.
Remember your first iPod?
Chances are you were forced to use something called iTunes. Now people do not think twice about iTunes.
But back then there was just no sensible reason, from the user's perspective, not to let a user add/remove music from an iPod without jumping through an additional hoop. People had to spend countless hours deciphering the protocol in order to build programs that could do what iTunes did: add/remove music.
Out of the box, the iPod was literally unusable without first installing some Apple software.
No matter how wonderful the design of an Apple device, the hoop jumping just becomes increasingly tiresome. I'm too tired to do the Apple dance.
Adding to that, when iTunes came out, most people didn't put any thought into ID3 tags. When they imported their music, their library became one big mess.
So much for ease of use for end users.
The thing was iTunes wasn't designed to be a music loader, it's a music manager. This became evident when they introduced smart playlists.
A few of my friends had Nomads, they were large, heavy and the UI was archaic in comparison.
This is back when you had to figure out which Mp3 encoder you wanted to use.
Why can't the iPod work without iTunes? (It can, but only with a lot of work.)
Oh and anything that involves the file system is not friendly for a surprisingly huge number of users.
"User friendliness" in this case also includes developers, who could easily write a
program that interacts with the device. For example, any media player could be used
to synchronize music (if it supports that feature).
On the device, tap the menu button, then tap "Xterm"
Type in 'nano helloworld.py'
Enter the text 'print "Hello, World!"'
Ctrl-x, ctrl-s to save the file
Enter 'python helloworld.py' and press enter
Despite a modest launch and a limited distribution in terms of markets, Nokia's N9 model has reached sales estimated between 1.5 and 2 million devices. According to Nokia's own quarterly report and analyst company Canalys analyses, the combined deliveries of the comparable Lumia devices summed to approximately 1.2-1.5 million in the last quarter.
Oh, and they switched to rpms from debs, I think. I can see how that would make you think they were unrelated:)
They had a 'dev only' successor to it, the n950 but I think the chances of nokia releasing another is slim at best.
Download AIDE from play market
Enable apps from untrusted sources
Run your app!
Installing xcode is staggeringly more pleasant
than installing eclipse in my experience
1) install Java, which on my Ubuntu is just "sudo aptitude install openjdk-6-jdk" and that's it
2) download an archive from Eclipse.org and unzip it somewhere
3) there is no step 3
Installing the Android plugin is equally easy. Then there's always IntelliJ IDEA which is probably the best IDE and comes with Android integration built in. The community version was recently open-sourced too.
Last time I checked, Java SDK or Eclipse didn't want my A/S/L.
But if you already are a mac user then you already have an Apple ID. It is absurd to say that you need it to download Xcode.
Or do you mean it's a pain setting up the Android SDK within Eclipse? This could certainly be more stream lined (though I think it's fairly simple to setup as well).
The Apple dance takes a couple minutes to do and costs $99/year.
"Downloading the Android SDK" is actually a dozen
steps of installs, updates, add-ons, setting up
emulator devices and so on.
The Apple dance takes a couple minutes to
do and costs $99/year.
These are the Android SDK instructions, and each step can point to multiple others: http://developer.android.com/sdk/installing.html
As for the Apple dance, can you point me to the URL or actual documentation I can follow to get all the certificates, admin and whatever else it wants? All I can find is doc saying I need to do it, but nothing saying how to do it!
The provisioning portal is supposedly at http://developer.apple.com/ios/manage/overview/index.action but it won't let you in until you hand over money for annual membership.
Still pretty lame to still be faxing payment info in 2012.
You either got lucky or did the Apple dance a lot more recently than some of us. When I did the Apple dance, I had to wait more than a month before my application to be a developer was "approved", then it took weeks to figure out how to get the certificate stuff working. Even after I got it working it was fragile - my ability to put an app on the phone was never something I could expect would just work - it would spontaneously break with a cryptic error for no apparent reason.
Apple have it right once you have installed xcode. And if you only want to run in the simulator, you do not need to worry about certs.
They both could improve, but are also light years ahead of BB.
It involves downloading one archive, unpacking it, running the SDK manager, checking checkboxes for target platforms you want to develop for and waiting for a couple of minutes, until it downloads. You can also set-up emulator devices for the different platforms.
That's quite a short of complications you speak of.
Don't even get me started on emulators. AVD Manager is a joke.
10 PRINT "HELLO WORLD"
They might sell a few more Mac desktops this way but I can't see it being a large number in the grand scheme of things.
One of the reasons I bought an Android instead of an iPhone was because I can develop for it using the computer I already have.
For Apple to support development on other platforms, as far as I can see the only practical option would be to provide an alternative to the simulator which runs a variant of iOS inside a virtual machine. While this is certainly technically feasible to do, and you could make the argument that they should provide such a tool, it does involve a lot more than simply porting a few user-space tools to run on a different OS. Android also benefits in this regard from using Java, which already has compilers available for all major platforms.
It is also worth nothing that the Android emulator, at least last time I checked, is extremely slow to the point of being unusable. When I was developing for Android I found the only realistic option was for me to test on a real device. The speed of the iOS simulator is one of the main things I prefer about iOS development in comparison to Android.
I think it would be a moderately difficult engineering task, but certainly not outside Apple's capabilities. Ultimately it's a question of whether or not Apple sees benefits in doing so, which I suspect they don't.
It's also interesting to note that back in the dying days of NeXT, when they realised they weren't going to make much money from hardware, they switched to a software-only approach and actually did a port of all the Cocoa frameworks to Windows NT, and you could write Cocoa applications and have them run on windows. So it's not impossible to do this, but given the amount of changes that have happened to the APIs since that time it would probably be easier to go down the VM route.
Even if it cost them a fair amount of money to port it all over, they're Apple so they have the money in the bank. Plus I can imagine the ROI would be fairly significant when you consider how many more people could get into casual iOS development and then potentially make it into a full time thing.
Xcode and the entire stack behind it do not run on Windows or Linux. It would take a team of engineers months to pull it off, then another team to continuously support it. In those months, the feature set of Xcode and the compilers will have improved again and there would never be a stable version for a different platform.
Porting Xcode to Windows or Linux would probably be the worst idea Apple ever made.
Whilst I'm sure it's not a trivial task something tells me that there is more to this than technical limitations.
Apple doesn't need to port their software to Windows or Linux at all but simply allow to use OSX in an emulator. Even this is forbidden by Apple (it's not a surprise).
I think it was a huge mistake of Apple to allow iOS development on Macs only. If they hadn' make this mistake almost all people would develop for iOS mobile devices now, and Android wouldn't have had any chance to win. In some sense Steve Jobs himself was the main reason that Android became so successful :-)
> In addition, the cost of a Mac for development ($599 for a mini) is not stopping anybody,
It has stopped me. I have a pretty good PC, and I never accepted that I would have to buy an additional Mac solely to fed my iphone. It's a waste of room and money. For that reason I use Android.
Personally I have a pretty close and loving relationship with my workstation. That's why it needs to be a laptop.
I can't stand being tied to a physical location and working through remote desktop is too painful to bother, feasible if something is burning, but not otherwise.
People have written Apps to help you work around how difficult it is (eg TestFlight), but even then your beta testers have to download & sign up for some random 3rd party app, then request your app just to be able to test it. Compare that to Android: enable 3rd party apps via the settings menu, then email them the app.
There's instructions on how to do this at: http://nachbaur.com/blog/building-ios-apps-for-over-the-air-...
Although it saves you from having to email large files, you do still need to collect your users' UDIDs and add them to your provisioning profile (embedded in the app).
It has been a while for me but from what I can recall you are ready to go once you download the blackberry IDE. There may be an eclipse plugin for that now so you don't have to download the whole monster.
This whole process is part of RIM's DNA. A year ago when they were doing the whole Playbook thing it repeated: http://blog.jamiemurai.com/2011/02/you-win-rim/
Quite frankly I know many former Blackberry users but I don't know a single current one. I have no idea why anyone would even consider the platform.
Eclipse and Java work on all 5 computers. XCode works on only one. And because that OS X machine is a desktop, I barely ever use it, which is why I bought an Android instead of an iPhone.
However, at least I could make it run on all 5, by means of VMWare. That's not an option I have with XCode.
I've only done some simple hello world type programs, but I was impressed.
At the same time that lovely naivete about what would happen is exactly why this will never fly.
Apple is the golden goose and nobody will sign off on a risky move that might kill the goose or stop it from laying those golden eggs. If there is one thing that makes CEO's conservative it is very large streams of income. You can take risks when you're small.
If 'the Woz' wants to have a more open platform comparable with Apple then I'm pretty sure he'd find tons of people willing to follow him if he decided to go down that road himself. What will happen is that sooner or later he'll need a business guy to take care of all of those non-technical details and at some point in time after that we'd have a new Apple, just as bad as the old.
Apple has been faithful to its principles since Jobs returned - to offer a few products, not to compete in features and to provide a seamless experience. It's successful because its clients like it that way.
I don't think Woz has as many fans as Jobs had, but I still suspect the "tablet ][" is yet to be invented.
On the other hand, they can learn from others. Android/Google is catching on Apple due in part to a mostly open platform.
Q: is that human nature or indoctrination of democracy at play ...
Apple's biggest strength to me is timing and execution. They didn't invent the tablet, but they made it better and at a time when more people were ready for it.
I think the time is coming that being more open will be an advantage. Right now controlling your entire experience (to me) produces better products. I think Apple will patiently wait for the time and likely execute it correctly.
Kind of the similar to what happened with their implementation of the mouse and the MP3 player, they didn't invent these things, but they improved upon them or made them more accessible to consumers at the right time. But I am really keen to see if Apple can continue this pattern without Jobs at the helm.
Should Apple relax restrictions on the app store, sure. However then quality may dip or so users are told.
Should Apple open source more technologies, sure. However it comes with a cost, such as documentation efforts and etc.
Both of these problems are in the critical path of timing & execution. So I highly doubt Apple will do anything.
The Woz has always pushed for an open Apple, and damnit I wish he had it, but I doubt it from happening.
I don't think they could make the existing product lines more open, but they could explore the idea of a developer version of the iPad. Sure someone would find a way to download music or copying installed software without paying, but I don't think that would be even measurable.
I'd love if it came in beige, with a rainbow logo ;-)
comes with the territory . if you the one and in bed with CIA who's to say open up ...
Microsoft got docked for just bundling IE with their OS. I just installed Netscape back in the day(before switching to IE coz Netscape started sucking). Apple bans all competing browsers. (Windows RT is a different story).
The iOS app store forces developers to use their in-app purchasing with a 30% cut for Apple and bans any links to the developer websites to sell services. The Windows App Store does not require this.
1) plenty of non apple browsers in app store, try searching. No HTML rendering engines because that's a security issue.
1a) Microsoft did a heck of a lot more than bundle IE. They made it impossible to remove or avoid or even hide. (you can hide Safari on the tenth home screen in iOS -- IE was locked onto your desktop). They also did similar things to screw around with Java, QuickTime. Borland, Paradox, etc. etc. all of which is on the public record. And all while owning 95% of the desktop market and even more of the app market.
Apple simply has some fairly clear up front rules about how to play on its minority platform.
You. Have. No. Idea.
2) iOS was incredibly open compared with predecessors. It's less open than WebOS was and Android is precisely because they came after and used "open" to try to compete.
Again, people coming after iOS and trying to set competitive terms to attract developers are meaningless. Where are the guyS who were nicer than Apple when they were in top position? Amazon pays much less to writers than Apple, is the dominant player, and cries to the government.
It's not a security issue; there are plenty of apps that download and render content, just not HTML content. You're not allowed to publish browsers on iOS because it's a business model issue. Browsers download and run code. Apple likes being the only one who can decide what code runs on an iPhone, so Safari is the only rendering engine.
Minority platform? They're outselling all smartphones combined on AT&T and Sprint, and running neck and neck with all Android phones combined on Verizon. They hold 85-90% of app store revenue. The fairly clear rules are "you cannot do anything with your phone that we do not approve of, and we do not approve of anything that potentially interferes with our business model." This should not make you a happy customer.
iOS was incredibly open compared with predecessors.
It was incredibly open compared with J2ME and BlackBerry. It was and is incredibly closed compared with other computers. The iPhone isn't a big deal because it's a better phone; it's a big deal because it's the first usable pocket computer. Why should it be a deliberately crippled one?
Now here's why this is important: Apple is making amazing pocket computers, and teaching people that it's cool for a computer vendor to lock down what software people get to run -- to pay engineers to actively try to prevent people from running unapproved software. It's dominating the cell phone market, and making monopoly plays to lock down its position. It's trotting out a line of bogus claims about why we can't opt out of the walled garden (it's a security issue!), when there are millions of computers with un-locked-down access to cell modems that somehow don't pose a security threat.
I've owned nothing but Macs my whole life; I doubt I'll stop any time soon. But I'm not going to high-five them for taking my money and using it to make my phone less useful, while promoting the idea that computers are too dangerous to let just anyone write software for. Screw that.
As for the iPhone being crippled — it's the only significant computer platform with no malware in the wild. And it's not for lack of interest - jail broken iPhones are not free of malware. It's a tradeoff that some customers choose to make. It's also a trade off apple thought made sense for a device we carry around, communicate with, which can track our movements, and so on.
Personally, I think the security model apple is pursuing on Mac OS X is better than that for iOS (an opt in walled garden which is what I think you want). Maybe they'll converge. But I don't think there's any evidence (so far) of insidious intent behind Apple's moves. They're figuring this stuff out as they go along, and they're being careful. One thing is pretty certain -- they can't put the genie back in the bottle, so as they ease up on security and other restrictios they need to figure out what works and what doesn't.
Not true. The first two releases of Series 60 were wide open, you could develop whatever you wanted. The third one required certificate signing, so it was as much "open" as iOS.
Windows Mobile had optional signing. In effect, it was wide open for development too.
That was all several years before iOS.
IBM is the new DEC.
Microsoft is the new IBM.
Apple is the new Microsoft.
Linux is the new... err ahh...
BSD is the new.. err umm...
Screw opening corporations. Break the cycle entirely I say.
Now, more seriously, such cycles do exist and we can observe them easily. History repeats imperfectly in subtly different ways. If Apple is to be the new Microsoft, it won't be exactly like it just as Microsoft is not exactly the new IBM - both have learned from their predecessors. Will they make mistakes that doom themselves? Eventually yes, but they won't be the same mistakes that doomed their predecessors.
But what "Open Apple" implies, are things like an "Open" specification for the Dock Connector. And "Open" specifications that invite vendors to write their own device drivers to handle those accessories.
And that's an invitation for third parties to sell crap accessories with buggy or broken drivers and generally annoy the hell out of users who are currently paying Apple a premium to not be annoyed.
Similarly with services. "Open" the specification, allow the world in, and you get crap and esoteric support problems.
Again: things that people pay Apple a premium to not suffer.
And none of this is to say Apple is perfect, or their way is better. They make their mistakes, but they believe they're the right people to fix them. And they naturally support fewer devices, fewer services and fewer use cases. So it's far from appropriate for everybody. But it's damn sure appropriate for Apple's customers.
Woz's statement reads like a musing from someone who doesn't understand why the best of intentions don't always become the best of manifestations.
If you Open Apple, they'll get new, different customers. And lose all the old ones.
Would the devices be as compact and look good if they had a bunch of removable slots in the back? No.. no they wouldn't.
The thing that differentiates Apple from everyone else is that they make simple, classy products which are easy to use. If Apple open up they move into competition with the likes of Dell. This is something they simply don't need to do.
I recently switched back to Windows and the difference! My Windows computer came with a list of dos and don'ts. If I want to keep my warrenty intact I need to keep the box. I shouldn't smoke around it. I should do a yearly inspection to check for dust build ups! With a Mac you plonk it on the table, attach your mouse and keyboard and off you go. I was messing around with cables for ages with my Windows computer.
Look at Apple now. Jobs was right, Woz was wrong. Would it be nice if Apple products were more open? HELL YES! Should Apple do it? No... because then they loose a big chunk of what makes Apple, Apple.
This is the philosophy of Steve Jobs, he even said he did not want to go through surgery first because he did not wanted to be "opened".
This is really interesting, in fact, these points are the ones I found the most interesting in all the media frenzy we got after his death.
In other words, you can buy the great Apple form factor and design, but you don't have to deal with the restrictions of the OS. You could install your own OS.
Obviously this would initially only target hackers. NetBSD can run on some Apple hardware. And there is all the Hackintosh work to build on. Eventually there would be more free OS offerings to install after giving the hacker community some time to adjust to the newfound freedom.
Apple could even sell OSX and iOS separately.
There is a lot of value just in the Apple hardware. Even without the Apple OS offerings. Apple is primarily a hardware company.
*There are some real security benefits from keeping the OS on read-only media.
2. Make the AppStore open and censorship-free and half of the apps will not be able to launch.
3. You need to get rid of script kiddies and lovers of fun and former middle-tier managers and game magazine review writers etc etc to have something that is close to a quality thing. Behold: native development and steep learning curve.
So, keep talking.
one man TOG : http://en.wikipedia.org/wiki/Bruce_Tognazzini
another : http://en.wikipedia.org/wiki/Donald_Norman
se the finder has a redundancy slowness to mimic human perception built in ...
This is the big big problem with the stock market.
Companies do lots of things that don't immediately look like profit-gaining moves to investors.
Actually, put another way, do you think that Google is not a corporation, and instead a basket of goodwill, since they market things as 'open'?
need to find a hardware model is all . because software is not paying alone . Apple now gives a free OS with proprietary hardware ... all is well ...
I think he knows it well. Like it or not Apple is AAPL, or there to make money for shareholders. Would "being open" result in more money for the people that bought a tiny slice of a $500 Billion pie? Will any CEO try when they're making $50 Billion or whatever they're making this year in profit? Not sure
Apple devices are abstractions with well-defined interfaces (sets of operations you can perform on them). Not only should the implementation not matter, it is anathema that anyone should know the implementation because that would break the abstraction at a fundamental level.
It's absurd for a bunch of hackers to think about, but this is what has made Apple billions of dollars, and it's what made them the best technology company on the planet: the construction of devices completely defined by their simple interfaces, with all else hidden from the end user.
I once believed that BSD with an Apple interface was the Utopia of computing, but no. And it took me a couple of years to understand why. I came up with a different way to say the same thing: Apple is about productizing computing ideas. But it does mean closing them down. A product is not a platform. And Xcode is just a nuisance to Apple, a requisite rather than a goal.
Sometimes productizing means making the same thing much cheaper, like their first mouse. Sometimes it is making the same thing much more expensive than necessary, like present Macs.
But the common thread is to upsell your costumer. To make him come back. This is all Apple is about. It has the advantage of pampering a prized costumer, but it has the disadvantage of locking you.
To the people saying Apple is the new MicroSoft, at first Apple was the one and only personal computer company. It used to be king of the hill. It was busted when the open-ness of the IBM PC turned out to incur cluster effects.
For all we know, this post-PC era can also witness a similar disruption. esr really thinks Android is already doing it. Lets hope.
But Apple can't do open. It is not that it would "diminish returns". It is that it goes against the very company strategy. It is cute that Woz prefers not to acknowledge it, but that is all.
Then you would agree that Macs are unsuitable for normal users, since they ship with a command line and lots of geeky Unix tools preinstalled?
The device was still a zillion seller.
It seems reasonable to assume that people would not buy Apple products if they were too difficult to use.
It seems reasonable to assume people do not buy them for ease of use. Other competing systems are also easy to use. It seems reasonable to assume they buy them because they "look cool", much more so than any competing product.
It seems reasonable to assume the initial attraction to Apple products is the hardware design, not the software.
But none of this can be proved or disproved unless Apple were to unbundle the two and hackers were allowed to write software to run on the bare metal, not necessarily on top of Apple's development platform.
If Apple is afraid to try this then it shows they have something to fear. It shows they feel the need to exercise command and control over how users use Apple computers.
Apparently Apple's hardware design patents are not enough.
Lots of hackers continue to use Apple laptops because the software and hardware has combined what they perceive as the best quality in the industry. They don't do this because they look cool.
One can't also assume the iPad is the only runaway tablet success because of a cool factor or hardware design. The iPad was laughed at on first release by most geeks and pundits. But then people got to using one and found it more useable than a laptop for many daily tasks.
One also can't look at the iPhone margins without noting the key differentiator: iOS and iOS Apps. Software, in other words.
All companies have something to fear - they're in a competitive business. Apple just seems to be better at it than most (this generation).
As you admit, no one can predict what consumers will choose.
However, a company can actively work to limit consumer choice. They can attempt to control how a consumer uses a product so as to benefit the company, not necessarily the consumer.
I ask you, "What would hackers do if they had choice?"
It's easy to look upon "success" after the fact and conclude a company is good at what they do.
Apple has failed many times. And they may fail again in the future.
I'd like to buy stuff from a "fearless company", not one that places ridiculous restrictions on users (fear of competition?), even when they are at the top.
Hackers use Apple products and endure the annoyances because there are no other choices.
But at what cost to the consumer and the computing world at large?
Apple is trying to prevent people from freely programming and experimenting. Sure, people will still buy and use their products, but Apple cannot stop competition. Arguments that hackers should just accept Apple as the new Microsoft are good for a laugh.
Keep them coming.