Re:You're not really that ignorant, are you?
on
Superman Set To Fly
·
· Score: 1
Do you realize how senseless your post is when you remove the paternal relationship?
What are you talking about? Of course people knew who Chirstopher Reeves was. Have you never seen the original Superman TV series with George Reeves? He was the original, everyone knew him (and his problems, but that's another story) and most of the world was very happy when [a random guy named Christopher who has a similar last name], was chosen to carry on the legacy on the silver screen. George was and still is the best Superman.
I agree with you, but I don't think you go far enough. Going from Python to Perl isn't stepping very far out of your box. Why not try Lisp, Haskell, Erlang, Scala, Smalltalk, or...?
Different syntax and different libraries will open your mind a little. But when a language encourages (or forces) you to think differently, that's where your "square law" starts to kick in.
Indexing PDFs is not a technically hard problem for anyone writing these kinds of apps (which includes myself). There are components to do the extraction for you [ 1, 2, 3, 4 ]
I would be very surprised if Google Desktop Search doesn't have this functionality by the time Tiger is released. Are there other ways in which Spotlight goes "WAY beyond"?
Lots of ISPs use Apache, because it's free, easier to configure in a scripted fashion, and generally all around more suitable for a hosting setup.
I also understand that any survey that counts domains is going to be heavily skewed by the big domain name registries that have default parking pages. Every once in a while an article comes up on News.com that mentions this. (1, 2)
So if Java is a consultant from IBM with suit and tie, and Python is an academic from the cs languages dept a european university, PHP is wearing an overall with oil stains on it and it has dirt in the face, but it somehow gets the job done.
That is exactly what I always suspected was the case with PHP, but I've never been able to get a serious PHP programmer to confirm it. Thanks.
A little off the subject, but, I don't think Python is an academic kind of language at all; if anything I feel like it's a less web-centric, better-designed PHP, or more readable, better-designed Perl. Same for Ruby, although Ruby does take a step toward CS-land by taking a lot of (good) lessons from Lisp.
Except for the interfaces and final features, PHP 5 OO looks a lot like that of Ruby (or Python, but more Ruby). Am I right? And I don't know what you mean by "delegation, emulation, posing". (Although I'm guessing _get, _set, and _call have to do with at least one of them.)
I don't have a problem with non-OO languages; I'm not an OO purist. But I do think if you're going to add support for a programming paradigm to your language, you should not design it in such a way that it's incredibly unintuitive and dangerous (thinking specifically of pass-by-copy here).
I think PHP 3/4 would have been much better off without the hacked in OO. One look at it made me write off the whole language (as did the lack of exception handling). Even seeing all the nice improvements in PHP 5, I still can't help but feel a little uneasy about betting my code on a language whose designers had shown themselves capable of committing some pretty egregious mistakes. Conversely, most Rubyists and Pythoners I have come into contact with have a lot of faith in the future of their languages, due in large part to their faith in Matz and Guido.
I say this not to be a jerk, but because I know a lot of developers who feel the same way, and would love to be convinced that these guys have matured as language designers to the point that they deserve to be trusted. For all its faults, PHP is still by far the web scripting language most widely supported by web hosting services.
It sounds like you are objecting to three separate things.
A) Sun implemented too much functionality. (1, 2)
B) All of that functionality is built into one library instead of separate downloadable libraries. (3)
C) Every JVM is required to come with the library. (4, 5)
I respectfully but wholeheartedly disagree with you on all points.
A/1,2) I applaud Sun for raising the bar in delivering so much functionality. For the most part, the packages are well organized enough that the classes you don't use don't bother you. (For example, there have to be hundreds of classes in java.awt.*, but if you only write webapps or CLI apps, you don't even have to know they exist.) As for bugs, I haven't found the Java libraries to be more buggy than the vast majority of third-party libraries I've used. In fact, they are far less buggy because there are so many eyes on them (i.e. all the millions of Java developers out there).
B/3) Granted, not all of the packages are absolutely best of breed. (AWT/Swing come immediately to mind.) But most of them are quite well written, by fine minds like Josh Bloch and Doug Lea. I don't think there are many people in the world who could have written this. Overall I think the quality of code in most of the Java platform classes is at a level that almost any development organization would be proud of. And anyway, I don't see how code quality is related to a deployment decision like "should this be one JAR or seventeen?". What you're really saying is all this code shouldn't have been written by Sun, because you assume they don't have enough developers or that those developers are not focused enough on their tasks. (Right??)
C/4,5) The Java community has not proven to be short on innovation. There have in the past been plenty of third-party Java collection classes (Trove, Commons Collections, Commons Primitives, tclib, FastUtil, PCJ, Mango). I would like to see some more specific examples to back up your claim of "huge losses in productivity". (Although the general argument may not be totally without merit, because the.NET development community does in general seem to shun non-Microsoft libraries and technologies.)
As for your backward compatibility argument, I don't see how a widely used library should have any less of a responsibility to remain backward compatible with previous versions, than a language does.
And from just a common sense perspective, can you seriously mean that a modern language shouldn't have built-in types for such basic abstractions as string, list, hashtable? Do you really think this kind of crap is an improvement?
I'd like to hear more about who designed the OO features of PHP 4, and who (re)designed them for PHP 5.
As many times as I've heard this fun fact, it never ceases to amaze me: "In ZE / PHP 4 objects weren't references, so when they were passed to a function a copy was made."
I've never heard this one before, and it's just as ridiculous: "In PHP 4, you couldn't access a member function or properity indirectly through another object's member function or properity.."
Yikes. How did they get it that wrong!?? And how did they manage to come up with (what looks like) a very reasonable object system for PHP 5?
Also, what is the "interface" feature for, if the language is not statically typed? Will you get a runtime error as soon as an implementing but non-conforming class is defined? Or is it primarily just a more formal way of documenting your class? Or does it work solely in concert with type hinting to prevent you from passing in an incorrect type?
According to what little I remember from American Poli-Sci 101 (and you may already know this, but I find it fascinating and worth reiterating):
The purpose of these candidates on the far edges of the spectrum is not to get elected or indeed even have a whisper of a chance; the system from top to bottom is designed to favor the (two?) most moderate candidates. (For example, the electoral college: The fact that winner-takes-all in each state is a moderating influence.)
The purpose of these fringe candidates is, instead, to drum up enough of a base that the moderate candidate that's closer will want to drift over in that direction in order to pick up those votes. In other words, they should judge success not by how many votes they get, but by how much they ultimately move the definition of "moderate".
So don't feel too bad for having to vote for Bush, as long as you answer Peroutka in the polls. The fact that you are being forced to vote for the more moderate candidate means the system is working exactly as it is intended to, for the greater good of the overall population.
Again, where are you getting "idealism" out of my post, or out of great-grandparent post? Neither of us were talking about morality here; I have no illusions about politics being anything but a "blood sport", or about ethics taking precedence over votes in any modern campaign.
I am not talking about "going negative" vs. not going negative. I am not saying that negative attacks in general cannot benefit a campaign. That would be stupid.
All I am suggesting is that in this particular situation, after being bombarded with anti-Bush books, movies, commentaries, commercials, op-ed pieces for the last >4 years, a further increase in negative attacks may not result in a corresponding incremental increase in the polls, but a decrease.
For example, it seems likely that Fahrenheit 9/11 had a significant net positive effect for Kerry. At the same time, it seems unlikely that a sequel to Fahrenheit 9/11 that was even more aggressive than the first would have a positive effect. If one [wasn't convinced by / didn't watch] the first, one is probably not going to [be convinced by / watch] the second.
Imagine a negativity quantity Q that would result in a maximum on the negativity vs. votes graph. x<Q leave votes on the table because some voters have yet to hear attacks that would convince them; and x>Q loses votes because it begins to smell like desperation and reality distortion and because, yes, perhaps there is a certain demographic out there that gets turned off by attack ads.
You seem to be saying Q approaches infinity, or at the very least that it's much greater than the x we're at now. All I'm saying is that I think x is close to Q already, or past it. There's nothing idealistic or unrealistic about my position (although correctness and accuracy is another story, since this is all just conjecture).
OK, now I've written two long posts on a subject that, quite frankly, I have very little interest in. Feel free to have the last word, if you like, I'll read it but probably not reply.
Did you even read the parent post? He didn't say anything about virtue, he said attack ads aren't likely to be effective.
I, for one, agree with him. I am about as up-for-grabs as a voter can get--I do not identify with any political party, and am moderate, liberal, or conservative depending on the particular issue in question. Another round of negativity from the Democrats would only turn me off. (But I live in Massachusetts, so I guess my vote won't matter anyway.)
Most people I know who will respond positively to a Bush attack ad are already firmly in the Kerry camp. Do you seriously think there are a ton of voters sitting on the fence who need just a little more Bush bashing to tip them over to the left? If they haven't sided with Kerry already, it's probably because they either don't believe the attacks, or have become desensitized to them, or the attacks are not enough to outweigh the reservations they have about Kerry, or all of the above.
(And now, a wild tangent)
Just to balance the above, I am also quite put-off by the Swift boat sideshow and also the "flip-flop" mantra that was everywhere during the RNC. The Swift business just reeks of partisan truth distortion. Whether there is any merit to the claims, I don't think they should've gone there. And if they fail to do real damage to Kerry's perceived service record, all they've done is kept Kerry's military history a hot issue, which no matter how you slice it, makes Bush's look embarrassing by comparison.
I don't know the details of Kerry's "flip flopper" charge, but I don't at all agree that a real leader, once he's made a decision, sticks to his guns and doesn't change his mind. Republicans derided Kerry for justifying one of his flip-flops with "It's a complicated situation" or something like that. Yes, there are a lot of complicated problems out there, and I can respect a senator who is thoughtful enough to reevaluate his position and change his mind, rather than sticking with a previous decision despite mounting evidence against it.
(Not saying that Kerry is or isn't a wishy washy unprincipled uncommitted wimp, just that I don't see anything wrong with flip-flopping in general.)
I have a humble Sound Blaster MP3+ (USB sound card) hooked up to a somewhat high-end stereo system (B&W Matrix 805 speakers, Meridian 501 preamp and 556 amp) and it actually sounds pretty great. That's a $40 sound card that can hang with a $4500 stereo!
You are aware that there exist garbage collectors for c/c++?
Yeah, I alluded to that at the end of my post (in my book, "automatic memory management" == "garbage collectors").
Also, in the example you give, you can know that a virtual method is never going to be overridden before runtime, you do need to link your.o files tho, so it is after compile time. THere is however no theoretical reason why you cannot decide at that time to recompile a bit of code to get the exact same optimizing as you could with java.
Can you do that if your output is a class library (.dll or.so)? This is an honest question.
IIRC, ESR did most of his work in C and Perl, and now is a Python advocate. JWZ's main projects (correct me if I'm wrong) are Netscape/Mozilla and XEmacs, the former of which is written in C/C++ and the latter of which is pretty much inherently a bastion of Lisp.
I'm not saying that Lisp isn't cool, or that I wouldn't be thrilled if my next job involved full time Lisp hacking. But to me, the language that is considered the geek Gold Standard should be the one that most geeks stand up and proudly say "Yes, I am a _____ hacker," not "_____ is cool, and I've built some significant projects in it, but for that last ten years it's really been mostly C and Perl."
I'm more surprised you didn't notice my smalltalk->scheme braino.
That's funny, I actually read it as Smalltalk... twice!!
If Java is supposed to hide pointers from the developer then why does object equality compare pointers and not objects ? This makes no sense. The equality operator should work like the compare function and pointer comparison should work through a function.
I didn't design the language, but one very good reason is, semantic equality needs to be class polymorphic while operators in Java are not. Thus semantic equality gets implemented via a polymorphic method, and the equality operator becomes pointer comparison. While the == behavior may be slightly unintuitive at first, it is actually much more consistent with the meaning of == when applied to primitive types.
One annoying consequence of == vs.Equals() is that you can't compare two values, either or both of which could be null, without explicitly checking for null:
bool AreEqual(Object a, Object b) { return (a == null) ? (b == null) : a.Equals(b); }
I watched a webcast of a panel discussion he was on at the MIT AI Lab, and he stated that he basically refuses to work with any language but Lisp (or maybe what he said was any language that doesn't have true closures, but what he really meant was anything but Lisp). He'd rather switch jobs than compromise his choice of programming languages and tools. (Of course, with his Yahoo! money, he probably has that luxury...)
Also from what I understand, the Perl/C at Viaweb were written by others. Everything he wrote was Lisp.
I'm not saying he's crazy, or even wrong. Just that he feels really strong about Lisp.:)
What are you talking about? Of course people knew who Chirstopher Reeves was. Have you never seen the original Superman TV series with George Reeves? He was the original, everyone knew him (and his problems, but that's another story) and most of the world was very happy when [a random guy named Christopher who has a similar last name], was chosen to carry on the legacy on the silver screen. George was and still is the best Superman.
Different syntax and different libraries will open your mind a little. But when a language encourages (or forces) you to think differently, that's where your "square law" starts to kick in.
I would be very surprised if Google Desktop Search doesn't have this functionality by the time Tiger is released. Are there other ways in which Spotlight goes "WAY beyond"?
Lots of ISPs use Apache, because it's free, easier to configure in a scripted fashion, and generally all around more suitable for a hosting setup.
I also understand that any survey that counts domains is going to be heavily skewed by the big domain name registries that have default parking pages. Every once in a while an article comes up on News.com that mentions this. (1, 2)
This is a great day for Mammalian Innovation! Well done... er... hairy creatures :)
There's nothing really non-OO about this, as long as the syntactic sugar of [] can be translated into a method/attribute call.
That is exactly what I always suspected was the case with PHP, but I've never been able to get a serious PHP programmer to confirm it. Thanks.
A little off the subject, but, I don't think Python is an academic kind of language at all; if anything I feel like it's a less web-centric, better-designed PHP, or more readable, better-designed Perl. Same for Ruby, although Ruby does take a step toward CS-land by taking a lot of (good) lessons from Lisp.
Except for the interfaces and final features, PHP 5 OO looks a lot like that of Ruby (or Python, but more Ruby). Am I right? And I don't know what you mean by "delegation, emulation, posing". (Although I'm guessing _get, _set, and _call have to do with at least one of them.)
I don't have a problem with non-OO languages; I'm not an OO purist. But I do think if you're going to add support for a programming paradigm to your language, you should not design it in such a way that it's incredibly unintuitive and dangerous (thinking specifically of pass-by-copy here).
I think PHP 3/4 would have been much better off without the hacked in OO. One look at it made me write off the whole language (as did the lack of exception handling). Even seeing all the nice improvements in PHP 5, I still can't help but feel a little uneasy about betting my code on a language whose designers had shown themselves capable of committing some pretty egregious mistakes. Conversely, most Rubyists and Pythoners I have come into contact with have a lot of faith in the future of their languages, due in large part to their faith in Matz and Guido.
I say this not to be a jerk, but because I know a lot of developers who feel the same way, and would love to be convinced that these guys have matured as language designers to the point that they deserve to be trusted. For all its faults, PHP is still by far the web scripting language most widely supported by web hosting services.
A) Sun implemented too much functionality. (1, 2)
B) All of that functionality is built into one library instead of separate downloadable libraries. (3)
C) Every JVM is required to come with the library. (4, 5)
I respectfully but wholeheartedly disagree with you on all points.
A/1,2) I applaud Sun for raising the bar in delivering so much functionality. For the most part, the packages are well organized enough that the classes you don't use don't bother you. (For example, there have to be hundreds of classes in java.awt.*, but if you only write webapps or CLI apps, you don't even have to know they exist.) As for bugs, I haven't found the Java libraries to be more buggy than the vast majority of third-party libraries I've used. In fact, they are far less buggy because there are so many eyes on them (i.e. all the millions of Java developers out there).
B/3) Granted, not all of the packages are absolutely best of breed. (AWT/Swing come immediately to mind.) But most of them are quite well written, by fine minds like Josh Bloch and Doug Lea. I don't think there are many people in the world who could have written this. Overall I think the quality of code in most of the Java platform classes is at a level that almost any development organization would be proud of. And anyway, I don't see how code quality is related to a deployment decision like "should this be one JAR or seventeen?". What you're really saying is all this code shouldn't have been written by Sun, because you assume they don't have enough developers or that those developers are not focused enough on their tasks. (Right??)
C/4,5) The Java community has not proven to be short on innovation. There have in the past been plenty of third-party Java collection classes (Trove, Commons Collections, Commons Primitives, tclib, FastUtil, PCJ, Mango). I would like to see some more specific examples to back up your claim of "huge losses in productivity". (Although the general argument may not be totally without merit, because the .NET development community does in general seem to shun non-Microsoft libraries and technologies.)
As for your backward compatibility argument, I don't see how a widely used library should have any less of a responsibility to remain backward compatible with previous versions, than a language does.
And from just a common sense perspective, can you seriously mean that a modern language shouldn't have built-in types for such basic abstractions as string, list, hashtable? Do you really think this kind of crap is an improvement?
What's wrong with a standard toolkit of 1500 separate classes?
As many times as I've heard this fun fact, it never ceases to amaze me: "In ZE / PHP 4 objects weren't references, so when they were passed to a function a copy was made."
I've never heard this one before, and it's just as ridiculous: "In PHP 4, you couldn't access a member function or properity indirectly through another object's member function or properity.."
Yikes. How did they get it that wrong!?? And how did they manage to come up with (what looks like) a very reasonable object system for PHP 5?
Also, what is the "interface" feature for, if the language is not statically typed? Will you get a runtime error as soon as an implementing but non-conforming class is defined? Or is it primarily just a more formal way of documenting your class? Or does it work solely in concert with type hinting to prevent you from passing in an incorrect type?
"a googol browsers" (you wouldn't say "a hundred of browsers")
The purpose of these candidates on the far edges of the spectrum is not to get elected or indeed even have a whisper of a chance; the system from top to bottom is designed to favor the (two?) most moderate candidates. (For example, the electoral college: The fact that winner-takes-all in each state is a moderating influence.)
The purpose of these fringe candidates is, instead, to drum up enough of a base that the moderate candidate that's closer will want to drift over in that direction in order to pick up those votes. In other words, they should judge success not by how many votes they get, but by how much they ultimately move the definition of "moderate".
So don't feel too bad for having to vote for Bush, as long as you answer Peroutka in the polls. The fact that you are being forced to vote for the more moderate candidate means the system is working exactly as it is intended to, for the greater good of the overall population.
Again, where are you getting "idealism" out of my post, or out of great-grandparent post? Neither of us were talking about morality here; I have no illusions about politics being anything but a "blood sport", or about ethics taking precedence over votes in any modern campaign.
I am not talking about "going negative" vs. not going negative. I am not saying that negative attacks in general cannot benefit a campaign. That would be stupid.
All I am suggesting is that in this particular situation, after being bombarded with anti-Bush books, movies, commentaries, commercials, op-ed pieces for the last >4 years, a further increase in negative attacks may not result in a corresponding incremental increase in the polls, but a decrease.
For example, it seems likely that Fahrenheit 9/11 had a significant net positive effect for Kerry. At the same time, it seems unlikely that a sequel to Fahrenheit 9/11 that was even more aggressive than the first would have a positive effect. If one [wasn't convinced by / didn't watch] the first, one is probably not going to [be convinced by / watch] the second.
Imagine a negativity quantity Q that would result in a maximum on the negativity vs. votes graph. x<Q leave votes on the table because some voters have yet to hear attacks that would convince them; and x>Q loses votes because it begins to smell like desperation and reality distortion and because, yes, perhaps there is a certain demographic out there that gets turned off by attack ads.
You seem to be saying Q approaches infinity, or at the very least that it's much greater than the x we're at now. All I'm saying is that I think x is close to Q already, or past it. There's nothing idealistic or unrealistic about my position (although correctness and accuracy is another story, since this is all just conjecture).
OK, now I've written two long posts on a subject that, quite frankly, I have very little interest in. Feel free to have the last word, if you like, I'll read it but probably not reply.
I, for one, agree with him. I am about as up-for-grabs as a voter can get--I do not identify with any political party, and am moderate, liberal, or conservative depending on the particular issue in question. Another round of negativity from the Democrats would only turn me off. (But I live in Massachusetts, so I guess my vote won't matter anyway.)
Most people I know who will respond positively to a Bush attack ad are already firmly in the Kerry camp. Do you seriously think there are a ton of voters sitting on the fence who need just a little more Bush bashing to tip them over to the left? If they haven't sided with Kerry already, it's probably because they either don't believe the attacks, or have become desensitized to them, or the attacks are not enough to outweigh the reservations they have about Kerry, or all of the above.
(And now, a wild tangent)
Just to balance the above, I am also quite put-off by the Swift boat sideshow and also the "flip-flop" mantra that was everywhere during the RNC. The Swift business just reeks of partisan truth distortion. Whether there is any merit to the claims, I don't think they should've gone there. And if they fail to do real damage to Kerry's perceived service record, all they've done is kept Kerry's military history a hot issue, which no matter how you slice it, makes Bush's look embarrassing by comparison.
I don't know the details of Kerry's "flip flopper" charge, but I don't at all agree that a real leader, once he's made a decision, sticks to his guns and doesn't change his mind. Republicans derided Kerry for justifying one of his flip-flops with "It's a complicated situation" or something like that. Yes, there are a lot of complicated problems out there, and I can respect a senator who is thoughtful enough to reevaluate his position and change his mind, rather than sticking with a previous decision despite mounting evidence against it.
(Not saying that Kerry is or isn't a wishy washy unprincipled uncommitted wimp, just that I don't see anything wrong with flip-flopping in general.)
Sound Blaster Audigy 2NX
Echo Indigo
I have a humble Sound Blaster MP3+ (USB sound card) hooked up to a somewhat high-end stereo system (B&W Matrix 805 speakers, Meridian 501 preamp and 556 amp) and it actually sounds pretty great. That's a $40 sound card that can hang with a $4500 stereo!
Yeah, I alluded to that at the end of my post (in my book, "automatic memory management" == "garbage collectors").
Also, in the example you give, you can know that a virtual method is never going to be overridden before runtime, you do need to link your .o files tho, so it is after compile time. THere is however no theoretical reason why you cannot decide at that time to recompile a bit of code to get the exact same optimizing as you could with java.
Can you do that if your output is a class library (.dll or .so)? This is an honest question.
I'm not saying that Lisp isn't cool, or that I wouldn't be thrilled if my next job involved full time Lisp hacking. But to me, the language that is considered the geek Gold Standard should be the one that most geeks stand up and proudly say "Yes, I am a _____ hacker," not "_____ is cool, and I've built some significant projects in it, but for that last ten years it's really been mostly C and Perl."
I'm more surprised you didn't notice my smalltalk->scheme braino.
That's funny, I actually read it as Smalltalk... twice!!
I didn't design the language, but one very good reason is, semantic equality needs to be class polymorphic while operators in Java are not. Thus semantic equality gets implemented via a polymorphic method, and the equality operator becomes pointer comparison. While the == behavior may be slightly unintuitive at first, it is actually much more consistent with the meaning of == when applied to primitive types.
One annoying consequence of == vs .Equals() is that you can't compare two values, either or both of which could be null, without explicitly checking for null:
Also from what I understand, the Perl/C at Viaweb were written by others. Everything he wrote was Lisp.
I'm not saying he's crazy, or even wrong. Just that he feels really strong about Lisp. :)
That's true; but I don't know anyone who does that.
A lot of geeks give Lisp props, but who actually uses it?
(BTW, I'm surprised you hold up Python as an example of OO purity. Perhaps you meant Ruby?)
(Although I think Martin Fowler's language of choice these days may be Ruby.)
Actually Paul Graham really does believe that Lisp is the right tool for every job, except for implementing Lisp interpreters (sometimes).
I've been using .NET for the last 18 months and Java for the last four years, and they seem about the same speed and take about the same footprint.