Fog Creek Software
Discussion Board

If MS Only Cares About The Newest Paradigm...

...are all of the developers who actually possess a sense of user empathy and therefore work very hard to create rock-solid apps screwed?

I mean, if MS cares more about constantly changing things, they're going to break your stuff eventually.  Right?

Wednesday, August 25, 2004

Why do car makers force us to get our oil changed or new tires or that allow that annoying noise in my car door when I hit a bump?

Every company produces the best product they can to maximize sales and profits (at least the publicly traded ones do.)  When will we stop blaming MS for our willingness to buy a product that is missing what we deem essential?

Oh wait, that would be our responsibiity. Can't have that.

Wednesday, August 25, 2004

Don't be too unhappy, it was no doubt hard for them to do this, if indeed they are.

There will always be the two competing user bases which will be very hard to satisfy, as well as the developers who have their own aspirations on what they want to work on. In this sense, the people using programming languages are "users," and it takes time to train them to use something you know is better. Maybe it's not a wise business choice, but if I were a Microsoft developer making $50k (or whatever), I'd probably be sick of supporting the modern analogue of stable mainframe developers.

Tayssir John Gabbour
Wednesday, August 25, 2004

"I mean, if MS cares more about constantly changing things, they're going to break your stuff eventually.  Right?

Microsoft has to keep Windows backward compatible (at least 10 years or more) otherwise corporations (and, to an extend home users) won't buy the next version.

