News:

Living proof that any damn fool can make things more complex

Main Menu

Google Wave

Started by Captain Utopia, August 15, 2009, 08:30:54 PM

Previous topic - Next topic

Rococo Modem Basilisk

Quote from: fictionpuss on September 04, 2009, 04:47:30 AM
What I get from this is:

  • The only thing Google does better than you is PR and marketing
  • Google is stupid, and you are smart
  • You see enfilades everywhere, even places they have no reason to be

That is a pretty accurate list. For what it's worth, I really *do* think they based it off enfilades; I don't see enfilades in most other google things, and when they described the data structure that 'is' google wave at the end of the video, they were basically describing an enfilade.

Quote
Also, GWT isn't a translator for Java.

It's not?

Quote from: google
Google Web Toolkit (GWT), especially when combined with the Google Plugin for Eclipse, eases this burden by allowing developers to quickly build and maintain complex yet highly performant JavaScript front-end applications in the Java programming language.


I am not "full of hate" as if I were some passive container. I am a generator of hate, and my rage is a renewable resource, like sunshine.

Captain Utopia

Quote from: Enki v. 2.0 on September 04, 2009, 11:43:32 AM
For what it's worth, I really *do* think they based it off enfilades; I don't see enfilades in most other google things, and when they described the data structure that 'is' google wave at the end of the video, they were basically describing an enfilade.
Well an enfilade is basically a standard b-tree, but with a more efficient indexing system, right? So if they base it on anything like a standard b-tree, it could end up looking like an enfilade, especially if they gloss over the indexing? I dunno, I've been burned many times making false tech assumptions, that I've learned the value of caution, especially when there is inconclusive data.

Quote from: Enki v. 2.0 on September 04, 2009, 11:43:32 AM
Quote
Also, GWT isn't a translator for Java.

It's not?

Quote from: google
Google Web Toolkit (GWT), especially when combined with the Google Plugin for Eclipse, eases this burden by allowing developers to quickly build and maintain complex yet highly performant JavaScript front-end applications in the Java programming language.
No, it's not translator or interpreter for Java, it's compiled and highly optimised into Javascript. The claim is that it can now out-perform hand-crafted Javascript for moderately complex tasks - never really getting my hands dirty with Javascript I can't confirm that independently. Though I've had no issues with speed when using GWT: http://code.google.com/webtoolkit/examples/



Rococo Modem Basilisk

Quote from: fictionpuss on September 04, 2009, 03:56:37 PM
Quote from: Enki v. 2.0 on September 04, 2009, 11:43:32 AM
For what it's worth, I really *do* think they based it off enfilades; I don't see enfilades in most other google things, and when they described the data structure that 'is' google wave at the end of the video, they were basically describing an enfilade.
Well an enfilade is basically a standard b-tree, but with a more efficient indexing system, right? So if they base it on anything like a standard b-tree, it could end up looking like an enfilade, especially if they gloss over the indexing? I dunno, I've been burned many times making false tech assumptions, that I've learned the value of caution, especially when there is inconclusive data.

The major difference between a b-tree and an enfilade is that b-trees split and reorganize based on the (very small and fairly static) 'optimal' number of children. A 2/3 b-tree will almost always have 1, 2, or 3 children. An enfilade has n children, and doesn't reorganize because it's not a search tree.

Tumbler addressing isn't part of an enfilade -- it just so happens that it's terribly fast when used in combination with enfilades. The same principle of addressing by transfinite numbers is the basis for the dewy decimal system.

Quote
Quote from: Enki v. 2.0 on September 04, 2009, 11:43:32 AM
Quote
Also, GWT isn't a translator for Java.

It's not?

Quote from: google
Google Web Toolkit (GWT), especially when combined with the Google Plugin for Eclipse, eases this burden by allowing developers to quickly build and maintain complex yet highly performant JavaScript front-end applications in the Java programming language.
No, it's not translator or interpreter for Java, it's compiled and highly optimised into Javascript. The claim is that it can now out-perform hand-crafted Javascript for moderately complex tasks - never really getting my hands dirty with Javascript I can't confirm that independently. Though I've had no issues with speed when using GWT: http://code.google.com/webtoolkit/examples/

A smart optimizing translator is still a translator. Java and javascript both are terribly slow compared to well-written native code. I'm not claiming that GWT is trivial when I say it's a translator -- I am describing its function, not its mechanism. You stick java source in one end, and javascript comes out the other.


I am not "full of hate" as if I were some passive container. I am a generator of hate, and my rage is a renewable resource, like sunshine.

Captain Utopia

