I suppose next you'll be arguing that using "goto"s is how we should all be programming.
I'll argue that, at least in the case where what you're writing is a parser for example, in which the most natural and efficient embodiment is a state machine directly implemented with jumps. In this case the goto implementation is also the most readable and easiest to verify because you can mindlessly map it back to your original state diagram. (You did write the state diagram before starting to code didn't you? Didn't you??)
Those that're just taught OO actually have gaps in their knowlege coming out of college and think in a "just so" way like the parent says
Some truth to that. I had interns coming out of UCLA working on my project at Google who were not ashamed at all about using malloc as part of their per-function-call API. After squirting code like that all over the code base it took longer to get rid of it than it did for them to write it in the first place. Epilogue is, after converting it back to reasonably orthogonally, typical C code it also shrank in size by a factor of 5 or so and was orders of magnitude more efficient, plus maintainable, whereas in that sort of weird C++-in-C style it was nigh on indecipherable not to mention buggy. I was pretty shocked and wondered what kind of education these highly sought after interns were actually getting.
Note that I am not arguing against OOP at all, I get a huge amount of mileage out of it. I am instead arguing against mindlessly applying some idea like "new is OOP, use it everywhere" in completely inappropriate contexts. I am pretty sure they would have made the same mess in C++, just not as immediately obvious.
That certainly depends on what OO means to you. From what I can see, Linux is quite OO code - everything is quite modular and it's a very nice state machine. From where I sit, Linux itself can be considered OO code - just that it doesn't use classes or OO language doesn't mean anything.
non-OO code is like libc
Actually, not using classes does mean something: the code is more ugly, inflexible and hard to maintain than necessary. Speaking as someone who lives and breathes the stuff.
Linux kernel would be far better off actually compiling its class-oriented portions with a proper object oriented compiler. Likely as not, the code would be more efficient due to optimizations that can be done on virtual functions. Look at the hundreds of places where you have "if (obj->fn) opj->fn". In many cases that extra test is just pure overhead and can introduce pipeline stalls.
Still scratching my head about the linked article's claim that OOP is anti-modular. On the face of it, that claim is bold and counter to my experience.
Apple almost went bankrupt because clone sales were undercutting their own mac sales but Apple's support costs continued to rise because they were having to provide support not only for owners of "genuine" macs but also clones. Apple has been growing their mac market share at a rate that outpaces the overall industry growth while still maintaining a healthy profit margin.
Nonsense. Clone makers never at any time had enough of the market to threaten Apple's revenue stream or pricing structure. Apple's attacks on the clone market were all about paranoia - what might happen, but never actually happened. The truth is, Apple began to grow its market share after switching to Unix, which worked, and dropping their horribly awful home rolled attempted at an operating system, which never did work reliably.
What, some iGroupie with mod points objects to the factual statement that Mac OS prior to X was completely inadequate, as if designed by people who stopped learning computer science some time before the end of high school? Perhaps I should detail the inadequacies?
There is nothing wrong with enjoying a community spirit or whatever, but anybody doing OSS work because they expect a certain spirit in return is just being a fool.
Good thing there are enough of us fools around then, or naysayers like you would not have nearly so many shiny new toys to play with.
I have a hard time swallowing that one. While Android's success could possibly rival that of Windows, being open source and forkable is a huge difference. More importantly, by equating Android with Windows you tar it with the brush of monopoly and law breaking, which do not apply by any but the most fanciful stretch of imagination.
Apple almost went bankrupt because clone sales were undercutting their own mac sales but Apple's support costs continued to rise because they were having to provide support not only for owners of "genuine" macs but also clones. Apple has been growing their mac market share at a rate that outpaces the overall industry growth while still maintaining a healthy profit margin.
Nonsense. Clone makers never at any time had enough of the market to threaten Apple's revenue stream or pricing structure. Apple's attacks on the clone market were all about paranoia - what might happen, but never actually happened. The truth is, Apple began to grow its market share after switching to Unix, which worked, and dropping their horribly awful home rolled attempted at an operating system, which never did work reliably.
...and yet another platform for App developers to target. It won't work.
From a marketing perspective it's suicide. Everyone wants iOS or Android nowadays, because it's sexy, it's all the rage, and because of the huge number of Apps you can get from their stores.
Actually, whether you call it Android, WebOS or Meego, it's all Linux , and as such it's not a big deal to jump between them. The bigger issue is Java vs C++, and I for one, would jump at the chance to develop native apps without Java annoyances (C++ annoyances instead). And I don't really care about the GUI so long as I can get an OpenGL surface and input events in some standard way. I would hazard a guess that my preferences are shared by a large fraction of developers, especially those who are going to make the compelling apps we have so far not seen much of on mobile devices. It's really more about what the hardware can do than which flavor of Linux runs on it.
So if Motorola wants to offer a WebOS way of programming Xoom as an alternative to Android, I would install the SDK the next day.
If you want scummy, look to companies like Oracle which just take, repackage, and rarely give back. They're the real problem, not RedHat.
Oracle may be scummy, but that is not the reason. Oracle actually backs a pretty impressive range of open source project, among them Btrfs and OCFS2.
And as everybody knows, a goodly number of the more significant projects have already fled Mordor, err, Oracle in the interest of freedom. However, you can't accuse Oracle of not giving back to open source, Larry gets that part. Other parts of the community contract he fails to get at all, big time.
By the way, if you are convinced of your argument then post under your real name as I do. Otherwise you only make you and your organization look worse.
It's an interesting argument, not one I agree with. In Con's case I believe his approach and design skill in the relevant area to be demonstrably superior to the maintainer and I do not agree with how that was handled, although in the end what was merged is essentially Con's design. On the other hand, Google's suspend blockers patch, while attacking a valid problem, is just a big hackish mess that needs fundamental restructuring. Big difference. Another big difference: Con maintaining his own tree for a while (as he did) will cause no serious harm, far from it, but Google maintaining a forked kernel is a serious issue. Ultimately, Google's tree is going to become obsolete as they necessarily fail to keep up with mainline with the few kernel devs they have. Not even Red Hat managed to pull that off for more than a couple years, not for want of trying. Been there, done that. Google needs to get a clue.
I didn't say it was, you said that open source support is a big part of why people use google, yet - as i showed you - google's major projects aren't open source. Google very often supports open specs, open standards and visible APIs, but those aren't of any bias to OSS or proprietary software.
Nobody is asking Google to open source Pagerank. However, a number of us are reminding Google of its symbiotic dependency on the free and open developer community. Should Google elect to turn its back, that is the time to dump your stock and move on to another company less likely to make a mess in its own bed.
Let me see, one incident that sticks indelibly in my mind... when we moved office, Googlers helped out. When we got to the new office, one of the nifty bagel slicers somehow did not make it. Googly, you bet. Life at Google was like that.
Go ahead Googly coward, mod this down. You are probably the one who stole the bagel slicer.
Softies, you could always pretend to be a Googler and mod this down if you need more:)
As far as I know, just the Linux kernel is covered by copyleft, because Google really really wants to be able to pull these kinds of shenanigans with impunity, and has gone to considerable lengths to do so. However, playing nice with the community is not just about obeying the letter of the law, but understanding the spirit as well. Just another in a series of significant karma losses for Google.
Ah, looks like another Googler did a driveby downmod. Hmm, did you know, when I worked at Google personal property would disappear from my desk from time to time? A signed copy of a book by Daniel Lyons, a nice fleece jacket, couple of other things.
Kind of shocking to me at the time, you bet. But there's a pattern.
> How about the real reason, stated right there in TFS. Can you read?
Because we don't believe them? If android were *really* open, it would be developed in the open. An open drop of code after products are already shipping it certainly not in the spirit of open source.
Personally, I think it's more about Google being threatened by amazon.com, their app store, and their likely future tablet..
Hanlon's Razor. Don't assume that Google actually has any real reason for doing this stupid thing, other than a natural temptation to control as much as possible and, err, be evil. Just a little, you know?
It's also been reported that google has been threatening tablet/phone makers with using non google services. The reason Google gave, seems the less likely reason to me.
I'm still hoping for a Ubuntu tablet. But Ubuntu doesn't seem to be that open these days either... sigh....
I agree that Rubin's claim is not credible. Neither is he in my books, from this point forward.
I'm pretty sure the maintainers told them to fuck off with their patches. Whether that was deserved, I'm not sure.
Kernel maintainers did no such thing. Various seasoned contributors felt that the idea was valid, but the implementation was poor. This was not just maintainers, far from it. For Google to use that as an excuse to stomp off in a funk, or to claim that their patches are not wanted is... various bad things, ranging from puerile to disingenuous. On the face of it, Google would seem to be of the opinion that forking the kernel is no big deal. Perhaps Google also feels that repeatedly tweaking the collective noses of the community is no big deal.
it must get kind'of annoying for them that other companies - some of whom give back nothing - copy RH Linux and significantly undermine RH's ability to earn revenue from their distro.
But never forget that the vast majority of what Red Hat packages was created for free by others. Yes, Red Hat pays the most open source developers of any company with the possible exception of IBM, but that still amounts to just a small fraction of what they bundle up and sell as theirs.
To be clear, I have absolutely no problem with Red Hat bundling up tons of free software and selling support for it. I do have a problem with Red Hat whining and playing sneaky tricks with source distribution, just because somebody else turned around and did the same thing. Red Hat sells support, not software, they would do well to remember that.
As far as I know, just the Linux kernel is covered by copyleft
Actually I misspoke, there are more components of Android under GPL than just the Linux kernel. Whether those components are vanilla upstream or Google forks is another question. One example is e2fsprogs, i.e., fsck. Most probably vanilla, but need to check to be sure.
As far as I know, just the Linux kernel is covered by copyleft, because Google really really wants to be able to pull these kinds of shenanigans with impunity, and has gone to considerable lengths to do so. However, playing nice with the community is not just about obeying the letter of the law, but understanding the spirit as well. Just another in a series of significant karma losses for Google.
And modding down critical but accurate posts on Slashdot hardly does your image a lot of good either.
Which is the kernel, and only the kernel. Which is usually published as a tarball on some obscure page.
And Google has made much less than its best effort to merge their Android-specific hacks back into Linux mainline, which makes them not much better than a number of other fly by night OEMs relying on Linux to make their dreams come true. Even when playing with the community properly would help advance their own interests.
As far as I know, just the Linux kernel is covered by copyleft, because Google really really wants to be able to pull these kinds of shenanigans with impunity, and has gone to considerable lengths to do so. However, playing nice with the community is not just about obeying the letter of the law, but understanding the spirit as well. Just another in a series of significant karma losses for Google.
Linux is NOT OO.
You'd be wrong about that.
I suppose next you'll be arguing that using "goto"s is how we should all be programming.
I'll argue that, at least in the case where what you're writing is a parser for example, in which the most natural and efficient embodiment is a state machine directly implemented with jumps. In this case the goto implementation is also the most readable and easiest to verify because you can mindlessly map it back to your original state diagram. (You did write the state diagram before starting to code didn't you? Didn't you??)
Those that're just taught OO actually have gaps in their knowlege coming out of college and think in a "just so" way like the parent says
Some truth to that. I had interns coming out of UCLA working on my project at Google who were not ashamed at all about using malloc as part of their per-function-call API. After squirting code like that all over the code base it took longer to get rid of it than it did for them to write it in the first place. Epilogue is, after converting it back to reasonably orthogonally, typical C code it also shrank in size by a factor of 5 or so and was orders of magnitude more efficient, plus maintainable, whereas in that sort of weird C++-in-C style it was nigh on indecipherable not to mention buggy. I was pretty shocked and wondered what kind of education these highly sought after interns were actually getting.
Note that I am not arguing against OOP at all, I get a huge amount of mileage out of it. I am instead arguing against mindlessly applying some idea like "new is OOP, use it everywhere" in completely inappropriate contexts. I am pretty sure they would have made the same mess in C++, just not as immediately obvious.
That certainly depends on what OO means to you. From what I can see, Linux is quite OO code - everything is quite modular and it's a very nice state machine. From where I sit, Linux itself can be considered OO code - just that it doesn't use classes or OO language doesn't mean anything.
non-OO code is like libc
Actually, not using classes does mean something: the code is more ugly, inflexible and hard to maintain than necessary. Speaking as someone who lives and breathes the stuff.
Linux kernel would be far better off actually compiling its class-oriented portions with a proper object oriented compiler. Likely as not, the code would be more efficient due to optimizations that can be done on virtual functions. Look at the hundreds of places where you have "if (obj->fn) opj->fn". In many cases that extra test is just pure overhead and can introduce pipeline stalls.
Still scratching my head about the linked article's claim that OOP is anti-modular. On the face of it, that claim is bold and counter to my experience.
Apple almost went bankrupt because clone sales were undercutting their own mac sales but Apple's support costs continued to rise because they were having to provide support not only for owners of "genuine" macs but also clones. Apple has been growing their mac market share at a rate that outpaces the overall industry growth while still maintaining a healthy profit margin.
Nonsense. Clone makers never at any time had enough of the market to threaten Apple's revenue stream or pricing structure. Apple's attacks on the clone market were all about paranoia - what might happen, but never actually happened. The truth is, Apple began to grow its market share after switching to Unix, which worked, and dropping their horribly awful home rolled attempted at an operating system, which never did work reliably.
What, some iGroupie with mod points objects to the factual statement that Mac OS prior to X was completely inadequate, as if designed by people who stopped learning computer science some time before the end of high school? Perhaps I should detail the inadequacies?
There is nothing wrong with enjoying a community spirit or whatever, but anybody doing OSS work because they expect a certain spirit in return is just being a fool.
Good thing there are enough of us fools around then, or naysayers like you would not have nearly so many shiny new toys to play with.
Nice post, except: "BSD and Linux for their servers"... you can cross out BSD there.
Android is the Windows of today...
I have a hard time swallowing that one. While Android's success could possibly rival that of Windows, being open source and forkable is a huge difference. More importantly, by equating Android with Windows you tar it with the brush of monopoly and law breaking, which do not apply by any but the most fanciful stretch of imagination.
Apple almost went bankrupt because clone sales were undercutting their own mac sales but Apple's support costs continued to rise because they were having to provide support not only for owners of "genuine" macs but also clones. Apple has been growing their mac market share at a rate that outpaces the overall industry growth while still maintaining a healthy profit margin.
Nonsense. Clone makers never at any time had enough of the market to threaten Apple's revenue stream or pricing structure. Apple's attacks on the clone market were all about paranoia - what might happen, but never actually happened. The truth is, Apple began to grow its market share after switching to Unix, which worked, and dropping their horribly awful home rolled attempted at an operating system, which never did work reliably.
...and yet another platform for App developers to target. It won't work.
From a marketing perspective it's suicide. Everyone wants iOS or Android nowadays, because it's sexy, it's all the rage, and because of the huge number of Apps you can get from their stores.
Actually, whether you call it Android, WebOS or Meego, it's all Linux , and as such it's not a big deal to jump between them. The bigger issue is Java vs C++, and I for one, would jump at the chance to develop native apps without Java annoyances (C++ annoyances instead). And I don't really care about the GUI so long as I can get an OpenGL surface and input events in some standard way. I would hazard a guess that my preferences are shared by a large fraction of developers, especially those who are going to make the compelling apps we have so far not seen much of on mobile devices. It's really more about what the hardware can do than which flavor of Linux runs on it.
So if Motorola wants to offer a WebOS way of programming Xoom as an alternative to Android, I would install the SDK the next day.
If you want scummy, look to companies like Oracle which just take, repackage, and rarely give back. They're the real problem, not RedHat.
Oracle may be scummy, but that is not the reason. Oracle actually backs a pretty impressive range of open source project, among them Btrfs and OCFS2.
And as everybody knows, a goodly number of the more significant projects have already fled Mordor, err, Oracle in the interest of freedom. However, you can't accuse Oracle of not giving back to open source, Larry gets that part. Other parts of the community contract he fails to get at all, big time.
By the way, if you are convinced of your argument then post under your real name as I do. Otherwise you only make you and your organization look worse.
It's an interesting argument, not one I agree with. In Con's case I believe his approach and design skill in the relevant area to be demonstrably superior to the maintainer and I do not agree with how that was handled, although in the end what was merged is essentially Con's design. On the other hand, Google's suspend blockers patch, while attacking a valid problem, is just a big hackish mess that needs fundamental restructuring. Big difference. Another big difference: Con maintaining his own tree for a while (as he did) will cause no serious harm, far from it, but Google maintaining a forked kernel is a serious issue. Ultimately, Google's tree is going to become obsolete as they necessarily fail to keep up with mainline with the few kernel devs they have. Not even Red Hat managed to pull that off for more than a couple years, not for want of trying. Been there, done that. Google needs to get a clue.
products != image
I didn't say it was, you said that open source support is a big part of why people use google, yet - as i showed you - google's major projects aren't open source. Google very often supports open specs, open standards and visible APIs, but those aren't of any bias to OSS or proprietary software.
Nobody is asking Google to open source Pagerank. However, a number of us are reminding Google of its symbiotic dependency on the free and open developer community. Should Google elect to turn its back, that is the time to dump your stock and move on to another company less likely to make a mess in its own bed.
Looks like another Googly downmod.
Let me see, one incident that sticks indelibly in my mind... when we moved office, Googlers helped out. When we got to the new office, one of the nifty bagel slicers somehow did not make it. Googly, you bet. Life at Google was like that.
Go ahead Googly coward, mod this down. You are probably the one who stole the bagel slicer.
Softies, you could always pretend to be a Googler and mod this down if you need more :)
As far as I know, just the Linux kernel is covered by copyleft, because Google really really wants to be able to pull these kinds of shenanigans with impunity, and has gone to considerable lengths to do so. However, playing nice with the community is not just about obeying the letter of the law, but understanding the spirit as well. Just another in a series of significant karma losses for Google.
Ah, looks like another Googler did a driveby downmod. Hmm, did you know, when I worked at Google personal property would disappear from my desk from time to time? A signed copy of a book by Daniel Lyons, a nice fleece jacket, couple of other things.
Kind of shocking to me at the time, you bet. But there's a pattern.
> How about the real reason, stated right there in TFS. Can you read?
Because we don't believe them? If android were *really* open,
it would be developed in the open. An open drop of code after products
are already shipping it certainly not in the spirit of open source.
Personally, I think it's more about Google being threatened by amazon.com,
their app store, and their likely future tablet..
Hanlon's Razor. Don't assume that Google actually has any real reason for doing this stupid thing, other than a natural temptation to control as much as possible and, err, be evil. Just a little, you know?
It's also been reported that google
has been threatening tablet/phone makers with using non google services. The
reason Google gave, seems the less likely reason to me.
I'm still hoping for a Ubuntu tablet. But Ubuntu doesn't seem to be that open these
days either... sigh....
I agree that Rubin's claim is not credible. Neither is he in my books, from this point forward.
I'm pretty sure the maintainers told them to fuck off with their patches. Whether that was deserved, I'm not sure.
Kernel maintainers did no such thing. Various seasoned contributors felt that the idea was valid, but the implementation was poor. This was not just maintainers, far from it. For Google to use that as an excuse to stomp off in a funk, or to claim that their patches are not wanted is... various bad things, ranging from puerile to disingenuous. On the face of it, Google would seem to be of the opinion that forking the kernel is no big deal. Perhaps Google also feels that repeatedly tweaking the collective noses of the community is no big deal.
If you want scummy, look to companies like Oracle which just take, repackage, and rarely give back. They're the real problem, not RedHat.
Oracle may be scummy, but that is not the reason. Oracle actually backs a pretty impressive range of open source project, among them Btrfs and OCFS2.
it must get kind'of annoying for them that other companies - some of whom give back nothing - copy RH Linux and significantly undermine RH's ability to earn revenue from their distro.
But never forget that the vast majority of what Red Hat packages was created for free by others. Yes, Red Hat pays the most open source developers of any company with the possible exception of IBM, but that still amounts to just a small fraction of what they bundle up and sell as theirs.
To be clear, I have absolutely no problem with Red Hat bundling up tons of free software and selling support for it. I do have a problem with Red Hat whining and playing sneaky tricks with source distribution, just because somebody else turned around and did the same thing. Red Hat sells support, not software, they would do well to remember that.
As far as I know, just the Linux kernel is covered by copyleft
Actually I misspoke, there are more components of Android under GPL than just the Linux kernel. Whether those components are vanilla upstream or Google forks is another question. One example is e2fsprogs, i.e., fsck. Most probably vanilla, but need to check to be sure.
As far as I know, just the Linux kernel is covered by copyleft, because Google really really wants to be able to pull these kinds of shenanigans with impunity, and has gone to considerable lengths to do so. However, playing nice with the community is not just about obeying the letter of the law, but understanding the spirit as well. Just another in a series of significant karma losses for Google.
And modding down critical but accurate posts on Slashdot hardly does your image a lot of good either.
Google is criticized for not trying.
Which is the kernel, and only the kernel. Which is usually published as a tarball on some obscure page.
And Google has made much less than its best effort to merge their Android-specific hacks back into Linux mainline, which makes them not much better than a number of other fly by night OEMs relying on Linux to make their dreams come true. Even when playing with the community properly would help advance their own interests.
As far as I know, just the Linux kernel is covered by copyleft, because Google really really wants to be able to pull these kinds of shenanigans with impunity, and has gone to considerable lengths to do so. However, playing nice with the community is not just about obeying the letter of the law, but understanding the spirit as well. Just another in a series of significant karma losses for Google.