Not working at Microsoft, but to my knowledge they used to use Clearcase (I was at a Rational seminar in 99 where they bragged about having Microsoft as customer)
but to my knowledge they nowadays use Perforce or some kind of Perforce fork, which is very similar to SVN but is better.
Actually you must be a clearacase only user, if you ever had to admin it you would hate it.
No SVN is not even comparable. While clearcase builds a unix on top of everything before even going into the versioning infrastructure and then adds lots of bloat which most people never will need, SVN just tries to do what a centralized version system does.
Clearcase however has the advantage of having a stable repo replication mechanism (which you pay huge dollars for)
Subversion is not there yet, there is a project which allows decentralized versioning on top but it is not yet integrated.
You wont get some kind of semi working software process like in clearcase, all you can get is a working versioning server and the tools around it. But on the other hand you also dont need a full administration departement to keep things up and running.
Sorry to say that, but Clearcase in 99.999% of all cases is totally versioning system overkill.
Not really concrete figures, but apache hosts following infrastructures:
apache
jakarta
apache-xml
with jakarta alone having more than 30 subprojects many of them in the realm of several million lines of code...
so go figure it out yourself.
but besides that, those two big installations clearly show, that subversion really is ready for serious use.
All I wished for would be a decent KDE and OSX frontend to SVN, the best would be to have svn integrated into konqueror and getting versioning on vfs level that way, just the way tortoise does it.
Not really for trouble, SVN is stable, so is the clients and if you use eclipse, the eclipse plugin is excellent, but is misses small functionality here and there.
(the main problem I have is detaching and reattaching a project still does not work yet, sync however works...)
Well depends on how you see it, the devs currently are busy to implement everything which the eclipse CVS plugin can do, which is quite a lot.
They are 95% there with small functionalities missing.
Nevertheless the plugin people usually deliver a new javasvn and subclipse version within a few days timeframe of a new svn version, and currently the plugin is pretty much the best svn crossplatform client you can get.
Apache almost switched all of is infrastructure to SVN...
if you know that Apache.org is a little bit more than simply the webserver, you know what I mean.
Guess the code which already is hosted on the Apache SVN outnumbers the one from the KDE project.
not necessarly, you just have to set an interceptor which is triggered once the values are edited and updated...
very easy to to, either with direct db related interceptors, application events or aspects...
Obviously never has seen a CAVE installation.
There are two of them in my city, one being publicly accessible in a museum of modern technology.
That thing is the closest thing to a holodeck we nowadays can get, and all done with nowadays sort of affordable technology (a few years ago though that stuff was hilariously expensive, needing a big SGI and good beamers also were not run of the mill things), nowadays that stuff is driven by a handful of PCs and beamers you can get at every electronics supermarket.
In a system which grants admin priviledges to every user of course raw sockets can be dangerous.
But the problem is less raw sockets, the problem is more the system itself which uses it.
It really depends, I can see stuff like ORM mappers
and simple JSF ides going down the budget router within a two years timeframe (at least they will become affordable for small developers)
Stuff like EJB sane Corba and Soap handling will be expensive much longer.
But the price will drop for this stuff.
Integrated good case tools will be the last ones which will drop in price. So it is safe to say, the current enterprise stuff will remain at least for another 2-3 years on a really high price level.
Although I love myeclipse for its price feature ratio, I can see the real higher value of real enterprise IDEs. I would love to have a tool which does the hibernate JSF mapping, I would love to have a good graphical mapper between DB and Database classes, I would love to have a good integrated case tool. All this stuff is achievable on a budget with meta data compilers and build files, but you spend much more time to get things rolling by simply buying one of the big enterprise ides.
I have yet to see a lisp and smalltalk IDE which beats a good eclipse-plugins combination. Sorry, but Smalltalk could have been what Java nowadays is, if the Smalltalk vendors would not have shot themselves out of the market by buying themselves off and then telling half of their customer base to go for greaner pastures...
(I am talking about the Digitalk - Parcplace fiasko, which basically killed the entire Smalltalk market within one year)
The biggest problem for Borland was, that HJelfsberg left. However, I would hardly call Borlands C++ Compiler being the best of its, time, it was bug ridden as hell.
I left the Borland C++ compiler before C++ builder, however I must say, their Pascal compilers always were top notch.
Their pricing policy did not help them either to keep me. Once Borland called itself Inprise, their prices went the from the fair prices for fair software to, insance prices for mediocre quality way. Back then I worked at a company, which seriously considered the Corba Orb which Borland later bought for a project. Borland/Inprise bought the ORB and what happened was, that within a day, they hiked the prices 100% and the company I worked moved to the strongest competitor which was at a sane pricelevel.
The same desaster with Interbase, they bought it from Ashton Tate and had a possible Oracle killer at their hands, but never recognized the Gem. They drove customers away with the constant course between we will make another version and we will kill the product. Interbase still lives thanks to the OpenSource fork. Otherwise this excellent DB would be dead by now.
The problem with Borland is nowadays, that they got a market with JBuilder, but they are somehow crushed by Eclipse and by Microsoft.Net and somehow are caught in the middle with almost nothing really worthwile anymore. Corba not really interesting anymore. The database market was sort of never really a thought by them and basically they drove their old Interbase customers away and never managed to get new ones. The enterprise IDE market still is alive, but within a five years timeframe, the prices will come to a sane level for this stuff. Exadel and MyEclipse lead the way here.
Borland is basically caught in the middle between IBM and Microsoft, the only way out I see for them is to move their enterprise stuff to a sane pricevel and become some kind of Plugin Vendor for Eclipse and VStudio.net.
Actually you are totally correct, about half a year ago, I privately thought about the problems of AOP and why I never used it, and the problem was, you do not have clear identifyable regions in your code which marks the crosscut regions.
I went the AOP rout recently and I am very happy with it, currently using spring, the only thing I am not happy with is, that there still is too much lack in being able to mark crosscut regions clearly.
meta attributes will be able to resolve that issue on a clean semantic base.
They always were...
Every article or comment I read from one of those consultant companies, normally even lacked basic CS understanding you learn within the first 3 semesters of computer science. The output of them is usually from clueless or business people for clueless and business people, with some CS coloring on top of the garbage they write.
Sorry to say it, but there is one domain a good OO language (and every OO language except C++ tries to cover that) has to cover extensively, and that is giving the user an extensive classlib for client server programming, which works over multiple platforms. C++ basically omitted that, and it literally took ages until they even settled for a half decent data structure classlib, one of the most basic things any OO language should deliver.
If you compared C++ to systems like Smalltalk, Inferno, Objective C (which has this kindof thanks to the portable openstep specs), Java, C#, and even non OO systems like Oberon, face it C++ falls flat on the face, and the C++ people still up today wont admit this mistake.
Ansi/ISO has failed hugely in this area partially vendor lockin has to be blamed there. And no a widespread adoption of C++ in embedded and various other areas is not a reason not to standardize that stuff, because if you dont want to use it, do not use it, it is as simple as that!
It depends really on the scope, per se, PHP is much slower than java, however, it all depends on the layers you use.
I will give you an example: PHP4 is basically just procedural code with direct DB access embedded into a very simple templating mechanism. You can a achiev e pretty much the same in java by going towards blank jsp with direct jdbc access, you will have more speed than PHP in java that way, but you will get some small database abstraction that way. Very easy to code, but sort of verbose and no real MVC in there, which makes relayouting rather hard.
Once you go the framework way, you will end up with much slower programs but you have a higher abstraction level. For instance, you can dump jdbc altogether and you can go the plain JDO,Hibernate route. That way you still will have a plain fast renderer for pages, but you db access will be for smaller stuff much slower, due to the higher abstraction level. But what you gain is almost total db independence that way and automatic object-table mapping in a very sophisticated manner. (Stuff which you have to do anyway, once your app becomes bigger)
Then you go even further and you try to abstract the control handling, you can try to move several stuff into the AOP domain. You might end up with something like JSF, where you can start to layout pages and the page flow with visual tools but you also end up with a price you have to pay for all this higher abstraction, which in the end might make things once the application becomes bigger, more maintainable. (Like having various layouts for various customers, being able to move between oracle and postgres in a snap, not having the problem of having to maintain huge javascript graves once the customer wants sort of useful controls etc...)
In the end it really depends on the problem domain, and how and why you end up with the stuff you use. If you just go for one technology for a certain problem because it is cool you might end up in a huge mess. A classical example is EJB, which never was really good, it hat a certain limited set of domains where you could really apply it really well, but in the end around 99% of all applications which used it, would have been better off with a simple JSP or PHP solution.
It would be new to me that wikipedia does not cluster...
There are limits where you have to start to cluster, and if you dont reach them on the app server side, you at a single point will reach them on the DB side of things.
You are definitely right, but yet this problem is also a pattern issue, for instance, with Factory patterns, or with Runtime Object binding you basically run into the same issues, AOP is just another construct you can run into the mess if you do not take care.
The classical example of this, is to move lots of servicing code which happens to be in every application into some kind of beehive construct where you initialize the objects and their bindings with configuration files, you usually do not have any control if somebody injects code that way. But yet some of this stuff can be really useful, in unit testing for instance, where you easily can inject and replace mock objects in a bigger system with an implementation and you can find instantly errors to the spec.
Same goes for AOP.
But the benefit in AOP is, there are several areas which ever bigger application has to face, which basically AOP really can help to make the code more readable if you use it wisely and not overdo it. The classical examples are, to move the error handling and logging code into central application scoped aspects, and also to build central aspects which which you can define crosscut concerns for, which enable you to automatically put a method into a clean transactional scope. The same would be possible for putting a method into a remote scope. All of this can be done without having to write a single line of code in the core algorithms.
Just like goto, which I would not totally consider harmful. Goto has its place in programs which need a precise command which maps directly to a processor jump instruction, therefore goto or similar constructs are widely used in system near programming.
I have to admit, I stayed away from AOP for a long time, but that stuff can be really useful if applied in the proper manner. The usual application has lots of sideconstraints which basically stain your algorithms up to a point, where you end up having 2/3rd side constraint code, 1/3rd algorithmic code. The side constraint is constantly the same over and over again, only altered slightly according to the state of the algorithm.
Now if you move that code in a well documented and clean manner into aspects, you can gain a lot.
Aspects however are a deadly construct, if you go the AOP is everywhere manner and dont limit yourself to the basic rule, use it seldom and use it wisely but use it whenever you can achieve a cleaner code with it. If you go the aspect here aspect there route, you end up in a bigger mess than with a huge spaghetti code and 100 gotos in there.
Perfect examples for AOP are, to move the error handling code of checked exceptions out of the algorithms into aspects, another one would be to get a clean semi automatic transactional scope in methods which are called from the outside. Both things can be achieved with aspects in a much cleaner way, than with traditional programming, but if you use this stuff in that manner, document it and comment it, otherwise the persons who will follow you cannot see that the method is in a transactional scope.
So aspects are definitely worthwile using (I learned that once I jumped over the wall of considering it a deadly construct), but you really have to be careful to limit it to a few problem domains.
Bookmarking was a mistake of mine,yes , but I commented about several points, which were taken away, and made the experience of nautilus in browsing mode much worse than it used to be in the original version.
The funny thing is, konqueror resembles the original Nautilus in many ways, you still can tab and split and you can mix between various document formats fileformats etc.. sort of like an all in one container which can be made to a next generation norton commander. Nautilus used to be like that, before the gnome people decided to remove things instead of fixing the problems (which was speed in nautiluss case)
The spatial mode is an interesting option, but it is sort of really forced onto the users, there is no easy one button click to turn it off.
Spatial mode could become interesting the Workplace shell way (if you have ever seen how the old IBM compiler set worked within the WPS you know what I mean)
Sort of like that applications are an extension to the files. I will give an example. Currently if you want to burn a CD you have to either type burn:// in browsing mode (which is rather undocumented) or you have to go to places->cd burner. Then you have exactly one option, burn a CD...
The better way would be devices->cd burner and then having the option of buring a music cd, a mixed mode, a dvd, video CD etc... and that sort of as subfolders, so that the burning format sort of is like a subfolder.
Another way would be to have a directory on your desktop which resembles the burner, and once you want to burn it asks you which burner you want to use (if you have more than one)
Another option would be to have a context menu or a taskbar applet for burning.
But none of these approaches were followed, the Gnome people could really learn an important lesson here, spatial browsing was just one small aspect of a really object oriented desktop, the basic idea was to have exactly one application, the desktop, and various objects and the applications were just extensions to that idea which were sort of seamlessly triggered by object activation.
The workplace shell was the only desktop to my knowledge which at least tried to follow this idea, Apple never really did and Microsoft still is busy copying Apple.
NeXT could have been exactly that, they already were on that path, but then they went the Apple way of things. And RiscOS never came that far.
Gnome just shouted spatial mode, but a quick inspection of things again revealed to me, that it just was cool for them, but they did not understand the idea behind it and how things should be if you go the spatial way.
Not working at Microsoft, but to my knowledge they used to use Clearcase (I was at a Rational seminar in 99 where they bragged about having Microsoft as customer) but to my knowledge they nowadays use Perforce or some kind of Perforce fork, which is very similar to SVN but is better.
Actually you must be a clearacase only user, if you ever had to admin it you would hate it. No SVN is not even comparable. While clearcase builds a unix on top of everything before even going into the versioning infrastructure and then adds lots of bloat which most people never will need, SVN just tries to do what a centralized version system does. Clearcase however has the advantage of having a stable repo replication mechanism (which you pay huge dollars for) Subversion is not there yet, there is a project which allows decentralized versioning on top but it is not yet integrated. You wont get some kind of semi working software process like in clearcase, all you can get is a working versioning server and the tools around it. But on the other hand you also dont need a full administration departement to keep things up and running.
Sorry to say that, but Clearcase in 99.999% of all cases is totally versioning system overkill.
Not really concrete figures, but apache hosts following infrastructures: apache jakarta apache-xml
with jakarta alone having more than 30 subprojects many of them in the realm of several million lines of code... so go figure it out yourself.
but besides that, those two big installations clearly show, that subversion really is ready for serious use. All I wished for would be a decent KDE and OSX frontend to SVN, the best would be to have svn integrated into konqueror and getting versioning on vfs level that way, just the way tortoise does it.
Not really for trouble, SVN is stable, so is the clients and if you use eclipse, the eclipse plugin is excellent, but is misses small functionality here and there. (the main problem I have is detaching and reattaching a project still does not work yet, sync however works...)
Well depends on how you see it, the devs currently are busy to implement everything which the eclipse CVS plugin can do, which is quite a lot. They are 95% there with small functionalities missing.
Nevertheless the plugin people usually deliver a new javasvn and subclipse version within a few days timeframe of a new svn version, and currently the plugin is pretty much the best svn crossplatform client you can get.
Apache almost switched all of is infrastructure to SVN... if you know that Apache.org is a little bit more than simply the webserver, you know what I mean. Guess the code which already is hosted on the Apache SVN outnumbers the one from the KDE project.
But nevertheless, Konkratulations
not necessarly, you just have to set an interceptor which is triggered once the values are edited and updated... very easy to to, either with direct db related interceptors, application events or aspects...
Obviously never has seen a CAVE installation. There are two of them in my city, one being publicly accessible in a museum of modern technology.
That thing is the closest thing to a holodeck we nowadays can get, and all done with nowadays sort of affordable technology (a few years ago though that stuff was hilariously expensive, needing a big SGI and good beamers also were not run of the mill things), nowadays that stuff is driven by a handful of PCs and beamers you can get at every electronics supermarket.
In a system which grants admin priviledges to every user of course raw sockets can be dangerous. But the problem is less raw sockets, the problem is more the system itself which uses it.
Add to that, Core Audio, Core Video, Core Data, Dashboard, Xcode2 and the Automator....
Ahh come on... there are still at least 15 years where he can do, Indiana Jones and the Lost Dentals movie :-)
Microsoft does that as well... Microsoft sometimes even ships software which does not work...
It really depends, I can see stuff like ORM mappers and simple JSF ides going down the budget router within a two years timeframe (at least they will become affordable for small developers) Stuff like EJB sane Corba and Soap handling will be expensive much longer. But the price will drop for this stuff. Integrated good case tools will be the last ones which will drop in price. So it is safe to say, the current enterprise stuff will remain at least for another 2-3 years on a really high price level.
Although I love myeclipse for its price feature ratio, I can see the real higher value of real enterprise IDEs. I would love to have a tool which does the hibernate JSF mapping, I would love to have a good graphical mapper between DB and Database classes, I would love to have a good integrated case tool. All this stuff is achievable on a budget with meta data compilers and build files, but you spend much more time to get things rolling by simply buying one of the big enterprise ides.
I have yet to see a lisp and smalltalk IDE which beats a good eclipse-plugins combination. Sorry, but Smalltalk could have been what Java nowadays is, if the Smalltalk vendors would not have shot themselves out of the market by buying themselves off and then telling half of their customer base to go for greaner pastures... (I am talking about the Digitalk - Parcplace fiasko, which basically killed the entire Smalltalk market within one year)
The biggest problem for Borland was, that HJelfsberg left. However, I would hardly call Borlands C++ Compiler being the best of its, time, it was bug ridden as hell.
.Net and somehow are caught in the middle with almost nothing really worthwile anymore. Corba not really interesting anymore. The database market was sort of never really a thought by them and basically they drove their old Interbase customers away and never managed to get new ones. The enterprise IDE market still is alive, but within a five years timeframe, the prices will come to a sane level for this stuff. Exadel and MyEclipse lead the way here.
I left the Borland C++ compiler before C++ builder, however I must say, their Pascal compilers always were top notch.
Their pricing policy did not help them either to keep me. Once Borland called itself Inprise, their prices went the from the fair prices for fair software to, insance prices for mediocre quality way. Back then I worked at a company, which seriously considered the Corba Orb which Borland later bought for a project. Borland/Inprise bought the ORB and what happened was, that within a day, they hiked the prices 100% and the company I worked moved to the strongest competitor which was at a sane pricelevel.
The same desaster with Interbase, they bought it from Ashton Tate and had a possible Oracle killer at their hands, but never recognized the Gem. They drove customers away with the constant course between we will make another version and we will kill the product. Interbase still lives thanks to the OpenSource fork. Otherwise this excellent DB would be dead by now.
The problem with Borland is nowadays, that they got a market with JBuilder, but they are somehow crushed by Eclipse and by Microsoft
Borland is basically caught in the middle between IBM and Microsoft, the only way out I see for them is to move their enterprise stuff to a sane pricevel and become some kind of Plugin Vendor for Eclipse and VStudio.net.
Actually you are totally correct, about half a year ago, I privately thought about the problems of AOP and why I never used it, and the problem was, you do not have clear identifyable regions in your code which marks the crosscut regions.
I went the AOP rout recently and I am very happy with it, currently using spring, the only thing I am not happy with is, that there still is too much lack in being able to mark crosscut regions clearly. meta attributes will be able to resolve that issue on a clean semantic base.
They always were... Every article or comment I read from one of those consultant companies, normally even lacked basic CS understanding you learn within the first 3 semesters of computer science. The output of them is usually from clueless or business people for clueless and business people, with some CS coloring on top of the garbage they write.
No... actually it fixes the problem of constantly having code which is non problem domain related messing up your domain related algorithms...
Sorry to say it, but there is one domain a good OO language (and every OO language except C++ tries to cover that) has to cover extensively, and that is giving the user an extensive classlib for client server programming, which works over multiple platforms. C++ basically omitted that, and it literally took ages until they even settled for a half decent data structure classlib, one of the most basic things any OO language should deliver.
If you compared C++ to systems like Smalltalk, Inferno, Objective C (which has this kindof thanks to the portable openstep specs), Java, C#, and even non OO systems like Oberon, face it C++ falls flat on the face, and the C++ people still up today wont admit this mistake.
Ansi/ISO has failed hugely in this area partially vendor lockin has to be blamed there. And no a widespread adoption of C++ in embedded and various other areas is not a reason not to standardize that stuff, because if you dont want to use it, do not use it, it is as simple as that!
It depends really on the scope, per se, PHP is much slower than java, however, it all depends on the layers you use.
I will give you an example: PHP4 is basically just procedural code with direct DB access embedded into a very simple templating mechanism. You can a achiev e pretty much the same in java by going towards blank jsp with direct jdbc access, you will have more speed than PHP in java that way, but you will get some small database abstraction that way. Very easy to code, but sort of verbose and no real MVC in there, which makes relayouting rather hard.
Once you go the framework way, you will end up with much slower programs but you have a higher abstraction level. For instance, you can dump jdbc altogether and you can go the plain JDO,Hibernate route. That way you still will have a plain fast renderer for pages, but you db access will be for smaller stuff much slower, due to the higher abstraction level. But what you gain is almost total db independence that way and automatic object-table mapping in a very sophisticated manner. (Stuff which you have to do anyway, once your app becomes bigger) Then you go even further and you try to abstract the control handling, you can try to move several stuff into the AOP domain. You might end up with something like JSF, where you can start to layout pages and the page flow with visual tools but you also end up with a price you have to pay for all this higher abstraction, which in the end might make things once the application becomes bigger, more maintainable. (Like having various layouts for various customers, being able to move between oracle and postgres in a snap, not having the problem of having to maintain huge javascript graves once the customer wants sort of useful controls etc...)
In the end it really depends on the problem domain, and how and why you end up with the stuff you use. If you just go for one technology for a certain problem because it is cool you might end up in a huge mess. A classical example is EJB, which never was really good, it hat a certain limited set of domains where you could really apply it really well, but in the end around 99% of all applications which used it, would have been better off with a simple JSP or PHP solution.
It would be new to me that wikipedia does not cluster... There are limits where you have to start to cluster, and if you dont reach them on the app server side, you at a single point will reach them on the DB side of things.
You are definitely right, but yet this problem is also a pattern issue, for instance, with Factory patterns, or with Runtime Object binding you basically run into the same issues, AOP is just another construct you can run into the mess if you do not take care.
The classical example of this, is to move lots of servicing code which happens to be in every application into some kind of beehive construct where you initialize the objects and their bindings with configuration files, you usually do not have any control if somebody injects code that way. But yet some of this stuff can be really useful, in unit testing for instance, where you easily can inject and replace mock objects in a bigger system with an implementation and you can find instantly errors to the spec.
Same goes for AOP. But the benefit in AOP is, there are several areas which ever bigger application has to face, which basically AOP really can help to make the code more readable if you use it wisely and not overdo it. The classical examples are, to move the error handling and logging code into central application scoped aspects, and also to build central aspects which which you can define crosscut concerns for, which enable you to automatically put a method into a clean transactional scope. The same would be possible for putting a method into a remote scope. All of this can be done without having to write a single line of code in the core algorithms.
Just like goto, which I would not totally consider harmful. Goto has its place in programs which need a precise command which maps directly to a processor jump instruction, therefore goto or similar constructs are widely used in system near programming.
I have to admit, I stayed away from AOP for a long time, but that stuff can be really useful if applied in the proper manner. The usual application has lots of sideconstraints which basically stain your algorithms up to a point, where you end up having 2/3rd side constraint code, 1/3rd algorithmic code. The side constraint is constantly the same over and over again, only altered slightly according to the state of the algorithm.
Now if you move that code in a well documented and clean manner into aspects, you can gain a lot. Aspects however are a deadly construct, if you go the AOP is everywhere manner and dont limit yourself to the basic rule, use it seldom and use it wisely but use it whenever you can achieve a cleaner code with it. If you go the aspect here aspect there route, you end up in a bigger mess than with a huge spaghetti code and 100 gotos in there.
Perfect examples for AOP are, to move the error handling code of checked exceptions out of the algorithms into aspects, another one would be to get a clean semi automatic transactional scope in methods which are called from the outside. Both things can be achieved with aspects in a much cleaner way, than with traditional programming, but if you use this stuff in that manner, document it and comment it, otherwise the persons who will follow you cannot see that the method is in a transactional scope.
So aspects are definitely worthwile using (I learned that once I jumped over the wall of considering it a deadly construct), but you really have to be careful to limit it to a few problem domains.
You cannot do that with php and other solutions without clustering either...
Bookmarking was a mistake of mine,yes , but I commented about several points, which were taken away, and made the experience of nautilus in browsing mode much worse than it used to be in the original version.
The funny thing is, konqueror resembles the original Nautilus in many ways, you still can tab and split and you can mix between various document formats fileformats etc.. sort of like an all in one container which can be made to a next generation norton commander. Nautilus used to be like that, before the gnome people decided to remove things instead of fixing the problems (which was speed in nautiluss case)
The spatial mode is an interesting option, but it is sort of really forced onto the users, there is no easy one button click to turn it off. Spatial mode could become interesting the Workplace shell way (if you have ever seen how the old IBM compiler set worked within the WPS you know what I mean)
Sort of like that applications are an extension to the files. I will give an example. Currently if you want to burn a CD you have to either type burn:// in browsing mode (which is rather undocumented) or you have to go to places->cd burner. Then you have exactly one option, burn a CD... The better way would be devices->cd burner and then having the option of buring a music cd, a mixed mode, a dvd, video CD etc... and that sort of as subfolders, so that the burning format sort of is like a subfolder.
Another way would be to have a directory on your desktop which resembles the burner, and once you want to burn it asks you which burner you want to use (if you have more than one)
Another option would be to have a context menu or a taskbar applet for burning.
But none of these approaches were followed, the Gnome people could really learn an important lesson here, spatial browsing was just one small aspect of a really object oriented desktop, the basic idea was to have exactly one application, the desktop, and various objects and the applications were just extensions to that idea which were sort of seamlessly triggered by object activation.
The workplace shell was the only desktop to my knowledge which at least tried to follow this idea, Apple never really did and Microsoft still is busy copying Apple.
NeXT could have been exactly that, they already were on that path, but then they went the Apple way of things. And RiscOS never came that far.
Gnome just shouted spatial mode, but a quick inspection of things again revealed to me, that it just was cool for them, but they did not understand the idea behind it and how things should be if you go the spatial way.