I have no idea if are just being sarcastic or an absolute dumbass.
The truth is, the law to contol the sales (Gesetz gegen den unlauteren Wettbewerb) is from 1909 (and that's _before_ Hitler, in case you didn't know) and the current regulation is from 1950 (that's _after_ Hitler), so it seems Hitler had some time travellers to aid in his fight against the jews leaving the country.
I would also advice to at least start learning the language before going abroad. It would make life easier when hanging out with people after work.
A friend of mine moved from the UK to germany without learning english beforehand. When we meet in a small group, this is no problem, because we simply switch the conversation language to english, but if more people are involved it's inevitable that the conversations are mainly in german, so my friend is somewhat outlocked and has a quite boring evening.
And I refuse to use any IDE (like Netbeans) that uses Swing.
sorry to say, but this is ignorant. eclipse is a great app and netbeans might have a sluggish gui, but i would not ditch an application because of its toolkit...
a great example for a good swing-app is intellij idea and its a hell of an IDE (IMHO the _very_ best java-IDE _by far_) use it one day and you never want to go back to any other java IDE. its pure swing, looks good, feels good and is fast and responsive!
yes, its commercial, but thats not the point in this discussion (but you can get a trial-licence, so i'd suggest to try it)
Waiting game? What are you waiting for, exactly? Linux is not going to replace MS on the desktop ever.
why do you think ? linux strength is its steady growth. but not in the market share, but in participant developers. the only thing that can stop linux is a breakdown of its idealism. only if the developers dont want to code for linux anymore, it can loose.
but this wont happen, because of one thing: its fun! developers for linux feel a satisfaction by participating the movement. you have a change to get heard and to do things that matters.... and you wont be bashed by your boss if it doesnt work. you dont have the pressure to get things done. you can even stop coding and you are fine.... maybe another coder put your idea further.
so how can a company with limited resources compete with a community with virtually infinite resources ? in the community a project wont stop because of lack of resources. a project stops only depends on personal interest. you cant hurt an enemy, that does not feel pain, thats what linus ment by saying he dont care...
in the end you cant even compare windows and linux. windows is product and linux is way of life. you can hit some water molecules, but you cant hit the sea...
please mod this one down, i browse at 3 to avoid reading those... its not funny 3 in any way. this one is not even a friend of open source, because he is _clearly_ not open minded. if he thinks, it helps to offend people doing thinks he dont like, he is either... no i will not do it;)
you are right, this aproach is part of com, but part of any other oo-component system, too. what i explained is the minimum for an component system / plugin architecture in c++. com adds a lot more: the use of class-objects, aggregation of interfaces, language independency and different threading models whith proxy-stub communication.
Doesn't this approach add a lot of overhead/code bloat/etc.
sure it is a bit more code, but not that much. you only wrap the instanciation of a particular class in a function. the implementation of the classes functionality still resides inside a normal class. you only derive this class from a unimplemented class declaration, so your code is only bloated by the (very simple) factory function
(...)so you have to deal with that, or you can just say f*** everyone who's using it(...)
this wasnt meant to prevent developers from using sdl.. it was just an answer to the question, if some component model like com/xpcom/corba would be needed to allow backward compatibility. because i thought _that_ would add a lot of overhead/bloat to a game-api, i explained the above apporach.
i assume that the sdl in its present form is suitable to most game-developers needs. its current size allows it to be statically linked with the game one writes, so you dont need coherent interfaces and constant signatures.
But I don't think that this kind of function abstraction in C++ to provide something relatively esoteric (consistent signatures) is worthwhile in the long term.
if the functionality and the size of the sdl increases you will want to install the sdl as shared library and you need to provide backward compatibility. consistent signatures are a key requirement for binary compatibility and for sure are not esoteric. they are on the contrary fundamental to component-models like for example win32-com.
another reason for moving the member function declaration to an abstract base class is to define clear interfaces which can be used to acces multiple implementation with the same exported functionality like plugins.
sorryfor beeing too dumb to use preview..:(
to slashdot: a <pre> would be _really_ helpfull...
you do not need to use a component model like com or corba to maintain interface coherence. in c, all you need is to provide all functions with the same signature. if you do feature upgrades which require additional parameters to a function, dont modify the existing one, add a new function with this additional parameter.
also don't modify existing data structures, provide a new data structure with the extended information...
if you use c++, dont use classes! if you functionality to your classes, even if they are privat, you change the signature of your class. instead use interface based programming. define the functionality of your class in an abstract base class and implement it in your class :
this preserves, that only functions with constant signature and function-tables (that is the abstract base class) with constant signature are exported over library bounds.
if you want to extend the class in the library with a new function you do this by creating a new Interface and factory function:
the signatures of the exported functions and function-tables are still constant, only a new function and a new function-table is added. now the old application can use the old factory and Interface (that is, what a abstract base class defines) and the new application aware of the newer library can use the new factory to get a new version of the interface, thus is able to use the new functionality.
this should give you both source _and_ binary compatibility so that you just need to make softlinks for the libXXX.so.X.X files.
but said all that.. i dont think, that the sdl 2.0 will be binary compatible.. it looks like a major redesign, so i even dont think it will be source compatible... in the first version of a library you typically play around, try things out and make quick hacks. at some point you think: "hey, that is weired and should be totally different... lets rewrite it from scratch" =)
you do not need to use a component model like com or corba to maintain interface coherence. in c, all you need is to provide all functions with the same signature. if you do feature upgrades which require additional parameters to a function, dont modify the existing one, add a new function with this additional parameter.
also don't modify existing data structures, provide a new data structure with the extended information...
if you use c++, dont use classes! if you functionality to your classes, even if they are privat, you change the signature of your class. instead use interface based programming. define the functionality of your class in an abstract base class and implement it in your class :
class AbstractBase
{
virtual void function1()= 0;
virtual void function2()= 0;
};
class Implementing : AbstractBase
{
void function1()
{// do it
}
void function2()
{// do it
}
};
now you need a factory function which returns the AbstractBase pointer to the Implementing class:
this preserves, that only functions with constant signature and function-tables (that is the abstract base class) with constant signature are exported over library bounds.
if you want to extend the class in the library with a new function you do this by creating a new Interface and factory function:
class AbstractBase
{
virtual void function1()= 0;
virtual void function2()= 0;
};
class AbstractBase2: AbstractBase
{
virtual void function3()= 0;
};
class Implementing : AbstractBase2
{
void function1()
{// do it
}
void function2()
{// do it
}
void function3()
{// do it
}
};
AbstractBase* createImplementingAsAbstractBase()
{
return static_cast(new Implementing());
}
AbstractBase2* createImplementingAsAbstractBase2()
{
return static_cast(new Implementing());
}
the signatures of the exported functions and function-tables are still constant, only a new function and a new function-table is added. now the old application can use the old factory and Interface (that is, what a abstract base class defines) and the new application aware of the newer library can use the new factory to get a new version of the interface, thus is able to use the new functionality.
this should give you both source _and_ binary compatibility so that you just need to make softlinks for the libXXX.so.X.X files.
you are so right... if i wouldnt browse at 3, i would have to read all those little wannabes, which have nothing to say, but a brain to little to notice it....
Light is like any other wave (...) I don't know who lied to you, but it is indeed the frequency of the light signal being changed
I don't know who lied to _you_ =) it is clearly impossible, that the frequency of the light signal can change... you are right in the first part: it's like any other wave, so lets take sound for an example...
mix a 100 Hz tone with a 1000 Hz tone. you clearly understand, that you dont get a 1100 Hz tone as a result. you remain with two tones at the same time which you can distinguish with your ear. same is true for light... (except that you can't distinguish light with your ear;)
you muddle up the time/amplitude and frequency/amplitude illustraton of waves.. a wave of 100 Hz for example is a sinus-curve in time/amplitude and a single point in frequency/amplitude. if you mix two waves you add the amplitude values for each time or for each frequency.. the result in a time/amplitude diagram is a different lookling wave, the result in frequency/amplitude are two single points, one at 100 Hz and one at 1000 Hz.
even in the time/amplitude diagram you can see, that the frequencies are not changed, if you mix a intense 100 Hz tone with a weak 1000 Hz tone: you can still see the 100 Hz sine wave, but with a frayed outline. if you look closer, you can see, that this frayed outline is the 1000 Hz sine wave forced to the path of the 100 Hz wave...
the reason you can mix light is indeed based on the three receptors you have on your retina. there is one for red, one for green and one for blue. each one has a range of frequencies they respond to with different intensity (like a bandpass filter).
a frequency between green and blue causes signals with little intensity in both receptors a pure green causes a strong signal in the green receptor. these signals are interpreted by a region in our brain and then we think: "hey man.. this is red !" at least some of us =)
hmm.. i have noticed, that some errors of this kind are caused by broken configs in the ~/.kde2
directory after installing a new beta/prerelease of kde 1.9x... i got rid of them by deleting that directory and let it recreate by kde the next time it started. it might be sufficient to just delete some of the config-files related to the particular problem, but thats untestet;-)
a week ago i saw a (german) telecast (nano on 3sat) about adaptronic. the essence of this technology is to create materials that react to deformation in an intelligent way. one application mentioned was to counteract vibration which is the cause for most of the noise produced by vehicles.
one idea is to use piezo-electric wires in composite materials which act as sensors .
the produced signals hold information about
the deformation. after an analysis, apropriate electric current is put back through the wires and cause a deformation, which counterbalances the first one.
he'll get a nasty surprise when he tries to play it: "Codec Not Found"
i think youve forgotten, that you needed to install winamp, before you could play mp3s...
The simple fact remains that most people do not have high-speed net connections, and most people don't want to be bothered with finding and downloading movies.
and i dont think it depends on net-speed, if divx is a threat or not. most of the time, new movies come from a friend, who downloaded it in his university/college or ripped it from a rented dvd.
Who's going to have them? The same people who buy pirated VCDs and VHS tapes right now!
it takes you just about 15 minutes to copy a divx- movie without quality-loss... so this might be a threat... at least it is more threatening than vhs-piracy, where every copy looses quality and take 2 hours of time...
i dont think, that there will be only two distros.
if you think of pcs for example, there are many different computer-shops and even companies (compaq, dell, gateway,...) that assemble pcs. they even produce own hardware (notebooks, pc-cases, whatever ) but mainly they put together hardware of other manufacturers.
linux distros are similar in some areas. the components are developed by others and the distros assemble these components. Sometimes they develop some components by their own. it all comes down to what segment of the market you want to reach.
and after all, the fsb will prevent companies from becoming monopolists ( ok, they try =) )
do you want a funny rating or have you really not noticed, that it is steven ballmer who said this? and if you dont know: he is the boss of microsoft since bill gates retired
theres a reason for the Enterprise in Enterprise Java Beans. java might be seen as a gambling-language for web-animation, but in reality it is widely used as a plattform for application-servers.
heres why:
java is stable and you dont have to deal with memory management (garbage collection)
it has a powerful api-library, with classes, that solves a huge amount of problems.
the thread-framework is easy to use without a hassle, thus making developing of multithreaded applications really easy
the features for network-communication are unmatched by any other language.
it supports CORBA out of the box, making it easy to integrate java-apps into existing full blown enterprise solutions
it also has another easy to use remote-object implementation called RMI
the database support is excellent (JDBC)
java is so easy to code, you can implement a Software-Design in a fractional amount of time, compared to C++ for example
the strict object orientation of java makes it easy to use with CASE/RAD-Tools (Computer Aided Software Engineering / Rapid Application Development)
EJBs (Enterprise Java Beans) make java-apps support clusters and intelligent in use of database-connections, etc.
IBM supports java-technologie a lot, because they are heavily enterprise oriented and Oracle for example integrated java into their DBMS (not the other way around!!!)
if one argues, that java is slow and resource-consuming, be asured, that throwing hardware at a problem is the least expensive in real enterprise environments. saving time and money of expensive developers is much more substantial; you dont buy software off the shelve!
its a major version change (1.x -> 2.x) so api-changes are normal, even in other apps/libraries. the kde sourcebase is huge, so nobody could expect it to be compatible to the 1.x libs.
you can install the kde1-libs seperately to support kdevelop under KDE 2. if you dont want to, you have to wait for kdevelop 2.0. see kdevelop.org for details
you might be right, that there are many apps, that are not equivalent to their windows counterparts, but that they are not worth using is crearly wrong. there exists a statement, that things can be _good enough_. some examples:
konqueror vs. ie 5.5:
surely ie 5.5 is the best browser out there, but i use konqueror for my everyday-work and have nearly no reason to change to another browser.
and if i need to, i use mozilla.6
staroffice vs. office2000:
hmm.. thats a difficult one, because i think staroffice is better than office2000. at least the word-processing part...
kdevelop/gcc vs. vc++ 6:
i must really say, that it is hard to code powerfull readable code in vc++ if you once get used to the signals/slot mechanism in QT. and kdevelop is a solid easy to use ide, so i really dont bother about vc++. i would buy a QT-License, if i would need to code windows-apps.
and for real developers: java is THE language... combined with forte and an code-generating UML-modeler, nothing beats it... but go for RAM in _huge_ amounts.
gimp vs. adobe photoshop:
hmm.. i like gimp, its excellent for screen-design, but it really has no chance compared to photoshop... btw. tried out version 6 ? its stunning... but if you need a pixel-based
image-editor/processor, gimp is surely _good enough_
after all it depends, what you need your PC for. i am a developer/webdesigner, so linux has all i need. and there must be some others like me, because the linux-community today is huge...
but this article wasnt about the desktop, so this arguments wont count anyway. there are completely different prequisites. total cost of ownership is the buzzword no1 in this area. if you can get professional support for your system and the software, no OS can beat linux/bsd in this. only if major players offer commercial server-side products including support on linux, it can overcome the mid-server hurd.
and thats, what ibm does. they want linux to be no1, because of their EBM philosophy - Everything But Microsoft...
Danke fuer diesen Augenoeffner!
Thanks for opening my eyes.
I have no idea if are just being sarcastic or an absolute dumbass.
The truth is, the law to contol the sales (Gesetz gegen den unlauteren Wettbewerb) is from 1909 (and that's _before_ Hitler, in case you didn't know) and the current regulation is from 1950 (that's _after_ Hitler), so it seems Hitler had some time travellers to aid in his fight against the jews leaving the country.
I would also advice to at least start learning the language before going abroad. It would make life easier when hanging out with people after work.
A friend of mine moved from the UK to germany without learning english beforehand. When we meet in a small group, this is no problem, because we simply switch the conversation language to english, but if more people are involved it's inevitable that the conversations are mainly in german, so my friend is somewhat outlocked and has a quite boring evening.
Hasn't quantum physics already proven the ability to do faster-than-light communication using Quantum Entanglement?
http://en.wikipedia.org/wiki/Quantum_entanglement
:) No, but the editor is it's best feature (in terms of code-completition, refactoring and code-navigation)
And I refuse to use any IDE (like Netbeans) that uses Swing.
sorry to say, but this is ignorant. eclipse is a great app and netbeans might have a sluggish gui, but i would not ditch an application because of its toolkit...
a great example for a good swing-app is intellij idea and its a hell of an IDE (IMHO the _very_ best java-IDE _by far_) use it one day and you never want to go back to any other java IDE. its pure swing, looks good, feels good and is fast and responsive!
yes, its commercial, but thats not the point in this discussion (but you can get a trial-licence, so i'd suggest to try it)
Waiting game? What are you waiting for, exactly? Linux is not going to replace MS on the desktop ever.
why do you think ? linux strength is its steady growth. but not in the market share, but in participant developers. the only thing that can stop linux is a breakdown of its idealism. only if the developers dont want to code for linux anymore, it can loose.
but this wont happen, because of one thing: its fun! developers for linux feel a satisfaction by participating the movement. you have a change to get heard and to do things that matters.... and you wont be bashed by your boss if it doesnt work. you dont have the pressure to get things done. you can even stop coding and you are fine.... maybe another coder put your idea further.
so how can a company with limited resources compete with a community with virtually infinite resources ? in the community a project wont stop because of lack of resources. a project stops only depends on personal interest. you cant hurt an enemy, that does not feel pain, thats what linus ment by saying he dont care...
in the end you cant even compare windows and linux. windows is product and linux is way of life. you can hit some water molecules, but you cant hit the sea...
this is a feature i really miss in other browsers.. especially browsing on my tv...
please mod this one down, i browse at 3 to avoid reading those... its not funny 3 in any way. this one is not even a friend of open source, because he is _clearly_ not open minded. if he thinks, it helps to offend people doing thinks he dont like, he is either... no i will not do it ;)
if you use xml, you specify such things in a dtd or you can use the xml schema to to so. closing your eyes doesnt mean you are invisible...
you are right, this aproach is part of com, but part of any other oo-component system, too. what i explained is the minimum for an component system / plugin architecture in c++. com adds a lot more: the use of class-objects, aggregation of interfaces, language independency and different threading models whith proxy-stub communication.
Doesn't this approach add a lot of overhead/code bloat/etc.
sure it is a bit more code, but not that much. you only wrap the instanciation of a particular class in a function. the implementation of the classes functionality still resides inside a normal class. you only derive this class from a unimplemented class declaration, so your code is only bloated by the (very simple) factory function
(...)so you have to deal with that, or you can just say f*** everyone who's using it(...)
this wasnt meant to prevent developers from using sdl.. it was just an answer to the question, if some component model like com/xpcom/corba would be needed to allow backward compatibility. because i thought _that_ would add a lot of overhead/bloat to a game-api, i explained the above apporach.
i assume that the sdl in its present form is suitable to most game-developers needs. its current size allows it to be statically linked with the game one writes, so you dont need coherent interfaces and constant signatures.
But I don't think that this kind of function abstraction in C++ to provide something relatively esoteric (consistent signatures) is worthwhile in the long term.
if the functionality and the size of the sdl increases you will want to install the sdl as shared library and you need to provide backward compatibility. consistent signatures are a key requirement for binary compatibility and for sure are not esoteric. they are on the contrary fundamental to component-models like for example win32-com.
another reason for moving the member function declaration to an abstract base class is to define clear interfaces which can be used to acces multiple implementation with the same exported functionality like plugins.
hmm.. c++ in html isnt easy... it shoud be
AbstractBase* createImplementingAsAbstractBase()
{
return static_cast<AbstractBase*>(new Implementing());
}
AbstractBase2* createImplementingAsAbstractBase2() {
return static_cast<AbstractBase2*>(new Implementing());
}
instead of
AbstractBase* createImplementingAsAbstractBase()
{
return static_cast(new Implementing());
}
AbstractBase2* createImplementingAsAbstractBase2() {
return static_cast(new Implementing());
}
you do not need to use a component model like com or corba to maintain interface coherence. in c, all you need is to provide all functions with the same signature. if you do feature upgrades which require additional parameters to a function, dont modify the existing one, add a new function with this additional parameter.
also don't modify existing data structures, provide a new data structure with the extended information...
if you use c++, dont use classes! if you functionality to your classes, even if they are privat, you change the signature of your class. instead use interface based programming. define the functionality of your class in an abstract base class and implement it in your class :
class AbstractBase
// do it
// do it
{
virtual void function1()= 0;
virtual void function2()= 0;
};
class Implementing : AbstractBase
{
void function1()
{
}
void function2()
{
}
};
now you need a factory function which returns the AbstractBase pointer to the Implementing class:
AbstractBase* createImplementingAsAbstractBase(){
return static_cast(new Implementing());
}
this preserves, that only functions with constant signature and function-tables (that is the abstract base class) with constant signature are exported over library bounds.
if you want to extend the class in the library with a new function you do this by creating a new Interface and factory function:
class AbstractBase{
virtual void function1()= 0;
virtual void function2()= 0;
};
class AbstractBase2: AbstractBase
{
virtual void function3()= 0;
};
class Implementing : AbstractBase2
{
void function1()
{
}
void function2()
{
}
void function3()
{
}
};
AbstractBase* createImplementingAsAbstractBase()
{
return static_cast(new Implementing());
}
AbstractBase2* createImplementingAsAbstractBase2()
{
return static_cast(new Implementing());
}
the signatures of the exported functions and function-tables are still constant, only a new function and a new function-table is added. now the old application can use the old factory and Interface (that is, what a abstract base class defines) and the new application aware of the newer library can use the new factory to get a new version of the interface, thus is able to use the new functionality.
this should give you both source _and_ binary compatibility so that you just need to make softlinks for the libXXX.so.X.X files.
but said all that.. i dont think, that the sdl 2.0 will be binary compatible.. it looks like a major redesign, so i even dont think it will be source compatible... in the first version of a library you typically play around, try things out and make quick hacks. at some point you think: "hey, that is weired and should be totally different... lets rewrite it from scratch" =)
you do not need to use a component model like com or corba to maintain interface coherence. in c, all you need is to provide all functions with the same signature. if you do feature upgrades which require additional parameters to a function, dont modify the existing one, add a new function with this additional parameter.
also don't modify existing data structures, provide a new data structure with the extended information...
if you use c++, dont use classes! if you functionality to your classes, even if they are privat, you change the signature of your class. instead use interface based programming. define the functionality of your class in an abstract base class and implement it in your class :
class AbstractBase { virtual void function1()= 0; virtual void function2()= 0; }; class Implementing : AbstractBase { void function1() {now you need a factory function which returns the AbstractBase pointer to the Implementing class:
AbstractBase* createImplementingAsAbstractBase() { return static_cast(new Implementing()); }this preserves, that only functions with constant signature and function-tables (that is the abstract base class) with constant signature are exported over library bounds.
if you want to extend the class in the library with a new function you do this by creating a new Interface and factory function:
class AbstractBase { virtual void function1()= 0; virtual void function2()= 0; }; class AbstractBase2: AbstractBase { virtual void function3()= 0; }; class Implementing : AbstractBase2 { void function1() {the signatures of the exported functions and function-tables are still constant, only a new function and a new function-table is added. now the old application can use the old factory and Interface (that is, what a abstract base class defines) and the new application aware of the newer library can use the new factory to get a new version of the interface, thus is able to use the new functionality.
this should give you both source _and_ binary compatibility so that you just need to make softlinks for the libXXX.so.X.X files.
hmmm... i just noticed: does this apply to me too ? :o)
you are so right... if i wouldnt browse at 3, i would have to read all those little wannabes, which have nothing to say, but a brain to little to notice it....
Light is like any other wave (...) I don't know who lied to you, but it is indeed the frequency of the light signal being changed
I don't know who lied to _you_ =) it is clearly impossible, that the frequency of the light signal can change... you are right in the first part: it's like any other wave, so lets take sound for an example...
mix a 100 Hz tone with a 1000 Hz tone. you clearly understand, that you dont get a 1100 Hz tone as a result. you remain with two tones at the same time which you can distinguish with your ear. same is true for light... (except that you can't distinguish light with your ear ;)
you muddle up the time/amplitude and frequency/amplitude illustraton of waves.. a wave of 100 Hz for example is a sinus-curve in time/amplitude and a single point in frequency/amplitude. if you mix two waves you add the amplitude values for each time or for each frequency.. the result in a time/amplitude diagram is a different lookling wave, the result in frequency/amplitude are two single points, one at 100 Hz and one at 1000 Hz.
even in the time/amplitude diagram you can see, that the frequencies are not changed, if you mix a intense 100 Hz tone with a weak 1000 Hz tone: you can still see the 100 Hz sine wave, but with a frayed outline. if you look closer, you can see, that this frayed outline is the 1000 Hz sine wave forced to the path of the 100 Hz wave...
the reason you can mix light is indeed based on the three receptors you have on your retina. there is one for red, one for green and one for blue. each one has a range of frequencies they respond to with different intensity (like a bandpass filter).
a frequency between green and blue causes signals with little intensity in both receptors a pure green causes a strong signal in the green receptor. these signals are interpreted by a region in our brain and then we think: "hey man.. this is red !" at least some of us =)
hmm.. i have noticed, that some errors of this kind are caused by broken configs in the ~/.kde2 directory after installing a new beta/prerelease of kde 1.9x... i got rid of them by deleting that directory and let it recreate by kde the next time it started. it might be sufficient to just delete some of the config-files related to the particular problem, but thats untestet ;-)
so it is and i think it is in the queue.
a week ago i saw a (german) telecast (nano on 3sat) about adaptronic. the essence of this technology is to create materials that react to deformation in an intelligent way. one application mentioned was to counteract vibration which is the cause for most of the noise produced by vehicles.
one idea is to use piezo-electric wires in composite materials which act as sensors . the produced signals hold information about the deformation. after an analysis, apropriate electric current is put back through the wires and cause a deformation, which counterbalances the first one.
he'll get a nasty surprise when he tries to play it: "Codec Not Found"
i think youve forgotten, that you needed to install winamp, before you could play mp3s...
The simple fact remains that most people do not have high-speed net connections, and most people don't want to be bothered with finding and downloading movies.
and i dont think it depends on net-speed, if divx is a threat or not. most of the time, new movies come from a friend, who downloaded it in his university/college or ripped it from a rented dvd.
Who's going to have them? The same people who buy pirated VCDs and VHS tapes right now!
it takes you just about 15 minutes to copy a divx- movie without quality-loss... so this might be a threat... at least it is more threatening than vhs-piracy, where every copy looses quality and take 2 hours of time...
i dont think, that there will be only two distros.
if you think of pcs for example, there are many different computer-shops and even companies (compaq, dell, gateway, ...) that assemble pcs. they even produce own hardware (notebooks, pc-cases, whatever ) but mainly they put together hardware of other manufacturers.
linux distros are similar in some areas. the components are developed by others and the distros assemble these components. Sometimes they develop some components by their own. it all comes down to what segment of the market you want to reach.
and after all, the fsb will prevent companies from becoming monopolists ( ok, they try =) )
do you want a funny rating or have you really not noticed, that it is steven ballmer who said this? and if you dont know: he is the boss of microsoft since bill gates retired
theres a reason for the Enterprise in Enterprise Java Beans. java might be seen as a gambling-language for web-animation, but in reality it is widely used as a plattform for application-servers.
heres why:
IBM supports java-technologie a lot, because they are heavily enterprise oriented and Oracle for example integrated java into their DBMS (not the other way around!!!)
if one argues, that java is slow and resource-consuming, be asured, that throwing hardware at a problem is the least expensive in real enterprise environments. saving time and money of expensive developers is much more substantial; you dont buy software off the shelve!
its a major version change (1.x -> 2.x) so api-changes are normal, even in other apps/libraries. the kde sourcebase is huge, so nobody could expect it to be compatible to the 1.x libs.
you can install the kde1-libs seperately to support kdevelop under KDE 2. if you dont want to, you have to wait for kdevelop 2.0. see kdevelop.org for details
you might be right, that there are many apps, that are not equivalent to their windows counterparts, but that they are not worth using is crearly wrong. there exists a statement, that things can be _good enough_. some examples:
konqueror vs. ie 5.5: surely ie 5.5 is the best browser out there, but i use konqueror for my everyday-work and have nearly no reason to change to another browser. and if i need to, i use mozilla .6
staroffice vs. office2000: hmm.. thats a difficult one, because i think staroffice is better than office2000. at least the word-processing part...
kdevelop/gcc vs. vc++ 6: i must really say, that it is hard to code powerfull readable code in vc++ if you once get used to the signals/slot mechanism in QT. and kdevelop is a solid easy to use ide, so i really dont bother about vc++. i would buy a QT-License, if i would need to code windows-apps. and for real developers: java is THE language... combined with forte and an code-generating UML-modeler, nothing beats it... but go for RAM in _huge_ amounts.
gimp vs. adobe photoshop: hmm.. i like gimp, its excellent for screen-design, but it really has no chance compared to photoshop... btw. tried out version 6 ? its stunning... but if you need a pixel-based image-editor/processor, gimp is surely _good enough_
after all it depends, what you need your PC for. i am a developer/webdesigner, so linux has all i need. and there must be some others like me, because the linux-community today is huge...
but this article wasnt about the desktop, so this arguments wont count anyway. there are completely different prequisites. total cost of ownership is the buzzword no1 in this area. if you can get professional support for your system and the software, no OS can beat linux/bsd in this. only if major players offer commercial server-side products including support on linux, it can overcome the mid-server hurd.
and thats, what ibm does. they want linux to be no1, because of their EBM philosophy - Everything But Microsoft...