If Windows LongHorn won't run my old Windows 95 apps then I'm going to be very reluctant to use it. Likewise, McDonalds won't buy an XP server if it won't run that DOS program that organizes the orders. ( At least I think it's a DOS program, looks that way).


HOWEVER, they CAN do this to thier .net PLATFORM customers. They can start us on the treadmill where we have to keep installing the latest .net framework because of the the bugs we just found in the current one, or because we want to use the latest IDE features.

Basically, MS may be getting developers onto the same treadmill they got end users on 10 years ago. I can remember how ONE person would get the new MS WORD and everyone else had to get it so they could exchange files.  It was like an ARMS RACE.

That's why I picked Delphi over .net. Well, that and that 40 MB runtime. And the truly compiled, fast, difficult-to-reverse-engineer code.

Mr.Analogy (Shrinkwrap ISV company owner)
Wednesday, August 25, 2004

I'm sure backward compatibility was the main reason for the enterprise move to Java in the late 90's.


Get real. MS cares about the installed base more than most companies. At the same time they realize very well that having an old stallwart but oh-so-good platform is only an option in a growth or faded market. You need to produce new stuff, not only to sell, but also to make progress. You can not stretch old fixtures, eventually they break.

Joel's clever polarization of these issues is good rethoric, but don't take it to far. Under all that posturing, I'm pretty sure that what Joel fears most is that by hopping on a new tech, competitors might produce the same result he gets with the old tools, but with considerably less effort.

Joel has a large investment in the old tech, both in code and expertise. He would like the halflife of this investment to be as long as possible. If progress stopped today, that would be the best possible outcome for him, since he has already proven to be on top of the current state of things. Things like ASP.NET are a major threat to him, since an acceptance of this tech not anly puts him back near the startline with all the new eager startups, but once this race dominates, he will be the one carrying the old ballast around. He does not want to be leapfrogged like that.

So yes, it is in his best interest that MS focusses exclusively on the "old guard", even if this would mean they lost all newcomers. But hey, know what, if MS doesn't give us progress, someone else will.

Remember Joel's "Fire and Motion"? Keep firing at the enemy so they have to duck and you make progress? The "two camps" article is IMHO just that, with MS being the enemy in this case, and a nice dose of "divide and conquer" added for extra effectiveness.

Stagnation sucks as hard as random high frequency ditter. The interesting part is to find the "edge of chaos", that point where you take the system to maximum progress without falling into directionless randomness. A classic polarisation misses the point entirely, as both of these extremes are the worst places on the whole progress scale. So Dare as in this article, be carefull where you're heading. Find the edge, not the poles. Don't let fire and motion paint you in a corner.

Just me (Sir to you)
Thursday, August 26, 2004

We blame MS because MS have a monopoly - once you have a monopoly the normal rules don't apply.

Mr Jack
Thursday, August 26, 2004

"McDonalds won't buy an XP server if it won't run that DOS program that organizes the orders. ( At least I think it's a DOS program, looks that way)."

I thought McDonalds POS ran SCO UnixWare?

At least, that's what everyone says on Slashdot, so it must be true.

Thursday, August 26, 2004

"I thought McDonalds POS ran SCO UnixWare?"

That is my belief.  DOS wouldn't make sense.  If you think back DOS wasn't exactly known for it's networking now, was it.

Thursday, August 26, 2004

Just to inject some real information - if a few years old...

I used to work in the Store Systems group at McDonalds - programming various systems that went into McDonald's Restaurants.

SCO Uxix is being used on a system in the stores. This is the back office system (called the ISP, In Store Processor). This machine helps the manager run the business by doing crew scheduling/ordering/etc. It also communicated with the Point Of Sale systems to gather sales information and (if it's a company owned store) with corporate HQ.

There are actually several different POS systems in use at various stores. The most common is now started as a project in Store Systems. It does run on MS-DOS, not Unix. It was originally designed to be a limited functionality POS (for small stores) but morphed into the be-all-and-end-all POS for McDonalds. When I worked on it, we were using Visual C++ 1.1 for development (after upgrading from MSC 6). The order display that order pickers use is also an MS-DOS machine. Knowing the 'quality' of the code that existed when I worked on it, I'm not suprised that it won't run on XP...

Thursday, August 26, 2004

>>That is my belief.  DOS wouldn't make sense.  If you think back DOS wasn't exactly known for it's networking now, was it.

As a followup, the original McD written POS used a home-grown network layer that talked directly with ARCnet cards.  This was eventually replaced with a standard MS-DOS TCP/IP stack (Novell's, IIRC) when we changed from ARCnet to Ethernet.

Also, The original set of developers were all consultants led by a McD manager that came from the mainframe side. _Everything_ was written in-house - the network layer, screen handling, 'database', etc.

The consultants always looked to see if there was a commercial product, but they always ended up writing their own (because the commercial products were never 'appropriate').

Thursday, August 26, 2004

As a few have commented, MS has one the BEST compatible records in the industry. So, using MS software is one of the best ways to protect you software investment.

I can use a 10+ year old of ms-access on a brand new pc (we are talking windows 3.1, and 16 bit code....the api’s and interface is still preserved today).

I have clients running 15+ year old FoxPro 2.6 code on brand new win xp boxes.

You can head down to Dan’s Bricklens site and get a copy of the original Visi-Calc for the 1981 IBM pc…and it still works to day (less the 32k..the whole application!!).

Apple computer has forced users to throw out COMPLTE sets of code least at least two times now…and then we wonder why MS does so well?

Now, the question remains about MS fascination with “new” technologies.

Well, fact is, MS’s early adoption of new technologies has actually given them a lead and edge in the marketplace MANY TIMES.

When Word and Excel came out with “com” and ole, users were absolute stunned how easy it was to paste in a spreadsheet into word (they nearly killed the competitors in this regards…and WordPerfect users of the day were amazed at how easy word was, and how well it could work with Excel).

So, often, these new forward thinking technologies keeps MS in the hunt. I remember first seeing MS-access many years ago. The BIG difference between ms-access and something like FoxPro was that ms-access was one of the first products to split, or remove the data engine technology from the coding. So, while FoxPro (dbase clone) had a ok programming language, it was much like Pascal, or coding in a old basic language. The code, the data management system were one and the same.

Now, as the market started to move towards client to server, all of a sudden, products like FoxPro where of no use in a client to server. (the code and the data engine were one and the same). You could not use FoxPro in a client to server environment. It is VERY important to realize that MS was not the first to make this split, but MORE important is the architecture they adopted allowed them to move ms-access to client to server.
(I am sure FoxPro wanted client to server…but the tools and technologies they choose where for the here and now…not 10 years down the road).

So, today, I can still write and use ms-access. In fact, today, ms-access was simply a forms IDE, and you use it to connect to whatever data engine you want. So, in effect, ms-access is like VB or most other ide today (and, even more interesting since office 2000 we had the VB6 ide and language to work with).

Fact is, these new advanced concepts that MS adopts now actually gives VERY long lives to their products.  MS did purchase FoxPro, and did eventually re-engineers the whole thing to move the data engine part out of the language part, but it was too late to make a real difference in the market place.

Further, those people who adopted the forward thinking of ms are still able to use access 2003…and get the benefits of current new technologies (xxml, .net web services etc all can be used with access now). So we got dao, then we got ADO and then we got xml for ms-access. The ONLY reason why all these new technologies could be added to ms-access was the forward thinking, and the adoption of advanced architectures (com).

And, even more forward thinking was .net…which is simply the extensions of com and inter program communication across the web (which make sense in today’s connected world).

So, while we often don’t want change…you as a general rule get a good ride with MS. These folks sit around all day thinking about how to use some new architecture to solve a problem. This forward thinking, and constant adaptation of new solutions to new problems is what gives them a edge.

So, I don’t want to be too hard the fact that MS does forward think, and does spend all day dreaming up new technologies to new problems… is likely one of their best traits.

Albert D. Kallal
Edmonton, Alberta Canada

Albert D. Kallal
Thursday, August 26, 2004

When I worked at McD the POS was a PAR system...  It would download data into the *timeclock* of all things, and from there it would be downloaded via modem to the franchise office, along with all the employee time data for payroll.

Inventory was taken by hand on a Telxon hand-held and also upoaded into the timeclock.

There was no DOS or Unix anywhere in the store.

McD '93
Thursday, August 26, 2004

"And, even more forward thinking was .net…which is simply the extensions of com and inter program communication across the web (which make sense in today’s connected world)"

...and is not even remotely similar to Java in any way at all, because until Microsoft created .NET noone at all was using virtual machines or cut-down C++ like languages at all.

Yes, yes, .NET is wonderful I'm sure, and I won't even argue with anyone who wants to claim that it's an excellent implementation of the various concepts involved and I'm Microsoft is even - slowly - adding more C++ features back into C#, but anyone who claims that .NET is "revolutionary" or "innovative" really isn't paying a lot of attention. No matter how good it is, there's a lot more "how can we do what the competition is already doing?" and not a lot of "what can we do that noone has ever thought of before?"

Oh, wait, sorry, I'm wrong. It really is Microsoft that invents new technology, and I guess it's companies like Sun creating Java as a .NET ripoff. I suspect that Microsoft will invent a time machine any day now, and then Sun will rip that off too, which explains why so many Microsoft products look like older products from other companies.  :)

Isn't Apple the R&D branch of MS?
Thursday, August 26, 2004

McD '93,

Before PC-POS (McD's homegrown POS), the 'approved' POS systems were from PAR Microsystems and Panasonic. Since there is little need to change a working POS system, there are still pleny of these systems (as well as one's from prior to them) still in stores.

If you worked in an Owner-Operator store (i.e., a franchise),  you probably wouldn't have had an ISP (the SCO Unix box). They were designed for company owned stores (originally) and most Owner-Ops never did use them.

Thursday, August 26, 2004

>but anyone who claims that .NET is "revolutionary" or "innovative" really isn't paying a lot of attention.

You know, when I see a comment like the above…I got to wonder if people understood my post at all?

You actually think that the big deal about .net is the fact of a p-code runtime system? You actually think that I am sooo stupid to think that runtime package is a innovation?

I wrote a payroll system with UCSD Pascal while just a kid. You know, the UCSD systems was of course a p-code system, with a runtime. You could create a application on the Apple II (which I did), and then move the OBJECT CODE to the IBM pc..and it would run.  (we are talking about 1980 here when I wrote that payroll *before the IBM pc came out!!!).

Gee, did you realize that the MOST popular programming language on the planet (Visual Basic) uses  a p-code runtime system? (it was only until VB5 and VB6 did you have a native compiler (which by the way gave us the same performance as c++).).

Gee, I have software running on the Pick database system in countries around the world. While this database system runs on Linux boxes, it once again is a p-code system, and have been around since the early 1970’s. You can read about my comments on that system here:

And, I made mention of FoxPro….once again, it was a p-code system with a runtime.

And, I made mention of ms-access…once again, it was a p-code system with a runtime.

You starting to see a pattern here? (hint: just about all the most productive software systems on the planet tend to have a runtime system…and the BENEFIT IS NOT THE WRITE ONCE RUN ANYWERE!).

I will leave it up to the users to figure out what the benefits of the runtimes are!

Now, it might be possible that the “lack” of innovation comment has nothing to do with the runtime/p-code concept, but then again, it might?????

>>but anyone who claims that .NET is "revolutionary" or "innovative" really isn't paying a lot of attention.

I actually happen to think that .net is rather revolutionary, and it as mentioned it don’t have anything to do with the clr, p-code and a runtime.

The BIG deal about .net is the fact of inter program communication “com” across the internet. (and, by com, I mean what has been generally refereed to as “com”, “OLE”, “ActiveX” and a number of other terms that MS used over the years.

The reason why this important can be noted in this article of mine (ie: why did not MS choose thin client???).

Yes…once again, MS has made a very important decision for the software industry…

.net is the extensions of code libraries to the internet. In a sense, it is linking of dll’s across the internet.  You actually can set references to libraries on other machines halfway around the world. Both the compiler, and even inteli-sense work with these remote libraries as if they were on your machine! Gee, the whole internet just became one big dll library

Yea…I do think this is a big deal, and it seems a lot of people don’t understand this point at all…..too bad…

Albert D. Kallal
Edmonton, Alberta Canada

Albert D. Kallal
Thursday, August 26, 2004

Albert, isn't this blurring the lines between the local machine and the Internet the cause of most of the security headaches we have at the moment.

Sure, in Unix the very idea of a local machine isn't really part of the system, but Unix, unlike Windows, was designed for distributed computing and has the security model to go with it.

Com and Active X make programming and interoperability easier, but the lack of a sandbox means that the time saved by the programmer is quite likely more than offset by that lost by the users and sysadmins frantically trying to patch the security holes it creates.

Stephen Jones
Friday, August 27, 2004

Stephen, I have to agree with you.

Without question, it is the inter operations of windows applications that is much responsible for secure problems. On the other hand, this “com” nature of windows is very much responsible for the success of windows also.

I have often said more then once if security concerns, and dll’ hell concerns kill these two critical features for windows developers, then virtually all advantages of using windows over other platforms will disappear.  (ok..well, at least for me they will!!)

Hence, with “com”, the users get great inter operability, and developers can use any application on the system as a object.

Of course, the fact that Outlook is a ActiveX object is the very reason why the kid scripters were able to use Outlook to send out emails!

Many people criticize Outlook as being a huge security hole.  Well, ok…sure, Outlook is less secure then is Outlook Express. However, as a developer I need to use Outlook as a com object (or, be faced with software development costs that are too high for my customers).

Right now, if office security is set to anything beyond low, then we developers now need a security certificate (either we purchase one from Veri-Sign), or the company we are doing work for has to generate one for us (boy..what a pain this is!!...but either that...or not com!).

So, sure, now lets write a application to send out a email without com! Now we got to use mapi, and a bunch of library code to call? Yikes, we talking a LOT of work here, but the results are likely going to result in a more secure environment (and a much less useable environment also). Worse, the cost of programming such solution is too much. In fact, you get something that costs too much to make, and price yourself right out of the market place.

Once again, so few seem to understand this cost issue (and especially for the small business market).

I think it does need to said that .net services are program inter op across the net

So, I can have word on my pc, and it can consume web services on a web server somewhere else. In fact, you actually set a reference to that web service, then you can use the properties and methods of that object (web service).  From a developer point of is like I setup a library ref on the locak pc! (really very cool!).

I did want to clear the issue on that so many people seem to focus on the fact that .net is a runtime system. As I mentioned, just about every major product in the marketplace is based on this type of architecture (p-code + runtime). (there are some exceptions..and we thus are talking about more low level development tools )..

However, the reason why so MANY products over the years have been p-code and runtime systems is because you can reduce development cost. Hence, the builders of the tools tend to get out more features (for developers like me in turn to use to develop for my customers).

You have to wonder why in the heck is virtually every development tool I used has been p-code + runtime. (and, I write software for business).

Obviously, I been using the most productive tools I can find in the market place. Hence, as a rule I am talking about tools with higher levels of abstractions. (sorry, no assembler or c++ used here!). So, I will admit the fact of .net being a p-code runtime system. We hear talk about auto memory management etc. However, I  don’t think that this is the real big deal with .net (but this does show that high productively tools tend to be p-code based…and .net does have this good trait). However, with .net the big issue is really the inter op issue.

So….yes….net is the sharing of dll’s on machines all over the planet…and it does beg the question of what kind of security model this results in.

Albert D. Kallal
Edmonton, Alberta Canada

Albert D. Kallal
Friday, August 27, 2004

I agree with you about the PTA it is becoming to use Outlook Exchange Mailboxes from another Office application. I've pretty well decided it's not worth it.

Perhaps you could tell me about getting the company to issue a digital cert, as I'm talking about an in-house program.

On another topic, I do think you are failing to understand Joel's point. Joel's point is that although MS has used new technologies (and really much of the success of W95 and onwards can be put down to Com objects and their successors or predecessors) it has never until now ignored backwards compatibility. This however is what it is doing with .NET, though I do remember people having to download the VB runtime if they didn't have Win 98.

Stephen Jones
Friday, August 27, 2004

"Unix, unlike Windows, was designed for distributed computing and has the security model to go with it."

Come on Stephen, Windows predated the client/server move, but UNIX wasn't all that you make it out to be.

I was just going through this morning (old book, but still quite good for the basics), and read the folowing:

"Most servers run UNIX, which is notorious for its lack of mainframe-style security features and is a particular favorite of [intruders]"

Let us not rewrite history. UNIX has evolved to become more secure, and so has Windows.

Just me (Sir to you)
Friday, August 27, 2004

>Perhaps you could tell me about getting the company to issue a digital cert, as I'm talking about an in-house program.

As a Microsoft MVP, I been told that MS might come up with something for us MVP folks! (but, they are VERY cautions, and do NOT want to get in the certificate business….along with the conflict of interest).

So, you can spend a few hundred dollars, and get a Veri-Sign cert.

Or, on a company by company basis, you can get the system admin to generate a cert for you. I think the company has to install or setup the certificate services, or is it part of the group adimin stuff on the server? Sorry, I don’t know exactly how a cert is issued, but I only know that the system adim CAN issue them in-house. To be fair, this idea does thus make a company MUCH more secure..and will allow in-house developers to continue to use com.

>it has never until now ignored backwards compatibility

Yes, this unprecedented, especially for MS. However, MS is still going to allow the existing code base to run. So, yes, some pain for developers…but consumers can still run their 10 year old software.

You have to note that Apple computers on two occasions has forced both the consumer software AND the developer software to be thrown out (at the same time!!). This did certainly did not kill Apple (did not help much either!). On the other hand, now Apple has a nice clean platform, and Unix underpinnings (likely not such a bad decision in the long run).

So, as it stands…us developers have to change and use new tools…but the consumers at least can still continue to run 10 year old versions of ms software....and that is a lot better then what Apple did.

Albert D. Kallal
Edmonton, Alberta Canada

Albert D. Kallal
Friday, August 27, 2004

To say something is a lot better than what Apple did is rather like telling the inhabitants of Baghdad that what they are suffering now is nothing compared to what happened in 1258 when Genghis Knan raised the city.

Stephen Jones
Saturday, August 28, 2004

Now, Stephan, I realize that is a in cheek remarks….but really?

Imagine a business with 10 macs. To upgrade to new hardware and new os, virtually ALL OF the current software had to be tossed out?

Contrast that with windows…and you can still use 16bit windows 3.1 software (this came at a real cost penalty to ms…but was done for the consumer). You can still use old FoxPro code that runs on DOS!. Virtually everything you EVER purchased can still be used

When Apple forced en-mass throwing out of software, (to both developers and consumers), what do you think Apple customers when they upgraded? They simply took the opportunity to get off the apple treadmill (which, when you break software compatibility means the tread mill stops!!).

MS has BY FAR the best software compatibility track record in the industry.

While we might not like some new architecture stuff…..that is considerably different then being forced to throw out all your existing software like apple did..

Albert D. Kallal
Edmonton, Alberta Canada

Albert D. Kallal
Tuesday, August 31, 2004

You're making my point.

Incidentally, everything changes when you start to look at hardware. Until the development of the WDM, and even after that for some things, upgrading the IS would mean throwing out certain pieces of hardware (scanners for a start).

Stephen Jones
Wednesday, September 1, 2004

*  Recent Topics

*  Fog Creek Home