“Today I’ll talk about two of those technologies into more detail. Now, my understanding about the advantages of some of this is sketchy and incomplete since we are, after all, talking about an OS that won’t ship for 3 years. Anyway, those two technologies are: WinFS and managed code in the form of the API called WinFX.” Read the article by Stardock’s Brad Wardell. Update: A reply.
I wish he’d gone into more detail about winfs. Anyone have helpful links on the topic?
he sounds like a C programmer 🙂
all you need to know is how to talk to the API, you don’t need to know how MS implements the back end. all MS needs is a “hook” interface for each API and then your done.
WinFX will make windows much nicer to program in IMO, and will allow MS to fix problems with the system with out having to worry about breaking programs…it is the ULTIMATE in backwards compatabilityness…they can dump FUTURE legacy junk with out breaking anything. not to mention, this will make moving from one platform to another very simple in the future since they just need to change the guts.
and I guess having a side bar is not that big a deal when you think of it in terms of having a wide screen LCD or something.
as for WinFS…it sounds weird. how do you specify saving it to your work server with out needing to know? do you just save it to that stack?
now if Apple would just make a meta API so backward compatibility will be able to be maintained, and I wish they would have all GUI composition done in the video card.
the realization of the true power of Middleware.
why did MS go out and destroy Netscape? because Netscape’s Middleware APIs were a threat to MS..now MS has effectively implemented a Middleware API to bring to fruition the true power of such a system.
and who wants to bet that the way MS allows for hooks will be through the add-in APIs.
What is all this stacks talk? Has anyone ever heard of Piles? It’s a technology apple got a patent for in 1994! What am i missing?! Longhorn is just getting weird! I Isn’t that the same thing?
I must say, i can’t believe longhorn is getting so much attention. It is going to sport features mac users have had since 2000. I can’t even imagine how amazing osx will be in 2006/200.
my big cat will maul your cow
It’s all here:
http://longhorn.msdn.microsoft.com/lhsdk/winfs/daovrwelcometowinfs….
http://msdn.microsoft.com/Longhorn/understanding/ux/default.aspx?pu…
http://longhorn.msdn.microsoft.com/lhsdk/winfs/confilepromotion.asp…
http://longhorn.msdn.microsoft.com/lhsdk/winfs/conunderstandingwinf…
piles is more like a GUI organizational thing….Stacks are queries that have information about he physical location of things found in that query. you don’t need to know that your work papers are on your Work network server…just save any work from home to your work paper stack.
longhorn is about abstraction…abstract the system APIs, abstract the storage locations, abstract abstract, abstract
really cool IMO…I don’t think there is a system with that much abstraction in it right now….maybe Apple will have something similar by then…maybe not.
The concept that they are spouting off has existed in unix for 30 years… You have directories but you dont see the hardware (user perspective not admin).. What is being describe is the *nix file system… Everything is either a file or a directory (hardware too)… You file system (hard drive partions (local/remote), floppy, CD or whatever just appears as a directory that can be accessed and searched for files…
Is this inovation?? They are taking concepts for the unix universe. I guess if you cant beat unix/linux (join them)… Perhaps someone should patent this idea before MS does… Never mind the fact that they didnt come up with the idea…
Here is the quote:
So what does that mean for real world use? Well, there is some talk about replacing folders with “stacks”. Folders would remain but they would be tied to physical directory structures. Stacks would, in effect, be what users would slowly migrate to. Hopefully they’ll come up with a better name.
So what kinds of things can we hope for in stacks? Well, one thing I would hope to see is that physical location becomes irrelevant. For example, tonight I have to update royalty reports, I messed up on the Stellar Frontier royalty report and need to make a correction. Okay. Great. Where did I put the royalty report? If you’re like me, the answer is, I’ll do a search for 2Q2003.xls and it’ll scan through my hard drive. If it’s not here, then it’s at work.
Hello people:
Unix has been doing abstraction for 30 years…. MS didnt orginate the concept… Name any version of unix and you will find abstraction in the file system and devices…. Here is a short list:
solaris, hp-unix, aix, sco, linux, freebsd, openbsd, netbsd, sgi, OS-X/Darwin
the list goes on and on… explore another operating system… try linux, *bsd, sign up for the solaris binaries program; learn more…. MS in the inventor that you believe… please explore…. please….
Stacks are basically improved versions of BeOS’s live queries. It appears like a folder (basically, an iterable container of files) but its contents are not defined statically, but dynamically through some search criteria. Its nifty that they will unify the various data sources (devices, internet, disks, etc) but that’s not really impressive to anyone who has used KIO or gnome-vfs.
As someone previously mentioned, this guy does sound like a c programmer. In fact I think he mentions something about writing device drivers at the end of the article. Nothing wrong with programming in c, but let’s get serious – programming your average app in c in 2008 will be like writing win32 programs in assembly today.
Microsoft will probably provide an sdk that is similiar to what ddks are to developers today. Some people will use them to write to the OS metal, but the vast majority of people won’t.
Overall, I think what they are doing is a good thing.
> programming your average app in c in 2008 will be like writing win32 programs in assembly today.
what do you have against C ?
http://sarah.gloeckler-ulm.de/wic.htm )
Besides, I saw once a page on he web talling how to use the WIN32 API from ASM, and it seems to be even simpler than C/C++
> Here is a short list:
Actually, depending on your definition of Unix, the list can be much bigger or shorter. Defining Unix from the architecture point of view would get OSX dropped (it uses Mach), while some use POSIX+an sh clone as shell, which makes even BeOS an Unix. Linux is of course not a “real” Unix if you take code filiation in account, but it uses the same philosophy.
> Stacks are basically improved versions of BeOS’s live queries.
Nice to see someone remembers
Without having read much about piles (or whatever they are called), I think it should be quite easy to modify Tracker to do this kind of thing, just make a query on an index like “author”, sort that, and draw a single icon for each author…
> but that’s not really impressive to anyone who has used KIO or gnome-vfs.
Though those really are *faked* filesystems, that from the POSIX point of view. Try catting http://www.osnews.com for ex. Note Windows uses the same thing since Win95 (Shell folders, using registry keys, they look like \{1234-5678-123456-ABCD} or something).
BeOS doesn’t either really have queries at the POSIX level, though the filesystem indices are stored in a special folder (= pointed to by the root block, but not accessible from the file hierarchy). Also, file attributes in BeOS aren’t faked unlike gnome/Kde/windows metadatas shown in respective file browsers. If an attribute named “author” is added to a document, it really lies in the document inode in the filesystem.
> abstract, abstract, abstract…
Yeah, if (this->Universe()->FindPlanet(“earth”)->IsDoomed()) { this->Matrix()->Reboot(); }
If you are talking about APIs, go and check Cocoa, and you will learn what abstaction means!!!!!
Without having read much about piles (or whatever they are called), I think it should be quite easy to modify Tracker to do this kind of thing, just make a query on an index like “author”, sort that, and draw a single icon for each author…
I think a separate tool might be required, I can’t quite conceive of how something like that could be done with just queries. But it certainly would be nice – as it stands, you can query on attributes, display them in a filemanager, but not browse by them (the way you can in, say, BeInYourStereo).
The “drag-n-drop metadata editing” idea that I’ve read about in discussions of WinFS sounds interesting too, and I don’t think it would be terribly difficult to implement. Eg., do a query for MP3 files where the artist is Radiohead and the album is Kid A. Let’s say I have Idioteque.mp3 sitting on my desktop, I know it belongs with Kid A, but it doesn’t have its attributes set correctly – so I drag-n-drop it onto the Kid A query, causing the file’s attributes to be updated to match the ones I queried on.
It appears that the author is disgruntled by the fact that he will find it harder to push his hype-ware/snake-oil to the clueless end users. It would be like Symantec complaining that because Windows XP SP2 will include an enhanced firewall, the can no longer justify charging the exorbinant amount they do now.
Stop complaining and look for a new market. That is the ONE problem with alot of Windows developers, instead of looking at developing applications that benefit they user, they’re more concerned with creating tweakers and so-called “optimisers” to work around Windows deficiencies that they know will be fixed in the next release.
When this next release rolls around the corner we have whiners like Draginol complain that his snake-oil can now no longer “hook” into an API. Cry me a river Draginol and look for a new market
umm…yeah, I know Cocoa uses classes, I am talking about abstracting APIs for the OS with interfaces….Cocoa is an API. if Apple were to write some interfaces that mapped to cocoa functions, then you would have abstraction of the system APIs and would allow apple to muck with the API system with out breaking apps.
yeah…I just watched his video, and while I admit it is cool….all that app seems to do is make it possible to make crapware apps that do nothing with a simple drag and drop. I was impressed with how easy it was to make an RSS applet, but still…what is the use?
what do you mean just windows developers? Apple share ware developers have the same mentality.
I agree with your take on Windows developers (some, not all). I posted a comment on their site:
“Is API hooking even necessary if you can change the behavior via subclassing? (You may not be able to change drawing code, but you’re shooting yourself in the foot if you do that – really, you’re a crappy GUI developer if you feel you have to e.g. write your OWN scroll bar class/struct/whatever)”
They should be, as you pointed out, focusing on a good, competitive product for the end user, not on which ways said developers can make the product act more unlike a standard program.
Of course, because he is a Stardock developer, he sees the end of his own product with a forced move to managed code. Time to start thinking about new product ideas, eh?
Uh guys, I’ve been writing in C++ for a decade now as my primary language.
I just happen to know from actual DOING what is involved in extending the base OS features ACROSS the entire platform. We’re not talking about extending features on a per application basis.
Some of the arrogance here is just amazing. “Crapware”? “Snake oil” How about this: The ability to extend the base feature set of the OS across the entire platform by third parties is a big deal.
I’m shocked that any Linux user would even be arguing that. That’s one of the advantages of Open Source. On Windows, it’s closed source but historically developers have been able to add their own features to the base OS using API hooks. We’re ot talking subclassing an existing thing on a per program basis here, we’re talking about being able to do wholesale change.
API hooking is just one type of hook btw. How about mouse and keyboard hooks. Sure, those will probably be spared because Microsoft already knows the importance of Instant Messaging and its need to be able to tell if a user is “idle”. But imagine if that hadn’t already come up and they blocked that.
A lot of innovation comes from developers extending the OS in ways that no one has thought of. They see what’s already there and come up with newer and better ways of doing things.
I am not sure what is “snake oil”, for example, about being able to use XML to create applications in a matter of minutes rather than months using a built in graphics API and integrated Javascripting.
The only ones who will suffer will be users. Developers can always write drivers that reintroduce a missing feature but the average freeware or shareware developer won’t know how to do that.
And people LIKE being able to control how Windows functions for them. WinCustomize.com gets over 2 million unique visitors per month. And there are other sites of similar popularity.
Not everyone is comfortable with the idea that one big company, be it Apple or IBM or Microsoft should decide exactly how you should use your computer.
ok, well if each managed API has an interface to allow you to hook in, then what is your problem?
I did not call destopx crap ware, I called the applets you can make with it crapware….why? because that is what I consider shareware that has no need, i.e. RSS applets, etc.
I think your product is cool.
debman, I was referring to CooCooCaChoo’s comment.
regarding API hooking – the problem is that WinFX won’t actually be doing the work. WinFX is the secretary to the underlying (and eventually undocumented) APIs that do the work.
Just so we’re clear: Overall, WinFX is a BIG deal. A GOOD big deal. Most developers can see the clear advantages of dealing with managed APIs. But it’s a double edged sword — depending on the final implementation, it may become increasingly difficult to do things that Microsoft didn’t already imagine you doing with the OS.
> How about mouse and keyboard hooks.
That pretty much tells about how doomed Windows is.
It’s a whole pile of compatibility layers (from CP/M 80 to WIN32s… though they supposedly removed the DOS stuff from the bottom to the top as an emulator). The situation got better after the 9x era, but still… Actually seeing how many layers each even has to traverse in 9x it’s amazing how fast it was
Now what about having a clean and modular design ? In BeOS hooking into the mouse/key stuff is as simple as dropping a file in the input_server filter add-ons folder.
I agree there are areas where Windows might be much more hookable than BeOS, like the gui skinning (though I had quite a lot of fun hacking skinning support in R5 , but I think BeOS gains that in consistency. The best example I can give is people use to tell me “hey you use Linux ?” while looking at my 98SE desktop, while I only had some toolbars, a DOS box with 4DOS, the win3.1 clock.exe and a greenish color scheme.
Appart that I find BeOS much more “hackable” that windows, that is without having to dig into 500 page VxD or ActiveX manual. Most I can o with a little shell script, thanks to BeOS scriptability.
Now of course, you can find it much fun to have to write a 30 lines script to make a reboot command for windows. (where did I put that script ?)
I think MS is more concerned about the pluses that WinFX will do for them than the problems it will cause add-on ware makers.
Sure, managed code is definitely a good thing from Microsoft’s point of view.
It’s their best shot to “Start from scratch” API-wise by putting the gobbly gook of the past underneath this new, cleaner API layer.
But when you’ve got 90% of the market, it’s important to keep the door open for customization. People use Windows in ways that that are surprising at times.
Obviously, the more restricted Longhorn gets, the better it is for Linux as custom solution providers are likely to flock to the path of least resistance.
and that word is Swing….
Swing, is the MOST extensible gui framework on the market today. It gives you the ability to change the look, feel and behavior of ever part of the GUI toolkit. You can as an independent developer provide a complete overhaul of the swing framework and have everyone else’s code run just fine on it.
However, that comes with a terriable price, of speed.
Hopefully MS will not repeat the mistakes of the past while being able to move forward.
debman, I was referring to CooCooCaChoo’s comment.
regarding API hooking – the problem is that WinFX won’t actually be doing the work. WinFX is the secretary to the underlying (and eventually undocumented) APIs that do the work.
Just so we’re clear: Overall, WinFX is a BIG deal. A GOOD big deal. Most developers can see the clear advantages of dealing with managed APIs. But it’s a double edged sword — depending on the final implementation, it may become increasingly difficult to do things that Microsoft didn’t already imagine you doing with the OS.
What I have an issue with is “hacks” and “work arounds” which users use and as a result, balls up their computer. For all the so-called “work” the Symantecs and Mcafees of the world have done, nothing beats keeping with the defaults, refragging regularly, running Windows Update once and a while and ensure that your virus scanner, IMHO Kaspersky is probably the best IMHO, is regularly updated.
The fact of the matter is these people who make this “hackware” are the equivilant to the loser who creates “Evidence Eliminator” or “TweakDUN”, then whines when people have a clue, shoot them down from their high purch.
I’ve fixed up computers for friends and 9/10 times, the reason why the whole computer has come to a scretching hault is because they’re customised and tweaked this system from here to Mongolia and back. Format the hard disk, reinstall Windows, throw on Kaspersky, run the Windows Update and within a few hours they’ve got a machine working 2x faster because there is no longer all the “tweakware” and “hackware” hogging up memory, rooting the registry and stuffing up other configuration settings.
Good god, talk about being a Microsoft cheer leader.
BTW, Microsoft licenses our “hackware” along with dozens of other Fortune 500 companies.
Pleaes explain how any of our software is “a hack”. Explain how it’s a hack. Here’s a clue: The themeing system on XP is implemented the same way as WindowBlinds is for example. Look at your process list sometime and look at the attached DLLs and you’ll see uxtheme.dll attached to every process. Why? Because even Microsoft uses API hooks.
BTW, on JoeUser you talked about how “ultra niche” desktop enhancements are.
Here’s a list of current licenseees of Object Desktop:
ATI
nVidia
Nintendo
Microsoft
GE
Bell South
These are just ones in the past 90 days btw.
In addition, the installed base on just WindowBlinds is somewhere between 4 and 8 million users depending on how you define an active user. Either figure puts that market as being considerably larger than say the Linux desktop market and in the same area as MacOS X’s installed base.
WinCustomize.com, just one of many Windows customization site gets around 2 million unique visitors per month.
Just because YOU don’t use something doesn’t make it “ultra niche”.
And desktop customization software is only one example of many (such as the things Symantec, Logitech, and many other companies make use of to give Windows new abilities for their customers).
Good god, talk about being a Microsoft cheer leader.
Me a Microsoft cheer leader? good god that is so funny I fell off my chair laughing hysterically. Put it this way sunshine, I would be the *VERY* last person to be praising Microsoft. Being an ex-Amiga, ex-Linux, ex-Solaris and now a Mac user, I can well and truely say I wouldn’t touch a PC running Windows with a 40foot poll if I could avoid it.
[/i]BTW, Microsoft licenses our “hackware” along with dozens of other Fortune 500 companies.[/i]
Like who? Excutive software which provides the defragmenter for Windows uses publicly available API information. Do you know what “hackware” means? good-grief. Hackware is the use of undocumented api calls to perform something that the operating system was never meant to; making Windows 2000 Professional scale to 16 CPUs but tweaking with the registry.
Pleaes explain how any of our software is “a hack”. Explain how it’s a hack. Here’s a clue: The themeing system on XP is implemented the same way as WindowBlinds is for example. Look at your process list sometime and look at the attached DLLs and you’ll see uxtheme.dll attached to every process. Why? Because even Microsoft uses API hooks.
UXTheme is a documented library, hackware uses undocumented work arounds. Now, you may use documented API’s, but my main point is this. If Microsoft closes off one avenue to make money, then look for another.
Why are you now whining that Microsoft has now realised Win32 is a convoluted mess and now needs repairing? WinFX will have restrictions and work differently but if 95% of developers out there are happy with the fact that they now have a nicer API to worth with, why then should they care about a few people who are making customising tools?
Thanks for the links, Eugenia. Very helpful.
So tell me, what undocumented calls do you think WindowBlinds uses?
Let me put this simply for you: WindowBlinds is implemented in the same way as Microsoft’s own theming system.
I agree with your definition of hackware in general. I just don’t see how it applies to the software we make.