Qooxdoo does Cells!!!!! (almost)

K

Kenny

Here is one small but good reason to use a full-blown application framework:

http://demo.qooxdoo.org/current/apiviewer/#qx.event.message

My app is big enough and I do enough reuse that change propagation
across the beast was getting hairy, even with the OO-lite qooxdoo
offers. I am reorganizing now to use the simple Message mechanism...
great fun ripping out code to get information around without it.

hth,kzo
 
M

Matthias Watermann

Matthias said:
Matthias Watermann wrote:

On Sat, 29 Nov 2008 05:24:40 -0500, Kenny wrote:

Matthias Watermann wrote:

On Thu, 27 Nov 2008 14:25:46 -0500, Kenny wrote:

[...]

After doing that he'll see hundreds if not thousands of warnings.

Warnings? I turned on warnings, saw things like "might return NULL".
But that option also stopped FF cold so I could not see it thru to the
end.

And that doesn't make you think?

The option in firebug itself warns of serious degradation. Multiply that
by 800kb and no, it does not concern me.

Well, that's the difference. I'm not using code that emits more than zero
warnings or errors. And certainly not a library that produces an endless
number of possible problems.
OK, so I say if (x.y)... and y lacks the property altogether so the test
fails, fine.

First, a programmer should know which properties he/she sets up. Then,
if he/she creates an execution context where it's not sure that the
property setup was already done he/she should test for that case instead
of just coding something like

var x = object.possiblyUndefinedProperts[someIndex];
If I do arithmetic with it it fails the first time I run
the code. If the concern is insufficient code coverage in unit tests we
are back to the strong static typing debate -- is that it?

No, I'm not talking about typing at all.
As a Lisper I certainly appreciate functional programming, but I am not
surprised others do not and even I write functions only for their
side-effects so why does a function always have to return a value?

You misunderstand the warning. It doesn't mean that every function must
return a value, but that if one (or more) execution branches return a
value, all of them should. A (very simple) example:

function foo() {
if (3 !== 3) {
return false;
}
}

Here the 3===3 case would not return a value.
I am starting to think this is definitely the issue: the classic debate
over strong static typing.

I have no idea what makes you think so. I haven't said a single word
about that issue.
[...]
Now, if a library doesn't even get the semantics of its language right
(just look at what JSLint can tell you about it) I'm not very much
inclined to validate its logic.

Your conclusion simply does not follow. It would follow if the library
authors with you liked the idea of the compiler verifying everything and
the library came up short in that respect,

I won't use such a library because obviously its authors do _not_ care
for proper coding. Even if a more in depth inspection of all those
warnings would show that none of them turns out to be critical it still
wouldn't justify that they're there in the first place.
but I am guessing most
javascript developers are more into the "agile" thing one gets with
languages such as Python/Ruby/Perl/Lisp in which one does not get all
OCD as mandated by, say, C++ and even worse Java.

As with the "typing" above this remark as well is completely off topic.
I've been talking solely about the low quality of a JavaScript library
you're promoting.
[...]
Or are we waiting for the Open Source Fairy to leave one under our
pillow? That would be awesome!


It would be a nice surprise, indeed. But as that probably won't happen
for the time being I'll stick with my own code that evolved over the
years. But, again, if you're happy with that swollen package please
yourself. Just stop marketing here.

Marketing? Good developers tend to like sharing news of good tools with
others. Usenet is a good way for developers to learn about good tools.

First you would have to define "good". As we've seen in this discussion
your definition differs widely from mine. Then you would have to reason
way a certain tool is "good" in your opinion. What you've done so far
is to just claim it's "good" without giving any reasons apart from the
fact that you just like it. Even after being told that there a problems
you just dismiss them. That's not "sharing news" but propaganda or,
using a term you introduced yourself, the work of a marketer.

--
Matthias
/"\
\ / ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
X - AGAINST M$ ATTACHMENTS
/ \
 
K

Kenny