Quote from: Enki v. 2.0 on September 04, 2009, 04:59:50 PM
Quote
Quote from: Enki v. 2.0 on September 04, 2009, 11:43:32 AM
Quote
Also, GWT isn't a translator for Java.

It's not?

Quote from: google
Google Web Toolkit (GWT), especially when combined with the Google Plugin for Eclipse, eases this burden by allowing developers to quickly build and maintain complex yet highly performant JavaScript front-end applications in the Java programming language.
No, it's not translator or interpreter for Java, it's compiled and highly optimised into Javascript. The claim is that it can now out-perform hand-crafted Javascript for moderately complex tasks - never really getting my hands dirty with Javascript I can't confirm that independently. Though I've had no issues with speed when using GWT: http://code.google.com/webtoolkit/examples/

A smart optimizing translator is still a translator. Java and javascript both are terribly slow compared to well-written native code. I'm not claiming that GWT is trivial when I say it's a translator -- I am describing its function, not its mechanism. You stick java source in one end, and javascript comes out the other.
Compiler != Language translator

Rococo Modem Basilisk

When you get into stuff like java (bytecode based, though even that is blurred with JITs and such) the actual distinction between a translator and a compiler becomes so fuzzy that the choice of wording is little more than a statement about the level of respect you have for the project.

A translator between two radically different languages has precisely as much complexity as a compiler (which historically has been a translator between a high level language and either assembler or machine language, and is now considered a translator between a high level language and a low level language, bytecodes being more or less an attempt at a platform-agnostic machine code). Something that translates between java and javascript, no matter how well, could be argued as either a compiler or a translator. I would label it a translator, and not out of disrespect. I have done projects of that type, and there are complexities involved.

However, we are currently arguing over what word to apply to a project merely tangentally related to the subject at hand. I am sure that our impotent nerdrage is scaring people away from the thread. Can we agree to disagree about what label to apply to GWT, and simply say that the wave demo is written in java and/or javascript?


I am not "full of hate" as if I were some passive container. I am a generator of hate, and my rage is a renewable resource, like sunshine.

Triple Zero

Quote from: fictionpuss on September 04, 2009, 05:17:18 PM
Compiler != Language translator

Actually, that is the definition of a compiler. The course I took about compilers was in fact named [the Dutch words for] "Translator Building".

From Wikipedia: "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

Which is pretty much what I learned in Computer Science.

Also I don't quite understand why you are making a big deal out of this, especially since you apparently do not know much about the subject (compilers, that is, you probably know more about GWT than me, all I know about it is from the guy I'm working with that uses it to make a user-friendly admin-interface--a task for which it seems perfectly suited, IMO).

Apparently, you believe that a translator is something distinctly different than a compiler. Now, while according to the definition used everywhere in Computing Science, this is wrong, instead of arguing about definitions, you might want to explain what you think is the difference? Why do you (I suppose intuitively) disagree with this notion?
Ex-Soviet Bloc Sexual Attack Swede of Tomorrow™
e-prime disclaimer: let it seem fairly unclear I understand the apparent subjectivity of the above statements. maybe.

INFORMATION SO POWERFUL, YOU ACTUALLY NEED LESS.

fomenter

#21
poor ficpuss he wants so badly to be given ego strokes for being right about something.... and then somebody who actually knows something replies to his post  :lulz:
"So she says to me, do you wanna be a BAD boy? And I say YEAH baby YEAH! Surf's up space ponies! I'm makin' gravy... Without the lumps. HAAA-ha-ha-ha!"


hmroogp

Captain Utopia

Quote from: Triple Zero on September 04, 2009, 07:45:59 PM
Quote from: fictionpuss on September 04, 2009, 05:17:18 PM
Compiler != Language translator

Actually, that is the definition of a compiler. The course I took about compilers was in fact named [the Dutch words for] "Translator Building".

From Wikipedia: "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

Which is pretty much what I learned in Computer Science.

Also I don't quite understand why you are making a big deal out of this, especially since you apparently do not know much about the subject (compilers, that is, you probably know more about GWT than me, all I know about it is from the guy I'm working with that uses it to make a user-friendly admin-interface--a task for which it seems perfectly suited, IMO).

Apparently, you believe that a translator is something distinctly different than a compiler.
That's because it is:
 "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

A human is not intended to read/edit/maintain the output of a compiler. While it is technically possible it is neither practical nor standard practice.

A human is intended to read/edit/maintain the source-code output of a language translator.

The javascript output of the GWT compiler is not source code.


