"You also make the mistake of believing that there is such a thing as "Intellectual
Property." There is not. Any examination of the nature of property and the nature of
information such as ideas will reveal the truth. Brazil cannot steal what is unstealable.
And if they choose not to grant any rights to the inventor, there is no external authority
from which the inventor might gain those rights. "
Property is a construct granted by a society. To suggest that IP doesn't exist is absurd -- those with power declare it to exist, so it does. If they lose the power, then IP might cease to exist, for a time.. as it has in the past with various popular movements. But it always came back...
IP was also fought for by those who create value for the world, the ones who deserve the right to control the fruits of their labour. Why? Because we've deliberated over these laws and ideas for centuries, and digital technology doesn't change the fact that APPLIED KNOWLEDGE IS SCARCE enough to require a property system to protect it to promote economic gain, so those with that meet the world's demand get the most economic resources.
You can pray for nanotechnology, for global civil war, for the rise of the proletariat, or whatever -- but it won't change the fact that production of valuable IP is the new world scarcity, and it should be the decision of the individual creator as to whether he wants to FREE his work or whether he wants to exercise protection against duplication for a limited period of time. Or you're going to lose the benefit of people doing such work - they'll move on to other areas that are more economically sound.
And the world society, (i.e. the WIPO, or WTO, for instance) will certainly attempt to ensure that IP rights are respected internationally.
": Ideas are not property, nor are inventions inherently something to be possessed, except as a result of arbitrary laws which have turned out to have the opposite effect as was intended, namely to slow progress rather than accelerate it, and now in the process are actively resulting in the suffering and death of millions. "
You're quite right, ideas aren't property. But certain manifestations of them ARE, because society has declared them to be. If you disagree, so be it, but to suggest that IP is just naturally "wrong" and doesn't exist as a right is as naive as one can get.
Rights are fought for, and IP right have been fought over for centuries, with the CREATORS of VALUE getting the upper hand, which is their privilege.
It is you who must realize that society created these laws in a deliberate, systematic fashion -- not arbitrary -- and that there is centuries of legal history explaining WHY these laws exist.
Overzelous IP laws need to be struck down, like broad patents and the DMCA. But IP law itself should not be, because as a society, we have determined it is a necessary right to promote innovation and creativity.
the iMac's innovation was twofold: A) a mass-produced "cute" computer, and B) the easiest computer to connect to the internet. The desktop movies/firewire came later.
Quicktime was created in the early 90's primarily as an answer to a vision John Sculley had about playing laserdiscs & movies on the Mac. This wasn't exactly technically viable / or the greatest idea, so the engineering team came up with a general video framework that pioneered desktop multimedia. Remember, this was the early 1990's, back when Windows 3.0 was a baby.
I miss Commodore too (I owned a PET, Vic-20, C64, and Amiga.) They definitely innovated, but the Amiga is an example of something that the market wasn't ready for (which still burns me, but what ya gonna do.) I've never been a major Apple fan historically, but I picked up a Powerbook a couple of years ago and have really enjoyed it, so I've become more of a supporter recently.
I'm not claiming it's a panacea. For some reason you're implying that I am.
I'm implying that mixing paradigms in a single program violates consistency of thought, hence making such programs hard to read.
So, if you want to do procedural programming, then do so.
But to mix & match the two is rarely a case of intellectual clarity - more a case of "I don't understand objects well enough to use this metaphor consistently throughout my program".
But, since you don't want to debate this, I guess we'll have to leave it at that.
From Merriam-Webster Innovate: 1 : to introduce as or as if new
Invent: 2 : to devise by thinking : FABRICATE
3 : to produce (as something useful) for the first time through the use of the imagination or of ingenious thinking and experiment
Innovation has always been about doing "new things" to fill market needs. Invention gets the glory, but rarely the $$$... hence, people like to equate innovation with invention, but it's simply not the same thing.
A business is primarily about performing well on two fronts: innovation and marketing.
Innovation is, and always has been, an economic term. It's about creating or responding to a market need, and hence creating a new "niche" or even "industry", so to speak. Marketing is about communication.
Apple has done the innovation part better than almost any PC company in history. Its marketing hasn't been as stellar traditionally, with notable exceptions (1984 and the iMac launch). The Apple 2, Macintosh, iMac, Quicktime, iMovie + Firewire, USB peripherals, iDVD, and Mac OS X, are all examples of knowing how to extend existing ideas and reshape them to be innovative.
"Computers for the rest of us" is clearly an innovation.
"but then again, I've found that Object Oriented programming isn't the complete answer to programming... you need a balance of both function and objects. Not everything can be represented by objects. "
..doesn't that just mean "I ran into a problem I couldn't solve with objects, so rather than admit I need to learn more, I returned to my old ways"??
There's no program that can't be represented as functions (elegantly).
There's no program that can't be represented as objects (elegantly).
It's just a matter of which paradigm requires more skill & time. I would submit the latter paradigm require less, since it gives you more basic constructs out of the box.
A lot of enterprise software isn't grunt work. (that you think so explains why you're disgruntled with your job).
You've stated that you can't stand Java without providing much of a tangible reason. Swing is not a mess. (Yes, I use it daily.) It's quite good, actually, and getting better. Java the language, while not the best, is good.
And Enterprise software is as real as programming can get... where else do you ahve to deal with very complex requirements, performance, scale, reliability, and usability all in one place? It's the ultimate balancing act and a wonderful & fun challenge for any programming team. Maybe you should look for another job, you don't seem all that motivated.
In the RT spec, memory allocation is guaranteed to have linear allocation time (in terms of the size of the object).
Embedded systems programmers have been dreaming of a safer and more productive means of developing systems... Java RT is very promising.
Invited talk at OOPSLA 2000
on
Mob Software
·
· Score: 5, Insightful
This is the essay that formed Dick Gabriel's OOPSLA 2000 invited talk.
It was a really thought-provoking talk, punctuated periodically with various musical interludes. Richard himself was wearing a rather interesting outfit -- if I recall, it's been almost a year so I might be off, it was a large leather shawl... I remember a few people in the audience whispering ("is this supposed to be zen or just wierd on purpose?")
But a lot of what Richard says also highlights some of what several others (Jim Coplien, David Ungar, etc.) were hitting on during the conference: that we really aren't creating *great* software. We've certainly tried to come up with movements to do so -- from Extreme Programming, to Design Patterns, to new high-level languages. But "design patterns" aren't quite the same things that Alexander had in mind (entire "pattern languages" to emerge "great software" was the hope), and that most design patterns could really be termed "fixes for existing languages".
We need new approaches to software design -- and we need to explore more of the consequences of abstraction. Humans use abstraction as a mental necessity... but is there a way to abstract without losing the importance of the details (when they are relevant and important)? How can we handle the tremendous complexity of software when that complexity is increasing at an alarming rate?
But most importantly -- How do we teach the next generation of programmers what we've learned, so they don't make the same mistakes?
So the point of the essay (that I took away) is this: if we're going to find new approaches for software, we're going to have to create a "new literature" to learn from, as we're running out of sources of "great literature" (many of which are becoming passe').
The way to create an evolving body of code literature is through A) people that are passionate about software, B) through software that is free, and C) through software that is openly collaborated on. Hence: Mob Software...
A lot of the the themes aluded into in this essay: poetry, abstraction, software, patterns, etc. are all discussed in great detail in his book "Patterns of Software: Tales from the Community".
- Weblogic 6 and Persistence PowerTier can cluster stateful session beans (though not transactionally).
- Entity beans with CMP don't need to be slow (see TopLink or Borland App Server).
- Message driven beans in WL 6.0 are excellent ways of listening to bus-based applications (price feeds, etc.)
- Container managed transactions make it easy to redesign your commit points if you're going to reuse a component. it doesn't necessarily make the "first try" design any easier.
- Location transparency was thrown out with RMI.. since every RMI interface extends Remote, it was Jim Waldo's intent to FORCE you to catch RemoteException to handle remote errors. So the point is to keep it easy, but recognize it's not transparent
- most servers handle the working set of stateful session beans quite well, thus creating an excellent way to handle large amounts of conversational state (beyond HttpSession which is web-only...)
EJB isn't perfect, there ARE stupidisms, but it's pretty good.
The costs that existed then and still exist now are dealing with the scarcity of talent & knowledge in the creation of "worthwhile" pieces of IP.
Such scarcity is real, and should probably be regulated by a marketplace to encourage those that have the talent & knowledge to actually create such works. (i.e. don't become a musician/poet/author because it doesn't pay well... still a very real concern, though the incentive in the modern world is to become one of those few that actually do make adequate (or too much) money.)
And I don't believe for a moment that those that chose to take the risk to become an artist are inherently "better" creators than those that didn't (this is the "well, if copyright were gone, art would be better" argument).. I don't believe this. I think the decision to do something with one's life is entirely based on varying circumstances that a generalization can't possibly cover...
There is one key element of OO languages
on
Why not Ruby?
·
· Score: 1
That of the message pass being an intrinsic part of the language. Message passing (some would say "simulation") is the key insight that OO has given the world of programming.
Other tools like inheritance, polymorphism, etc. are important factoring tools that follow as corollaries to the notion of message passing.
In C, if I put function pointers into a struct, and call them with a "->", while this may seem to you as a message pass, it really isn't. It's de-referancing a pointer to a function. It destroys the abstraction of the message pass by exposing the programmer to the underlying nature of pointer tables.
On the other hand, you are quite correct that some languages are a super-set of OO features. LISP can allow the creation of mini-languages inside of it, like CLOS, that represent the message pass (using generic functions, for example). This is granted, but I also would like to state that such languages are far from the mainstream of language usage; the world would be wonderful if they were used more, but alas, this is not the case.
So my view is that at least an OO language provides a certain "water level" of assumptions in constraining the programmer's means of expressing intent -- and I would claim that constraints on expression are a necessary evil to simplify the environment for mainstream use.
"What will happen to a slave economy when AI and advanced automation replaces everybody? It will collapse, that's what. "
On the contrary. Humans will get to focus more on things their good at (creative, non-repetitive tasks) and less on being like machines (systematic, repetitive tasks).
Or, you could see the need for the emergence of a third sector: the social sector, something Peter Drucker has been talking about in recent years.
Government caters to a mish-mash of interests, so naturally the public sector can't cover everything. It's role is mainly political.
The private sector is entrusted primarily with making resources productive in the process of serving consumption.
The sector that's missing is the social sector: currently being filled by NGO's, churches, and loose social groups like the open source community...
I think such a sector is going to become more important as our world evolves and becomes more complex.. Capitalism isn't going to be destroyed, it just needs to evolve into a form of post-capitalism...
...or maybe they realize that Kent Beck is a software developer with a pristine record of developing great software and being well respected within the Smalltalk community?
And WTF is a "REAL" software engineering text?
You seem to be falling into the typical trap of being cynical over something without even trying to understand its motivation, history, or intent.
If a customer makes a bone-headed requirements move, he or she has the freedom to fix it by reprioritizing. When a customer is in the driver's seat, their own problems in defining what they want and when they want it become more apparent...
...which is why XP will probably fail quite often. The customer must speak with one voice... and in a CYA culture, that's usually not the case when multiple vested interests are involved.
On the bright side, the development team gets to actually *deliver* stuff, and is somewhat removed from the area of incompetence (though there's no shortage of incompetent programming teams..)
I hope you're not suggesting that Drucker's works are facile and meaningless. Otherwise, you've pretty much destroyed your credibility with anyone that's followed his works over ther years.
Reality is object-oriented. Really? When the Sun rises, does it send messages to the birds to tell them to sing?
This is to cite an oft-used example of how absurd it is to think reality conforms to a message-passing model. It doesn't. That's partially why "design patterns" exist in the first place.. they're patches on things that the language model doesn't solve yet.
As for OODBMS', I'm an OODBMS advocate in some ways, I think they're great when in the hands of experts. But otherwise one tends to be able to get simple things done quicker with SQL, until a fully expressive ad hoc query capability is on these object systems.. (which is almost never the case).
Ditto for getting performance out of things... does your ODBMS have associative B-Tree indices built in? that work when your query is traversing over collections? etc. I've had to write these things myself in the past, and while pleasant, I don't think other people would share that opinion.
User definable functions including aggregate functions. You want to define a MAX or MIN on text fields go crazy!. Oracle has this. And a bunch of predefined ones for text fields (included in intermedia, the thing you said "I have no idea what this is" to)
Loadable stored procedure languages. You can use perl, python, C or the built in language. You can write code in C and run it privledged mode with access to the OS (as the postgres user).
Oracle allows C and Java for the same thing.
Ability to define your own operators. It also has a very rich set of operators like a operator that says "is this point outside of this circle". In fact the geometric datatypes are freaking awsome.
Oracle has this (Java or C). Oracle Spatial also has many built in operators and functions for geometry.
Ability to define your own objects (kinda) and store them in the database. Very object relational. ...Oracle has been object/relational since 1997.
unlimited row size. Unlimited length text fields. Oracle CLOBs are unlimited size. Can't confirm column limits.
Regular expressions in the SQL statements. Groovy. Don't think Oracle does this yet.
I could go on and on but trust me there are problems postgres can solve that oracle can't. Please do go on... you've dug yourself into quite a hole so far.
What he's saying is that very often people performing benchmarks against oracle are likely not to be Professional Oracle DBAs.
Most real world Oracle shops have professional DBA's running their systems (this is one area where I'm glad to say I *have* seen companies spare little expense at hiring the best & brightest; their data is their lifeblood).
For one, cache coherency on read/write conflicts between parallel cluster nodes. In 9i this will be increased to write/write conflicts as well.
other things that Oracle has that PostgreSQL may need to catchup on:
- Materialized views & snapshots
- Tons of documentation (look at the book store)
- Tablespaces and rollback segments for fine grained disk usage distribution
- 24/7 operation: the ability to take portions of the database offline for backup / recovery while keeping other parts up (i.e. tablespaces)
- Tools support (SQL Navigator, DBArtisan, etc.)
- Heterogeneous data replication
- Text-based indices (intermedia)
- XSQL and XML rowsets
And 9i is going to add even more features for 24/7 operations, such as re-creating indices without table locks, moving tables across namespaces with only short duration locks, etc.
So, while I really do like PostgreSQL, it isn't Oracle.
the point of the above is that while 10% of the business world requires the power of beefy Sun boxes & Oracle, these guys also constitute a sizable portion of revenue.
let's not forget that
a) Oracle is the #2 software company in the world in revenues
b) Sun makes as much revenue as Microsoft.
So.... it's not about propaganda, it's about hard, tangible numbers of what people use. Of course, you'll just say that "they've been duped into buying crap", but they people doing the purchasing probably know better than that. Hey, we use Linux, because we know its great for many tasks. Generally most places I consult for don't use MySQL or PostgreSQL (though I think we have a small intranet system somewhere using OpenBase and one that might be in Postgres...)
"You also make the mistake of believing that there is such a thing as "Intellectual
Property." There is not. Any examination of the nature of property and the nature of
information such as ideas will reveal the truth. Brazil cannot steal what is unstealable.
And if they choose not to grant any rights to the inventor, there is no external authority
from which the inventor might gain those rights. "
Property is a construct granted by a society. To suggest that IP doesn't exist is absurd -- those with power declare it to exist, so it does. If they lose the power, then IP might cease to exist, for a time.. as it has in the past with various popular movements. But it always came back...
IP was also fought for by those who create value for the world, the ones who deserve the right to control the fruits of their labour. Why? Because we've deliberated over these laws and ideas for centuries, and digital technology doesn't change the fact that APPLIED KNOWLEDGE IS SCARCE enough to require a property system to protect it to promote economic gain, so those with that meet the world's demand get the most economic resources.
You can pray for nanotechnology, for global civil war, for the rise of the proletariat, or whatever -- but it won't change the fact that production of valuable IP is the new world scarcity, and it should be the decision of the individual creator as to whether he wants to FREE his work or whether he wants to exercise protection against duplication for a limited period of time. Or you're going to lose the benefit of people doing such work - they'll move on to other areas that are more economically sound.
And the world society, (i.e. the WIPO, or WTO, for instance) will certainly attempt to ensure that IP rights are respected internationally.
": Ideas are not property, nor are inventions inherently something to be possessed, except as a result of arbitrary laws which have turned out to have the opposite effect as was intended, namely to slow progress rather than accelerate it, and now in the process are actively resulting in the suffering and death of millions. "
You're quite right, ideas aren't property. But certain manifestations of them ARE, because society has declared them to be. If you disagree, so be it, but to suggest that IP is just naturally "wrong" and doesn't exist as a right is as naive as one can get.
Rights are fought for, and IP right have been fought over for centuries, with the CREATORS of VALUE getting the upper hand, which is their privilege.
It is you who must realize that society created these laws in a deliberate, systematic fashion -- not arbitrary -- and that there is centuries of legal history explaining WHY these laws exist.
Overzelous IP laws need to be struck down, like broad patents and the DMCA. But IP law itself should not be, because as a society, we have determined it is a necessary right to promote innovation and creativity.
the iMac's innovation was twofold: A) a mass-produced "cute" computer, and B) the easiest computer to connect to the internet. The desktop movies/firewire came later.
Quicktime was created in the early 90's primarily as an answer to a vision John Sculley had about playing laserdiscs & movies on the Mac. This wasn't exactly technically viable / or the greatest idea, so the engineering team came up with a general video framework that pioneered desktop multimedia. Remember, this was the early 1990's, back when Windows 3.0 was a baby.
I miss Commodore too (I owned a PET, Vic-20, C64, and Amiga.) They definitely innovated, but the Amiga is an example of something that the market wasn't ready for (which still burns me, but what ya gonna do.) I've never been a major Apple fan historically, but I picked up a Powerbook a couple of years ago and have really enjoyed it, so I've become more of a supporter recently.
I'm not claiming it's a panacea. For some reason you're implying that I am.
I'm implying that mixing paradigms in a single program violates consistency of thought, hence making such programs hard to read.
So, if you want to do procedural programming, then do so.
But to mix & match the two is rarely a case of intellectual clarity - more a case of "I don't understand objects well enough to use this metaphor consistently throughout my program".
But, since you don't want to debate this, I guess we'll have to leave it at that.
From Merriam-Webster
Innovate: 1 : to introduce as or as if new
Invent: 2 : to devise by thinking : FABRICATE
3 : to produce (as something useful) for the first time through the use of the imagination or of ingenious thinking and experiment
Innovation has always been about doing "new things" to fill market needs. Invention gets the glory, but rarely the $$$... hence, people like to equate innovation with invention, but it's simply not the same thing.
A business is primarily about performing well on two fronts: innovation and marketing.
Innovation is, and always has been, an economic term. It's about creating or responding to a market need, and hence creating a new "niche" or even "industry", so to speak. Marketing is about communication.
Apple has done the innovation part better than almost any PC company in history. Its marketing hasn't been as stellar traditionally, with notable exceptions (1984 and the iMac launch). The Apple 2, Macintosh, iMac, Quicktime, iMovie + Firewire, USB peripherals, iDVD, and Mac OS X, are all examples of knowing how to extend existing ideas and reshape them to be innovative.
"Computers for the rest of us" is clearly an innovation.
"but then again, I've found that Object Oriented programming isn't the complete answer to programming... you need a balance of both function and objects. Not everything can be represented by objects. "
..doesn't that just mean "I ran into a problem I couldn't solve with objects, so rather than admit I need to learn more, I returned to my old ways"??
There's no program that can't be represented as functions (elegantly).
There's no program that can't be represented as objects (elegantly).
It's just a matter of which paradigm requires more skill & time. I would submit the latter paradigm require less, since it gives you more basic constructs out of the box.
A lot of enterprise software isn't grunt work. (that you think so explains why you're disgruntled with your job).
You've stated that you can't stand Java without providing much of a tangible reason. Swing is not a mess. (Yes, I use it daily.) It's quite good, actually, and getting better. Java the language, while not the best, is good.
And Enterprise software is as real as programming can get... where else do you ahve to deal with very complex requirements, performance, scale, reliability, and usability all in one place? It's the ultimate balancing act and a wonderful & fun challenge for any programming team. Maybe you should look for another job, you don't seem all that motivated.
In the RT spec, memory allocation is guaranteed to have linear allocation time (in terms of the size of the object).
Embedded systems programmers have been dreaming of a safer and more productive means of developing systems... Java RT is very promising.
This is the essay that formed Dick Gabriel's OOPSLA 2000 invited talk.
It was a really thought-provoking talk, punctuated periodically with various musical interludes. Richard himself was wearing a rather interesting outfit -- if I recall, it's been almost a year so I might be off, it was a large leather shawl... I remember a few people in the audience whispering ("is this supposed to be zen or just wierd on purpose?")
But a lot of what Richard says also highlights some of what several others (Jim Coplien, David Ungar, etc.) were hitting on during the conference: that we really aren't creating *great* software. We've certainly tried to come up with movements to do so -- from Extreme Programming, to Design Patterns, to new high-level languages. But "design patterns" aren't quite the same things that Alexander had in mind (entire "pattern languages" to emerge "great software" was the hope), and that most design patterns could really be termed "fixes for existing languages".
We need new approaches to software design -- and we need to explore more of the consequences of abstraction. Humans use abstraction as a mental necessity... but is there a way to abstract without losing the importance of the details (when they are relevant and important)? How can we handle the tremendous complexity of software when that complexity is increasing at an alarming rate?
But most importantly -- How do we teach the next generation of programmers what we've learned, so they don't make the same mistakes?
So the point of the essay (that I took away) is this: if we're going to find new approaches for software, we're going to have to create a "new literature" to learn from, as we're running out of sources of "great literature" (many of which are becoming passe').
The way to create an evolving body of code literature is through A) people that are passionate about software, B) through software that is free, and C) through software that is openly collaborated on. Hence: Mob Software...
A lot of the the themes aluded into in this essay: poetry, abstraction, software, patterns, etc. are all discussed in great detail in his book "Patterns of Software: Tales from the Community".
Cheers
Just finished a book on J2EE.....
- Weblogic 6 and Persistence PowerTier can cluster stateful session beans (though not transactionally).
- Entity beans with CMP don't need to be slow (see TopLink or Borland App Server).
- Message driven beans in WL 6.0 are excellent ways of listening to bus-based applications (price feeds, etc.)
- Container managed transactions make it easy to redesign your commit points if you're going to reuse a component. it doesn't necessarily make the "first try" design any easier.
- Location transparency was thrown out with RMI.. since every RMI interface extends Remote, it was Jim Waldo's intent to FORCE you to catch RemoteException to handle remote errors. So the point is to keep it easy, but recognize it's not transparent
- most servers handle the working set of stateful session beans quite well, thus creating an excellent way to handle large amounts of conversational state (beyond HttpSession which is web-only...)
EJB isn't perfect, there ARE stupidisms, but it's pretty good.
The costs that existed then and still exist now are dealing with the scarcity of talent & knowledge in the creation of "worthwhile" pieces of IP.
Such scarcity is real, and should probably be regulated by a marketplace to encourage those that have the talent & knowledge to actually create such works. (i.e. don't become a musician/poet/author because it doesn't pay well... still a very real concern, though the incentive in the modern world is to become one of those few that actually do make adequate (or too much) money.)
And I don't believe for a moment that those that chose to take the risk to become an artist are inherently "better" creators than those that didn't (this is the "well, if copyright were gone, art would be better" argument).. I don't believe this. I think the decision to do something with one's life is entirely based on varying circumstances that a generalization can't possibly cover...
That of the message pass being an intrinsic part of the language. Message passing (some would say "simulation") is the key insight that OO has given the world of programming.
Other tools like inheritance, polymorphism, etc. are important factoring tools that follow as corollaries to the notion of message passing.
In C, if I put function pointers into a struct, and call them with a "->", while this may seem to you as a message pass, it really isn't. It's de-referancing a pointer to a function. It destroys the abstraction of the message pass by exposing the programmer to the underlying nature of pointer tables.
On the other hand, you are quite correct that some languages are a super-set of OO features. LISP can allow the creation of mini-languages inside of it, like CLOS, that represent the message pass (using generic functions, for example). This is granted, but I also would like to state that such languages are far from the mainstream of language usage; the world would be wonderful if they were used more, but alas, this is not the case.
So my view is that at least an OO language provides a certain "water level" of assumptions in constraining the programmer's means of expressing intent -- and I would claim that constraints on expression are a necessary evil to simplify the environment for mainstream use.
"What will happen to a slave economy when AI and advanced automation replaces everybody? It will collapse, that's what. "
On the contrary. Humans will get to focus more on things their good at (creative, non-repetitive tasks) and less on being like machines (systematic, repetitive tasks).
Stu
Or, you could see the need for the emergence of a third sector: the social sector, something Peter Drucker has been talking about in recent years.
Government caters to a mish-mash of interests, so naturally the public sector can't cover everything. It's role is mainly political.
The private sector is entrusted primarily with making resources productive in the process of serving consumption.
The sector that's missing is the social sector: currently being filled by NGO's, churches, and loose social groups like the open source community...
I think such a sector is going to become more important as our world evolves and becomes more complex.. Capitalism isn't going to be destroyed, it just needs to evolve into a form of post-capitalism...
Stu
$2200/month, a loft just outside of New York City.
...or maybe they realize that Kent Beck is a software developer with a pristine record of developing great software and being well respected within the Smalltalk community?
And WTF is a "REAL" software engineering text?
You seem to be falling into the typical trap of being cynical over something without even trying to understand its motivation, history, or intent.
... for their actions.
If a customer makes a bone-headed requirements move, he or she has the freedom to fix it by reprioritizing. When a customer is in the driver's seat, their own problems in defining what they want and when they want it become more apparent...
...which is why XP will probably fail quite often. The customer must speak with one voice... and in a CYA culture, that's usually not the case when multiple vested interests are involved.
On the bright side, the development team gets to actually *deliver* stuff, and is somewhat removed from the area of incompetence (though there's no shortage of incompetent programming teams..)
I hope you're not suggesting that Drucker's works are facile and meaningless. Otherwise, you've pretty much destroyed your credibility with anyone that's followed his works over ther years.
Reality is object-oriented.
Really? When the Sun rises, does it send messages to the birds to tell them to sing?
This is to cite an oft-used example of how absurd it is to think reality conforms to a message-passing model. It doesn't. That's partially why "design patterns" exist in the first place.. they're patches on things that the language model doesn't solve yet.
As for OODBMS', I'm an OODBMS advocate in some ways, I think they're great when in the hands of experts. But otherwise one tends to be able to get simple things done quicker with SQL, until a fully expressive ad hoc query capability is on these object systems.. (which is almost never the case).
Ditto for getting performance out of things... does your ODBMS have associative B-Tree indices built in? that work when your query is traversing over collections? etc. I've had to write these things myself in the past, and while pleasant, I don't think other people would share that opinion.
User definable functions including aggregate functions. You want to define a MAX or MIN on text fields go crazy!.
Oracle has this. And a bunch of predefined ones for text fields (included in intermedia, the thing you said "I have no idea what this is" to)
Loadable stored procedure languages. You can use perl, python, C or the built in language. You can write code in C and run it privledged mode with access to the OS (as the postgres user).
Oracle allows C and Java for the same thing.
Ability to define your own operators. It also has a very rich set of operators like a operator that says "is this point outside of this circle". In fact the geometric datatypes are freaking awsome.
Oracle has this (Java or C). Oracle Spatial also has many built in operators and functions for geometry.
Ability to define your own objects (kinda) and store them in the database. Very object relational.
...Oracle has been object/relational since 1997.
unlimited row size. Unlimited length text fields.
Oracle CLOBs are unlimited size. Can't confirm column limits.
Regular expressions in the SQL statements.
Groovy. Don't think Oracle does this yet.
I could go on and on but trust me there are problems postgres can solve that oracle can't.
Please do go on... you've dug yourself into quite a hole so far.
www.inetsoftware.de and www.bea.com both have SQL server JDBC drivers.
Though I will grant it still is a niche product, but that's one helluva niche.
nice non sequitur.
What he's saying is that very often people performing benchmarks against oracle are likely not to be Professional Oracle DBAs.
Most real world Oracle shops have professional DBA's running their systems (this is one area where I'm glad to say I *have* seen companies spare little expense at hiring the best & brightest; their data is their lifeblood).
For one, cache coherency on read/write conflicts between parallel cluster nodes. In 9i this will be increased to write/write conflicts as well.
other things that Oracle has that PostgreSQL may need to catchup on:
- Materialized views & snapshots
- Tons of documentation (look at the book store)
- Tablespaces and rollback segments for fine grained disk usage distribution
- 24/7 operation: the ability to take portions of the database offline for backup / recovery while keeping other parts up (i.e. tablespaces)
- Tools support (SQL Navigator, DBArtisan, etc.)
- Heterogeneous data replication
- Text-based indices (intermedia)
- XSQL and XML rowsets
And 9i is going to add even more features for 24/7 operations, such as re-creating indices without table locks, moving tables across namespaces with only short duration locks, etc.
So, while I really do like PostgreSQL, it isn't Oracle.
the point of the above is that while 10% of the business world requires the power of beefy Sun boxes & Oracle, these guys also constitute a sizable portion of revenue.
let's not forget that
a) Oracle is the #2 software company in the world in revenues
b) Sun makes as much revenue as Microsoft.
So.... it's not about propaganda, it's about hard, tangible numbers of what people use. Of course, you'll just say that "they've been duped into buying crap", but they people doing the purchasing probably know better than that. Hey, we use Linux, because we know its great for many tasks. Generally most places I consult for don't use MySQL or PostgreSQL (though I think we have a small intranet system somewhere using OpenBase and one that might be in Postgres...)