Matthias said:
First you would have to define "good". As we've seen in this discussion
your definition differs widely from mine. Then you would have to reason
way a certain tool is "good" in your opinion. What you've done so far
is to just claim it's "good" without giving any reasons apart from the
fact that you just like it.

Right, all I said was that after thirty years of software development it
was not hard to recognize good engineering. Well, not to worry, you'll
be seeing specifics from time to time.

But the whole is greater than the sum of the parts: real developers want
JS libraries that present a browser-independent platform with a rich set
of utilities and widgets so they can get on about their work. They do
not look for these libraries to be perfect, they look for them to have
active development and responsive maintainers and clean code in case
they themselves have to work around a library failing. That is what I
have found in qooxdoo so far, and what I have found is of such high
quality that I have some confidence there are no unpleasant surprises
awaiting me. Let's see what happens*.

cheers, ken

* Actually, what I really want to do is roll my own library with a
minimum of JS/HTML/CSS driven by Lisp. When I have a library with my
name on it, /then/ you will find out what marketing is. :) k
 
K

Kenny

Kenny said:
Right, all I said was that after thirty years of software development it
was not hard to recognize good engineering. Well, not to worry, you'll
be seeing specifics from time to time.

One reason I would not want to give up qooxdoo now is the insanely great
layout manager. The client was giving me hell for not utilizing all the
screen space hz and vertical -- I could have killed hours on that, QX
knocks that one over the fence, and with several schemes so it is hard
to have a problem they cannot express.

Meanwhile the client also wants grids to scroll in discrete column jumps
instead of showing half-columns. This is why real developers need big
frameworks -- clients want all this stuff. Once one gives them a
respectable Web app they want the whole nine yards. That is great! Just
don't tell me I have to do that in Web assembly language.

hth,kzo
 
W

William James

  function foo() {
    if (3 !== 3) {
      return false;
    }
  }

JavaScript isn't C.

function foo()
{ if (3 !== 3)
return false
}

--

"Errors like straws upon the surface flow;
He who would search for pearls must dive below."
"He draweth the thread of his verbosity finer
than the staple of his argument."
 
L

Lasse Reichstein Nielsen

William James said:
JavaScript isn't C.

function foo()
{ if (3 !== 3)
return false
}

And? I prefer, and use, the former bracketing style in Javascript as
well.

Not putting brackets around an if branch is a mistake waiting to happen,
and there is simply no reason to omit semicolons.

/L
 
E

Erwin Moller

Lasse Reichstein Nielsen schreef:
And? I prefer, and use, the former bracketing style in Javascript as
well.

Not putting brackets around an if branch is a mistake waiting to happen,
and there is simply no reason to omit semicolons.

/L

Excactly Lasse.
I totally dislike code written by people who dismiss brackets and
semicolons where they can.

clearity > briefness

Regards,
Erwin Moller

--
"There are two ways of constructing a software design: One way is to
make it so simple that there are obviously no deficiencies, and the
other way is to make it so complicated that there are no obvious
deficiencies. The first method is far more difficult."
-- C.A.R. Hoare
 
T

Thomas 'PointedEars' Lahn

William said:
JavaScript isn't C.

That code isn't necessarily JavaScript to begin with.
function foo()
{ if (3 !== 3)
return false
}

Your point being that writing illegible code hard to maintain is acceptable
because the language allows it?

Your signature is too long, and delimited wrong thanks to Google Groups.


PointedEars
 
D

David Mark

JavaScript isn't C.

function foo()
{ if (3 !== 3)
    return false

}

I don't care for that at all. But not returning a value is not always
a mistake. I wouldn't add "return null" to every one-off feature test
just to satisfy Firefox. The idea is to return a function or
undefined. So take most of those warnings with a grain of salt.

[snip]
 
D

David Mark

One reason I would not want to give up qooxdoo now is the insanely great
layout manager. The client was giving me hell for not utilizing all the

[snip]

What's a layout manager? Never needed one.

And the fact that you think it is "insanely great" is cause enough to
assume it is reasonably terrible.
 
D

David Mark

