Linked by Takuya Murata on Tue 18th May 2004 06:26 UTC
My physics teacher likes to say that physics like to make problems they face look like ones that they know how to solve. A simple harmonic oscillation was one he frequently used in class, as is presumably the case in physics in general.
Permalink for comment
To read all comments associated with this story, please click here.
Sorry to sound harsh, but I find this a really bad article. I thought it might say something like: Programming is still in the state it was decades ago, because people keep reinventing the wheel, instead of improving on other's work. Instead it gives us statements that I just cannot agree with:
``No one knows what is OOP''
OOP makes a very good fit with the Real World in many cases. Not nearly in all cases, however, which is why LISP programmers (a language that can comfortably express about any paradigm in use today) used OOP for about 20% of their code - a significant portion, but far from all of it.
``Concurrency is a fantasy''
You ever hear of multi-tasking, multi-CPU systems, distributed systems, P2P networks? I'd say concurrency is the norm rather than the exception these days.
``Trying to make things look like happening at the same time only leads programming to the hell of scheduling operations, resulting in a profound fear that someday the program might halt all of a sudden due to deadlock.''
Sure, if the programmers were incompetent they may not get the concurrency issues right and come up with a system that behaves incorrectly. However, that is not concurrency's fault; if you depend on incompetent programmers, you should be afraid even if the system is completely single-threaded.
The bit about reusability I don't even get. Is the message that reusability doesn't work? I guess that's why we have so many shared libraries. I think reusability can work even better if people wouldn't insist in making their own wheels.
I have never seen any Haskell code in my life, so I won't make claims about it, but even if it is true that Haskell failed, so what? One language that didn't make it does not mean others haven't changed the world. Or perhaps Haskell was an example meant to illustrate the failure of purely functional languages. That, I would agree with. Functional programming is a beautiful paradigm, but it's hardly a silver bullet. Some things are inherently non-functional (such as I/O). Also, functional programming does not feel very natural to many programmers (although that could just be because they were raised up on imperative languages).
AI: I'd say we have that. It hasn't worked the wonders that some people expected from it, but it's there. Think games. Think office assistant. Think cameras that automatically try to get the right focus.
Voice recognition: Every aspect of it works. People can be identified by voice characteristics. My iBook takes speech commands. I used to dictate my papers and let the computer write them out. All of these work with various accuracies, but they work. What's the relation with the state of programming, though?
Agents: Well now. Ever subscribed to a career site? Or how about Google ads, or banner ads in Opera? Agents are out there. But again, what does it have to do with the state of programming?
Sorry to sound harsh, but I find this a really bad article. I thought it might say something like: Programming is still in the state it was decades ago, because people keep reinventing the wheel, instead of improving on other's work. Instead it gives us statements that I just cannot agree with:
``No one knows what is OOP''
OOP makes a very good fit with the Real World in many cases. Not nearly in all cases, however, which is why LISP programmers (a language that can comfortably express about any paradigm in use today) used OOP for about 20% of their code - a significant portion, but far from all of it.
``Concurrency is a fantasy''
You ever hear of multi-tasking, multi-CPU systems, distributed systems, P2P networks? I'd say concurrency is the norm rather than the exception these days.
``Trying to make things look like happening at the same time only leads programming to the hell of scheduling operations, resulting in a profound fear that someday the program might halt all of a sudden due to deadlock.''
Sure, if the programmers were incompetent they may not get the concurrency issues right and come up with a system that behaves incorrectly. However, that is not concurrency's fault; if you depend on incompetent programmers, you should be afraid even if the system is completely single-threaded.
The bit about reusability I don't even get. Is the message that reusability doesn't work? I guess that's why we have so many shared libraries. I think reusability can work even better if people wouldn't insist in making their own wheels.
I have never seen any Haskell code in my life, so I won't make claims about it, but even if it is true that Haskell failed, so what? One language that didn't make it does not mean others haven't changed the world. Or perhaps Haskell was an example meant to illustrate the failure of purely functional languages. That, I would agree with. Functional programming is a beautiful paradigm, but it's hardly a silver bullet. Some things are inherently non-functional (such as I/O). Also, functional programming does not feel very natural to many programmers (although that could just be because they were raised up on imperative languages).
``Prolog? AI? Genetic algorithms? Voice recognition? Agents?''
Prolog: again, that's just one language.
AI: I'd say we have that. It hasn't worked the wonders that some people expected from it, but it's there. Think games. Think office assistant. Think cameras that automatically try to get the right focus.
Voice recognition: Every aspect of it works. People can be identified by voice characteristics. My iBook takes speech commands. I used to dictate my papers and let the computer write them out. All of these work with various accuracies, but they work. What's the relation with the state of programming, though?
Agents: Well now. Ever subscribed to a career site? Or how about Google ads, or banner ads in Opera? Agents are out there. But again, what does it have to do with the state of programming?