Quote from: Triple Zero on September 04, 2009, 07:45:59 PM
Now, while according to the definition used everywhere in Computing Science, this is wrong, instead of arguing about definitions,
I'll argue about definitions if they're being used in an obviously incorrect manner.


Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PM
When you get into stuff like java (bytecode based, though even that is blurred with JITs and such) the actual distinction between a translator and a compiler becomes so fuzzy that the choice of wording is little more than a statement about the level of respect you have for the project.
Nope. You can get language-translator generated code which is maintainable, GWT is not an example of this however.


Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PM
A translator between two radically different languages has precisely as much complexity as a compiler (which historically has been a translator between a high level language and either assembler or machine language, and is now considered a translator between a high level language and a low level language, bytecodes being more or less an attempt at a platform-agnostic machine code). Something that translates between java and javascript, no matter how well, could be argued as either a compiler or a translator. I would label it a translator, and not out of disrespect. I have done projects of that type, and there are complexities involved.
If GWT outputted maintainable javascript, then I would agree. But it doesn't so I don't.


Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PM
However, we are currently arguing over what word to apply to a project merely tangentally related to the subject at hand. I am sure that our impotent nerdrage is scaring people away from the thread. Can we agree to disagree about what label to apply to GWT, and simply say that the wave demo is written in java and/or javascript?
Sure, as long as you don't keep using it as an example of why Google don't care about efficiencies.

The interest in Google Wave demonstrated in this thread does seem to hinge on whether or not it's slow or slick - e.g. 000 thinks rich web applications are a dead concept.


Quote from: fomenter on September 04, 2009, 07:52:00 PM
poor ficpuss he wants so badly to be given ego strokes for being right about something.... and then somebody who actually knows something replies to his post  :lulz:
Nice try but fail.

Rococo Modem Basilisk

Quote from: fictionpuss on September 04, 2009, 09:01:18 PM
 "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

A human is not intended to read/edit/maintain the output of a compiler. While it is technically possible it is neither practical nor standard practice.

A human is intended to read/edit/maintain the source-code output of a language translator.

The javascript output of the GWT compiler is not source code.
[ .... snip ... ]

Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PM
When you get into stuff like java (bytecode based, though even that is blurred with JITs and such) the actual distinction between a translator and a compiler becomes so fuzzy that the choice of wording is little more than a statement about the level of respect you have for the project.
Nope. You can get language-translator generated code which is maintainable, GWT is not an example of this however.


Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PM
A translator between two radically different languages has precisely as much complexity as a compiler (which historically has been a translator between a high level language and either assembler or machine language, and is now considered a translator between a high level language and a low level language, bytecodes being more or less an attempt at a platform-agnostic machine code). Something that translates between java and javascript, no matter how well, could be argued as either a compiler or a translator. I would label it a translator, and not out of disrespect. I have done projects of that type, and there are complexities involved.
If GWT outputted maintainable javascript, then I would agree. But it doesn't so I don't.


Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PM
However, we are currently arguing over what word to apply to a project merely tangentally related to the subject at hand. I am sure that our impotent nerdrage is scaring people away from the thread. Can we agree to disagree about what label to apply to GWT, and simply say that the wave demo is written in java and/or javascript?
Sure, as long as you don't keep using it as an example of why Google don't care about efficiencies.

The interest in Google Wave demonstrated in this thread does seem to hinge on whether or not it's slow or slick - e.g. 000 thinks rich web applications are a dead concept.

Regardless of whether or not the javascript that happens to be output is maintainable (and mind you, being someone who has written compilers, translators, interpreters, etc. and maintained pretty large projects in languages like TCL, PROLOG, FORTH, Erlang, assembler, etc., 'maintainable' is a terribly subjective term, particularly when referring to the code output by any kind of meta-program) it is still javascript. This means that it is a high level language, even if it's optimized by some complex analysis of code in another language. It is still going to be more or less as fast as (very fast) javascript can be.


I am not "full of hate" as if I were some passive container. I am a generator of hate, and my rage is a renewable resource, like sunshine.

Captain Utopia

Quote from: Enki v. 2.0 on September 05, 2009, 01:27:48 AM
Regardless of whether or not the javascript that happens to be output is maintainable (and mind you, being someone who has written compilers, translators, interpreters, etc. and maintained pretty large projects in languages like TCL, PROLOG, FORTH, Erlang, assembler, etc., 'maintainable' is a terribly subjective term, particularly when referring to the code output by any kind of meta-program) it is still javascript.
Javascript is Javascript. I agree.

Quote from: Enki v. 2.0 on September 05, 2009, 01:27:48 AM
This means that it is a high level language, even if it's optimized by some complex analysis of code in another language. It is still going to be more or less as fast as (very fast) javascript can be.
Javascript is every bit as fast as Javascript. I agree on this too.

At least one of us has missed the point.

