Yes, you are exactly right. As is no surprise given your background.:-)
As you indicated, the more time you are willing to sacrafice at load-time and at "just-in-time" time, the more optimizations you can do based on that runtime information. This just isn't an option with pure "static compilation."
So, I have a feeling that as machines become faster, enough time will be able to be devoted to JIT work to make it as fast as, if not faster than static compilation.
I'm a bit of a computer language theorist with more interest in saving developer-time than run-time, so I'm no expert on dynamic vs static compilation issues. So, I'll take your word for it that they are in general a bit slower. I was just trying to beat back one of the more obvious trolls...:-)
You do realize that most of that is false, don't you?
Yes, GWBASIC was interpreted. Early QuickBASIC programs were too. However, QuickBASIC introduced the ability to compile a long time ago. I have never used Visual Basic, and hence can not comment on it's implementation.
Java is not an interpreted language. Atleast, not by default; not anymore. At "compile-time", Java is converted into a form of byte-code to be later executed by the JVM. The JVM in all recent versions of Java uses a concept you mentioned called Just-In-Time compilation because, as you said, a true interpreter is just plain slow. JIT compilation, also called "dynamic compilation" has proven to be faster than normal (or static) compilation in an increasing number of cases.
You also mentioned JNI (Java Native Interfaces). This, of course, has nothing to do with the compiled/interpreted debate.
As for the "no one writes full-blown applications in X", where X is an interprted language remark... you may want to talk to IBM about that as a fair amount of their development takes place in Java now-a-days. I specifically refer to Eclipse and the WebSphere family of products, including WebSphere Enterprise Developer and so on.
Haha. Yes, I can see how if you meant an 8-hour working day then it would be possible.:-)
I keep hoping they'll find some new tech that lets LCD's run on less power, but I'm not sure how it's possible. I mean, you have to provide enough power to get several million light-emitters to work at the right wavelength. Universal Display has some cool tech involving OLEDs, or Organic Light-Emitting Displays. It's functional to the point where they are using them for military applications. Although, honestly, I have no idea how their power consumption compares to traditional LCDs.
It's a shame that most of the laptop's power go to the CPU and the LCD, neither of which will be helped by this technology. So, barring new battery technology your "laptop that runs for days" is still but a dream.
Oh, wow, thank you. That's DEFINITELY a sci-fi twist: a cigar box full of blinding light that brings things back to life. Not sure how I missed that the first time through...
Right. Your example would violate the principle of least surprise. You/expect/ pointer arithmetic to work in C. So, it is a bad use of operator overloading.
However, I can't think of any times in which it is a good idea to do pointer arithmetic on a pair of Matrix* objects. So, I have no big problem with overloading the + operator for these types. At the very least it should be safe to overload them for const Matrix&'s.
So, the result in my mind is that operator overloading can be mis-used in horrible horrible ways, but that shouldn't prevent people from using it the few ways in which it is useful.
Thanks for the quote. I just looked it up in my copy of the book. Pages 541 and 542 for the curious.
I see what you mean, but I'm still confused.
The doctor is operating, an artery gives way and they pronounce him dead. I'll assume you don't go through much effort to sew up and post-op a dead body. And obviously the doctor isn't "in on it" as they had to drag him out of his house at gun-point in the middle of the night.
Then, in the quote you gave it says that "[Rudy] and another man walk out of the office." So, now Enoch, who was previously comatose, then had an artery snap and was pronounced dead is feeling well enough to "walk" out of the office...
Of course, as Rudy was alone with the "corpse", I can't imagine who else would have been under that blanket.
So, the only plausible solution is that Enoch's real name is Duncan McCloud.
You seem to be advocating the perspective that "any feature which can potentially be abused should just be removed preemptively."
I think that's bullshit.
Used responsibely, operator overloading can be a wonderful thing. In particular, overloading the mathematical operators for classes like Matrix and Vector. Also, overloading the [] operator for collections as well as the aforementioned Matrix and Vector classes.
As long as you follow the principle of least surprise and don't overload the + operator to take square roots it's really not a problem.
More spoilers here (about Cryptonomicon) a b c d e f g h i j k l m (yeah, damned lameness filter) n o p q r s t u v w x y z . I'm hoping that you are refering to what I think you are referring to. In crypto, during the WWII timeline, Enoch root dies. Shaftoe and a surgeon they yanked out of his house are there when it happens. But, in the "present" timeline Enoch turns out to be Waterhouse's cell mate.
This confused the hell out of me when I first read it.
So, are you saying it's possible that Enoch is something more ephemeral? Either a time traveler, or a god or something along those lines? That could explain how he would turn up in some many desparate timelines (including, apparently, the Baroque period...)
I'm very curious to read this new book and find out.:-)
What you are saying is equivalent to "the alphabet can't be tested." The alphabet, just like mathematics, makes no predictions and hence there is nothing to test.
However, mathematical equations can be used to model physical phenomenon, and can hence make predictions about the behavior of those physical systems. This field is called Physics. These predictions can be tested and verified.
The "brain in a vat" theorem can make no predictions, and hence can not be tested.
I agree, the pref panes are humongous. The title bars and drag bars are bigger as well. I don't find them so big that they are intrusive, but I can see how someone else might.
With respect to the font sizes, you can customize most of them. Check out TinkerTool. But, some you don't seem to be able to change. Again, I don't find them so big that they are obtrusive, but I see how someone else might.
The dock can be: 1) Resized. 2) Set to "auto-hide." 3) Removed entirely.
Assuming that all of your windows/linux programs have menus, you can just move all of them up to the top of the display and that's what the menu bar is. Only it's more useful than that because it can also show the time, weather, battery power, date, volume...
Just wondering what your specific problem with it was...
FYI, lexical closure have nothing to do with the fact that Lisps can are interpreted. They could work identically in a compiled language, such as a compiler-based implementation of Lisp.
Lexical closures work because of lexical scoping (and vice-versa depending on how you approach it).
To drive this point home, there are plenty of interpreted languages that don't have lexical closures. For example, python.
Shouldn't we be able to prosecute spammer's under the DMCA?
Spam filters are obviously a device used to regulate what mail you receive. They used to effectively block spam. However, spam has evolved to beat the filters.
This implies that the spammers determined the method the filter used, so that they could beat it. In other words, they reverse-engineered it.
So, aren't spammers circumventing an access-control device via knowledge they gained by reverse-engineering a product?
Well, let's see here. I'm going to be reading data from an untrusted source. So, I feel it's safe to assume that this data will be no longer than, oh, let's say 100 characters. Yeah, 100. I mean, who would send more than that. That'd be crazy!
That'd be about as crazy as wasting cycles on checking the length of my input. Or, dynamically allocating buffers. Or, using safe, bounded copy/read instructions. What kind of wacko would do that! Hah!
Justin Dubs
Re:OS X Finder Laundry List - Please add yours.
on
A Better Finder?
·
· Score: 1
Thanks for the info.
Re:OS X Finder Laundry List - Please add yours.
on
A Better Finder?
·
· Score: 1
Your first point is undeniably true.
Your second confuses me. You indicate that modes are bad, which seems to be a common belief. Then, you indicate that Return is a toggle key.
The thing is... toggle implies modes. The Return key changes you from Not-Renaming-Mode to Renaming-Mode. You know it's a mode change because it changes how the keys work. Before right-arrow would move you to the icon to the right, now it moves you a character to the right. And so on.
So, anyway, you seem to indicate that they are introducing a mode with a Return key because of their anti-mode beliefs.
Unless I am horribly mistaken.
Your third point is kind of a chicken/egg situation. The only reason people with their hands on the keyboard are more likely to be renaming is that Apple makes it such a pain in the butt to navigate with the keyboard. I almost never have to use the mouse to navigate from windows. On the mac the mouse seems required.
Justin Dubs
Re:OS X Finder Laundry List - Please add yours.
on
A Better Finder?
·
· Score: 1
Yeah, it is nitpicking.
Cmd+O is the standard for opening, and Enter does seem to be the standard for renaming/editing fields. You're right about that.
No, Cmd+O isn't that hard. But it is substantially harder than Enter. Especially when your right hand is over on the arrow keys moving between icons.
I definitly agree that Alt+F4 sucks. I like Cmd+O, Cmd+W, Cmd+Q. Very standard. I just tend to open more often than I rename, so I'd prefer the simple Enter be used for that as well as Cmd+O, and maybe use Cmd+R for renaming.
Justin Dubs
Re:OS X Finder Laundry List - Please add yours.
on
A Better Finder?
·
· Score: 1
Here's another one.
Why the hell is it easier to rename a file or folder than to run/open it?
Pressing Enter, which in win32 or linux land would in some way activate an item, in instead delegated to the mundane activity of renaming on OS X. Do people really rename so frequently that they need to steal the Enter key for this purpose.
To actually open you have to use Apple+O, which is considerably harder to key.
"We act as though comfort and luxury were the chief requirements of life, when all that we need to make us happy is something to be enthusiastic about."
A single company publishes phonebooks in every country in the world.
Some country, x, makes either certain content or specific phone numbers illegal.
The company then goes out of it's way to obey local laws by presenting different information based on your geographic location, so as not to have their entire service banned in that country.
Google is not filtering "unpopular views" in the case of Germany. They are filtering "illegal views." You'll notice they don't do any content filtering in the US, aside from the filtering done to provide "better" results (ie. filtering out searchking).
Germany is fucked up. So is most of the world. People in the US don't realize how lucky they are to have a Constitution giving them protected freedoms. Europeans have no such luck.
Most European government's constitution's read:
"You have permission to do specific activities x, y and z until such a time that the government chooses to pass laws restricting said activities."
"The BSD license let's people do too many things, some of which I don't like. Therefore, the BSD license is TOO free."
"The GPL however, has just the right amount of freedom. It's still mostly free, without crossing the line of 'TOO free'. People can do what they want with it, as long as 'what they want' != 'what the FSF doesn't want'."
I have no moral problem with the GPL. I just wish people would stop calling it "free", unless they are going to put a (TM) or something after it. If you wanted your software to be truly free, you wouldn't be putting a copyright on it that contains words like "except" and "however."
Yes, you are exactly right. As is no surprise given your background. :-)
:-)
As you indicated, the more time you are willing to sacrafice at load-time and at "just-in-time" time, the more optimizations you can do based on that runtime information. This just isn't an option with pure "static compilation."
So, I have a feeling that as machines become faster, enough time will be able to be devoted to JIT work to make it as fast as, if not faster than static compilation.
I'm a bit of a computer language theorist with more interest in saving developer-time than run-time, so I'm no expert on dynamic vs static compilation issues. So, I'll take your word for it that they are in general a bit slower. I was just trying to beat back one of the more obvious trolls...
Have a good day,
Justin Dubs
You do realize that most of that is false, don't you?
Yes, GWBASIC was interpreted. Early QuickBASIC programs were too. However, QuickBASIC introduced the ability to compile a long time ago. I have never used Visual Basic, and hence can not comment on it's implementation.
Java is not an interpreted language. Atleast, not by default; not anymore. At "compile-time", Java is converted into a form of byte-code to be later executed by the JVM. The JVM in all recent versions of Java uses a concept you mentioned called Just-In-Time compilation because, as you said, a true interpreter is just plain slow. JIT compilation, also called "dynamic compilation" has proven to be faster than normal (or static) compilation in an increasing number of cases.
You also mentioned JNI (Java Native Interfaces). This, of course, has nothing to do with the compiled/interpreted debate.
As for the "no one writes full-blown applications in X", where X is an interprted language remark... you may want to talk to IBM about that as a fair amount of their development takes place in Java now-a-days. I specifically refer to Eclipse and the WebSphere family of products, including WebSphere Enterprise Developer and so on.
Justin Dubs
Haha. Yes, I can see how if you meant an 8-hour working day then it would be possible. :-)
I keep hoping they'll find some new tech that lets LCD's run on less power, but I'm not sure how it's possible. I mean, you have to provide enough power to get several million light-emitters to work at the right wavelength. Universal Display has some cool tech involving OLEDs, or Organic Light-Emitting Displays. It's functional to the point where they are using them for military applications. Although, honestly, I have no idea how their power consumption compares to traditional LCDs.
One can always hope. Have a good day.
Justin Dubs
It's a shame that most of the laptop's power go to the CPU and the LCD, neither of which will be helped by this technology. So, barring new battery technology your "laptop that runs for days" is still but a dream.
Justin Dubs
Oh, wow, thank you. That's DEFINITELY a sci-fi twist: a cigar box full of blinding light that brings things back to life. Not sure how I missed that the first time through...
Justin Dubs
Right. Your example would violate the principle of least surprise. You /expect/ pointer arithmetic to work in C. So, it is a bad use of operator overloading.
However, I can't think of any times in which it is a good idea to do pointer arithmetic on a pair of Matrix* objects. So, I have no big problem with overloading the + operator for these types. At the very least it should be safe to overload them for const Matrix&'s.
So, the result in my mind is that operator overloading can be mis-used in horrible horrible ways, but that shouldn't prevent people from using it the few ways in which it is useful.
Justin Dubs
Thanks for the quote. I just looked it up in my copy of the book. Pages 541 and 542 for the curious.
I see what you mean, but I'm still confused.
The doctor is operating, an artery gives way and they pronounce him dead. I'll assume you don't go through much effort to sew up and post-op a dead body. And obviously the doctor isn't "in on it" as they had to drag him out of his house at gun-point in the middle of the night.
Then, in the quote you gave it says that "[Rudy] and another man walk out of the office." So, now Enoch, who was previously comatose, then had an artery snap and was pronounced dead is feeling well enough to "walk" out of the office...
Of course, as Rudy was alone with the "corpse", I can't imagine who else would have been under that blanket.
So, the only plausible solution is that Enoch's real name is Duncan McCloud.
Justin Dubs
You seem to be advocating the perspective that "any feature which can potentially be abused should just be removed preemptively."
I think that's bullshit.
Used responsibely, operator overloading can be a wonderful thing. In particular, overloading the mathematical operators for classes like Matrix and Vector. Also, overloading the [] operator for collections as well as the aforementioned Matrix and Vector classes.
As long as you follow the principle of least surprise and don't overload the + operator to take square roots it's really not a problem.
Justin Dubs
More spoilers here (about Cryptonomicon)
l
:-)
a
b
c
d
e
f
g
h
i
j
k
m (yeah, damned lameness filter)
n
o
p
q
r
s
t
u
v
w
x
y
z
.
I'm hoping that you are refering to what I think you are referring to. In crypto, during the WWII timeline, Enoch root dies. Shaftoe and a surgeon they yanked out of his house are there when it happens. But, in the "present" timeline Enoch turns out to be Waterhouse's cell mate.
This confused the hell out of me when I first read it.
So, are you saying it's possible that Enoch is something more ephemeral? Either a time traveler, or a god or something along those lines? That could explain how he would turn up in some many desparate timelines (including, apparently, the Baroque period...)
I'm very curious to read this new book and find out.
Justin Dubs
What you are saying is equivalent to "the alphabet can't be tested." The alphabet, just like mathematics, makes no predictions and hence there is nothing to test.
However, mathematical equations can be used to model physical phenomenon, and can hence make predictions about the behavior of those physical systems. This field is called Physics. These predictions can be tested and verified.
The "brain in a vat" theorem can make no predictions, and hence can not be tested.
Justin Dubs
The brain-in-a-vat theory is untestable and unfalsifiable and is hence meaningless philisophical masturbation...
Justin Dubs
I agree, the pref panes are humongous. The title bars and drag bars are bigger as well. I don't find them so big that they are intrusive, but I can see how someone else might.
With respect to the font sizes, you can customize most of them. Check out TinkerTool. But, some you don't seem to be able to change. Again, I don't find them so big that they are obtrusive, but I see how someone else might.
Thanks for the feedback.
Justin Dubs
Why do you call it intrusive?
The dock can be:
1) Resized.
2) Set to "auto-hide."
3) Removed entirely.
Assuming that all of your windows/linux programs have menus, you can just move all of them up to the top of the display and that's what the menu bar is. Only it's more useful than that because it can also show the time, weather, battery power, date, volume...
Just wondering what your specific problem with it was...
Justin
That point, I believe, is up for debate...
FYI, lexical closure have nothing to do with the fact that Lisps can are interpreted. They could work identically in a compiled language, such as a compiler-based implementation of Lisp.
Lexical closures work because of lexical scoping (and vice-versa depending on how you approach it).
To drive this point home, there are plenty of interpreted languages that don't have lexical closures. For example, python.
Justin Dubs
Shouldn't we be able to prosecute spammer's under the DMCA?
Spam filters are obviously a device used to regulate what mail you receive. They used to effectively block spam. However, spam has evolved to beat the filters.
This implies that the spammers determined the method the filter used, so that they could beat it. In other words, they reverse-engineered it.
So, aren't spammers circumventing an access-control device via knowledge they gained by reverse-engineering a product?
It's that the epitome of illegal under the DMCA?
Justin Dubs
Well, let's see here. I'm going to be reading data from an untrusted source. So, I feel it's safe to assume that this data will be no longer than, oh, let's say 100 characters. Yeah, 100. I mean, who would send more than that. That'd be crazy!
That'd be about as crazy as wasting cycles on checking the length of my input. Or, dynamically allocating buffers. Or, using safe, bounded copy/read instructions. What kind of wacko would do that! Hah!
Justin Dubs
Thanks for the info.
Your first point is undeniably true.
Your second confuses me. You indicate that modes are bad, which seems to be a common belief. Then, you indicate that Return is a toggle key.
The thing is... toggle implies modes. The Return key changes you from Not-Renaming-Mode to Renaming-Mode. You know it's a mode change because it changes how the keys work. Before right-arrow would move you to the icon to the right, now it moves you a character to the right. And so on.
So, anyway, you seem to indicate that they are introducing a mode with a Return key because of their anti-mode beliefs.
Unless I am horribly mistaken.
Your third point is kind of a chicken/egg situation. The only reason people with their hands on the keyboard are more likely to be renaming is that Apple makes it such a pain in the butt to navigate with the keyboard. I almost never have to use the mouse to navigate from windows. On the mac the mouse seems required.
Justin Dubs
Yeah, it is nitpicking.
Cmd+O is the standard for opening, and Enter does seem to be the standard for renaming/editing fields. You're right about that.
No, Cmd+O isn't that hard. But it is substantially harder than Enter. Especially when your right hand is over on the arrow keys moving between icons.
I definitly agree that Alt+F4 sucks. I like Cmd+O, Cmd+W, Cmd+Q. Very standard. I just tend to open more often than I rename, so I'd prefer the simple Enter be used for that as well as Cmd+O, and maybe use Cmd+R for renaming.
Justin Dubs
Here's another one.
Why the hell is it easier to rename a file or folder than to run/open it?
Pressing Enter, which in win32 or linux land would in some way activate an item, in instead delegated to the mundane activity of renaming on OS X. Do people really rename so frequently that they need to steal the Enter key for this purpose.
To actually open you have to use Apple+O, which is considerably harder to key.
Justin Dubs
I'm reminded of a fabulous Einstein quotation:
"We act as though comfort and luxury were the chief requirements of life, when all that we need to make us happy is something to be enthusiastic about."
Justin Dubs
It's a college lecture. What do YOU think the questioners view on DRM is likely to be? :-)
Justin Dubs
Let's try THIS analogy:
A single company publishes phonebooks in every country in the world.
Some country, x, makes either certain content or specific phone numbers illegal.
The company then goes out of it's way to obey local laws by presenting different information based on your geographic location, so as not to have their entire service banned in that country.
Google is not filtering "unpopular views" in the case of Germany. They are filtering "illegal views." You'll notice they don't do any content filtering in the US, aside from the filtering done to provide "better" results (ie. filtering out searchking).
Germany is fucked up. So is most of the world. People in the US don't realize how lucky they are to have a Constitution giving them protected freedoms. Europeans have no such luck.
Most European government's constitution's read:
"You have permission to do specific activities x, y and z until such a time that the government chooses to pass laws restricting said activities."
Scary shit.
Justin Dubs
I love this kind of logic.
"The BSD license let's people do too many things, some of which I don't like. Therefore, the BSD license is TOO free."
"The GPL however, has just the right amount of freedom. It's still mostly free, without crossing the line of 'TOO free'. People can do what they want with it, as long as 'what they want' != 'what the FSF doesn't want'."
I have no moral problem with the GPL. I just wish people would stop calling it "free", unless they are going to put a (TM) or something after it. If you wanted your software to be truly free, you wouldn't be putting a copyright on it that contains words like "except" and "however."
Justin Dubs