Win32 API and .Net Future
-
Judah Himango wrote: I believe the reason is two-fold: one, Microsoft wants you to upgrade to Longhorn and buy a new computer. They're a company, companies exist to make money. And while everyone but MS will bitch over this, and about how it may be temporarily bad for your wallet, it's generally good for advancing higher levels of software development, pushes the need for faster and better hardware, it allows developers greater flexibility in terms of what can be done with computing, and generally drives the industry we are making a living off of. People complain about this.. becuase this model doesn't work. Just look at all the people out there still running downlevel OSes. There are *far* more people running something other than Windows XP or Server 2003 than there are running it. Nobody in their right mind would develop software that *only* runs on XP. Same thing will happen in Longhorn... most developers are going to write apps that will be backwards-compatible with XP, 2000, etc. "Fish and guests stink in three days." - Benjamin Franlkin
Navin wrote: There are *far* more people running something other than Windows XP or Server 2003 than there are running it. I disagree. This model works because Microsoft has a monopoly. Take a look at Google Zeitgeist[^], in particular the OSes used to access Google[^]. This is a pretty good indication of the current market - currently 67% of all searches on Google were made by machines running Windows XP or 2000. That's pretty impressive by any standard, just goes to show that a lot of people do in fact upgrade or just buy new machines altogether, even after the .com bomb, even after everyone had already been running a solid OS (Win98 SE). That said, I do agree developers will not develop Longhorn-specific software until a vast majority of machines can run their software, or until emulation software or alternative runtimes ala Mono can run XAML+Avalon on multiple OSes, both of which are very likely to happen. #include "witty_sig.h"
-
Navin wrote: There are *far* more people running something other than Windows XP or Server 2003 than there are running it. I disagree. This model works because Microsoft has a monopoly. Take a look at Google Zeitgeist[^], in particular the OSes used to access Google[^]. This is a pretty good indication of the current market - currently 67% of all searches on Google were made by machines running Windows XP or 2000. That's pretty impressive by any standard, just goes to show that a lot of people do in fact upgrade or just buy new machines altogether, even after the .com bomb, even after everyone had already been running a solid OS (Win98 SE). That said, I do agree developers will not develop Longhorn-specific software until a vast majority of machines can run their software, or until emulation software or alternative runtimes ala Mono can run XAML+Avalon on multiple OSes, both of which are very likely to happen. #include "witty_sig.h"
Judah, I really don't disagree with anything you have said. But your point with 67% also works against WinFX. If your starting a new project and you know you have users that still run XP and 2000 you won't be using WinFX on that project. This is just an undeniable fact.
"No matter where you go, there your are." - Buckaroo Banzai
-pete
-
Judah Himango wrote: It's time for Windows to become a secure operating system, it's time for developers to write software using a modern API, it's time to move on and let Win32 and its associated unmanaged & unsafe rich client apps die. We'll move on to a secure & safe execution environment with rich client apps that run both over the web and locally, with modern user interfaces that utilize the powerful hardware we have today. I am always part-amused and part-irritated with talk about "safe" or "unsafe" code --- a piece of Microsoft marketing fluff that some people have swallowed. What we are moving toward is greater dependence on Microsoft code libraries and there is every reason to believe that they will be as buggy as ever and that the design will be less than ideal. I view the future without concern but also without any illusions that current problems are going to be solved by Microsoft's next version of whatever. John Carson "I believe in an America where the separation of church and state is absolute--where no Catholic prelate would tell the President (should he be Catholic) how to act, and no Protestant minister would tell his parishoners for whom to vote ... and where no man is denied public office merely because his religion differs from the President who might appoint him or the people who might elect him. - John F. Kennedy
Oooh one other thing I'd like to address. John Carson wrote: What we are moving toward is greater dependence on Microsoft code libraries How does running code in a managed virtual machine environment place more dependence on Microsoft? If anything, the abstraction from the underlying platform provided by .NET unties us from any particular platform; you can keep your C# code and run it on Red Hat via Mono, DotGNU, or another alternative managed environment if you want. Whereas if your unmanaged code uses the Win32 library directly, you're completely tied to a Microsoft OS and are forced to either rewrite your code or depend on a Windows emulator ala Wine to run on different platforms. #include "witty_sig.h"
-
Judah, I really don't disagree with anything you have said. But your point with 67% also works against WinFX. If your starting a new project and you know you have users that still run XP and 2000 you won't be using WinFX on that project. This is just an undeniable fact.
"No matter where you go, there your are." - Buckaroo Banzai
-pete
Right, but the point I'm making is that new OSes from Microsoft, especially landmark releases such as Windows 95, XP, or Longhorn, are adopted fairly quickly, and the pace continues until another OS is released. Again, I agree that virtually all developers won't write Longhorn-specific software until a vast majority of users can run it. That means either Microsoft will have to develop an Avalon runtime/emulator for XP and 2k, alternative runtimes like Mono will develop their software such that a majority of users can run it, or Longhorn is run by a vast majority of users. All 3 are certainly possible, but the former 2 are more likely in the nearer future. #include "witty_sig.h"
-
joshfl wrote: almost had to write sum hate mail here. joel ought to stick to software. there is SOooo many reasons this statement is wrong. What are they ? A good modern automatic is in many ways BETTER than a manual transmission in normal driving. The only situation I can think of when its not is when pulling a heavy trailer. There may ba a case for debate about driving in bad weather but that is more a function of antispin antilock technology and not the tranny. Richard "He who joyfully marches in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would suffice. --Albert Einstein
-
Oooh one other thing I'd like to address. John Carson wrote: What we are moving toward is greater dependence on Microsoft code libraries How does running code in a managed virtual machine environment place more dependence on Microsoft? If anything, the abstraction from the underlying platform provided by .NET unties us from any particular platform; you can keep your C# code and run it on Red Hat via Mono, DotGNU, or another alternative managed environment if you want. Whereas if your unmanaged code uses the Win32 library directly, you're completely tied to a Microsoft OS and are forced to either rewrite your code or depend on a Windows emulator ala Wine to run on different platforms. #include "witty_sig.h"
Judah Himango wrote: How does running code in a managed virtual machine environment place more dependence on Microsoft? If anything, the abstraction from the underlying platform provided by .NET unties us from any particular platform; you can keep your C# code and run it on Red Hat via Mono, DotGNU, or another alternative managed environment if you want. Whereas if your unmanaged code uses the Win32 library directly, you're completely tied to a Microsoft OS and are forced to either rewrite your code or depend on a Windows emulator ala Wine to run on different platforms. I referred to dependence on Microsoft code libraries. I agree that there is no greater tying to the Windows platform, just a greater reliance on code libraries that happen to be written by Microsoft (or its imitators in the case of the Mono project). Of course, there are great benefits from code libraries but Microsoft proliferates them at a rate that ensures that they are usually fairly buggy. That and the learning curves involved makes some of them more trouble than they are worth for a lot of developers (though some developers will of course find their lives being made easier). John Carson "I believe in an America where the separation of church and state is absolute--where no Catholic prelate would tell the President (should he be Catholic) how to act, and no Protestant minister would tell his parishoners for whom to vote ... and where no man is denied public office merely because his religion differs from the President who might appoint him or the people who might elect him. - John F. Kennedy
-
There is really not that much difference in fuel use - less than 1 1/2 MPG. In many cases with an unskilled operator the auto will do better than the manual. An automated manual is an auto is it not ? And just what is a slush box ? Soon the question will be moot anyway. When we get to using electric engines there will be no need for a tranny. A modern computer controled transmission is an engineering marvel - take a look at them. Ford is using one in some of their race cars. The Chevy Vette with an auto has performance specs equal to the in line manual tranny as far as acceleration etc.. is concerned. I personally think that the manual tranny is just a macho type thing. There is no longer any need , except in large truck type vehicles, for a manual and all its inheirent problems. Richard "He who joyfully marches in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would suffice. --Albert Einstein
-
joshfl wrote: almost had to write sum hate mail here. joel ought to stick to software. there is SOooo many reasons this statement is wrong. What are they ? A good modern automatic is in many ways BETTER than a manual transmission in normal driving. The only situation I can think of when its not is when pulling a heavy trailer. There may ba a case for debate about driving in bad weather but that is more a function of antispin antilock technology and not the tranny. Richard "He who joyfully marches in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would suffice. --Albert Einstein
I bet you brag about that hot little Dodge Caravan in your driveway, don't you? :rolleyes:
Software Zen:
delete this;
-
John Carson wrote: I am always part-amused and part-irritated with talk about "safe" or "unsafe" code --- a piece of Microsoft marketing fluff that some people have swallowed. That's where you're wrong. Go write a C++ library and put in on the web as an ActiveX control. Guess what - it's unsafe code, and when a user goes to run it, it's an all-or-nothing blind prayer your code doesn't do anything malicious. Or put an unmanaged .exe on the web for download; after I go download it I have to say a few Hail Mary's in hopes your code doesn't do anything bad. Don't like the marketing term 'unsafe code'? Fine, let's just call it potentially dangerous code, because it has the potential to corrupt someone's machine. On the flip side, take a look at so-called 'safe code' using .NET or Java. I can write an applet in Java and the J2EE runtime can guarantee (bugs aside) that the code being run will not harm my machine. Or I can write a C# .exe and deploy it either over the web or run it locally and the CLR runtime can guarantee (bugs aside) that the code being run will not harm my machine. So guess what? It's no longer a pray and run situation anymore! Pray and run situations are bad for the user and have already irreparably damanged the image of computer security. Imagine if all client apps were managed code? Here I could actually click on one of those 'important document' spam attachments without damaging my machine. :-) I don't like marketing terms either, but 'safe' or 'verified' code correctly describes code running in a managed & secure environment ala .NET, and 'unsafe' code very accurately describes unmanaged code. #include "witty_sig.h"
Judah Himango wrote: That's where you're wrong. Go write a C++ library and put in on the web as an ActiveX control. Guess what - it's unsafe code, and when a user goes to run it, it's an all-or-nothing blind prayer your code doesn't do anything malicious. Or put an unmanaged .exe on the web for download; after I go download it I have to say a few Hail Mary's in hopes your code doesn't do anything bad. Don't like the marketing term 'unsafe code'? Fine, let's just call it potentially dangerous code, because it has the potential to corrupt someone's machine. On the flip side, take a look at so-called 'safe code' using .NET or Java. I can write an applet in Java and the J2EE runtime can guarantee (bugs aside) that the code being run will not harm my machine. Or I can write a C# .exe and deploy it either over the web or run it locally and the CLR runtime can guarantee (bugs aside) that the code being run will not harm my machine. So guess what? It's no longer a pray and run situation anymore! Pray and run situations are bad for the user and have already irreparably damanged the image of computer security. Imagine if all client apps were managed code? Here I could actually click on one of those 'important document' spam attachments without damaging my machine. My area is desktop apps rather than network/Internet stuff. In that context, "unsafe" code means manual resource management and the associated risk of resource leaks. In fact, my strong impression is that the chief use of the term by Microsoft relates to manual resource management. This annoys me because the use of sensible C++ programming idioms (use of the Standard library, acquiring resources in constructors and releasing them in destructors, use of smart pointers etc.) makes resource leaks a minor issue. Well-written apps are in this respect very safe. On the other hand, there is ample scope for managed code to be buggy and hence to be "unsafe" in other ways. You make the point that you can run applets in a sandbox and, bugs aside, the sandbox will stop them doing anything malicious. Of course, bugs aside, Windows machines wouldn't have anywhere near the vulnerability to viruses that they currently do. But there are bugs. Nevertheless, I accept the basic point that sandboxes can be useful in restricting permissions to applications that can do their job with limited rights (this, of course, is also the principle behind Administrator vs User privileges and the like on the desktop, which are applicable to "unsafe" C++ code).
-
Navin wrote: There are *far* more people running something other than Windows XP or Server 2003 than there are running it. I disagree. This model works because Microsoft has a monopoly. Take a look at Google Zeitgeist[^], in particular the OSes used to access Google[^]. This is a pretty good indication of the current market - currently 67% of all searches on Google were made by machines running Windows XP or 2000. That's pretty impressive by any standard, just goes to show that a lot of people do in fact upgrade or just buy new machines altogether, even after the .com bomb, even after everyone had already been running a solid OS (Win98 SE). That said, I do agree developers will not develop Longhorn-specific software until a vast majority of machines can run their software, or until emulation software or alternative runtimes ala Mono can run XAML+Avalon on multiple OSes, both of which are very likely to happen. #include "witty_sig.h"
Judah Himango wrote: This is a pretty good indication of the current market - currently 67% of all searches on Google were made by machines running Windows XP or 2000. This is the most ludricous deduction one could make. I see no logic in it all. I still have two PCs at home running '98, but I don't do any googling from them at all. I use one exclusively for email and the other for all my banking/finance stuff. You are ignoring parts of the market. Chris Meech I am Canadian. [heard in a local bar] I think people should be required to have an operator's permit to use the internet. John Simmons
-
joshfl wrote: almost had to write sum hate mail here. joel ought to stick to software. there is SOooo many reasons this statement is wrong. What are they ? A good modern automatic is in many ways BETTER than a manual transmission in normal driving. The only situation I can think of when its not is when pulling a heavy trailer. There may ba a case for debate about driving in bad weather but that is more a function of antispin antilock technology and not the tranny. Richard "He who joyfully marches in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would suffice. --Albert Einstein
What about one big one...
Cost!
Manual transmissions are cheaper in 3 ways: :bob: Better gas mileage (especially at constant speeds, you aren't really doing any shifting, so automatic is just deadweight) :bob: Cheaper purchace price (usually a car with automatic is more expensive than the exact same model with standard) :bob: Service. Ever had to have an automatic transmission replaced? :eek: I have... and then my next car was a manual. "Fish and guests stink in three days." - Benjamin Franlkin
-
Judah Himango wrote: This is a pretty good indication of the current market - currently 67% of all searches on Google were made by machines running Windows XP or 2000. This is the most ludricous deduction one could make. I see no logic in it all. I still have two PCs at home running '98, but I don't do any googling from them at all. I use one exclusively for email and the other for all my banking/finance stuff. You are ignoring parts of the market. Chris Meech I am Canadian. [heard in a local bar] I think people should be required to have an operator's permit to use the internet. John Simmons
Hey the most widely used search engine on the planet says lots of people use feature XYZ? That proves nothing! What terrible reasoning! I have 2 computers at home that don't use feature XYZ, so I must be right and the widely used search engine must be wrong! #include "witty_sig.h"
-
He makes some very good points, and a very interesting view on the MSDN Magazine camp vs. The Raymond Chen camp. As a developer I can agree 100% about the MSDN camp winning; for several months now all I see on MSDN is articles on technology MS wants us to use as a replacement to our existing technology. To make it worse, often times this technology isn't even available to developers (for example, I've been reading many articles and code samples pertaining to Longhorn, Avalon, XAML, generics, etc. which developers can't get unless your boss is generous enough to get an MSDN subscription, and even then it's just tech previews of software of alpha maturity. I disagree with him on several points though. One is the idea that web apps will eventually overtake rich client apps. I don't see this happening, although I think the line between a rich client app and a web app will become blurred as client apps start getting deployed through web browsers. The reason I doubt this is simply because people ~like~ running rich client apps, believe it or not. Sure, web apps suffice for some simpler tasks like web mail, but honestly, no one wants to have to navigate to some URL to run office. MS has done a lot of research in this area and had to change some of their stategies for planned web apps. And it's not just end users, I find (as Joel points out) that most power user/geek types truely despise the idea of replacing client apps with web apps. Just because web apps make deployment a lesser burden on the developer does not mean developers should switch en masse to writing web apps. I also disagree that .NET, the 'unification of the mess of VB, C++, and Win32', has only created a bigger mess. As a former C/C++ developer, I find .NET to be a breath of fresh air from the disaster that is previous programming models in C and VB. Sometimes when things get messy enough, it's time to start with a clean slate. Now .NET doesn't exactly wipe out Win32 (obviously, many parts of .NET wrap existing Win32 and COM APIs) so one could argue that .NET is more a mask over ugliness than a clean slate of beauty, but that's where WinFX comes in, which brings me to the 3rd point I disagree with him. WinFX is going to be revolutionary. If anyone doesn't fully understand the scope of what they're trying to accomplish with Longhorn and WinFX, I urge you to read this article[
-
Navin wrote: There are *far* more people running something other than Windows XP or Server 2003 than there are running it. I disagree. This model works because Microsoft has a monopoly. Take a look at Google Zeitgeist[^], in particular the OSes used to access Google[^]. This is a pretty good indication of the current market - currently 67% of all searches on Google were made by machines running Windows XP or 2000. That's pretty impressive by any standard, just goes to show that a lot of people do in fact upgrade or just buy new machines altogether, even after the .com bomb, even after everyone had already been running a solid OS (Win98 SE). That said, I do agree developers will not develop Longhorn-specific software until a vast majority of machines can run their software, or until emulation software or alternative runtimes ala Mono can run XAML+Avalon on multiple OSes, both of which are very likely to happen. #include "witty_sig.h"
Judah Himango wrote: That said, I do agree developers will not develop Longhorn-specific software until a vast majority of machines can run their software, or until emulation software or alternative runtimes ala Mono can run XAML+Avalon on multiple OSes, both of which are very likely to happen. Chances are the data you showed is for the US only. And it is skewed, these results assume the computers have an Internet connection. This may be true for US, Europe, and other developed countries, but for emerging markets, this is certainly not the case. And a lot of the XP usage is probably people upgrading from toy OSes like 95/98/Me. I doubt Longhorn is such a monumental change. Now if XAML+Avalon ends up getting back-ported to other OSes, then I can see developers using it. But to develop something Longhonr-specific (until 10+ years into the future, when everyone finally upgrades) is ludicrous. "Fish and guests stink in three days." - Benjamin Franlkin
-
Judah Himango wrote: That's where you're wrong. Go write a C++ library and put in on the web as an ActiveX control. Guess what - it's unsafe code, and when a user goes to run it, it's an all-or-nothing blind prayer your code doesn't do anything malicious. Or put an unmanaged .exe on the web for download; after I go download it I have to say a few Hail Mary's in hopes your code doesn't do anything bad. Don't like the marketing term 'unsafe code'? Fine, let's just call it potentially dangerous code, because it has the potential to corrupt someone's machine. On the flip side, take a look at so-called 'safe code' using .NET or Java. I can write an applet in Java and the J2EE runtime can guarantee (bugs aside) that the code being run will not harm my machine. Or I can write a C# .exe and deploy it either over the web or run it locally and the CLR runtime can guarantee (bugs aside) that the code being run will not harm my machine. So guess what? It's no longer a pray and run situation anymore! Pray and run situations are bad for the user and have already irreparably damanged the image of computer security. Imagine if all client apps were managed code? Here I could actually click on one of those 'important document' spam attachments without damaging my machine. My area is desktop apps rather than network/Internet stuff. In that context, "unsafe" code means manual resource management and the associated risk of resource leaks. In fact, my strong impression is that the chief use of the term by Microsoft relates to manual resource management. This annoys me because the use of sensible C++ programming idioms (use of the Standard library, acquiring resources in constructors and releasing them in destructors, use of smart pointers etc.) makes resource leaks a minor issue. Well-written apps are in this respect very safe. On the other hand, there is ample scope for managed code to be buggy and hence to be "unsafe" in other ways. You make the point that you can run applets in a sandbox and, bugs aside, the sandbox will stop them doing anything malicious. Of course, bugs aside, Windows machines wouldn't have anywhere near the vulnerability to viruses that they currently do. But there are bugs. Nevertheless, I accept the basic point that sandboxes can be useful in restricting permissions to applications that can do their job with limited rights (this, of course, is also the principle behind Administrator vs User privileges and the like on the desktop, which are applicable to "unsafe" C++ code).
John Carson wrote: Well-written apps are in this respect very safe. Agreed. Too bad there's so many poorly written unmanaged apps! :-) #include "witty_sig.h"
-
Then ask yourself this. Was Win32 revolutionary? By all means of course it was! The whole point of the article we're discussing is based on the fact that Win32 was what put Microsoft in their place atop the software world. By the same measure then, WinFX will be slowly replacing this once-revolutionary Win32 API. Alone that is a huge move on Microsoft's part. As if that wasn't enough, this will be the first all-managed Windows API, exposed to managed languages first and foremost! What a move away from the past, where OS core libraries are exposed only to unmanaged C developers! But now it's open to all managed languages running in a secure environment. That's big, that's a risk, and it's definitely not spin. #include "witty_sig.h"
-
Then ask yourself this. Was Win32 revolutionary? By all means of course it was! The whole point of the article we're discussing is based on the fact that Win32 was what put Microsoft in their place atop the software world. By the same measure then, WinFX will be slowly replacing this once-revolutionary Win32 API. Alone that is a huge move on Microsoft's part. As if that wasn't enough, this will be the first all-managed Windows API, exposed to managed languages first and foremost! What a move away from the past, where OS core libraries are exposed only to unmanaged C developers! But now it's open to all managed languages running in a secure environment. That's big, that's a risk, and it's definitely not spin. #include "witty_sig.h"
Judah Himango wrote: Then ask yourself this. Was Win32 revolutionary? i'm not sure that says a damned thing about whether or not WinFX will be revolutionary. you get back to me in three years when it's finally out. if it hasn't been replaced by four or five other Brand New Revolutionary Technologies, i'll concede. Software | Cleek
-
Hey the most widely used search engine on the planet says lots of people use feature XYZ? That proves nothing! What terrible reasoning! I have 2 computers at home that don't use feature XYZ, so I must be right and the widely used search engine must be wrong! #include "witty_sig.h"
Once again another idiot has prooved that axiom. When jumping to conclusions, there is an underlying agenda that needs to be propogated. I called into question your lack of logic in jumping from a statistic that 67% of all Googlers use XP to state that the majority of all computers run XP(which is the point you were trying to make). Go dig up more data and apply some logical analysis for backing up your arguments. Chris Meech I am Canadian. [heard in a local bar] I think people should be required to have an operator's permit to use the internet. John Simmons
-
Judah Himango wrote: Then ask yourself this. Was Win32 revolutionary? i'm not sure that says a damned thing about whether or not WinFX will be revolutionary. you get back to me in three years when it's finally out. if it hasn't been replaced by four or five other Brand New Revolutionary Technologies, i'll concede. Software | Cleek
Chris Losinger wrote: back to me in three years when it's finally out Oh, you optimist you! :) Chris Meech I am Canadian. [heard in a local bar] I think people should be required to have an operator's permit to use the internet. John Simmons
-
What about one big one...
Cost!
Manual transmissions are cheaper in 3 ways: :bob: Better gas mileage (especially at constant speeds, you aren't really doing any shifting, so automatic is just deadweight) :bob: Cheaper purchace price (usually a car with automatic is more expensive than the exact same model with standard) :bob: Service. Ever had to have an automatic transmission replaced? :eek: I have... and then my next car was a manual. "Fish and guests stink in three days." - Benjamin Franlkin
Navin wrote: Better gas mileage (especially at constant speeds, you aren't really doing any shifting, so automatic is just deadweight But so is a manual in this case. And an overdrive auto tranny could possible exceed a manual tranny in MPG at crusing speeds. Depends on the type of terrain. On flat ground the auto would be better - on hilly ground the manual - if you know how to use it. Navin wrote: Cheaper purchace price (usually a car with automatic is more expensive than the exact same model with standard And considerably less resale value. What you may loose on one end you get back on the other. Even more important is that with a manual tranny you limit the number of prople that will even look at the vehicle on resale lowering the resale value even more. Navin wrote: Service. Ever had to have an automatic transmission replaced? I have... and then my next car was a manual To each his own. The last car I owned with a manual tranny ( other than a couple of off road jobs ) was a 65 Corvette. It had a manual 4 speed ( L88 ) 327 CI V8 375 HP and a 2.75 rear end if I remember correctly ( and I'm really not sure I had 3 or 4 different ones installed). And I was working on the clutch every 3 months - and thats expensive. Maybe it is just luck or whatever but I have NEVER had to replace a auto in any car I have ever owned. I presently own a 93 TBird Super coupe with a 4 speed auto with overdrive with 121K on it and the tranny is fine - and it has been drove hard and fast. It has been completly restored to factory specs and doesn't get driven much anymore but the drive train is as solid as a rock. If you take care of them - they take care of you. Richard "He who joyfully marches in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would suffice. --Albert Einstein