April 2010 - Posts - More Wally - Wallace B. McClure
in

MoreWally.com

Giving people what they want, More Wally. This is the technical and personal blog site of
Wallace B. (Wally) McClure.

This Blog

Syndication

News

Please goy buy 3-4 copies of my book on MonoTouch titled "Professional Android Programming with Mono for Android for .NET/C# Developers." They make great gifts all year round. Plus, I get about $.25 when you buy a copy.

Technical Sites

More Wally - Wallace B. McClure

This blog will have all kinds of posts about Wally McClure. In it, there will be tons of .NET and computer programming posts as well as Wally's views on life in general. As you might guess, this site and blog help you get More Wally in your life. What more could anyone want? iPhone, Android, MonoTouch, MonoDroid, Mobile, HTML5, .NET, ADO.NET, ASP.NET, AJAX, jQuery, jQuery Mobile, ASP.NET AJAX, and Windows Azure............follow me on twitter at Wally

April 2010 - Posts

  • Why I Doubt Apple Will Change Section 3.3.1

    I've come to the conclusion that Apple won't change Section 3.3.1 of their new license. How can I come to that conclusion? There are several reasons for this. I think the reasons below are the major ones: 

    1. Apple wants to keep their platform from becoming a commodity so that they can keep their prices up. If they allow java, c#, cs5, unity, or other language that exists on another platform, they are fearful they will fall into the commodity area. Unfortunately, when you make it too hard on developers, they'll just decide not to build apps for your platform, the iPhone.
      Added late: According to Twitter.com Tweets, Apple has said that apps written in PhoneGap are acceptable. Either they are saying:
      • Because we said that Javascript was ok, PhoneGap is ok.
      • They are going to examine frameworks individually.
      • They are adding in PhoneGap in an attempt to take the heat off of themselves.  "See, we are allowing cross platform frameworks."
    1. Apple has a score to settle with Adobe. This is their chance. Technology companies, not just Apple, can be vindictive. I know it, so I see that this can be a part of the problem. I prefer to keep my eye on the prize and make money, but what do I know. I don't run a multi-billion dollar company either.
    2. Apple believes that end users are it's future. They do not care about developers. (I didn't realize this until I watched the CNBC show on Apple and Guy Kawasaki talked about how developers were not Apple's future but that end users were.) They tell the end user that they are most important thing to them. The end user believes it because Apple has produced what they have claimed. In this situation, Apple is twisting their message to get the user to believe that they will be better off with this new license when reason 1 & 2 are the real reasons.
      Don't believe me? I've found several references on Twitter from Apple Fanboys about stating "Frameworks result in crappy apps." "Umm, excuse me, how do you know this when your bio says you are photographer?"  Remember what PT Barnum said about some of the people all of the time.........

    In no way, am I saying that this is a conspiracy theory or anything hidden.  Its being played out in the open for all of us to see, and some of us to get dragged into.  Apple has forced developers to take sides.  As you can guess by now, I am not on Apple's side in this.  I'm trying to analyze, as a developer, what I see in the marketplace.  I would hope that Apple would see their way clear to supporting MonoTouch/C#, Unity, Flash CS5, and Java on their platform.

    Honestly, I have never seen Microsoft do anything remotely this bad in the past 10 years. Say what you want to about J++, its hard to say that client side java didn't take off because of VJ++.  Apple has done its best to destroy a significant amount of developer interest in the past week.

  • And Now We Know.........

    It looks like we now know the cause of the iPhone SDK Licensing change is.  According to AppleInsider, in a email discussion suppossedly with Steve Jobs, the quote is:

    .....,and said he believes there are a number of applications written with cross-platform frameworks that are "amazing," such as Mozilla Firefox. Jobs, Slepak said, responded to his second note in about three minutes.

    "We've been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform," he wrote.

    There you go.  It appears that Apple doesn't want cross platform frameworks because they produce substandard apps and hinder progress.  My response:

    • Bad developers/management produce bad applications.  Development systems, management styles, and the man-in-the-moon do not create good apps.  You have to have good developers.  "You know what makes a good coach? Good players."
    • Intermediate layers/cross platform tools hinder progress of the platform. 
      • Layers/Frameworks bring more developers to a platform, increasing its value.
      • The statement implies that these frameworks use private APIs. Apps that use private APIs should not be accepted in the first place.  Can't Apple police their own AppStore?
      • If the framework/layer uses public APIs, what is the technical problem?  Is Apple not smart enough to keep their public APIs compatible between releases of the iPhone OS?
      • At one time, there was a complaint about java running on the Mac that java apps didn't look like Mac apps.  That's because the apps weren't designed to be.  The market figured this out.  That's why java on the desktop hasn't really made it.  Why do we need Apple to make decisions that the marketplace would come to in and of itself.
      • Honestly, this seems like nothing more than an ideological response.  It makes Apple sound like that are "saving" the iPhone ecosystem and users from evil App Store developers.  You can't argue with ideology.  Its like saying "My god is stronger than your god."  There is no winner, only more speculation and yelling.  The fanboys will scream how "See its great, Apple is protecting us from those evil developers."  Its Apple's world, and we are just playing in it, so guess who wins in this argument?

    The more I read about this, the more it reads like Apple is just trying to get back at Adobe.  I would hope that a direct statement from Apple would clear this issue up.  I'm not holding my breathe on this.

    And now I have heard that you are not allowed to use a third party to get application analytics on the iPhone

    So Apple has now become the Big Brother from their own 1984 Commercial.

    Hey Novell, when is MonoDroid going to get here?

  • Why I feel so strongly about the Apple SDK issue

    If you follow my Twitter stream,you know that I feel rather strongly about Apple's recent licensing changes in their iPhone 4.0 SDK. I'm going to do my best to explain why.

    History

    I used to work at The Coca-Cola Company. While there, I was a part of the Apple Cider Project. It was a project to get rid of the purchase of new Apple Macintoshs due to the fact that they didn't integrate with the computing infrastructure very well. I remember a private meeting at Apple's Atlanta office where we told the Apple representatives about the issues we had. They did not seem that they understood or even cared. It was due to that meeting that we officially started the Apple Cider Project. I've long remembered that meeting when I thought of Apple.They've often thought that everyone should do as they say instead of trying to work with others. At one time, Microsoft used to think this.  Thankfully, even their attitude has changed.

    Innovate vs. Legal

    When Apple has innovated, they have done well.  When Apple has attempted to compete with legalese, it has not done well.  Apple sued Microsoft in the late 1980s over the look and feel of Windows being a violation of copyright.  That started Apple's downturn and they lost anyway.  Apple went out in the mid-1990s and licensed their technology in attempt to create a clone marketplace.  Then, out of the blue, they killed it.  This left a bad taste in the mouth of many people.  This was probably Apple at its lowest point ever.  Competing with legalese tends to drive the marketplace away.  Apple has alienated developers with their recent SDK licensing changes.  Some will never come back.  Why should they come back to a platform when the company that they are adding value to keeps slapping them across the face?

    After watching Apple the past 10 years, I honestly had felt that they had changed. I'm hoping that this recent issue is resolved quickly, though, I am not hopeful.

    What's the issue?

    Apple recently announced changes in their SDK licensing.  The key thing in this is that applications have to be written in ObjectiveC, C, C++, or JavaScript.  Why should it matter to Apple what language an application is developed in?  They should want quality applications running on their device.  Good developers can build good applications using bad tools. Bad developers just create bad applications.

    Apple Products:

    I've watched Apple switch CPUs from 680x0 to the PowerPC. My thinking back then was that it was technically interesting but not significant due to neither being high volume. When Apple switched to Intel processors, It got my attention and in a positive way. The ability to have a single machine that runs Mac, windows, and other operating systems was interesting. Choice had come to the macs and I was impressed.

    The apple iPod was introduced about 10 years ago. It's been successful. The video iPod was interesting. As someone that runs a video podcast, supporting it has been a major pain. Supporting iTunes has been a problem. The video format support is a major pain, but I eventually worked it out. Honestly, video is a pain everywhere.

    During this time, apple made a financial recovery. I was impressed by it. These improvements are noticed in corporate America.

    Now we get to the iPhone and it's child devices. Originally, Apple initially said that developers should write web apps to target the device. They relented and shipped the ability to run apps natively on the device. I was impressed with their ability to listen to the developer marketplace. Now, let's be honest that writing apps that natively run on the device is in Apple's best interest. Any app running natively on a device results in some form of vendor locking, so it's good business for them. Whatever the reason, it was goodness for everyone.

    Development

    Like I have said, I'm a developer.  There are a facts that you have to be aware of.

    • Developers like to write for platforms that have acceptance in the marketplace. Even if a customer is paying for the work, writing applications for platforms that are unpopular is hard due to a lack of documentation.  If a developer is writing the application on their own, well, you have to make money somewhere.
    • Frameworks. If there are a number of frameworks for a device, it gives developers choices in how to write applications.  The more choices a developer has to build applications, the better.  It brings more developers to the platform.  The more developers, the more some will create frameworks for the device.  It makes the platform more valuable.
    • Developers do not like to be dictated to.  They want to write apps using the languages that they already know and not spend lots of time learning foreign languages.  These things take time, and time is money.

    Arguments

    So far, I've heard several arguments about the SDK licensing issue.  Here are my thoughts on them at this point:

    • This is a byproduct of the Apple/Adobe Flash issue. I don't care much for Flash based video.  I do think its crap.  If this is the issue, then go solve this a different way.  Have you ever thought of going to Adobe and working with them on resolve the issue?
    • Multi-tasking.  Apps not written in ObjectiveC won't multi-task properly. WTF?!? I've written a number of multi-threaded apps in Mono/.NET.  Why do you think I can't write multi-threaded stuff?  Why do you think that .NET/Mono doesn't thread properly?
    • Cross-platform frameworks don't expose the features of the underlying device.  Ok, there is some truth to this.  The problem with a cross-platform framework is that it it can only use the features common to the various platforms.  FYI, MonoTouch is not a crossplatform framework.  MonoTouch is a .NET/C# layer that runs on top of CocaTouch. It allows developers with a background in .NET/c# to natively target the iPhone. It doesn't somehow allow winforms, wpf, silverlight, or anything else to magically run on the iPhone.
    • The iPhone AppStore is full of crap. I've heard the argument that this change is an attempt by Apple to clean up the apps included in the AppStore.  Okay, I can buy this reason. How many fart, beer guzzling, and other stupid apps are in the AppStore? But, I'm confused, didn't Apple approve these apps? If the AppStore is full of crap, why is Apple approving these apps to go in the AppStore?
    • Cross-platform frameworks result in crappy software. WTF? Bad developers/management result in crappy software.
    • Adobe-Apple past history. I read a post about how Adobe/Apple have a negative past history dating back to Adobe's lack of support for Apple's platform and OS X. Well, Adobe has to make money and they have to follow the marketplace. It seems that right now Adobe is attempting to feature their support for OS X with their new CS5 product that launched today. And now Apple is telling them to f*** off. Wow, what a way to support the companies that make products that make your platform more valuable. Now, I am not privy to the specifics of this relationship over the past 15 years. I do know that two wrongs do not make a right. If this is true, it makes me question Apple's support of the development community even more. Heck, I get frustrated all the time, but my suggestion would be that Apple keep its eye on the prize, not on being vindictive.

    Me

    Now, I'm a .net guy, so I'm interested in how I can leverage that knowledge to run other places, such as the Mac, mobile devices, tablets, and all other kinds of places. I've watched the number of iPhones shipped dramatically increase. Now With all of this background, I got really excited when Novell announced Monotouch. I invested significant time, and time is money, in Monotouch. I spent years trying to convince wrox into doing mobile development books to no avail. In the summer of 2009, they agreed that a book on monotouch would be a good idea. And, I was off..............

    Now, my first ebook is in limbo.  Our second book is completely in limbo.

    I've been out trying to convince customers to accept the iPhone.  It also means money for Apple in that customers buy more of their product.  It means money for my company and me as well.  Apple, you are costing a lot of developers a lot of money by making this move. If I switch to another platform, and I am contemplating this, it will cost you money as well.

    Thoughts for Apple

    There are a few things that Apple needs to be aware of.

    • If you chase away developers, they are not likely to come back.  Developers have a long memory when they feel screwed.  Why should I write an application for your device when you can pull the rug out from under me at any time?
    • I really doubt that a change to your licensing rules will effect you in the near term.  In the long term, will developers target your platform?  Will there be an "App for That" on your platform in a couple of years?  How will a lack of new apps effect the growth of the iPhone?
    • You do have competition in the marketplace.  Google Android is growing. RIM has the #1 marketshare.  Microsoft has an interesting story with Windows Phone 7, though admittedly, its largely an unknown at this point in time.
    • Why don't you change the AppStore such that crappy applications are removed?  Put in a rating system, or something that will allow you to remove crappy apps quickly and easily if they cause problems in the marketplace.

    What am I going to do?

    I'm not sure. I'm going to continue to look at the marketplace.  I'll probably take a look at MonoDroid for the Android as well as Windows Phone 7.  I'm not convinced that Apple will relent on this issue.  They seem to have dug their heels in based on what they are doing with Adobe Flash. If there is going to be resolution on this issue, it needs to be fairly quick. Developers won't wait and twist in the wind. They will vote with their keyboards, and they will vote on another platform with their favorite tool.

    PS. I'm hearing rumors that their might be a solution for this problem coming. Stay tuned.

  • Dear Apple, Why Do You Continue to Give Me the Big Middle Finger?

    I'm a developer.  I've written code that runs on a number of different platforms.  Over the past 15 years, I've specialized on the Microsoft, and specifically .NET, platform.  I've watched the iPhone grow up over the past three years, and I've watched in envy as people seemed to really like the platform.  However, given the amount of time, and time is money, invested in Microsoft's .NET platform, I've felt that the barrier to entry on the iPhone was too high.  Learning ObjectiveC just was not/is not an option for me.  Last spring, I heard about PhoneGap, and got interested in it.  Then, last summer, my prayers were answered when Novell announced and then shipped, MonoTouch.  MonoTouch allows .NET/C# developers to write code that runs on the iPhone platform.  Awesome!  Rock!  And the danged thing actually works, which is even better!

    I was so looking forward to hearing about the new iPhone OS Version 4.  After all of the announcements, an issue has come up regarding the licensing of the new iPhone OS.  Specifically, this clause says:

    "Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited)."

    The speculation about why this is here points to your ongoing issues with Adobe Flash. Now, I have no love for Flash.  I find the video player to be a major CPU hog as you have stated.  The problem is that in taking such a broad stroke in your licensing requirements, you have hit a number of other frameworks, including PhoneGap, Appcelerator's Titanium, Novell's MonoTouch, and other frameworks that allow developers to easily applications on the iPhone much easier than using ObjectiveC.

    Now, I get why you want to restrict third party applications to only using documented APIs.  I really do.  However, this broad stroke is just too much.  I'm not going to move to ObjectiveC.  Why you want to ban apps because they were not written using your tools, I will never know.  Good programmers can write good applications, using bad tools.  Bad programmers, well, they just write bad applications.

    I like your ideas to have a good platform and I like your commitment to end users and their experience. At the same time, Why do you keep giving me the big middle finger?

     

2006 - Wallace B. McClure
Powered by Community Server (Non-Commercial Edition), by Telligent Systems