I won't use such a library because obviously its authors do _not_ care
for proper coding. Even if a more in depth inspection of all those
warnings would show that none of them turns out to be critical it still
wouldn't justify that they're there in the first place.

The presence of strict warnings, in and of itself, is meaningless. No
strict warnings on a large project would actually be a red flag (the
authors might be taking orders from the warning console.) Think about
each warning, just as you would with JSLint, as some may be irrelevant
in context (e.g. window considered an implied global in a script
designed exclusively for browsers.)

[snip]
 
K

Kenny

David said:
One reason I would not want to give up qooxdoo now is the insanely great
layout manager. The client was giving me hell for not utilizing all the


[snip]

What's a layout manager? Never needed one.

I guess that is why every GUI framework offers one. I have seen your
"layout", you might want to stick to browser edge cases for your posing.
And the fact that you think it is "insanely great" is cause enough to
assume it is reasonably terrible.

All I know about you is that you called me a liar and did not admit it
when you found out I was telling the truth, or you did not check the
easily checkable archives to find out you were wrong, which would be as bad.

You be quiet. I'll be peace.

kzo
 
M

Matthias Watermann

Right, all I said was that after thirty years of software development it
was not hard to recognize good engineering.

Again you're using "good" without definition. And although I started
programming in the late seventies of the last century obviously my
definition again differs from yours.
[...]
real developers want JS libraries that present a browser-independent
platform with a rich set of utilities and widgets so they can get on
about their work.

Well, "real developers" (whatever that may mean to you) would use
as little JavaScript as possible to allow for the greatest possible
user base :)

My point here is not to start a discussion about Pro&Cons of web
scripting but just to show that again you're using terms ("real
developers") without defining them. And by repeatedly doing so you
actually render your postings useless. You're just uttering opinions
but neither facts nor reasoning.

You say you're using the library in question because you like it and
apparently it does what you want it to do for you. That's perfectly OK
and understandable. However, your personal satisfaction doesn't make
that library "good" per se or recommendable for others. After all,
this is a public newsgroup but not your personal diary or blog. So,
please move your satisfaction to your diary or produce criterions for
judgement and facts if you're going to "sharing news" (as you put it)
in this newsgroup. Thank you.


--
Matthias
/"\
\ / ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
X - AGAINST M$ ATTACHMENTS
/ \
 
K

Kenny

Matthias said:
Well, "real developers" (whatever that may mean to you) would use
as little JavaScript as possible to allow for the greatest possible
user base :)

We almost agree, but HTML/CSS were never meant to give developers the
layout control and event streams of desktop apps and where we are going
is desktop apps on the Web, so... JS it is for now, and this is fine for
those of us developing Web apps not meant for the general public where
we can control the browser used.

As for the rest, don't be silly: every recommendation of technology is
subjective. Recommendations just lead people to things they check out
for themselves anyway.

What matters is hearing recommendations without axe-grinders trying to
shout down people and libelling them.

Now did you want to talk about JS?

cheers, kenny
 
D

David Mark

We almost agree, but HTML/CSS were never meant to give developers the
layout control and event streams of desktop apps and where we are going
is desktop apps on the Web, so... JS it is for now, and this is fine for
those of us developing Web apps not meant for the general public where
we can control the browser used.

You are lost (as usual.) Everything you are doing is HTML/CSS/JS.
That includes the "layout control" and "event streams." You just have
no idea how to do any of it, so you are fumbling around with
frameworks. And, as is typical of aspiring "Ajax developers", you
have some harebrained misconception that the only people who do know
what they are doing are those who publish frameworks (of course, the
opposite is true.)
As for the rest, don't be silly: every recommendation of technology is
subjective. Recommendations just lead people to things they check out
for themselves anyway.

But you aren't qualified to recommend anything in this area.

[snip]
 
K

Kenny

David said:
You are lost (as usual.) Everything you are doing is HTML/CSS/JS.
That includes the "layout control" and "event streams."

Of course, and every Lisp form I write is machine code (yes, I use a
compiled Lisp).

