I think the answer to your question is cultural. We all know many OO
weenies who have spent years improving their programming. They have
jobs, and build useful applications sometimes, but I think the thing
that really motivates these people (hey, I'm one of them), is the goal
of becoming a better programmer, and writing ever more beautiful code.
I think that folks working on engineering problems spend similar
amounts of time trying to solve the real-world problem.
From my own educational background, (undergrad, grad school, faculty
member before joining the real world), I observe that the split between
these two approaches to software occurs pretty early. People who focus on the
advanced numeric stuff spend their time on that. People who focus on
the underlying tools seem to have a better chance of becoming object
weenies.
Can OO help out with (non-software) engineering problems? I'd be
surprised if they couldn't. Personally, I don't know enough about that
set of problems to offer an opinion. I think the reason that OO isn't
used more in mechanical engineering (for example) is that there are
many more people like me who specialize in one or the other, and very
few people broad enough to have enough of an understanding of both
worlds to know how they can be combined.
Your posting says that virus writers aren't terrorists because what they do doesn't compare to killing 3000+ people. Then your sig compares Bill Gates to Hitler.
Thought experiments for my web hypothetical kpmgsucks.com web site (someone owns it already):
- A link to KPMG that displays only if you're coming in from a kpmg.com (oops!) address. (I'd love to hear the conversation between KPMG and its outside corporate counsel on that one.)
- A link to KPMG that shows up on 0.1% of all page views, randomly.
- A GIF that looks like a blue, underlined link to kpmg.com (oops!)
The greatest string processing language of all time. Blows away Perl. In SNOBOL4, the space was (is!) an unbelievably powerful pattern-matching operator. A single match could break apart a string and assign variables with pieces of it. A single statement could succeed or fail, and then there were up to to transfers of control at the end, one for success and one for failure.
SNOBOL4 was completely flexible on type, (e.g. you could do "5" + 3); had dynamic memory allocation and garbage collection; had the ability to evaluate dynamically generated SNOBOL4... the list goes on.
It's probably still in use, and it was bizaare and wonderful. I also have fond memories of two compiler courses taught by RBK Dewar, one of the implementers of the Spitbol implementation of SNOBOL4.
I don't know if it's still in use, but it sure was odd. DataSaab was a division of Saab, and they had their own hardware and system software.
DIL16 was DataSaab Interpretive Language for their 16-bit minis. Looked like assembler but had no registers, and yes, it was interpreted. Completely bizarre. I used it to work on a teller system at Citibank in the mid 70s.
Not all that long ago, if you saw someone walking down the street, talking to someone who wasn't there, and typing on a keyboard that wasn't there, you'd wonder what institution he escaped from.
Now, it's just an alpha geek talking on his cell phone and checking his email (with a monitor embedded in his Oakley's no doubt).
In addition, the company has modified a software timer so that Passport users must re-enter their password anytime they attempt to access the wallet service.
While Slemko's exploit, which relied on stealing browser cookies used by Passport, has been rendered inoperable by Microsoft's fixes, the programmer said "deeper issues" remain with the service.
"Passport's greatest marketing strength -- the single sign-on -- is also its chief technical weakness. It will be fairly trivial for attackers to dream up new ways of exploiting this," he said.
So a little app to convert the object or tuple to an app would help out. Much of the data that gets passed around is text, so mostly you've got Text objects, but if that's all you have, you end up having to encode all sorts of things as text. Yech.
Microsoft's Word, Excel, PowerPoint, and much of Access, are all built around the idea that bits are most useful when converted to atoms.
...
Unix uses quick-to-transmit plain text files instead of large, slow, printer-centric documents. Unix ties together multiple small programs to create systems both simple and powerful, instead of building complicated, monolithic applications that must compromise between flexibility and ease-of-use.
So Microsoft application's are based on the idea that computer users eventually want paper but Unix isn't -- but it's text-based?
I personally prefer to develop my code in a Unix, non-IDE environment, but I still think that piping text around is a real throwback. Even slightly advanced users will find themselves gluing bits of data together in a single line of text, and then using something along the lines of regular expressions to pull it apart.
For example, think about stdout and stderr. In Unix, you need two separate streams. Interleaving them is a bad idea because then you can't tell text in one stream from text in the other. You could have a single stream of output if each item in the stream were, let's say, a Text object or an Error object. You could then, in the next application down the pipe, choose to examine either Text object or Error objects, or pay attention to both. Also, the interleaving of Text and Error objects would convey useful information; something that's harder with two independent streams.
If you like the ideas of command-line, and small functional units that can be composed, and you want to build an environment from scratch, why focus on text as the main paradigm? Other things that programs could input, output and pass around include objects and tuples, which would have more intuitive tools for putting together and taking apart complex data that would otherwise be encoded into a line of text.
Yes, the good guys won. But I'm not happy about it because the
solution is not scalable. How many of us can get immoral and probably
unconstitutional policies or laws changed by just throwing a tantrum
or carrying out some minor civil disobedience? If we have to rely on a
judge's or legislator's personal discomfort to get bad laws changed
then we're screwed.
Setting up decent-looking fonts under Linux is still difficult. I think that this is the major
issue blocking the use of SO as a serious alternative to Office.
Digital was not, strictly speaking, a "software company" but had a major research lab a long time ago.
Same for IBM.
CCA (Computer Corporation of America), creator of the venerable Model 204 database system, had an excellent research group. The did some of the classical database research in the 70s and 80s. (In fact, Phil Bernstein, who did this work while at Harvard U. and CCA, is now at Microsoft although not in research, I believe).
In 2006 or so, someone is going to submit to Slashdot about the 10th anniversary of Microsoft inventing the browser.
In all development shops I've seen it is very difficult to write beautiful code. I find myself getting the job during the day, and writing my own beautiful code, for my own projects, in my spare time. I imagine my feelings about this are not too far from that of a serious musician earning money by playing bar mitzvahs, or novelists writing ad copy.
Anyway, here are the reasons why writing beautiful code at work doesn't happen:
Deadlines. If it ain't broke don't fix it.
Too many cooks. Someone else touches my code and they don't follow my coding style. Even worse, the offender doesn't follow any consistent style at all.
The original designer did a crappy job. Which is just another version of If it ain't broke don't fix it.
No time for re-factoring, even after requirements change, or you just realize better ways to meet the original requirements.
Quibble: a 486 is probably too slow to run StarOffice. That thing is a beast.
I used to buy the very top of the line hardware and could never get enough power. A 386/33 was non-negotiable -- the 386/25 was just too weak. But now bottom of the line is more than enough.
More serious point: WHY WHY WHY are fonts so fscking hard on Linux? I've installed RH 5.2, 6.0 and just recently 7.1, and setting up fonts was different on each one, and always a black art.
StarOffice's cooperation with font servers actually seemed to take a step backwards at one point, and I simply stopped using it. Why don't modern Linux distributions just include the damned font server, at least in the "desktop" configurations? I understand they can't include the fonts themselves, but at least including the font server would be a great start. That is THE single biggest barricade to Linux on the desktop, given the existence of suites like StarOffice.
The honest and politically incorrect readers will admit that teaching
attracts many people who are pretty dumb. My theory is that someone
who enters college and is terrified of math and sciences reasons that
an elementary school teacher doesn't need much more than an elementary
school understanding of these topics. For elementary school, that
might well be OK. I don't really see the point of having M.Sc. and
Ph.D. level teachers in elementary school.
At high school, and maybe junior high, having this level of expertise
is wonderful. I was fortunate enough to go to a high school where my
math, chemistry, biology and physics teachers all had advanced
degrees and were dedicated, wonderful teachers. (The two are, of
course, not correlated).
At any level, the only criteria for teaching qualifications should be: ability to
teach, love of teaching, and mastery of the subject matter.
I studied Volumes I and III for my Ph.D. comprehensive exams. They are
incredibly dense. You can spend an evening trying to understand a
three-line answer to one of his 30 point questions. (Or that's how
long it took me, anyway.)
I agree with the comment about gotos. I didn't really understand many
of those algorithms until I translated them to more conventionally
structured code.
Dropping Java from the OS is a great idea. It eliminates the sometimes mysterious errors due to finding the wrong JVM or libraries on your PATH or CLASSPATH. (On the other hand, who would use XP for development?)
Dropping Java from the browser won't stand. Looking at it from Microsoft's point of view, it's a piece of legacy support they can't drop without pissing off many in their target audience. Imagine the reaction (not from geeks, but from everyone) if they dropped Javascript in favor of VBscript.
Read the article and then see if you really want
to post your outrage. I was ready to flame the
police until I read the one thing that renders all
arguments obsolete: It's for the children!:
Since so many teenagers frequent Ybor City, Todd said, it is an area that could be targeted by sexual offenders, who have restrictions in their probation that typically prohibit them from contact with minors or with alcohol, he said.
Whoa! I can edit the quoted part! THAT'S AWESOME!
Yours truly,
L.E.T. Hacker, MSCE
I think the answer to your question is cultural. We all know many OO
weenies who have spent years improving their programming. They have
jobs, and build useful applications sometimes, but I think the thing
that really motivates these people (hey, I'm one of them), is the goal
of becoming a better programmer, and writing ever more beautiful code.
I think that folks working on engineering problems spend similar
amounts of time trying to solve the real-world problem.
From my own educational background, (undergrad, grad school, faculty
member before joining the real world), I observe that the split between
these two approaches to software occurs pretty early. People who focus on the
advanced numeric stuff spend their time on that. People who focus on
the underlying tools seem to have a better chance of becoming object
weenies.
Can OO help out with (non-software) engineering problems? I'd be
surprised if they couldn't. Personally, I don't know enough about that
set of problems to offer an opinion. I think the reason that OO isn't
used more in mechanical engineering (for example) is that there are
many more people like me who specialize in one or the other, and very
few people broad enough to have enough of an understanding of both
worlds to know how they can be combined.
Your posting says that virus writers aren't terrorists because what they do doesn't compare to killing 3000+ people. Then your sig compares Bill Gates to Hitler.
Thought experiments for my web hypothetical kpmgsucks.com web site (someone owns it already):
- A link to KPMG that displays only if you're coming in from a kpmg.com (oops!) address. (I'd love to hear the conversation between KPMG and its outside corporate counsel on that one.)
- A link to KPMG that shows up on 0.1% of all page views, randomly.
- A GIF that looks like a blue, underlined link to kpmg.com (oops!)
The greatest string processing language of all time. Blows away Perl. In SNOBOL4, the space was (is!) an unbelievably powerful pattern-matching operator. A single match could break apart a string and assign variables with pieces of it. A single statement could succeed or fail, and then there were up to to transfers of control at the end, one for success and one for failure.
... the list goes on.
SNOBOL4 was completely flexible on type, (e.g. you could do "5" + 3); had dynamic memory allocation and garbage collection; had the ability to evaluate dynamically generated SNOBOL4
It's probably still in use, and it was bizaare and wonderful. I also have fond memories of two compiler courses taught by RBK Dewar, one of the implementers of the Spitbol implementation of SNOBOL4.
I don't know if it's still in use, but it sure was odd. DataSaab was a division of Saab, and they had their own hardware and system software.
DIL16 was DataSaab Interpretive Language for their 16-bit minis. Looked like assembler but had no registers, and yes, it was interpreted. Completely bizarre. I used it to work on a teller system at Citibank in the mid 70s.
Any other DIL16 programmers out there?
Not all that long ago, if you saw someone walking down the street, talking to someone who wasn't there, and typing on a keyboard that wasn't there, you'd wonder what institution he escaped from.
Now, it's just an alpha geek talking on his cell phone and checking his email (with a monitor embedded in his Oakley's no doubt).
I really like this part:
In addition, the company has modified a software timer so that Passport users must re-enter their password anytime they attempt to access the wallet service.
While Slemko's exploit, which relied on stealing browser cookies used by Passport, has been rendered inoperable by Microsoft's fixes, the programmer said "deeper issues" remain with the service.
"Passport's greatest marketing strength -- the single sign-on -- is also its chief technical weakness. It will be fairly trivial for attackers to dream up new ways of exploiting this," he said.
... takes how much time?
So a little app to convert the object or tuple to an app would help out. Much of the data that gets passed around is text, so mostly you've got Text objects, but if that's all you have, you end up having to encode all sorts of things as text. Yech.
Microsoft's Word, Excel, PowerPoint, and much of Access, are all built around the idea that bits are most useful when converted to atoms.
...
Unix uses quick-to-transmit plain text files instead of large, slow, printer-centric documents. Unix ties together multiple small programs to create systems both simple and powerful, instead of building complicated, monolithic applications that must compromise between flexibility and ease-of-use.
So Microsoft application's are based on the idea that computer users eventually want paper but Unix isn't -- but it's text-based?
I personally prefer to develop my code in a Unix, non-IDE environment, but I still think that piping text around is a real throwback. Even slightly advanced users will find themselves gluing bits of data together in a single line of text, and then using something along the lines of regular expressions to pull it apart.
For example, think about stdout and stderr. In Unix, you need two separate streams. Interleaving them is a bad idea because then you can't tell text in one stream from text in the other. You could have a single stream of output if each item in the stream were, let's say, a Text object or an Error object. You could then, in the next application down the pipe, choose to examine either Text object or Error objects, or pay attention to both. Also, the interleaving of Text and Error objects would convey useful information; something that's harder with two independent streams.
If you like the ideas of command-line, and small functional units that can be composed, and you want to build an environment from scratch, why focus on text as the main paradigm? Other things that programs could input, output and pass around include objects and tuples, which would have more intuitive tools for putting together and taking apart complex data that would otherwise be encoded into a line of text.
The two most addictive games I have ever found are Qix (late 70s, I think) and Tetris. No violence, and in fact no people at all. Just moving shapes.
Yes, the good guys won. But I'm not happy about it because the
solution is not scalable. How many of us can get immoral and probably
unconstitutional policies or laws changed by just throwing a tantrum
or carrying out some minor civil disobedience? If we have to rely on a
judge's or legislator's personal discomfort to get bad laws changed
then we're screwed.
So skip the first cup of coffee and go right to the second.
Setting up decent-looking fonts under Linux is still difficult. I think that this is the major
issue blocking the use of SO as a serious alternative to Office.
Digital was not, strictly speaking, a "software company" but had a major research lab a long time ago.
Same for IBM.
CCA (Computer Corporation of America), creator of the venerable Model 204 database system, had an excellent research group. The did some of the classical database research in the 70s and 80s. (In fact, Phil Bernstein, who did this work while at Harvard U. and CCA, is now at Microsoft although not in research, I believe).
In 2006 or so, someone is going to submit to Slashdot about the 10th anniversary of Microsoft inventing the browser.
Anyway, here are the reasons why writing beautiful code at work doesn't happen:
Oh well, time to make more sausage.
Well that's not saying anything because the guy struggles to read his box of breakfast cereal.
His struggle with the moral issues is bullshit.
His decision was pure politics. He threw science a bone while appealing to his Taliban base.
If he was truly concerned about the poor embryos, and the sanctity of life, why not ban in vitro
fertilization and come out against abortion?
I wonder what the MPAA would do if 2600 published DeCSS translated into one of these languages.
Quibble: a 486 is probably too slow to run StarOffice. That thing is a beast.
I used to buy the very top of the line hardware and could never get enough power. A 386/33 was non-negotiable -- the 386/25 was just too weak. But now bottom of the line is more than enough.
More serious point: WHY WHY WHY are fonts so fscking hard on Linux? I've installed RH 5.2, 6.0 and just recently 7.1, and setting up fonts was different on each one, and always a black art.
StarOffice's cooperation with font servers actually seemed to take a step backwards at one point, and I simply stopped using it. Why don't modern Linux distributions just include the damned font server, at least in the "desktop" configurations? I understand they can't include the fonts themselves, but at least including the font server would be a great start. That is THE single biggest barricade to Linux on the desktop, given the existence of suites like StarOffice.
attracts many people who are pretty dumb. My theory is that someone
who enters college and is terrified of math and sciences reasons that
an elementary school teacher doesn't need much more than an elementary
school understanding of these topics. For elementary school, that
might well be OK. I don't really see the point of having M.Sc. and
Ph.D. level teachers in elementary school.
At high school, and maybe junior high, having this level of expertise
is wonderful. I was fortunate enough to go to a high school where my
math, chemistry, biology and physics teachers all had advanced
degrees and were dedicated, wonderful teachers. (The two are, of
course, not correlated).
At any level, the only criteria for teaching qualifications should be: ability to
teach, love of teaching, and mastery of the subject matter.
I agree with the comment about gotos. I didn't really understand many of those algorithms until I translated them to more conventionally structured code.
Dropping Java from the browser won't stand. Looking at it from Microsoft's point of view, it's a piece of legacy support they can't drop without pissing off many in their target audience. Imagine the reaction (not from geeks, but from everyone) if they dropped Javascript in favor of VBscript.
Since so many teenagers frequent Ybor City, Todd said, it is an area that could be targeted by sexual offenders, who have restrictions in their probation that typically prohibit them from contact with minors or with alcohol, he said.
So, you're going to find all the pr0n and remove the ears? Whatever floats your boat.