|
|
I've learned many life lessons from Jake but I'm often unable to keep up with his technical diatribes. Here's a brief recap of yesterday's conversation between Jake, Adam & I, which includes two of my favorite all-time quotes. Since I didn't have a tape recorder, some of this is paraphrased -- but much of it is verbatim, especially near the end...
Jake: So let's get back to this C code that you don't think runs quickly.
Me: I just don't think you can use preprocessor shorthand to improve performance.
NOTE: For a complete discussion the aforementioned "C code," see Google Groups "A Question of Speed (i.e. The Source Code of a Thousand Tears)."
Jake: They're really advanced techniques.
Me: Is there a reference anywhere on why that code would be faster? It's completely illegible.
Jake: Once you start writing code like that, it's really easy to read. Only really good programmers can write code that way anyway.
(some time passes as he segues from C back to C#)
Jake: You need to use loop unrolling more in your C# code, it can really boost performance. Instead of writing "for i=0, i++" you can just write "i shift 2."
Me: Ok... I've never used "loop unrolling." Can you give me a code example of how I might use it?
Jake: I just did -- you didn't understand what I just said? It can't be any more clear than that. And you can even apply these techniques in javascript.
Me: I see. Well, I'm really not sure how writing "i shift 2" instead of a for loop is going to increase performance.
Jake: Because when the javascript is compiled, it is written to the vector processor on the chip, so the entire loop only takes one clock cycle, and... (it goes on like this for a while, I lost track of the conversation for a few minutes here).
Me: Compiled? Javascript is interpreted, not compiled.
Jake: How do you think that code runs?
Me: The browser deals with it... I guess I've never wondered how that happens.
Jake: The browser can't compile javascript, it just reads pure HTML from a socket.
Me: Then what's handling the javascript?
Jake: The JVM. Why do you think it's called Javascript?
Me: I don't know -- because it has a similar syntax? Java and javascript have nothing to do with each other -- and javascript does not use the JVM.
Adam: Mozilla ships without a JVM and it can run javascript.
Jake: That's because both browsers use a different, built-in JVM. Jerry, you've been a web developer for 5 years and you can't explain how hello world dot javascript compiles?
Me: (speechless)
|
|
[reply]
|
08/04/05 10:51 AM EST posted by Donkey Donkey Donkey email web |
|
| Alex is typing feverishly at his desk... I think I saw steam coming out of his ears... |
|
|
|
Ok, this is about all that I can take.... If this is the same Jake that has posted here previously (see all posts by Jake from the main page search), I have got to call you out dude. I don’t think I have ever seen anyone who is a more perfect example of a Compensatory Narcissistic since we determined that Bull is Histrionic. I am shocked and appalled by the utter load of crap and lack of information that is typically spewed forth. Previous posts have fed partial information typically stolen from a quick search on Google groups to provide a non working and typically unnecessary solution, while making the original poster feel as if they should have known this all too simple solution. OF COURSE IT IS SIMPLE, GOOGLE GAVE IT TO YOU.
Now I am the first to admit that there are things that I do not know about programming, computers, compilers, etc. There is probably more that I do not know that I do know. But I do know the difference between interpreted code and compiled code, and I do know that JavaScript is INTERPRETED and not compiled, and more specifically, the JavaSCRIPT (you see, the word “script” in the name and you often think interpreted, not in all cases, but it is a good clue eh?) is not handled by the JVM. The fact that JavaScript has the word Java at the beginning is simply an unfortunate side effect from the early days of the web. Name something familiar so people are less intimidated and people will use it more. Really is should have just been called ECMAScript. The only thing you can do at this point to save face is to throw up your hands and admit, “I AM A FRAUD, I KNOW LITTLE MORE THAN ANY OTHER NORMAL NON TECHNICAL PERSON, BUT HEY, I CAN TALK A GOOD GAME NO?”
Oh but wait, let’s get to the fact that your game of talk is inherently flawed in the simple fact that your vocabulary and logic is based on only your vocabulary, and not any true uses of the logic that you present. In other words, I’ve seen sales people with a similar approach to coding. “Why can you just throw the request on a TCP stack that will be pass off to the server’s pre-processor, that way the clock cycles utilized in the programming will trend to the minimal?” You see, anyone can do it and make no sense at all. Now I am not going to hit on the specifics of you conversation with Jerry. I am going to leave it to the other programmers around me that are disgusted by this load of misinformation to pick the whole thing apart. But I think there are definitely a few computer architecture courses that you slept through that you may want to attend again. I would venture to say that along with your C skills need a little fine tuning. Either you can do that or just use a basic quote from a previous message. This post courtesy of Jake was “As a C programmer, any errors generated by the operating system and not by the .NET application always lead me to believe in a problem in memory management-although I have nothing to back this up.” I think you should simply use this vocabulary wrapper in everything that you say, so in essence every sentence would be “As a C programmer, [Insert various rant with a smart sounding whip to it that really has no real substance or value other than to try to make a person who I am talking to feel a little inferior] although I have nothing to back this up.”
So to install this wrapper into your intellect, you will just want to compile your brainframes, then grab the generated dll., decompile with the /DCRMP preprocessor directive that will speed the whole thing up, then grab the generated source and run it through the JVM to toss the decroded bits into the flex interpreter for recompiling into the maximum of cycles.
While you do this I am going to go off and try to figure out how to compile helloWorld dot javascript because I’ve been a web developer for 8 years and I haven’t a damn clue of what you are talking about. I guess I must be shamed along with Jerry. |
|
[reply]
|
08/04/05 11:50 AM EST posted by Jonny |
|
Alex: Good use of the word "utilize"
|
|
|
|
| Loop Unrolling |
|
|
|
What is Jake's legal name?
I'm guessing Robert Jacob Wingdoodle III or Rob3 for short... |
|
|
|
Oh Man Jake, Kearns just called you Rob3, I don't think you can even realize how severe that is. |
|
|
|
| Ouch, "Rob3" -- that hurts. Your intuition serves you well, though, Blearns -- Jake sometimes go by the name Charlie Gould. Seriously, there's a yearbook here in the office. |
|
|
|
LOL! Best comment from the USENET thread posted above:
moriori...@yahoo.com (Jerry) writes:
> Can someone explain the underlying implications of this statement:
> "#define P printf" ? I've been told that printf is called off of the
> heap instead of the stacks, so P calls are much faster than just
> "printf" calls. I thought it was just shorthand... Please CC via
> e-mail when replying!
Are you sure you're not trolling?
|
|
|
|
I found a reference to the mystical, magical, Javascript Virtual Machine.
Clearly only an advanced programmer could understand how it works... |
|
|
|
What?!?! I swear I pasted the URL in...
http://www.janis.or.jp/users/segabito/JavaScriptMaryo.html |
|
|
|
You need an example of where the Javascript Virtual Machine is used? There, I just gave you one, now suck it! |
|