Jun 1st, 2007 | Software, Technology, Web
You gotta love that some at Microsoft actually have a sense of humor! From the PopFly FAQ (emphasis mine):
Why did you call it Popfly?
Well, left to our own devices we would have called it "Microsoft Visual Mashup Creator Express, May 2007 Community Tech Preview Internet Edition," but instead we asked some folks for help and they suggested some cool names and we all liked Popfly.
Mar 10th, 2007 | Marketing, Web
A Fresh Cup
Ok, for those who have been keeping up with Mike Gunderloy this is old news but I just ran across it. Mike is one of the most prolific writer/developers I know and one of those rare breed that can evidently learn new technologies in no time flat.
Mike has been working with Microsoft technologies for about fifteen years, but it seems he’s gotten fed up with Microsoft. Even though he is continuing his blog of links to info and tools of interest to .NET developers at The Daily Grind, he has started a new blog named A Fresh Cup where he explores his search for an alternative development platform.
Here is an except of his initial post:
…I’ve spent the bulk of the last fifteen years developing some amount of reputation and expertise in the Microsoft universe…
Unfortunately, over that time I’ve also come to the conclusion that, even though it is staffed largely by smart and ethical people, Microsoft itself represents a grave threat to the future of software development through its increasing inclination to stifle competition through legal shenanigans….
…I can’t afford to just walk out on a career that brings in good money. But I rather desperately want to find an alternative. This blog will record some of my explorations as I hunt around in other corners of the software world, trying to decide if there’s a viable business plan for me that can include weaning myself off of Microsoft software.
So it seems like I’m not the only one who has gotten frustrated with Microsoft as of late.
Feb 27th, 2007 | Opinion, Programming, Software, Web
Back in July of 2006 someone asked on the forum for ASPnix, the web host that specializes in CommunityServer, to add ISAPI Rewrite to their servers so that customers can clean up their URLs. Seven people including myself chimed in asked for it. Over the past eight months, little was said by ASPnix except by a former staffer who implied it was harm the stablity of their servers and who really gave no indication that any real consideration was being made to offer a solution for URL Rewriting.
Well finally, on Feb 22nd, Roma confirmed that ASPnix has will finally be offering ISAPI Rewrite on ASPnix’s web servers. That’s yet another IIS-centric web host who has finally freed its customers from the shackles of poorly designed URL Hell! Hooray!
Now let’s just hope that Scott Watermasysk can be convinced to add URL Rewriting support in CommunityServer using ISAPI Rewrite to eliminate .ASPX extensions and more on CommunityServer, sooner than later.
Feb 17th, 2007 | Opinion, Web
David Laribee just referenced my IIS 7.0: Too Little, Too Late? post and he made an interesting comment that I hadn’t previously pondered but that is very relevent:
It’s a major bummer that there’s no such thing as a virtualized “.NET Application Container” for the new scalable grid computing and provisioning services coming out (Amazon EC2, MediaTemple’s Grid-Server). Essentially .NET programmers can’t easily take advantage of new long tail models with easily-sourced infrastructure services. Going out on a limb, I’d suggest these limitations contribute to a lot of top/entrepreneurial developer talent moving over to various flavors of the LAMP stack, Ruby, etc.
I think this is yet another area where Microsoft is missing the ball. And it is related to the fact that people can’t build and distribute Windows-based stacks as appliances (i.e. because of licensing issues) in the same way people can build and distribute them for Linux. Mark my words, these two aspects are a significant achillie’s heel for Microsoft and will have significant import in the further decline of the Windows Server and .NET platform.
Feb 15th, 2007 | Opinion, Web
Back in January 2006, I blogged about how much I wanted an IIS 7.0 that handles extensionless URL rewriting. Well this week I just got my March 2007 copy of Microsoft’s MSDN Magazine in which they ran a detailed technical preview of the features and functionality of Internet Information Server 7.0. Reading through it, I found myself salivating over it’s capabilities that I’ve needed for literally a decade. Those who follow some of my other escapades know that the #1 feature I want it to provide over IIS 6.0 and prior is the ability to fully control the URL with our without an extension. Yet, something is different now. Five years ago I would metaphorically have killed for that functionality. Even a few years ago, I wanted it badly. But reading about all the great things in IIS 7.0 today for future availability on server hosting platforms next God-knows-when (i.e. after Longhorn ships *and* most Windows-offering web hosts upgrade) sadly comes across to me as just too little, too late.
Too little because Microsoft won’t deliver IIS 7.0 to run on Windows 2003 Server necessitating a costly and in some cases problematic operating system upgrade. This will drastically limit the number of situations in which people can choose to switch to develop for the new features of IIS 7.0. For example, when the funds for operating system upgrades are not in the budget or simply because the developer doesn’t have the corporate clout to convince management of the need to upgrade. And the only people who will even be able to experiment with IIS 7.0 will be those with Windows Vista. And since upgrading to Vista also requires funds and often new hardware, it is not a foregone conclusion. Consequently there will only be a small percentage of Microsoft-centric developers writing web apps that uses the functionality of IIS 7.0 over the next several years. Given the limitations of IIS 6.0, I just find this scenario to be unacceptable.
Too late because Microsoft’s outdated process and slow release cycle, which I blogged about last month, has given rise to compelling alternatives on the Linux platform. And Apache has has many of the key features that IIS 7.0 provides, most importantly via it’s mod_rewrite functionality, that by the time IIS 7.0 is ready for prime time, there’s a good chance only a tiny percentage of web developers will care. I for one need to develop web apps I can run on web hosts today, not wait around and dream for some yet-to-be-determined future brighter day. Microsoft, the rules have changed and you are not immune. You can no longer schedule product updates years out and expect people to wait to pay you for them years from now when free-to-use open-source alternatives addressing the same need exist today. I can no longer bring myself to design or run a web app on IIS 6.0 when the URL management functionality I crave is already available on Apache. And by the time IIS 7.0 is released I doubt I’ll even consider running an IIS server.
However Microsoft, there is a solution if you will only listen, which I highly doubt. Microsoft You should know more than any other tech company that your key to success is getting developers to write programs for your platforms. Yet on the web developers are voting with their feet and most new web applications not sponsored by a "You don’t get fired for buying Microsoft" large company IT organization are choosing to build on Linux and Apache. IIS was once the leading server on the web, but today it can barely eek out more than 1/3rd market share. If you don’t stem this time, things will only get worse. Much worse. Here’s what to do: Release IIS 7.0 as an update for Windows 2003 Server and Windows XP that gets installed automatically via Windows update. Offer it in parallel to IIS 6.0 so it must first be configured by an admin and IIS 6.0 disabled, if necessary. Feel free to restrict it in whatever ways you must given 2003/XP’s lack of Longhorn/Vista infrastructure, but don’t use that as an excuse to eliminate key features such as URL management and HTTP response filtering. Doing this won’t change the minds of those who have already given up on Windows, but it will certainly minimize the profuse bleeding.
Jan 11th, 2007 | Marketing, Web
While I’m not in the habit of link blogging, Jason Kolb blogged a similar take to my recent themes about Microsoft entitled Five Not-So-Easy Steps to Save Microsoft. Jason starts with:
Let me stick a disclaimer on the front of this post: I cut my teeth on Microsoft technology and have been a big supporter of them in the past. I would really like this company to survive because otherwise I’m going to have a lot of useless knowledge cluttering up my brain. However, I am a realist and this is a company in a dangerous situation. It saddens me to see this once great company slowly dying, and I hope they do something to stop the bleeding before it’s too late.
Microsoft is in an interesting situation right now. Their monopoly is fading fast, and the only product they have that’s driving any significant level of buzz is the Xbox 360. They’ve gone from absolutely dominating the technology space to almost falling out of the cutting-edge technology consciousness. They’ve done very little in the past couple of years to enhance their standing as a leading technology company, and I think a lot of people view them as living in the past.
He continues with (emphasis mine):
I think Microsoft is in a precarious situation right now–it’s on the verge of becoming irrelevant. The reason Microsoft has been so dominant over the past twenty years is because they have not only courted programmers, but they (it) made much easier for programmers to use their technology as a platform than any
thing(body) else. This resulted in the majority of mainstream software being written for Windows. Which resulted in more people buying Windows, which resulted in more developers writing for Windows. It was a catch-22 in favor of Microsoft, and they made money hand over fist because of it.
That’s what I’ve been saying recently, though my posts came from a slightly different angle. Jason’s take is that operating systems and language no longer matter (emphasis mine):
The result of this software lifecycle shift has been that developing for a mass audience has a lot less to do with the operating system and a lot more to do with the end-user experience. The language and platform no longer matter, it’s just the end result now. In fact, more than which operating system or language is used, it’s now the ability to scale on an as-needed basis that is the primary requirement for applications. Microsoft fails miserably at this requirement because of their licensing model and the way they try to monetize their software, which they haven’t really changed since the 1980’s. Just from keeping an eye on the Net I sense a mass migration to open source development platforms, and the search trends seem to back that up–as a bonus bad omen, the news volume for their languages is practically non-existant.
While I don’t disagree with his main premise, I don’t completely agree that the language and platform don’t matter; they are still what is used to create and host applications, be they local or on the web, and those things take time to learn and build expertise in. Jason even acknowledges that at the start by saying “…otherwise I’m going to have a lot of useless knowledge cluttering up my brain.”
In my (humble :) opinion, the problem is more in Microsoft’s licensing model which makes it so much easier for people to choose open-source. And I believe people are choosing open-source in droves over Microsoft’s solutions as I know I am starting to. Jason addressed this point in the last paragraph above by saying: “Microsoft fails miserably…because of their licensing model and the way they try to monetize their software, which they haven’t really changed since the 1980’s.”
Jason then goes on to recommend the following five (5) “not so easy” steps to fix Microsoft, which I think are spot-on (except for the last one, that’s at the same time both obvious and too vague to be an action item):
- Release .NET as open source.
- Release Windows as open source.
- Release a SaaS version of Office, ASAP.
- Find a Steve Jobs clone.
- Start innovating again.
Jason of course goes into far more detail and his post is definitely worth a read if you care about these things. Oh, there is one final pull quote I’ll reference on his second step to drive the point home (emphasis mine):
What’s really going to hurt them, however, is the licensing model for the server products. When you compare the cost of running and scaling a Windows-based application versus running and scaling on Linux, it becomes a no-brainer. I can’t think of a single good reason for developing a SaaS application for Windows when you’ll be paying Microsoft licensing fees every time you need to scale, and you could be getting that software for free using Linux. Microsoft needs to consider the operating systems loss leaders and an incredibly powerful way to market their other products, before everyone stops developing for them and everyone stops using them as a result.
Via Ben Coffey.
P.S. I have numerous posts that are in various stages of completion covering some of this same ground from, again, a slightly different angle. But when I finalize and post them, please don’t think them a copy-cat of Jason’s post. :) This is such an obvious area to discuss these day’s, there are lots of similar independent thoughts, for hopefully obvious reason.
Jan 8th, 2007 | Miscellaneous
Jan 7th, 2007 | Opinion
Earlier this year I raved about Microformats here on my blog. When Tantek Çelik gave his presentation at the Future of Web Apps Conference I had numerous epiphanies. As I am want to do, I projected my ideas and envisioned how Microformats could solve several problems on the web and I came away completely enthused. On the strength of its topic alone, I felt it was the best presentation at the show.
I have since spent many hours on uf-discuss, and I’ve come to the conclusion that my enthusiasm for Microformats was unfortunately premature. But before explaining my concerns let me give a quick overview.
30 Second Overview of Microformats
Microformats are developed by a community process and they allow web developers to provide semantic information within an HTML 4.01 document using defined keywords in class attributes. This allows software programs to extract the semantic information from the HTML much like a program could extract information out of an XML file. The following example, if included in a web page would indicate that the content on the page was licensed using Creative Commons license:
<a rel="license" href="http://creativecommons.org/licenses/by/2.0/">License</a>
This example marks up a description of the time and place for the Future of Web Apps conference I attended:
<a class="url" href="http://www.futureofwebapps.com/pastevents.html">
<span class="summary">Carson Workshops' Future of Web Apps</span>
</a> was held
<abbr class="dtstart" title="2006-09-13">September 13</abbr>-
<abbr class="dtend" title="2006-09-14">14</abbr>,
The Presido's Palace of the Arts in San Francisco, California
The previous markup, would display as:
Carson Workshops’ Future of Web Apps was held September 13-14, 2006 at The Presido’s Palace of the Arts in San Francisco, California.
To learn more about Microformats, visit http://microformats.org.
Our Mismatched Vision
I had envisioned a community process defining specific Microformats for different vertical needs, and then web developers using these Microformats to expose extractable data in their web pages. Business partners and other interested parties could then simply scrape these structured pages to retrieve the information all without having to create a separate XML files and related navigation. This would give 80% of the benefit of the semantic web with 20% of the effort.
Unfortunately, the Microformat community’s vision didn’t align.
So where was the mismatch? Read on:
So, after many vision-limiting responses I’ve become both disheartened and disenchanted with Microformats, especially after I envisioned Microformats being able to solve so many real world problems.
After the letdown
After an extremely compelling vision, it’s hard to backtrack and just ignore it. But unfortunately, the Microformats community’s vision doesn’t sync with mine. Continuing to advocate for an alternate vision will likely just waste my time and certainly upset everyone on the list, so that’s not a viable option. Instead, I’ll ponder the issue, and will post again if an alternate solution presents itself.
Microformats good, just know what to expect
However, I do want to clarify that I didn’t write this to trash Microformats or Tantek or the community. I still think the Microformat concept is brilliant, even with its differing vision. I still respect Tantek and the others on the Microformat list and appreciate their efforts. And I’m still impressed by existing Microformats created by the community and would love to see them implemented on all applicable web pages.
No, I didn’t write this to trash Microformats. Instead I wrote it to inform people they should take great care in setting their expectations regarding Microformats. Otherwise they’ll go through the same cycle of elation, frustration, and then disappointment as me. And that won’t do good for anybody. And in fairness, I wrote it in small part to officially register my issues about the governance of the Microformat community.
Jan 1st, 2007 | Opinion
Defining “Occupational Programmer“
I made two posts recently that muddled serveral issues so I am creating a seperate post here to isolate them and provide a location for comments specific to this issue:
Microsoft is not meeting the needs of “Occupational Programmers.”
The first thing I should do is define the term “Occupational Programmer“:
“An Occupational Programmer is one whose job is something besides programming. The programs they write are related to their main job such as streamlining tedious processes or automating labor intensive tasks. These people only spend a small percentage of their time programming.”
Professionals need Industrial Strength
Occupational programmers have significantly different needs than professional programmers or even hobbyists. Professional programmers need industrial strength developer tools. I could blather on forever defining that but I think most professional programmers know what they need as that’s what they focus all their time doing.
Hobbyists need to Learn
Hobbyist programmers main need is to learn. For them each learning experience grows on the past. Further, I would argue most hobbyist programmers are either younger (i.e. in elementary school, high school, or even college with a lot of free time on their hands) or older (i.e. retired and looking for something fun to exercise their brain.) I’m sure there are many hobbyists in between but I’d argue they are not the majority. Hobbyists goal is often to get better at programming, and I believe they are by definition both passionate about it and interested in learning in ways that occupational programmers simply are not.
Occupational Programmers need Productivity
Occupational programmers don’t have time to learn; they’ve got a real job to worry about. And occupational programmers often don’t care about learning the intricasies of programming at a professional level. Most importantly, occupational programmers don’t program frequently enough to transfer their learning from short to long term memory. Tellingly, Microsoft has a Coding4Fun website for hobbyists, but doesn’t have a Coding4Work website for occupational programmers!
Occupational Programmers need Discovery
Occupational programmers also need to be able to discover how to do things without lots of prerequisite knowledge. They need to be able to be highly productive every time the sit down to code. In that vein Microsoft’s “My” object is intuitive enough and addresses discovery.
Occupational Programmers need to Experiment
On the other hand, occupational programmers need to painlessly try things to see what works and not be distracted by lots of complexity. It is here where even Microsoft’s Express Editions fall short. They need a far simplier environment that allows them to type in a single line of code, highlight it, and then press a key to run it; no other prerequisites required. And if, for example, the code won’t run because of a missing reference the environment should pop up a suggestion based on an index of all available components on the user’s system, the occupational programmer should never be left trying to figure out where to go next to solve his problem.
In other words the occupational programmer needs a powerful interpreter but one that works more like SQL Query Analyzer than a command line interpreter. SQL Query Analyzer’s is it’s “canvas” that allows one to leave lots code lying around in various states of completion while it only executes the code that the user has currently highlighted.
Occupational Programmers need Progressive Disclosure
occupational programmers need Progressive Disclosure. They shouldn’t open up a development environment with numerous items competing for their attention. They shouldn’t have to worry about projects or properties or toolboxes, they should have a screen where they can start writing code and the equivalent of a (well designed) “Start” button and menu/wizard system.
Occupational Programmers need their Skills Grown
Additionally, the languages and tools used by occupational programmers should empower they to continually improve their skills without even trying, as they end up building significant systems over time. Some will even change careers to become full-time professional programmers eventually. If they are sandboxed with dead-end language and environment, think VBA or Visual Studio Tools for Applications, that’s no good either.
But Don’t Sandbox Occupational Programmers
And occupational programmers should be given the same languages professional developers use, but in a less-restrictive form; one potential example being a dynamic version of VB.NET with duck typing, etc. This is so professional developers can reuse and refactor the occupational programmer’s components and code. Occupational programmers have specialized knowledge that professional developers simply don’t have and putting them in two different sandboxes doesn’t make sense.
Focus on Languages and Frameworks, not GUI Tools
Further, the tool builders should focus on language and framework first, not the visual tools. Although this applies across the board for developer tools, it’s especially important to state related to occupational programmers because the tendancy is to just throw lots of GUI at less experienced developers, but that approach is fraught with peril (anyone remember Visual InterDev Design Time Controls?) I can acutally write a long post on this topic alone, and plan to, but suffice it to say that the focus should be on making it very easy to implement something in code using the language and the framework, and then create the visual tools to streamline this last.
Not Hard to Serve this HUGE Market
I believe there are tremendous number of occupational programmers out there whose needs are not being served and the irony is that I’m not proposing anything complex. On the contrary, Microsoft has partically all the technology it needs to build and ship the first version of what I’m envisioning within six months or less assuming a 3 to 5 person “SWAT team” that’s sheltered from politics (by 3 to 5 people I mean everyone; development, testing, documentation, marketing, etc.) It would be a tiny investment, and if it was released below the radar and sans Microsoft’s full hype machine it’s benefit to prospective users could be evaluated before they committing Microsoft to supporting any legacies it might create. And Microsoft could call this tool “Power Developer” (I chose that name because of PowerShell.)
There’s a lot more I could say on this issue (and I’ve said some of it in the past), but I’ll leave it at this and await your comments.
P.S. Here are some posts I made over 2.5 years ago on this and related subjects:
And these are some posts over people have made and/or posts with related comments, in no particular order:
P.P.S. If any decision makers at Microsoft are listening but don’t currently have the right person on the inside to champion this idea, they should be aware that I am, at the time of this writing, available to help. :)
Jan 1st, 2007 | Opinion
I made two posts recently that muddled serveral issues so I am creating a seperate post here to isolate them and provide a location for comments specific to this issue:
Microsoft is loosing the battle with its open-source competition in languages and web frameworks because of their obsolete processes and release cycles
In summary, it’s my belief that the processes and release cycle for designing, building and releasing developer tools as well as for attracting developers that worked so well in the 80’s and 90’s are now obsolute when compared to the process in use by the open-source community. Further I believe that if Microsoft doesn’t completely rethink how it manages it’s processes and release cycle for designing, building and releasing developer tools in a manner that is competitive with the open-source process that it will slip farther and farther behind until it’s developers tools become irrelevent. Of course as that happens Microsoft’s platforms will also slowly decline in relevence until it is simply no longer the main player but instead one of many.
That’s not to say they are not doing some things right, they are. But they need revolution not evolution to stay the major player in developer tools.