"If you lower their average salary, wouldn't that drive them out of the commercial industry towards something else?"
Yes. A non-programming job.
"That probably wouldn't impact OSS at all (it might even increase it-- people need to get their creative energy out)."
You'd be surprised how fighting for survival saps one's energy, creative and otherwise. And try telling your wife (if you have one) that you're going to write software for free in lieu of getting a better job or helping her around the house. That's "free" as in "you're free to sleep on the sofa".
Unless you honestly believe that the final version will contain things like duplicate entries in a menu, I don't see how your comments shed any light on the quality of closed vs. open source.
for our current technology as academia and governement.
"As I see it, the transistor was invented in academia, the internet in government labs and academia; both free-and-open-information-sharing friendly (well not always with the government). "
Then you need to check your eyes. The transitor was invented by Bell Labs, part of the AT&T monopoly. Unix was also invented there.
Ethernet, the core technology behind the internet was invented by Xerox (funded by very valuable patents) and made a standard by Xerox, HP, and DEC.
Academia and governments have played a role too, but it's just not accurate to suggest that corporations haven't played a key role in the advancement of technology.
Um, No. Performance may be important, but it's not functionality.
In any case, refactoring isn't necessarily about performance (note that Martin Fowler's quote is about refactoring to change the structure of a program, not to make it faster).
"As for "rewrite vs. refactor", that might be true for relatively small changes, but when you're talking about a large project like OOo, you don't want to throw the baby out with the bath water."
Rewriting isn't necessarily throwing everything out but rather creating a new design that incorporates what has been learned from the experience of using the prior design.
Refactoring strikes me as "quality added on" rather than "quality built in".
"Better yet, the whole thing needs a good dose of refactor mercilessly, similar to what X.org has been doing"
Sure. If you can't get developers to create new stuff I'm sure you can find more who would be willing to work on a refactoring effort that won't add any functionality for a few years.
If the design is really that bad you'd be better off rewriting it from scratch than refactoring it.
I don't think there is any universally agreed upon difference between a Software Engineer and a Computer Programmer.
In my 20+ years of experience I've worked under many titles and I never worked with anyone who merely wrote code on the job. Everyone was involved with design, documentation, implementation and testing.
"If you're doing UI prototypes I really think that this is a severe limitation."
If you're just doing UI prototypes you don't even need "Anchor" or "Dock" properties, a fixed layout will give you everything you need. Layout managers are useful for handling multiple resolutions or multiple platforms, but they don't give you any additional graphics or interactive capability.
"If you are doing UI concept R&D I would think that you would want to be platform independent."
I can't imagine why you would think that. He's just researching concepts, not delivering a final solution. Concepts are quite portable.
He should use whatever language and framework expedites his research. Then when the research is complete, he can decide on the appropriate approach to take for a real-world implementation (assuming he wants to).
"Cross-platform outweighs everything else by far."
Cross-platform development is something nearly everyone thinks is a good idea but very few attempt. Even using Java, you'd be crazy if you didn't test your software on every platform you target.
In many cases, you just can't justify the additional effort.
Years ago HP made a PC with a touch screen that wasn't successful. HP concluded that while a touch screen was a cool idea, people got tired holding their arms up so long.
you remember your tracking number but don't remember the shipping company.
Seriously wouldn't be a lot more useful if you could enter your name and some keyword that meant "check for any packages with all the major shipping companies"?
When an OS like Unix is command-line oriented, it's only natural that scripting is very common due to the error-prone nature of typing long commands. Also there's a deep cultural preference to use the command line even if GUIs are available.
This not true of Windows where the cultural preference is to use a GUI. So most Windows users don't really care much about scripting. There's little point in pushing a technique that will only make the story more complicated for most users.
"But history has shown that the short term impact of most new things tend to be over-estimated, whereas the long term impact tends to be under-estimated."
That's why we should all be using "Push" technology any day now.
"If you lower their average salary, wouldn't that drive them out of the commercial industry towards something else?"
Yes. A non-programming job.
"That probably wouldn't impact OSS at all (it might even increase it-- people need to get their creative energy out)."
You'd be surprised how fighting for survival saps one's energy, creative and otherwise. And try telling your wife (if you have one) that you're going to write software for free in lieu of getting a better job or helping her around the house. That's "free" as in "you're free to sleep on the sofa".
"Also, some projects just don't work well with the OSS model. Games, for instance-- some of them are more like movies, and needs $$$ to back them."
If you lower the average salary of programmers to that of the average artist, I suspect that a lot more projects would become non-OSS compatible.
Unless you honestly believe that the final version will contain things like duplicate entries in a menu, I don't see how your comments shed any light on the quality of closed vs. open source.
That's OK. He can just call it git/Linus.
UNIX had an unfortunate industrial accident near the DOS floppy disk assembly line and some UNIX bits got embedded in some DOS floppies.
for our current technology as academia and governement.
"As I see it, the transistor was invented in academia, the internet in government labs and academia; both free-and-open-information-sharing friendly (well not always with the government). "
Then you need to check your eyes. The transitor was invented by Bell Labs, part of the AT&T monopoly. Unix was also invented there.
Ethernet, the core technology behind the internet was invented by Xerox (funded by very valuable patents) and made a standard by Xerox, HP, and DEC.
Academia and governments have played a role too, but it's just not accurate to suggest that corporations haven't played a key role in the advancement of technology.
Um, No. Performance may be important, but it's not functionality.
In any case, refactoring isn't necessarily about performance (note that Martin Fowler's quote is about refactoring to change the structure of a program, not to make it faster).
"As for "rewrite vs. refactor", that might be true for relatively small changes, but when you're talking about a large project like OOo, you don't want to throw the baby out with the bath water."
Rewriting isn't necessarily throwing everything out but rather creating a new design that incorporates what has been learned from the experience of using the prior design.
Refactoring strikes me as "quality added on" rather than "quality built in".
"Better yet, the whole thing needs a good dose of refactor mercilessly, similar to what X.org has been doing"
Sure. If you can't get developers to create new stuff I'm sure you can find more who would be willing to work on a refactoring effort that won't add any functionality for a few years.
If the design is really that bad you'd be better off rewriting it from scratch than refactoring it.
I see your point, but I still think google's "Do no evil" motto is as much about marketing as it as about principle.
"Google has a strict policy of "Don't be evil" and they are for profit."
Yes, and the US Pledge of Allegiance ends with the words "with liberty and justice for all". Just because you say something doesn't mean it's true.
He's doing quite well in his new career of playing caricatures of himself in movies, TV, and commercials.
Yes, if it were an actual product, I would agree. The output of research is information, not code.
"I have never seen one that is current"
"It is always done after the code is completed"
Assuming you've actually seen a design document, these two statements are contradictory.
I don't think there is any universally agreed upon difference between a Software Engineer and a Computer Programmer.
In my 20+ years of experience I've worked under many titles and I never worked with anyone who merely wrote code on the job. Everyone was involved with design, documentation, implementation and testing.
"If you're doing UI prototypes I really think that this is a severe limitation."
If you're just doing UI prototypes you don't even need "Anchor" or "Dock" properties, a fixed layout will give you everything you need. Layout managers are useful for handling multiple resolutions or multiple platforms, but they don't give you any additional graphics or interactive capability.
This is research, not a product.
"If you are doing UI concept R&D I would think that you would want to be platform independent."
I can't imagine why you would think that. He's just researching concepts, not delivering a final solution. Concepts are quite portable.
He should use whatever language and framework expedites his research. Then when the research is complete, he can decide on the appropriate approach to take for a real-world implementation (assuming he wants to).
"Cross-platform outweighs everything else by far."
Cross-platform development is something nearly everyone thinks is a good idea but very few attempt. Even using Java, you'd be crazy if you didn't test your software on every platform you target.
In many cases, you just can't justify the additional effort.
Years ago HP made a PC with a touch screen that wasn't successful. HP concluded that while a touch screen was a cool idea, people got tired holding their arms up so long.
warmth.
you remember your tracking number but don't remember the shipping company.
Seriously wouldn't be a lot more useful if you could enter your name and some keyword that meant "check for any packages with all the major shipping companies"?
"Examples please?"
I might ask the same thing. Simply summarizing the usefulness of your own scripts is not much evidence.
The point is not whether all your personal scripts save time but whether scripts written by people in general save time.
Well, I wasn't saying that scripting isn't useful only that it is less intersting to most Windows users than it is to most Unix users.
On the other hand, there's plenty of scripts that have been written that took more time to write than will ever be recovered in their lifetime of use.
Sometimes scripting is a symptom of a programmer's desire to turn everything into a mini-programming project instead of getting on to his real work.
When an OS like Unix is command-line oriented, it's only natural that scripting is very common due to the error-prone nature of typing long commands. Also there's a deep cultural preference to use the command line even if GUIs are available.
This not true of Windows where the cultural preference is to use a GUI. So most Windows users don't really care much about scripting. There's little point in pushing a technique that will only make the story more complicated for most users.
"But history has shown that the short term impact of most new things tend to be over-estimated, whereas the long term impact tends to be under-estimated."
That's why we should all be using "Push" technology any day now.
Your code (and everybody else's) is not nearly as valuable as you (they) think.