Log in

View Full Version : Be Free Or Not Be Free


Andy Sjostrom
04-10-2003, 08:58 AM
I expressed a few thoughts about Microsoft developer tools a while back. I called the post <a href="http://www.pocketpcthoughts.com/forums/viewtopic.php?t=9915">"Is Free a Make or Break Issue?"</a> and pondered the question "what will happen as new mobile application development tools from Microsoft no longer are free?" A great number of opinions were expressed. My own main concern evolved, and continues to evolve, around the fact that the public hasn't heard from Microsoft about what its plans really are. Since then, I have discussed the question with Microsoft representatives and have given it some more thought. Before I tell you about my conclusions, I will tell you how I got here. First, I need to say that this post is not the "official word" from Microsoft, just my own thoughts and opinions. The topic at hand is, as far as I understand, still under review at Microsoft. Read on and let the discussions continue! <!><br /><br /><span><b>Developer Orientation Drives Revenue</b></span><br />Most agree that Microsoft has been developer oriented since its beginning. The company began its journey with development languages and tools, not with MS-DOS, Windows or Office. The company is respected by both developer tools competitors and its developer customers. Today, the strategy spells .NET and core elements from a developer perspective include a common language runtime, common type system, memory management, and specific components including native support for XML Web Services, XML document management, database management, user interface design all tied together. Again, most agree that .NET is well architected and balanced.<br /><br />Microsoft is not developer oriented out of any sort of idealism. In case you haven't noticed, Microsoft is - more than anything else - revenue oriented. From a revenue perspective the .NET strategy works in at least two ways:<br /><br />1. Microsoft development tools attract developers based on the tools' own merits. Development tools are a major source of income for the company.<br /><br />2. Sales of development tools and languages drive sales of Windows servers, SQL Server, Biztalk Server, and all the other Microsoft servers. Since the various servers expose interfaces that are readily available from the platform and development environments, they are popular choices in corporate IT strategies and attract system architects and developers. My opinion is that aligning development tools and languages from server all the way to mobile device application development is an appropriate and even self-evident strategy. So, in essence development tools are a vital part of the Microsoft business model.<br /><br /><span><b>Attracting Developers in Different Ways</b></span><br />Moving on to mobile devices and mobile application development. Microsoft tries to differentiate itself through its development tools in the mobile market, too. The company gladly speaks about the 10,500+ Pocket PC applications and the 190,000+ professional Pocket PC developers (400K+ total). Two of the major reasons behind this fairly rapid adoption are the fact that the development tools, eMbedded Visual Tools, have been free and that they have similarities to other common tools and languages. Microsoft's strategy has been to minimize the threshold to get started. Microsoft still has the strategy to keep that threshold as low as possible. <br /><br />The idea moving forward is to address the strategy, not with free tools but by leveraging two strong assets: the .NET technologies and the massive number of .NET developers. This is done by integrating mobile application development into a common enviroment and providing common programming languages and concepts. With this strategy, the .NET developers will have access to the tools nescessary to get started in mobile application development directly out-of-the-box and that is a low threshold by definition. The goal is the same but the strategy is different.<br /><br /><span><b>Three Different Groups of Developers</b></span><br />The ongoing discussion in the Pocket PC development community relates to what might happen if the new development tools are no longer free, as Microsoft moves all its development efforts, including mobile application development, to the .NET platform. When I look at what might happen, I see three different groups of developers:<br /><br />1. Consumer Application Developers, Independent Software Vendors (ISVs). This group mostly uses eMbedded Visual C++.<br /><br />2. Corporate Application Developers. This group uses both eMbedded Visual Basic as well as eMbedded Visual C++.<br /><br />3. Hobbyist Developers. This group mostly uses eMbedded Visual Basic.<br /><br />Let's take a look at how these groups might be affected:<br /><br />eMbedded Visual Tools 3.0 and eMbedded Visual C++ 4.0 continue to be free. Developers using eMbedded Visual Basic 3.0 can continue to target Pocket PC devices including the upcoming Pocket PC 2003. eVC++ 4.0 is the only tool available to develop so-called native applications, even with the release of the .NET Compact Framework. Most commercial off-the-shelf Pocket PC applications are developed using eVC++. <br /><br />Personally, I believe this won't change within the next year. In case this group wishes to use the .NET Compact Framework, the cost involved is far from prohibitive to make the move. In fact, even if Microsoft did stop giving away eMbedded Visual C++ 4.0 it would not cause much of a problem with the Consumer Application Developers. This means that developers in all three groups can continue to use free tools. <br /><br />The Consumer Application Developers and ISVs are therefore, to a large extent, unaffected by the upcoming changes. Corporate Application Developers and Hobbyist Developers who want to continue to use eVT 3.0 or eVC++ 4.0 can continue to do so, free of charge. Corporate Application Developers are very likely to have access to Visual Studio .NET anyway and a change in policy will have little or no impact on this group. As a side note, one of the more interesting features of the .NET Compact Framework is the support for XML Web Services. eMbedded Visual Tools developers can use third party add-ons to consume XML Web Services. Two examples are PocketSOAP and Odyssey Software ViaXML. The new version of SQL Server 2000 Windows CE Edition (2.0) is also accessible from eMbedded Visual Tools.<br /><br /><span><b>Free Open Source, Linux and Java Options Become a Threat?</b></span><br />An interesting thought on this subject that I will spend some time dealing with the next month or so, is whether or not the change in strategy makes the free open source, Linux and Java options out there more of a threat. I have no answers to this question yet, but you may definitely add your thoughts on that to this post!<br /><br /><span><b>Conclusion</b></span><br />In summary, the Consumer Application Developers and ISVs are the least affected since eMbedded Visual C++ 4.0 remains free. The Hobbyist Developers are probably affected the most. While the hobbyists are able to continue to use the free tools, they are likely to want to go to the new platform. You rarely find a hobbyist wanting to stay with old tools. The cost is, to this group, definitely an issue. That is, of course, if the hobbyist is not eligible for the <a href="http://www.microsoft.com/education/?ID=Eligible">Academic Pricing</a> which would make the nescessary tools more affordable. <br /><br />My conclusions are that since a free Visual Studio .NET could in one way or another risk a million dollars in business, there will be no free Visual Studio .NET. I doubt that the price change will have much of a negative impact on Microsoft's mobile market efforts. Instead, I believe the integration with the .NET platform will have a definite positive impact in terms of technology and the number of mobile application developers.

