Posts Tagged ‘Microsoft’

Choose Microsoft for iPhone development

December 9, 2009

About now you’re probably thinking, “What happened JonnyBoats, the boom on your sailboat hit you in the head?” Everybody knows the way to develop for the iPhone is with Objective-C form Apple. Well hang in there with me….

Having dealt with lots of people at Microsoft for over 20 years, I can assure you that once you get to know them the company is really lots of different groups with different agendas and goals. Those who portray Microsoft as the “evil empire” with all employees goose stepping to the same music has simply not taken the time to get to know those on the main campus.

One of the podcasts I try to listen to is StackOverflow, they are published weekly and last for over an hour, so I often fall behind. I was listening to Podcast # 61 with Miguel de Icaza of the Mono project. If you have the time, I encourage you to listen to the podcast.

In the podcast Miguel mentions dealing with Bob Muglia of Microsoft concerning licensing and the mono project and how accommodating and supportive he is to open source.

I first dealt with Bob back in 1988 when he joined Microsoft (see this news item). I had a small firm, Canaan Analytics, and we were developing a Windows based system used by an internally managed pension fund that used it to manage several billion dollars of US stocks. Bob always went above and beyond to help us, and I can assure you that we could never have done what we did without a lot of help from many, many people at Microsoft.

Allow me to give you a quick example of one of the many things he did to help us. We were using second class broadcast mailslots to deliver real-time stock quotes through the LAN. Bob knew this, and that we were virtually the only firm using them in this way. Bob gave me a call to tell me Microsoft would like to change their implantation under Windows NT and wanted to know how this would affect us.

Back to the present, take a look at these show notes excerpted from the StackOverflow podcast:

  • Mono runs on the iPhone, through the Unity game engine! This was challenging for the Mono team to develop, because interpreters and runtimes are explicitly disallowed in terms of the iPhone SDK. Mono had to be converted from a JIT to a static compiler.
  • Per Miguel, programmers wanted Mono because Objective-C is fairly primitive in memory management and requires a lot of repetition and boilerplate. With Mono “this is all taken care for you”, as a higher level language.
  • Due to concerns within the free software community, Microsoft made a legally binding promise that it will not enforce patents against Mono — for the core framework.

    For all the details you really do need to listen to the podcast; but here is my take:

    1. Apple provides a limited, outdated development environment for the iPhone.
    2. Apple restricts through legal contracts what developers can do on the iPhone, forbidding some of the most popular tools which are capable of running on the iPhone.
    3. Microsoft provides a great development environment with Visual Studio and .NET. The compilers are included for free with Windows and the Express version of Visual Studio is also free.
    4. Because of the open source Mono project and the Unity framework, applications can be developed in Visual Studio and deployed on the iPhone.

    So in conclusion Microsoft provides free and low cost versions of Visual Studio that permits one to develop applications that run on Windows, Unix, Mac, Windows Mobile and the iPhone. If you develop on a Mac, what tools does Apple give you to develop applications to deploy on Windows?

  • Advertisements

    Software development choices

    August 2, 2009

    Anyone in the computer field is constantly called upon to make a dizzying array of choices. For a developer, a computer is hardly a set it and forget it device!

    All users must make choices like do I buy a Mac or a PC? If I get a PC, do I get a netbook with Windows XP, a laptop with Windows Vista or wait for Windows 7? No sooner than I get the computer it seems like I am faced with the question: “Is it time to upgrade?”

    For a developer things can be even more frenetic. By way of example, hardly a week goes by without some sort of security patch or service pack for one of the myriad of tools. Silverlight, Visual Studio, Azure etc, the list seems endless! Worse still, tools for developers can easily cost thousands of dollars.

    On a longer term and more strategic level one is forced to commit to platforms and development environments which take years to master and which unfortunately may not be around that long. Perhaps you learned the PASCAL language in college? Well there really aren’t many jobs for PASCAL developers, especially compared to web developers or iPhone developers. Did the iPhone even exist when you were in college?

    My first job after college in 1974 was as a COBOL programmer on IBM mainframes, technology which I concentrated on until the 1980s when I switched my focus to PCs. In the fall of 1987 I became a big fan of Microsoft Windows and have been doing development on Microsoft platforms with Microsoft tools ever since. In case you were wondering, I am a big Microsoft fan!

    Two websites I am currently developing use vastly different toolsets. One, http://NewsPeeps.com, uses Microsoft Model View Controller (MVC) and utilizes open source; specifically KiGG. The other, http://www.ehswidges.com, uses Microsoft’s Silverlight built with Expression Design 3’s SketchFlow tool.

    The first, MVC, has a rather steep learning curve. Once one becomes proficient, one can do amazing things. One could characterize MVC as a tool for professionals. SketchFlow on the other hand can be can be understood in less than an hour and once could then build an extremely good looking website in far less than a day. That’s right, someone who is familiar with computers could learn SketchFlow and produce a quite acceptable website in less than a day! Watch this video to see what I mean.

    This reminds me of Windows development in the early 1990s. If one wanted to produce a Windows application prior to 1991 one programmed in C with the Windows SDK. In fact learning the Windows SDK took longer than learning C! Then in 1991 Microsoft Introduced Visual Basic and the barrier to entry as a Windows programmer was reduced by orders of magnitude. Commercial products like Microsoft Office continued to be written in C while the vast majority of corporate developers and hobbyists adopted VB. The number of Windows applications, particularly specialty products and  in-house applications skyrocketed.

    The lesson here is that Companies like Microsoft that make it easy for people to develop software will be far more successful in the long run than those that don’t. How easy does Microsoft make it? If you are a student, check out DreamSpark. A starving entrepreneur looking to produce his (or her) first software product, check out BizSpark. Someone else wanting a free version of Visual Basic .NET, then download VB.NET for free.

    In my next post I will discuss why this may be the game changing strategy that could permit Microsoft to dominate the mobile phone market.