Joel assumes that crusty code is always filled with knowledge. No, sometimes its filled with crap. More code often means more bugs, not less.
I agree with the spririt of what he is saying - often the "rewrite" is an ego thing - one programmer wanting to write his code instead of reading someone else's, but there is no doubt that most serious professional programmers have looked at code that simply needs to be thrown away.
I've been following Ruby for a couple of years now - in general its a polished design that synthesizes the best of many competing languages, but ultimately there is little motivation for Perl and Python programmers to invest time in becoming Ruby gurus.
The language biosystem is overpopulated, and mindshare starvation can be fatal to a new tool.
Okay, lets spin that around. What isn't information? Colors? Graphics? Or are they just attributes of information?
In any case you couldn't have a useful shopping or gaming site without them. Part of the purpose of a site is to also convey the brand or meaning, and frankly you are very hobbled in doing this using Jokob's rules. Maybe you have read Jokob or not, but I think its clear that it is impossible to use your site to effectively promote a brand using his web-of-1996, please-support-netscape-2.0-users model.
And just what do you think the web is? Some kind of place where people pay good money to see your blinking flashy popup crap? No. People use the web to find information. Anything else is secondary.
Thats not true at all. There are plenty of useful sites that do something vastly different than delivery of text.
The best development for little language writers could be Perl 6's Parrot "assembly" language. By focusing on the details of executing a very low level language very quickly on a huge number of platforms, the Perl team will be providing an excellent VM model that should minimize the need for language designers to worry about issues like GC and other system headaches.
I doubt this is the first effort to create a popular open VM, but it seems to be one of the most heavily promoted. Hopefully we will see Parrot-based languages springing up everywhere, and perhaps even ports of existing languages.
As for democracy, yes Kuwait is not one. However, the U.S. is not imperialist: it will not let others choose Kuwait's government for it (not even the U.S.)
You and I agree, freedom is the natural state of humans. Oppression is not moral. However, if you demand that these people to change overnight then they will react violently.
No, there has been plenty of "overnight change" in the Middle East, most of it for the worse. If you lived there then surely you have read of the region's rich history, when once it was seen as the light of the civilized world. The Middle East has only recently (in thast 100 years or so) turned into such a hotbed of opression, and it all has to do with oil and foreign involvement.
Idealism is a nice thing as long as it stays out of the real world.
Where but if not for the real world???
This is another classic feint of totalitarian regimes - the notion that basic freedoms aren't pragmatic
I think a lot of people need to grow up and realize that it's not a perfect world, and sometimes you have to choose lesser evils.
This is also known as a "foreign policy that has no values".
We can't snap our fingers and make the middle east a democracy overnight.
Please. The US hasn't even made tacit overtures in this direction in fifty years. More accurately, the US doesn't care if Saudi Arabia ever becomes a democracy. As long as it keeps pumping gas.
Unfortunately, to short-sighted people, that makes the US look like we "approve of" regimes like that just because we support them against worse alternatives.
Well, there are always "worse" alternatives. There are always bogeymen hiding in the background. At some point you have to take a stand for some values. The US has never petitioned any of these governments to provide votes to citizens, support basic human rights, or in the case of Kuwait, make indentured slavery illegal.
If now isn't a good time to support democracy, when is????? All your "pragmatic" approach has provided is a stronger Iraq and Iran (yes, the US supported them when the "alternatives were worse").
Saudi Arabia is a completely repressive state that couldn't exist in its present form without strong US backing. Without greenbacks and US airbases, it would have fallen long ago to Islamic fundamentalists.
Possibly even more repressive than the Saudis are the Kuwaitis, which of course enjoy our full and total support.
Why do I always feel like Katz asks such sophomoric and naive questions in his rants?
The US has been aiding the oppresive Saudi regime for years. Hell, the US went to war for the Kuwaiti regime - one of the most backwards and repressive in the already repressive Middle East.
You can bet that if the dollars dictate, the US will prop up China too. Look at how we have already backed down on Taiwan.
Look at Chile back during the cold war - the US wasn't beyond toppling an elected leader to put a US-friendly dictator in charge when it suited their purposes.
I do not know if this is still the case, but Microsoft's IE offline browsing page crawler (collects pages for you to read offline) ignored robots.txt last time I checked. I know many other crawlers do likewise.
We're a very, very young discipline, and unlike structural or electronic engineering the mathematics does not exist to prove what we are doing is right.
Do you program for a living? How could you say something so absurd? When was the last time an algorithmic error made your program crash?? Its all about where the rubber hits the road. Memory management. Device support. Library integration. How the %$#@ will the lambda calculus, Z logic, or VDM proofs help you?
Stop waiting for the math because the math that tells you to use a debugger and a profiler is called experience.
Do you think the Microsoft software would suddenly become high quality if these people were "certified"?
Firstly, I made no claims of my own regarding the quality of Microsoft code. That said,Microsoft software has improved. Drastically. Its the crap they've had on the market for ten years that is the source of angst.
The big problem with this idea is step 1: Sure, we have best practices, but they do not assure a solid product.
The goal is failure avoidance.
There are software engineering best practices, but when goobers apply them, they are fully capable of producing bloated non-working crap.
I think you're blowing smoke. What are these best practices that produce crap? No one said best practices would make stupidity obsolete, so please don't tell me about people misapplying or misusing well-defined practices.
It is very nice that people are sufficiently concerned about software quality and its impact on the real world (e.g. comp.risks). But this in no way means that we actually have best practices
The two are completely independent in any case...so what are you saying? Obviously we know some best practices in software engineering...don't use GOTO, comment your code, use a debugger...come on, are you telling me that in fifty years of programming we haven't learned anything?????
science is about trying things out understanding things
Aren't philosphers trying to understand things? Isn't everyone? This is a flawed definition.
Simply put, science is defined as a field that uses the scientific method.
The scientific method is hypothesis-experiment-result-conclusion.
This is why math is not a science - there are no "experiments" in math.
Computer science does use experimental methods from time to time - I know of one case where sorting algorithms were applied to real-world data to test the hypothesis that a quicksort using a randomized pivot would be superior. Since the pivot was randomized, the only way to tell if it was better was to test it.
No one is claiming a certification exam would be perfect. Is the SAT perfect? The GRE? The GMAT? At some point you are going to have to comprimise and assume that no one will get everything right or everything wrong, regardless of their state of knowledge.
What is so difficult about going through Stroustrup's book and picking three or four topics per chapter and formulating questions from them? Some could be true/false, some multiple choice, and some requiring you to "write" code snippets. It seems pretty straightforward.
The problem is when most "expert" groups discuss this topic, they typically look for a test they could get perfect in, based on the fault assumption that their perfect mastery of C++ must result in a perfect score.
Your statements are well thought out and valid, unfortunately the group-think of/. is so peversely self-contradictory that it really makes you wonder where common sense went. You see,/.'s rail against certification every time an article comes up suggesting it, but then they spend the rest of their time bitching about Microsoft's crappy software and how horrible it is that they "get away with it".
Obviously there would be no prohibitions on non-CS grads getting certified. Why would there be? CS grads may have some inherent advantages, but I've never heard of a certification proposal that requires a CS degree.
Its ridiculous to assert that there are no means by which you can qualify and test programmers. Haven't you ever applied for a job? Didn't they ask you any programming questions? Did you take the Computer Science GRE? There are numerous excellent methods available for ascertaining some basic metrics about the competency of a programmer.
If you are going to loosely define "art" as the practices that produce elegant solutions, this applies to every branch of engineering. There are structural engineers who are sought out by architects for their ability to render a satisfactory strcuture in an artful manner, so for structural engineers, asthetics matter.
For electrical engineers, the elegance may be in minimzing the number of transistors in a design.
For chemical engineers, the elegance may come on the form of the safety or usefulness of the byproducts of a reaction.
All engineering fields value elegance in method and design. The notion that "art" separates programming from other engineering endeavors is bogus.
I agree with the spririt of what he is saying - often the "rewrite" is an ego thing - one programmer wanting to write his code instead of reading someone else's, but there is no doubt that most serious professional programmers have looked at code that simply needs to be thrown away.
The language biosystem is overpopulated, and mindshare starvation can be fatal to a new tool.
In any case you couldn't have a useful shopping or gaming site without them. Part of the purpose of a site is to also convey the brand or meaning, and frankly you are very hobbled in doing this using Jokob's rules. Maybe you have read Jokob or not, but I think its clear that it is impossible to use your site to effectively promote a brand using his web-of-1996, please-support-netscape-2.0-users model.
Thats not true at all. There are plenty of useful sites that do something vastly different than delivery of text.
Movie promo sites?.Online shopping. Game sites.
I doubt this is the first effort to create a popular open VM, but it seems to be one of the most heavily promoted. Hopefully we will see Parrot-based languages springing up everywhere, and perhaps even ports of existing languages.
Pathetic. Read a little about what really happened.
As for democracy, yes Kuwait is not one. However, the U.S. is not imperialist: it will not let others choose Kuwait's government for it (not even the U.S.)
Haha. How long have you been this dense?
No, there has been plenty of "overnight change" in the Middle East, most of it for the worse. If you lived there then surely you have read of the region's rich history, when once it was seen as the light of the civilized world. The Middle East has only recently (in thast 100 years or so) turned into such a hotbed of opression, and it all has to do with oil and foreign involvement.
Idealism is a nice thing as long as it stays out of the real world.
Where but if not for the real world???
This is another classic feint of totalitarian regimes - the notion that basic freedoms aren't pragmatic
BZZZT! Please visit your local library.
The US bankrolled Saddam Hussein. He wouldn't be in power if it wasn't for the US backing him during the Iran/Iraq war.
This is also known as a "foreign policy that has no values".
We can't snap our fingers and make the middle east a democracy overnight.
Please. The US hasn't even made tacit overtures in this direction in fifty years. More accurately, the US doesn't care if Saudi Arabia ever becomes a democracy. As long as it keeps pumping gas.
Unfortunately, to short-sighted people, that makes the US look like we "approve of" regimes like that just because we support them against worse alternatives.
Well, there are always "worse" alternatives. There are always bogeymen hiding in the background. At some point you have to take a stand for some values. The US has never petitioned any of these governments to provide votes to citizens, support basic human rights, or in the case of Kuwait, make indentured slavery illegal.
If now isn't a good time to support democracy, when is????? All your "pragmatic" approach has provided is a stronger Iraq and Iran (yes, the US supported them when the "alternatives were worse").
Possibly even more repressive than the Saudis are the Kuwaitis, which of course enjoy our full and total support.
The US has been aiding the oppresive Saudi regime for years. Hell, the US went to war for the Kuwaiti regime - one of the most backwards and repressive in the already repressive Middle East.
You can bet that if the dollars dictate, the US will prop up China too. Look at how we have already backed down on Taiwan.
Look at Chile back during the cold war - the US wasn't beyond toppling an elected leader to put a US-friendly dictator in charge when it suited their purposes.
How naive are you Katz?
I do not know if this is still the case, but Microsoft's IE offline browsing page crawler (collects pages for you to read offline) ignored robots.txt last time I checked. I know many other crawlers do likewise.
Do you program for a living? How could you say something so absurd? When was the last time an algorithmic error made your program crash?? Its all about where the rubber hits the road. Memory management. Device support. Library integration. How the %$#@ will the lambda calculus, Z logic, or VDM proofs help you?
Stop waiting for the math because the math that tells you to use a debugger and a profiler is called experience.
Duh!!
All any test teaches you is how to take a test!
Please tell me you haven't gone through life being this naive!
Math has no "truths", only axioms.
There is (probably) only Statistics, the measurement of experiments.
Huh?
Firstly, I made no claims of my own regarding the quality of Microsoft code. That said,Microsoft software has improved. Drastically. Its the crap they've had on the market for ten years that is the source of angst.
No "certified" software engineers work anywhere, there is no certification. Thats the whole point of this article.
The goal is failure avoidance.
There are software engineering best practices, but when goobers apply them, they are fully capable of producing bloated non-working crap.
I think you're blowing smoke. What are these best practices that produce crap? No one said best practices would make stupidity obsolete, so please don't tell me about people misapplying or misusing well-defined practices.
It is very nice that people are sufficiently concerned about software quality and its impact on the real world (e.g. comp.risks). But this in no way means that we actually have best practices
The two are completely independent in any case...so what are you saying? Obviously we know some best practices in software engineering...don't use GOTO, comment your code, use a debugger...come on, are you telling me that in fifty years of programming we haven't learned anything?????
Aren't philosphers trying to understand things? Isn't everyone? This is a flawed definition.
Simply put, science is defined as a field that uses the scientific method.
The scientific method is hypothesis-experiment-result-conclusion.
This is why math is not a science - there are no "experiments" in math.
Computer science does use experimental methods from time to time - I know of one case where sorting algorithms were applied to real-world data to test the hypothesis that a quicksort using a randomized pivot would be superior. Since the pivot was randomized, the only way to tell if it was better was to test it.
What is so difficult about going through Stroustrup's book and picking three or four topics per chapter and formulating questions from them? Some could be true/false, some multiple choice, and some requiring you to "write" code snippets. It seems pretty straightforward.
The problem is when most "expert" groups discuss this topic, they typically look for a test they could get perfect in, based on the fault assumption that their perfect mastery of C++ must result in a perfect score.
Your statements are well thought out and valid, unfortunately the group-think of /. is so peversely self-contradictory that it really makes you wonder where common sense went. You see, /.'s rail against certification every time an article comes up suggesting it, but then they spend the rest of their time bitching about Microsoft's crappy software and how horrible it is that they "get away with it".
Obviously there would be no prohibitions on non-CS grads getting certified. Why would there be? CS grads may have some inherent advantages, but I've never heard of a certification proposal that requires a CS degree.
Its ridiculous to assert that there are no means by which you can qualify and test programmers. Haven't you ever applied for a job? Didn't they ask you any programming questions? Did you take the Computer Science GRE? There are numerous excellent methods available for ascertaining some basic metrics about the competency of a programmer.
For electrical engineers, the elegance may be in minimzing the number of transistors in a design.
For chemical engineers, the elegance may come on the form of the safety or usefulness of the byproducts of a reaction.
All engineering fields value elegance in method and design. The notion that "art" separates programming from other engineering endeavors is bogus.
No, Microsoft says you are an MCSE. They make no attempt to generalize your skillset beyond that which is required to pass their certification.