You just have
no idea how to do any of it, so you are fumbling around with
frameworks.

I have actually created not one but two frameworks, thank you very much,
and am hoping not to do it again because I /really/ need to ship an
application for once in my life.

But there is a good chance I will take my Lisp/Tcl/Tk/OpenGL framework
and just replace the last three stones in that path with your JS code,
so be careful what you wish for, I might be your heaviest user in a
month. ("He isn't gone. He's never gone!")
And, as is typical of aspiring "Ajax developers", you
have some harebrained misconception that the only people who do know
what they are doing are those who publish frameworks (of course, the
opposite is true.)




But you aren't qualified to recommend anything in this area.

Well having written more frameworks than I have ever had to learn, um,
wrong. I know exactly what I am looking for.

peace, k
 
D

David Mark

Of course, and every Lisp form I write is machine code (yes, I use a
compiled Lisp).

Everything you are doing on the *client side*. We aren't talking
about LISP here (thank God.)
I have actually created not one but two frameworks, thank you very much,

Yeah, sure. Nearly one is more likely.
and am hoping not to do it again because I /really/ need to ship an
application for once in my life.

What is this, your confession?
But there is a good chance I will take my Lisp/Tcl/Tk/OpenGL framework
God.

and just replace the last three stones in that path with your JS code,
Mine?!

so be careful what you wish for, I might be your heaviest user in a

It wasn't on my list.
month. ("He isn't gone. He's never gone!")

Oh ****.
Well having written more frameworks than I have ever had to learn, um,
wrong. I know exactly what I am looking for.

Glad you finally found those links you were looking for.

[snip]
 
K

Kenny

You have not yet seen a single web development project through to
delivery,

No, but the project is under pressure and I have delivered demos on
24-hours notice that were huge successes so...I'd say I delivered.
have not experienced the maintenance of the one project you
have started, and certainly have no basis for comparisons between what
you are doing and any alternative approaches.

Well I did almost die going thru four frameworks in succession so I
kinda do know what the alternatives are. I will blog on that experience
shortly.
It is interesting (and
perhaps informative) that you either do not perceive that as relevant or
do not see that at all.

haha, you guys keep trotting out Kenny the Irresponsible, I guess it
makes you feel better since you have no answer on the merits. So are we
done with calling me a liar at least? <sigh>

I do not think qooxdoo is perfect, I think it is the most viable tool
for web2 application development. It is also open source and I spend a
lot of time in there when the copious documentation does not answer my
questions (documentation has a Heisenberg Uncertainty quality, I
believe... it will be there unless I look for it), so it does not have
to be perfect, it has to be well-engineered so I can follow it. It is.
In fact, I am regularly sending them an update of an improved glue js
mdoule between a datagrid and the server, I do not think they have one
better.

You guys should get involved, you could stop obsessing over browser
idiosyncracies and build some web apps for a change like the big boys.
Then again, you may be getting yourself into a
position where you will be the person who will be being asked to do the
maintenance work, and well paid for doing it.

Well, that would be nice, but no matter how much wailing and gnashing of
the teeth there is when I leave enterprise applications behind my
successors seem never to have any questions. The things just go into
production and run forever and I do not make another dime.

The problem is that I do not like fighting crappy code so any time my
code confuses me I refactor and simplify. And apparently I am easily
confused, because even the stuff I think no one will get working (my
open source stuff) people get working.

Aren't I just wonderful?

<sigh>

What makes you people so miserable and unhappy? Are you Patriots fans?
From that point of view
high maintenance costs are a good thing as they represent ongoing
employment and income, just not such a good thing for the client.
Still, the client probably will not have the basis for comparison
either, so will probably swallow whatever they are billed.

Actually I am working three hours for every hour I get paid to make up
for my web inexperience. We agreed to 2-1 but it is taking 3. I do not
mind, I would like to learn this stuff.

In the end I think qooxdoo is great for enterprises, until I do /my/
Lisp framework which will be built on Mark's code. MWUAHAHAHAHAHHA!

p,k
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top