Triple Zero

Quote from: fictionpuss on September 04, 2009, 09:01:18 PM
Quote from: Triple Zero on September 04, 2009, 07:45:59 PM
Quote from: fictionpuss on September 04, 2009, 05:17:18 PM
Compiler != Language translator

Actually, that is the definition of a compiler. The course I took about compilers was in fact named [the Dutch words for] "Translator Building".

From Wikipedia: "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

Which is pretty much what I learned in Computer Science.

Also I don't quite understand why you are making a big deal out of this, especially since you apparently do not know much about the subject (compilers, that is, you probably know more about GWT than me, all I know about it is from the guy I'm working with that uses it to make a user-friendly admin-interface--a task for which it seems perfectly suited, IMO).

Apparently, you believe that a translator is something distinctly different than a compiler.
That's because it is:
 "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

A human is not intended to read/edit/maintain the output of a compiler. While it is technically possible it is neither practical nor standard practice.

What do you base this upon? Intuition again? Or did you learn this somewhere? In which case, ask your money back. Compilers and compiler-construction are some of the most difficult, complex and fundamental topics in Computer Science. You are currently speaking in a manner similar to someone who has just read about Quantum Mechanics in a popular science magazine.

Don't go about assuming that you know about compilers because you have used them, and perhaps have an intuitive notion of what they do. Did you ever write one? Do you know what a Lexer is, for instance? I would suggest that you read up on the topic, except that the topic is really boring (moreso than QM), it was a mandatory course in CS, I'm glad I learned about it, but if you choose not to and just be an end-user of compilers, that is just as well. Just don't go around talking about what is and what is not a compiler, or what they do, should do and should not do if you are not sure of what you are talking about.

Getting back to your statement. Yes, it is often the case that compiler output is not meant for human reading or editing. But just because that is the way you have used compilers so far, doesn't mean the other option isn't standard practice elsewhere. Because it is. Take for example compiler construction, yes, there are compiler-compilers. The Lexer I spoke about in the previous paragraph is part of that. What they do is take a formal definition of the language syntax as a high-level input, and compile this to C code. Except this C-code is not complete yet, it just contains the loops, recursive function calls and stuff to tokenize and parse the language from the formal definition syntactically, do syntax error checking and stuff like that. Because that's really complex stuff in which humans can easily make tiny errors that may not be discovered until years (the compiler-compiler itself is often formally proven to be correct--formal proofs of program correctness, another topic in Computer Science that I would not suggest studying for fun). But when that's done, yes the human is supposed to dive into the generated C code and attach semantics, variable type checking and stack building, memory management and of course target language output into hooks of the generated code. I'm fairly sure the GWT compiler has been written using these kinds of tools (the Google developers would be dumb not to).

(and in other cases, maybe for spot-optimizing or other highly specialized purposes can be a reason for a human to review compiler-output, however it can be argued that this is indeed not standard practice)

Regardless of all that, Java is a highlevel language, JavaScript is also a highlevel language. And a tool that translates one into the other is called a compiler. There's really not much more to it than that, it doesn't matter if the output is meant for humans or not. You can argue that a "source to source translator" is a specific subset of compilers, since it doesn't include those compilers that output binary code such as machine code, because that is usually not considered "source" code. They are still all translators, though. The term compiler is just reserved for those translators that deal specifically with programming languages (including machine language), as opposed to any kind of (including natural) languages.

Quote
Quote from: Triple Zero on September 04, 2009, 07:45:59 PM
Now, while according to the definition used everywhere in Computing Science, this is wrong, instead of arguing about definitions,
I'll argue about definitions if they're being used in an obviously incorrect manner.

where, in this case, obvious means "obvious to you, yet wrong by any kind of standard of Computing Science", which is why I suggested to stop arguing about the definitions, since I really don't care about your ideas of "correct usage" when you're just making shit up (aka "obvious"). The field of Computing Science has different ideas about those definitions and how they are used correctly, and I don't really feel the need to defend those against your ideas that you came up with.

Quote
Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PMWhen you get into stuff like java (bytecode based, though even that is blurred with JITs and such) the actual distinction between a translator and a compiler becomes so fuzzy that the choice of wording is little more than a statement about the level of respect you have for the project.
Nope. You can get language-translator generated code which is maintainable, GWT is not an example of this however.

once more, whether you call something a compiler or a translator is not much to do with either "respect", or maintainability of the target code.

seriously. in the case of GWT you can use "compile" and "translate" interchangably, since the target language is not machine language. and even then, there's nothing wrong with saying that a C-compiler "translates" C to machine code either. Because that's what it does. Regardless of whether you intend to ever open the output code in a hex-viewer or disassembler.

