Slowly but surely the best developers are going to leave the Mac platform leaving only consulting body-shops and corporates on iOS. Developing for the Mac and iOS is miserable. It wasn't always that way, but it is now.
Developers* are sick of proprietary stacks, from the language (Swift), to the APIs (Cocoa/CoreX/iOS), to the conditions attached (iCloud SDK only available for Mac Apps sold through the Mac Store), to the penny-pinching (pay your $99 fee and 30% even though we're raising $billion in debt to buy-back shares and hand out dividends because we're too tight-fisted to repatriate overseas funds and pay taxes on it) to the still broken XCode which only runs on a Mac, which must run Yosemite which feels like a Fisher-Price toy rather than a workstation for developers.
*Well, ok, I'm sick of it, but I'm sure a few people reading this are feeling the same way.
I've been itching for someone to stick it to Apple since they're really being tight with money in some places (annual developer fee as you mentioned), and wasting it on share repurchases.
It's time for someone to really compress Apple's margins.
As for your comment on the 30% fee, that's industry standard and few serious developers complain. The $99 fee is nothing compared to the amount of time it takes to build and design a quality app.
The 30% fee is not an industry standard that was debated and researched and rationalized. It's an abitrary number picked out by Apple first and then followed by others in order to maximize income from the work of third-party developers who are forced to pay or quit the platform. It's a de facto standard imposed by the platform gatekeepers. Calling it an "industry standard" sounds like it's an ISO recommendation :-)
There is no reason at all to charge a $99 fee to developers given the vast income generated from the 30% and the overall health of the company. This is nickle'n'diming developers. Some people claim that "Apple Developer" is a cost-center, an independently run business silo that must generate a profit to justify its existence, that it's not a charity... i say no. It contributes to the overall well-being of Apple Inc as a whole, just like human resources and research and development does, it helps contributes to the overall profits of the company, so when we look at the company's overall financial health, in my mind, there is no doubt that developers are being taken for a ride because...
...they have nowhere else to go because their Apple centric skill-set is not transferable to other platforms.
I guess another way to look at it is this: If you had an idea for a desktop app today, would you decide to write for Mac first using a proprietary language Swift and proprietary SDKs like CoreData or would you pick C# and .NET so the bulk of your code could be re-used on both desktop and mobile, and you could bind to native toolkits for the UI?
Who are some big C# developers that create major applications consumers (Not enterprises) use everyday?
You mentioned the paucity of major OSX/iOS developers, but I'm not sure the case isn't the same for C#/.NET.
Apple democratized and revolutionized that entire industry, providing a level playing field where I can compete with Omni, and we both have the same hoops to jump thru and get the same deal. We both get a much better deal than before.
The $99 fee covers the cost of administering the developer program. This program is hugely popular, and is already overrun with people who just want to get access to early versions of iOS before they are released publicly. Even with the $99 fee. It's a very low fee so that anyone serious can afford it, but high enough to keep out the problematic people who would abuse the service and overwhelm Apple's developer support resources.
Seriously, I find it kinda curious that you're complaining about $99 as if it's some big barrier.
The idea that an "Apple centric skill-set is not transferrable to other platforms" is pretty darn silly. I mean, sure, if you learn to program using Cocoa you will be frustrated and annoyed at how terrible certain other platforms are to develop for.
But these days only HR people seem to think that programmers can only learn one langage and that experienced in one language is not useful in other languages or using other frameworks. Are you an HR person? Because that perspective is not one I would expect from any software developer.
Apple charges 30% because they can, just like how CompUSA could charge whatever they wanted and make you pay for boxing and associated costs, because the software you spent a year writing cannot be sold anywhere else except on their platform. And if you want to sell by yourself on the Mac, without using the Mac App Store, you are a second class citizen because certain APIs like the iCloud SDK are not available to you.
If the $99 is a nominal amount, why even charge it? Why $99 and not $49? Or $199? Again, it's a number they came up with which they felt a certain demographic, let's say teenage programmers could afford, or younger kids could get their parents to pay for. I'm open to better reasons if you have one.
Being experienced in many languages does not make one a good programmer. You can be the jack of all trades and master of none. You think someone can just pick up C++ in a few weeks and become an "expert"? It takes years to become proficient in not only a single language but it's associated tooling and ecosystem.
I have no doubt that there are many developers out there who have spent years of effort learning Apple's proprietary stack and are now regretting it and kicking themselves because a decade has passed and Apple, as a friend to developers, has regressed and gone backwards.
Finally, Cocoa is a nice enough API, but have you ever had a problem and then tried to resolve it? Good luck going to the sign-in Apple developer forums where everyone shouts "ssh, we can't talk about it, it's under NDA" or having to file a bug report on Radar where nobody even responds and when they do it's to say it's a duplicate bug filing or, or opening a DTS incident and having the person say "Yep, it's a bug on our end, not sure when it will be fixed, in the mean time try a workaround". How is this better than having an open roadmap with discussion in public forums regarding language/SDK features, bugs, fixes etc?
Advance access to IOS kind of messed that up, (at lot of people paid the developer fee to access the next operating system) which is why application to the WWDC lottery is probably a better estimate of developer count.
What about Sketch, AgileBits, Alfred?
I know many long time devs who are still doing it and haven't sold their products to others to maintain... And I also happen know -lots- of new Mac/iOS devs.
Nothing to say about the 30%, it's just a pathetic argument, people have pointed it out already.
There is a reason to charge a $99 fee. There's also a reason to force a user to put a credit card to create an App Store Account, there's a reason to request a CC to create an Amazon account too. And $99 bucks is literally nothing, check MSDN and Visual Studio (https://www.visualstudio.com/en-us/products/how-to-buy-vs.as...).
About 'Apple Centric Skill-set' not being transferable to other platforms? Sorry, but... are you f'ing kidding me?
If you learn -any- framework, made by anyone at all, in-depth (not just copy pasting code here and there), you'll get skills that are transferable to other development environments. I've learned a ton of C/C++ and even some Assembly by doing iOS, I've also dealt with several scripting languages in the process.
If you're a real Engineer, and you really learn and understand a framework (Apple's or not) it should contribute to your growth.
Cheers.
What's the point here? :)
The last 12 months have been pretty horrible for them in terms of their relations with Apple. Sure they're toughing it out because it's not like they have other revenue sources, but those experiences have jolted them into finally considering moving beyond being just a Mac/iOS shop. So they're not a very good example of "all is well in Apple developer land".
And Microsoft will rescue them... Yeah, right...
What's wrong with C# and F#?
I've watched Microsoft since the 1980s. One year is way too soon for me to believe that they've changed their stripes. In particular, it's way too soon for me to want to tie myself to their platform.
Once their open source .Net would get most of Windows version features there may be some use for it with same drawbacks like you have with Java for example.
My standpoint is that by developing on someones platform, I am doing them a favor. I'm happy for them to not roll out the red carpet, but there better not be a bouncer checking me at the door, either.
If I have to sign up to used your SDK (unreal, unity), I'll just use something else.
And developing native Windows applications with Microsoft's tools is still just as proprietary as anything on the OS X platform. The recent open-sourcing of the .NET web stack means nothing in this regard. Unless you're telling me that there's an open source C# compiler that can do the job now?
I'm a couple weeks away from paying the Apple license, and starting to write my first iOS app, so I may not know all the costs and foibles of Apple development yet. I'm open to the fact that I may be ignorant of needing some basic things, like on Windows, to REALLY get the job done.
And what did Microsoft do? They bought a browser and gave it away for free, cutting off Netscape at the knees, til the company folded and become the Mozilla Foundation.
They poured billions and billions of dollars into online initiatives from the Microsoft Network to Bing, including buying dozens and dozens of companies.
None of those were big successes. None of those have been a "tidal wave" of innovation, or success, or money. At least that I can see. Internet Explorer became dominant, but mainly due to bundling and that has gone away. IIS was a popular web server for a long time and people have written web sites using microsoft technology, but .net which is just a renamed MFC, isn't really much more used outside the same types of shops that used it before 1995. Yes, the mono project brought it to linux and made C# a more viable language, but that wasn't Microsoft's doing.
Maybe I'm missing something. Xbox and Xbox online are huge money sinks that I don't know if MSFT is ever going to recover the money from. The stock has been flat during that period while google, amazon and apple have been going like gangbusters. (And given the level of monetary inflation over the past 15 years flat means down.) Yes, it did boom during the bubble but that was %100 windows and office from the boom in companies putting computers on everyone's desk. And yes, it's grown the past couple of years after being flat from 2001-2011. But that's not a result of the 1995 "initiative".
Microsoft, like Apple, unfortunately for both, doesn't quite get the internet. It doesn't get mobile (unlike Apple).
The new CEO might change this, I don't know.
But the "internet tidal wave" happened pretty much completely without microsoft.
For the record, I worked for the company near the time of this letter, lived in Seattle during most of the intervening years and have been watching Microsoft closely for about 25 years.
I can't agree with this. MFC was a thin C++ encapsulation of the Windows API. It was a reasonably successful technology but was unloved largely because it was so thin - it didn't try to fix the ugly mess beneath and so left developers wrestling a large smelly octopus. .Net was more of a clean room attempt to provide developers with a clean, sane, consistent API built on a new virtual machine based architecture complete with a shiny new language (C#, basically Java++).
"MFC was introduced in 1992 with Microsoft's C/C++ 7.0 compiler for use with 16-bit versions of Windows as an extremely thin object-oriented C++ wrapper for the Windows API."
Thinness is probably in the eye of the beholder, but as one of the many MFC victims back in the day, I found using MFC to be endlessly frustrating because it added a layer of complexity and pain to Win32 programming without giving me anything I really wanted back in compensation - you still needed to work directly with arcane Win32 mechanisms to do simple things, like, change the background color of a window for example. Admittedly there was some (less thin) Document/View model stuff thrown in there, but the impression I got was that this was an afterthought bolted on the side.
In contrast, Qt and wxWidgets for example are toolkits that are designed to make a programmer's life easier by providing a genuinely convenient abstraction of a Windowed GUI.
This ridiculous comparison shows just how clueless you are about the .NET platform and Windows development.
What they did was bundle internet connectivity in with the every windows PC. Sounds ridiculous even mentioning it, right?
Back then you couldn't connect to the internet without installing third party tools, usually from an ISP on a disc. You had to install a browser, you couldn't embed hyperlinks in documents, there was no built-in way to get an email client..etcetcetc.
The original memo was not about building developer tools for the internet, but on taking a stand-alone operating system and shipping it with networking and hyperlinks and forming partnerships with ISPs and on and on.
It was much simpler for users to put in the AOL disk and stay inside their walled garden - both conceptually and technically easier for laypeople.
Just because Microsoft went on to dominate the desktop market and win the browser war doesn't mean it was inevitable.
erm..... no. Sorry, but if you really think that, then you need to go and read something about what really is .net