Peter Foot
04-10-2003, 09:12 AM
My conclusions are that since a free Visual Studio .NET could in one way or another risk a million dollars in business, there will be no free Visual Studio .NET.

I really don't think that anyone at any stage expected to get Visual Studio for free. However there are a couple of options which can be explored:
.NET Compact Framework in SDK Form
Smart Device Programmability in Visual C# and Visual Basic .NET stand alone packages

While eMbedded VB is still available we all know that it hasn't been actively supported in any shape or form for a long while now and it can't last forever.

We are very lucky to have eVC++ freely available and its a very good way to build robust and performant software, however it is not an easy starting point for a beginner, nor is it practical for RAD.

jeremyweisser
04-10-2003, 10:42 AM
Interesting but I think that you should move the entire article off the front page with just a brief description and a link.

Andy Sjostrom
04-10-2003, 10:53 AM
Interesting but I think that you should move the entire article off the front page with just a brief description and a link.
Yes, sorry about that. It was not intentional. Now fixed.

Cardie
04-10-2003, 11:47 AM
I wonder if this article (http://www.theregister.co.uk/content/68/30135.html) from the 'other side' might influence any decision Microsoft make?

Andy Sjostrom
04-10-2003, 12:04 PM
I wonder if this article (http://www.theregister.co.uk/content/68/30135.html) from the 'other side' might influence any decision Microsoft make?


I think it already did!
http://uk.news.yahoo.com/030410/80/dxfjz.html

dartman
04-10-2003, 01:14 PM
Nice analysis, Andy.

I don't happen to regard the entry cost of the .net tools as prohibitive for anyone who will develop across the spectrum of computers. I doubt that any lack of free tools will inhibit serious product development.

While I agree that hobbyists and casual developers should have some inexpensive way to program their devices, the truth is that the vast majority of devices (PPC's, desktops, etc) are never programmed by their owners. Most people are just users.

dart

Don Sorcinelli
04-10-2003, 02:40 PM
Good job (as always) Andy. :way to go:

With all the analysis and feedback, I think there is one aspect that cannot be overlooked. If you look at the number of developers who are skilled with VS.NET tools and languages who have not yet been exposed to Smart Device development but will be once VS.NET 2003 launches April 24, there is the potential (big emphasis here) for a whole new generation of software, especially for vertical markets. If I were in a product manager's shoes, I think that (for better or worse) this would be a major motivating factor in choosing the VS.NET integration path over developing separate development tools. As someone who is a big proponent of the Pocket PC in the enterprise, this move excites me because of the potential to provide vertical solutions to organizations that fall in between the high-end solutions and the individual enthusiast. Incidentally, I just wrote all about this exact need in an editorial piece (http://www.bostonpocketpc.com/modules.php?op=modload&name=News&file=article&sid=1365) yesterday :mrgreen: .

I do not want to see the potential gain in developers via VS.NET be offset by existing developers abandoning the platform due to no free/low-cost tools - that would accomplish nothing (and would hurt the community for at least the short term). That said, my wish would be that in addition to the current path, MS would consider the SDK/third party solution proposed by Peter Foot.

hfann
04-10-2003, 04:32 PM
Thanks for the article. Currently, eVC++ is the only way to create a commercial quality application for the current Pocket PC platform. C++ has the speed and the level of control required for commerical applications. .NET Compact Framework mostly benefits vertical applications and Enterprise applications. I will need to see the speed of applications running on a device before deciding whether to use it. Of course, developing using the Framework is easier than in C++. Currently, I don't see most users will download a 1.5Mb runtime just to run your .NET CF application.

The cost of VS .NET 2003 is not a real concern for commerical developers because that would be part of the development cost.

Don Sorcinelli
04-10-2003, 05:34 PM
Thanks for the article. Currently, eVC++ is the only way to create a commercial quality application for the current Pocket PC platform. C++ has the speed and the level of control required for commerical applications. .NET Compact Framework mostly benefits vertical applications and Enterprise applications. I will need to see the speed of applications running on a device before deciding whether to use it. Of course, developing using the Framework is easier than in C++. Currently, I don't see most users will download a 1.5Mb runtime just to run your .NET CF application.

The cost of VS .NET 2003 is not a real concern for commerical developers because that would be part of the development cost.

Agreed (on all points). I am happy to see that eVC++ is still being supported, especially where highest performance and "most native" support is needed.

One area of concern (from my perspective) with relation to enterprise and vertical application development is ActiveSync integration. While SQL Server CE replication and Web Services functionality may serve as a solution for some apps, the need for ActiveSync provider development will still exist.

I have yet to hear or see any clear vision or statement of direction with how to address this issue to enterprise developers, especially those who are VB/VB.NET-focused. I can't image having to tell them that C++ and the "black art" of ActiveSync provider development is their only solution.

Has anyone else seen or heard anything regarding this issue?

DonS

AndrewShuttleworth
04-10-2003, 06:43 PM
You had me worried there for a while with the first article so it is comforting to see this more positive follow up article.

As others have commented a wide range of software is a key to any platform. Affordable software is a key to getting started on and sticking with a platform. I've not been tracking it, but I'm pretty sure there has been a strong trend in the average price of Pocket PC software from around the $10 mark a year or so ago to around $20 or more now. At $10 you can easily afford to buy a range of software. For $20 you can (obviously) only buy half the software for the same budget and so have to cut back on the number of apps. Apps are defintely needed for PPCs as was hammered into me when I had to hard reset my device the other day and found myself with an almost unusable device (useless calendar, useless file Explorer, many more clicks to get where I wanted to...). I think it would have been really detrimental for the PPC to see freeware, shareware or low priced software disappear, and undoubtedly something else (Linux, Palm or something new) would have appeared to fight for the market share.

I don't follow this side of the industry so thanks for the frank reporting. We can only hope that MS is in touch with the market and the users, but it can't be easy especially these days when the bottom line yesterday, today and tomorrow is in such critical focus for every company.

Andrew

Tim Allen
04-10-2003, 08:05 PM
Irrespective of whether or not the tools are free/low cost, I don't think we'll see many .NET Pocket PC apps until the CF is built into the OS, or failing that the vendor of one of the current 'killer apps' decides to suddenly switch from eVC++ to .NET - unlikely.

Personally, I've managed to avoid C++ and VB all my life (Delphi & Java instead), and don't intend to start on either of them now for the usual reasons (C++ too complex, VB too basic). For me, it's either C# or Java, so if there's no free or sub-$100 VS.NET (or 3rd party equivalent) I can use to write Pocket PC apps then I either try the Java route or give up entirely :( .

Andy - you mentioned Java and other alternatives to eVT and .NET. What are these, and are they any good?

Kevin Daly
04-10-2003, 08:31 PM
I think Free/Not Free is a misleading comparison in some ways.

What Microsoft have proposed so far for Compact Framework development is Bloody Expensive as opposed to free, since it is necessary to buy Visual Studio.NET Professional 2003 or higher.
I believe Microsoft could reach a lot more developers by including the smart device development tools in the single language standard editions of VS.NET. Given that these are in fact very reasonably priced, it is likely that many developers who would not have bothered with them (since you can always go it alone with the SDK for non-CF development) without the smart device extensions would buy them just so they could develop for the CF, whereas it is unlikely that many people or even corporations would purchase Visual Studio.NET Professional or up just so they could do smart device development - so I don't see any loss of revenue there.

The assumption that ISVs and so on will be happy just to use embedded C++ is dubious to say the least - Not only are C# and VB.NET not "toy" languages (as I'm sure some of the bearded fraternity would like to believe), but C# fixes many aspects of C++ that are not all that wonderful, and there are certain areas (such as consuming web services) where it frankly shines.
PLUS development time is a big issue today, and this is another area where I believe the .NET languages have a clear advantage.
Lastly, there is the dismissive "Oh, let the dilettantes code if they really *must*" attitude that Microsoft appear to have towards so-called "hobbyists" - the assumption that this is simply a bunch of amateurs playing around who will never produce anything and therefore don't matter. A "hobbyist" is simply someone who writes code for their own enjoyment without being paid to do so by a corporation...many of these people (like myself) are professional programmers who spend some of their spare time on a kind of programming that they don't get to do during their working day - and there is no firm line between "hobbyist" and independent software vendor, because many a hobby has turned into a full-time occupation (er no, I'm not talking about obsessive train-spotting). And many very cool and popular applications have been written by one or two guys who were originally just trying to see what the machine would do.
And even if none of these "hobbyists" go into business by themselves, they will provide a much larger pool of talent that the Enterprises (everyone remember to genuflect) that Microsoft are so fond of can draw on. Especially since many of my fellow enterprise developers are still at the "Oh, is that a Palm Pilot? Hey, you could store recipes on one of those!" stage.
So I return, like a scratched record (remember those? :) ), to my main thesis: that by not making the smart device extensions available with the single-language versions of VS.NET (note that I am not saying they should be free), Microsoft are unnecessarily limiting the spread of the technology and the availability of new applications.

Scott R
04-11-2003, 05:27 AM
Interesting read Andy. You made many of the same points that I stated in that last thread that you linked to. Specifically, I said the same thing about the various groups of developers (enterprise RAD developers, commercial app developers, and hobbyists). However, I would disagree with the value that eVB brings. I know some will disagree, but IMO eVB is junk. It's sub-beta quality and not worth the effort except by hobbyists who know VB, can't afford VS.NET, and are desperate to build an applet for their PPC. The problem, as has already been stated, is that there are only two real options for developing PPC apps moving forward: eVC++ (free but for C++ developers only) and VS.NET (the expensive RAD tool). By pricing VS.NET in a range only acceptable to enterprises, not only do the hobbyists get left out, but MS risks slowing adoption of .NET in general. This is where the following comment you made really puzzled me:
The idea moving forward is to address the strategy, not with free tools but by leveraging two strong assets: the .NET technologies and the massive number of .NET developers.
Is this true where you live? Is there a massive number of .NET developers? As a long-time VB programmer, I took a 5-day VB.NET class earlier this year and have been on the lookout for .NET opportunities. Out my way I aint seein' much.

Scott

Andy Sjostrom
04-11-2003, 08:28 AM
One area of concern (from my perspective) with relation to enterprise and vertical application development is ActiveSync integration. While SQL Server CE replication and Web Services functionality may serve as a solution for some apps, the need for ActiveSync provider development will still exist.

I have yet to hear or see any clear vision or statement of direction with how to address this issue to enterprise developers, especially those who are VB/VB.NET-focused. I can't image having to tell them that C++ and the "black art" of ActiveSync provider development is their only solution.

Has anyone else seen or heard anything regarding this issue?

DonS

Why is this an issue and what scenarios need an ActiveSync provider? Is just end user or is it enterprise, too?

Andy Sjostrom
04-11-2003, 08:30 AM
Andy - you mentioned Java and other alternatives to eVT and .NET. What are these, and are they any good?

Good question. I haven't used any Java alternatives, but in my company some projects do. Anyone here?

Andy Sjostrom
04-11-2003, 08:32 AM
Is there a massive number of .NET developers? As a long-time VB programmer, I took a 5-day VB.NET class earlier this year and have been on the lookout for .NET opportunities. Out my way I aint seein' much.

Sure. Most new projects that are launched today within the company I work for build on the .NET Framework. I believe that the speed will increase even more when VS.NET 2003 is released.

Don Sorcinelli
04-11-2003, 11:52 AM
Why is this an issue and what scenarios need an ActiveSync provider? Is just end user or is it enterprise, too?
Andy,
For some organizations/applications, data synchronizations from the Pocket PC to the desktop are important. With .NET, the options are:

1) Web Services. Not all orgs wish to set up web servers (even within the firewall) just to support this.
2) SQL Server Replication. Not all organizations have a MS SQL Server backend.
3) "My Docs Sync". Using ActiveSync file copies of files (XML, for example), then having an application on the desktop "scoop it up". This is a workaround, at best.
4) ActiveSync providers.

The issue - An enterprise org wishes to build a Smart Device application using VS.NET. They need data synchronization for the application. They are a shop of VB developers who intend to use VB.NET (as is heavily promoted). They get to the ActiveSync issue and ask "Well, how do I write this?"

The issue is (at best) the lack of a .NET answer to this question. As of yet, I have heard no answer other than "Can't do that with VB.NET". My hope is that I am just hearing the wrong answer. Telling someone to use replication or Web Services when it is not a viable solution doesn't work. Its like telling a car buyer they need a sportscar when they ask for a stationwagon.

I have already been asked this question on a couple of occasions. I have been honest thus far in stating the options and the limitations of each. My hope is that the ActiveSync provider answer becomes far more acceptable soon.

BTW - In theory, a creator of commercial software could encounter the same situation. For those developers considering moving into the Smart Device market with VS.NET/VB.NET, this could be a potential roadblock.

DonS