Quote from: Enki v. 2.0 on September 04, 2009, 07:12:31 PMSomething that translates between java and javascript, no matter how well, could be argued as either a compiler or a translator. I would label it a translator, and not out of disrespect. I have done projects of that type, and there are complexities involved.
If GWT outputted maintainable javascript, then I would agree. But it doesn't so I don't.[/quote]

Well, that's very nice, except that in that case, your definition of the relation between "compiler" and "translator" is generally considered by the CS community--as you would say--"obviously wrong".

I don't understand where you get the idea that maintainability of the target code has anything to do with it, except I guess for your general experience that most compilers you probably have worked with produced unmaintainable code and the word "translator" from outside of Computer Science generally applies to something of which the output is suitable for human consumption. In other words, you have just been making shit up about whatever you consider to be "obviously right", instead of the generally accepted use of perfectly well-defined computing terms.

QuoteThe interest in Google Wave demonstrated in this thread does seem to hinge on whether or not it's slow or slick - e.g. 000 thinks rich web applications are a dead concept.

well, IMO, they should be. the browser was never intended to run applications like this. neither was JavaScript implemented in browsers in order to create the possibiliy for applications (it was for form validation, not more). PDF files also can embed JavaScript and MS Word files can embed VBScript, but you wouldn't turn them into rich applications either.

I personally think the approach by Adobe AiR is a lot more suitable, for example Twhirl. The idea of rich online applications is not bad, but better take the application out of the browser.

And in that aspect, GWT, while a beautiful piece of work, is exactly the wrong way to go about it. It takes the browser, which was not meant for running applications in, and a scripting language that has been forced to do something it wasnt meant for either, and then another language (Java) which is more generally used for application development, compile that back into the scripting language as an abstraction layer in order to be able to write rich applications with nice user interfaces in a language that application developers are comfortable with. Which is a great idea and works beautifully, except now you have several big fat layers of crud between the application and the platform it runs on.


Quote from: fomenter on September 04, 2009, 07:52:00 PM
poor ficpuss he wants so badly to be given ego strokes for being right about something.... and then somebody who actually knows something replies to his post  :lulz:
Nice try but fail.

[/quote]
Ex-Soviet Bloc Sexual Attack Swede of Tomorrow™
e-prime disclaimer: let it seem fairly unclear I understand the apparent subjectivity of the above statements. maybe.

INFORMATION SO POWERFUL, YOU ACTUALLY NEED LESS.

fomenter

"So she says to me, do you wanna be a BAD boy? And I say YEAH baby YEAH! Surf's up space ponies! I'm makin' gravy... Without the lumps. HAAA-ha-ha-ha!"


hmroogp

rong

i programmed in assembly language once.

that was enough
"a real smart feller, he felt smart"

Captain Utopia

Quote from: Triple Zero on September 05, 2009, 02:39:52 PM
Quote from: fictionpuss on September 04, 2009, 09:01:18 PM
Quote from: Triple Zero on September 04, 2009, 07:45:59 PM
Quote from: fictionpuss on September 04, 2009, 05:17:18 PM
Compiler != Language translator

Actually, that is the definition of a compiler. The course I took about compilers was in fact named [the Dutch words for] "Translator Building".

From Wikipedia: "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

Which is pretty much what I learned in Computer Science.

Also I don't quite understand why you are making a big deal out of this, especially since you apparently do not know much about the subject (compilers, that is, you probably know more about GWT than me, all I know about it is from the guy I'm working with that uses it to make a user-friendly admin-interface--a task for which it seems perfectly suited, IMO).

Apparently, you believe that a translator is something distinctly different than a compiler.
That's because it is:
 "A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter."

A human is not intended to read/edit/maintain the output of a compiler. While it is technically possible it is neither practical nor standard practice.

What do you base this upon? Intuition again? Or did you learn this somewhere? In which case, ask your money back. Compilers and compiler-construction are some of the most difficult, complex and fundamental topics in Computer Science. You are currently speaking in a manner similar to someone who has just read about Quantum Mechanics in a popular science magazine.
You don't think that there is any difference between a "compiler" and a "language translator", yet the wiki page you quoted from makes just that distinction, earlier in the same paragraph:

QuoteThe name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language or machine code). A program that translates from a low level language to a higher level one is a decompiler. A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter.

So I'm guessing from the personal attacks, on this thread and others in the last few days, that this has very little to do with the technical matter at hand. I have no idea what your problem is with me, and I don't care.

Please stop talking to me, and I'll return the favour.

And fuck you.

Bruno

Donnie, you're out of your element.
Formerly something else...