I do not believe in generic object orientation for anything except very basic components, such as lists, stacks and such. But also for the newer basic components, such as UI widgets, database interfaces, etc.
In my professional experience I've build many applications interfacing one very complex data-structure (multiple interacting database tables). In this kind of projects it is still beneficial to develop an OO frameword onto which one builds a large array of applications for a range of different users.
You are right about OO taking alot of planning and proofs of concepts, but this is getting easier and easier as refactoring and such methods are introduced. The efforts are only paying back if the OO framework is heavily utilized though-out the project, but this is the case in many projects.
What I miss is the lack of automatic testing, such as test benches often used in electronics construction. This would make OO even better in multi-programmer environments. This would be harder to introduce, if not possible, without OO techniques.
"merely designing, reusing, and documenting is not nearly sufficient to guarantee success".
No, but they sure help!
Bad management (which you seem to have experienced) is not a consequence of formalized processes (like ISO900x) but stupid managers and, sometimes, bad economy.
But the problem will not dissappear if you ignore it. I still believe that a properly applied formalized development process (possibly derived from ISO900x) can make things better.
As for reuse being hard. It really is! But if you work in a one product, or one market (e.g. business support applications) company reuse can be achieved. Of course, if you have fourty products in ten different markets, it is hard to make general enough abstractions without buying yourself more problems than you solve. But some areas are always common, like the UI. Make all your product look and behave the same. With less effort you can make customers more happy (as they have to spend less on training).
You are to hostile towards the ISO9000 solution. It is a formalized way of development, and a good tool, but with developers not wanting to use it properly, thinking that the extra documentation, planning, etc. are just a load of bull from marketing, then it will never work. You have to work with the tool in order to get benefits, and you have to adapt the tool to your business. So there are two conclusions, either you are not giving the formalized process a chance, or your formalized process isn't properly adapted to your business.
As for the possibilities of getting ISO900x without erally doing squat, you are, sadly, right. But if you put it to use (with or without being certified) you can have benefits.
You are too right, ISO9000 is only a tool, but if you're willing to use it, it can improve the quality of your products. I know that it makes work harder and introduces lots of paperwork, but if someone is going to take over your code, it is worth it.
As for good code being too expensive, you are right again. It is sad, but true.
I quote myself: "The reuse of software requires direction, thought and documentation".
Microsoft may have good documentation in some aspects (compared to open source alternatives), but they lack direction in many senses; it seems as if they are driven by a wish to add more functionality instead of improving upon the problems they have since before. The backwards compatibility is also an issue, for example Word2k is pretty much Word97, with more features, instead of better features. The changes to the UI is suprisingly small, concidering the new functions that have been added.
Also in the area of thinking Microsoft seems to have problems. For example OLE, OLE2, ActiveX, or DAO and ADO. Repetetive reinvention of the same functionality with an interface change as the direct consequence. Also the structure of Windows and for example the filesystems used have a history dating back to the eighties and the 8086.
If they'd think about what they do, create more flexible solutions from the start and stop caring for software developed in 1984 (run it in a virtual machine, VirtualPC on a 1GHz P3 has more power than the computers used back in '84) they'd probably make better software.
Do not get me started on all the little extras they've introduced in a (from the beginning) clean UI. Just the list of apps in the Win2k Add/Remove Software dialog makes me sick. Yet another area is their business practices, etcetera etcetera ad infinitum...
To sum things up: I do not think that Microsoft has good reuse of components, nor good object orientation.
Using ISO9000 (define what to do, do it and document it), proper object orientation software is (should) built like bridges.
Any major software company not reusing components and controlling the design/implementation process will fail. The reuse of components not only benefits the developers, but also the users (just look at KDE or Adobe's software, dialogs and tools are easily reused).
The reuse of software requires direction, thought and documentation. You must know what it is that you try to do, break it down into sections (objects) and define the interfaces and interactions before you sit down and write any code. This is the most common mistake when coding and the biggest problem in open source projects that begin as small personal pets of the project initiator and quickly grows out of hand.
Smith has flourished in sci-fi with the "Men in Black" films
I'd say that 'I, Robot' augth to be far more serious that MIB or any other movie Smith has starred, so I'll bracing myself for a big disapointment. But, hopefully, I'm wrong!
IBM thinks differently in this paper and so does CyberSource
here.
As a technologist I'm very sceptical to economic calculations. I believe that they can be twisted in any direction.
There is a principle of uncertanty. Of the three items cost, time and product you can only know one. So if you want to know what product you'll end up with, you can't know the price or time...
Anyway, it is good to point out that Linux systems has problems in the management area. But still, people are working on it.
It is nice to see that the PCI bus is now commonly used in *all* desktop computers (Atari, Amiga, Mac and IBM Compatibles). This makes it so much easier to buy devices and to find/port drivers. I remember Atari's old HDD interface that forced me into buying a really expensive Atari HDD instead of a much cheaper IDE driver...
Yahoo has launched a 'war against spam'. I've actually had a yahoo account for a little bit more than a year and it has been relatively clean. (note that I've used it as my 'dirty' account, i.e. list submissions and suchs goes there...)
It looks like the new kernel better utilizes multiple CPUs. This is a great thing. Linux needs better support for SMP systems if it is going to play with the big kids in the high-end server market. (I know, Linux is partially there).
You are very right! To compare on-line gaming with a productive on-line community, such as an open source project is way wrong.
I'd actually go so far as to say that the article writer has had no actual experience of real open source development, nor has he really seriously played any on-line game. He speaks of development teams as gaming clans and open source developement as the same as providing game mods. I cannot do anything but say that this article is no better than the usual karma-whoring one can see here on/. from time to time!
These kind of moves are actually dangerous. If the civilized world chooses to ban something of some reason (hopefully a good one), one can just go to a poor country and be fully legal.
We recently saw this when an oil tanker collapsed just off the coast of Spain. The tanker was registerd in Bermuda (or somewhere around there). Thus it was sheaper taxwise, less regulated working-environment and safety wise and could therefore go to sea without being sea worthy.
We can also see this in the research of the (somewhat) mad Italian sientist, Dr. Severino Antinori. He claims to creating the first cloned human and that it is going to be born early next year. He refuses to say where the experiment has been made, but it is in a country with weaker legalization than most western contries.
To sum things up. This type of experiments will probably have to go to some little known, desterd island, but I regret that they can.
I'm currently running RedHat 7.3 on one of these. It works like a charm. My only problem was that the DIMM module made it hard to fit the CD reader in the chassis, but as long as you're into case modding that's not a problem.
I do not believe in generic object orientation for anything except very basic components, such as lists, stacks and such. But also for the newer basic components, such as UI widgets, database interfaces, etc.
In my professional experience I've build many applications interfacing one very complex data-structure (multiple interacting database tables). In this kind of projects it is still beneficial to develop an OO frameword onto which one builds a large array of applications for a range of different users.
You are right about OO taking alot of planning and proofs of concepts, but this is getting easier and easier as refactoring and such methods are introduced. The efforts are only paying back if the OO framework is heavily utilized though-out the project, but this is the case in many projects.
What I miss is the lack of automatic testing, such as test benches often used in electronics construction. This would make OO even better in multi-programmer environments. This would be harder to introduce, if not possible, without OO techniques.
"merely designing, reusing, and documenting is not nearly sufficient to guarantee success".
No, but they sure help!
Bad management (which you seem to have experienced) is not a consequence of formalized processes (like ISO900x) but stupid managers and, sometimes, bad economy.
Isn't that better than them [your failures] being unpredictable and hard to find?
Documentation is more important than you think in professional software development. If nothing else, you'll always know who to blame... :P
If you dare to try it, look at your issues, adapt it (in your case, reduce the number of documents produced) it can be good.
Bad developer: Where coolness is measured in obstructions... (if you work professionally, you'll need to formalize your development processes).
But the problem will not dissappear if you ignore it. I still believe that a properly applied formalized development process (possibly derived from ISO900x) can make things better.
As for reuse being hard. It really is! But if you work in a one product, or one market (e.g. business support applications) company reuse can be achieved. Of course, if you have fourty products in ten different markets, it is hard to make general enough abstractions without buying yourself more problems than you solve. But some areas are always common, like the UI. Make all your product look and behave the same. With less effort you can make customers more happy (as they have to spend less on training).
You are to hostile towards the ISO9000 solution. It is a formalized way of development, and a good tool, but with developers not wanting to use it properly, thinking that the extra documentation, planning, etc. are just a load of bull from marketing, then it will never work. You have to work with the tool in order to get benefits, and you have to adapt the tool to your business. So there are two conclusions, either you are not giving the formalized process a chance, or your formalized process isn't properly adapted to your business.
As for the possibilities of getting ISO900x without erally doing squat, you are, sadly, right. But if you put it to use (with or without being certified) you can have benefits.
You are too right, ISO9000 is only a tool, but if you're willing to use it, it can improve the quality of your products. I know that it makes work harder and introduces lots of paperwork, but if someone is going to take over your code, it is worth it.
As for good code being too expensive, you are right again. It is sad, but true.
I quote myself: "The reuse of software requires direction, thought and documentation".
Microsoft may have good documentation in some aspects (compared to open source alternatives), but they lack direction in many senses; it seems as if they are driven by a wish to add more functionality instead of improving upon the problems they have since before. The backwards compatibility is also an issue, for example Word2k is pretty much Word97, with more features, instead of better features. The changes to the UI is suprisingly small, concidering the new functions that have been added.
Also in the area of thinking Microsoft seems to have problems. For example OLE, OLE2, ActiveX, or DAO and ADO. Repetetive reinvention of the same functionality with an interface change as the direct consequence. Also the structure of Windows and for example the filesystems used have a history dating back to the eighties and the 8086.
If they'd think about what they do, create more flexible solutions from the start and stop caring for software developed in 1984 (run it in a virtual machine, VirtualPC on a 1GHz P3 has more power than the computers used back in '84) they'd probably make better software.
Do not get me started on all the little extras they've introduced in a (from the beginning) clean UI. Just the list of apps in the Win2k Add/Remove Software dialog makes me sick. Yet another area is their business practices, etcetera etcetera ad infinitum...
To sum things up: I do not think that Microsoft has good reuse of components, nor good object orientation.
Using ISO9000 (define what to do, do it and document it), proper object orientation software is (should) built like bridges.
Any major software company not reusing components and controlling the design/implementation process will fail. The reuse of components not only benefits the developers, but also the users (just look at KDE or Adobe's software, dialogs and tools are easily reused).
The reuse of software requires direction, thought and documentation. You must know what it is that you try to do, break it down into sections (objects) and define the interfaces and interactions before you sit down and write any code. This is the most common mistake when coding and the biggest problem in open source projects that begin as small personal pets of the project initiator and quickly grows out of hand.
But the SetTobBox-providers will be forced to pay licence fees to Sony?
Apart from that, it sounds like a great idea. Standards that allow competition are always welcome!
I'd say that 'I, Robot' augth to be far more serious that MIB or any other movie Smith has starred, so I'll bracing myself for a big disapointment. But, hopefully, I'm wrong!
IBM thinks differently in this paper and so does CyberSource here.
As a technologist I'm very sceptical to economic calculations. I believe that they can be twisted in any direction.
There is a principle of uncertanty. Of the three items cost, time and product you can only know one. So if you want to know what product you'll end up with, you can't know the price or time...
Anyway, it is good to point out that Linux systems has problems in the management area. But still, people are working on it.
It is nice to see that the PCI bus is now commonly used in *all* desktop computers (Atari, Amiga, Mac and IBM Compatibles). This makes it so much easier to buy devices and to find/port drivers. I remember Atari's old HDD interface that forced me into buying a really expensive Atari HDD instead of a much cheaper IDE driver...
Sorry, I though about a global white list with good addresses, a bit like a huge opt-out register.
Yahoo has launched a 'war against spam'. I've actually had a yahoo account for a little bit more than a year and it has been relatively clean. (note that I've used it as my 'dirty' account, i.e. list submissions and suchs goes there...)
spammers would use 'em in the wrong way :(
The boarding time of an average train is less than 30 minutes. The boarding time of an average (non-international) air plane is more than 90 minutes.
The unloading time for the average train is less than 20 minutes. The unloading train for the average air plane is more than 30 minutes.
This means that the train has at least 50 minutes advantage.
SMP still has advantages if a number of processes needs to share lots of memory. For other, more suitable, problems, mosix rocks!
All major investment companies are going to push huge shit-loads of dollars into the p0rn industry... unless they know that they are tracked.
It looks like the new kernel better utilizes multiple CPUs. This is a great thing. Linux needs better support for SMP systems if it is going to play with the big kids in the high-end server market. (I know, Linux is partially there).
You are very right! To compare on-line gaming with a productive on-line community, such as an open source project is way wrong.
I'd actually go so far as to say that the article writer has had no actual experience of real open source development, nor has he really seriously played any on-line game. He speaks of development teams as gaming clans and open source developement as the same as providing game mods. I cannot do anything but say that this article is no better than the usual karma-whoring one can see here on /. from time to time!
Qt from trolltech (www.trolltech.com) is a better solution (IMHO).
If you feel like trying it, just go to trolltech and download the free edition.
These kind of moves are actually dangerous. If the civilized world chooses to ban something of some reason (hopefully a good one), one can just go to a poor country and be fully legal.
We recently saw this when an oil tanker collapsed just off the coast of Spain. The tanker was registerd in Bermuda (or somewhere around there). Thus it was sheaper taxwise, less regulated working-environment and safety wise and could therefore go to sea without being sea worthy.
We can also see this in the research of the (somewhat) mad Italian sientist, Dr. Severino Antinori. He claims to creating the first cloned human and that it is going to be born early next year. He refuses to say where the experiment has been made, but it is in a country with weaker legalization than most western contries.
To sum things up. This type of experiments will probably have to go to some little known, desterd island, but I regret that they can.
Now the boot into Windows instead... (shiver)
With VBScript one can still do 10 print "test": goto 10... :-)
I'm currently running RedHat 7.3 on one of these. It works like a charm. My only problem was that the DIMM module made it hard to fit the CD reader in the chassis, but as long as you're into case modding that's not a problem.