Contrib to old topics - why isn't Rev more popular?
Richard Gaskin
ambassador at fourthworld.com
Mon Feb 13 17:32:14 EST 2006
Garrett Hylltun wrote:
> On Feb 13, 2006, at 12:49 PM, Richard Gaskin wrote:
>> It's a question of productivity, of the tradeoffs between hand-coded
>> tight HTML vs. rapid development. And most of the code is the same,
>> whether generated by hand or by machine. "<p>" is "<p>" whether typed
>> by hand or generated.
>
> I have to disagree. Just about all WYSIWYG html editors are prone to
> code trashing and adding unnecessary code. Download any of those
> editors and create a page with them, and of course create the same page
> by hand code. Then compare them in code and file size. You'll see what
> I mean.
Of course hand-edited code will usually be tighter. The question is
whether the greater time required to hand-write the code is really worth
a difference that is often marginal if both methods are done well.
Code generators often rely on generalization, and generalization done
well will mean more error-checking, which of course means more code.
But generalization is not always a bad thing, and is often a very useful
thing.
When you break out a block of inline Transcript statements into a
reusable handler, much as the JS libs in DW or GL do for their code, you
introduce a modest performance loss in the lookup for that handler as
well as the need to error-check params.
But over the course of the project is the time saved during development
and maintenance worth the performance hit? The literature on design
patterns suggests it often is.
Of course the performance hit with JavaScript will be far greater than
with nearly any other scripting language, since it's a half-baked
language encumbered with semi-typed data and a structure based on
compiler design and not optimized for interpretation. But still, with
slow machines running at 1GHz today, the worst offending sites with load
times are more a function of the design than the underlying code.
> Many will use different code, or even MS specific only codes.
Using MS-specific code isn't a problem with generation tools as a whole,
it simply means that the specific tool in question was created either by
idiots or people with a vested interest in Micro$oft's vain attempt to
control the Internet.
Good tools reinforce the central premise of the web, that it's
platform-independent. Intranets not withstanding, any deviance from
that is simply poor design, whether by hand or by machine. I've seen a
good many hand-coded pages that pretend the world is run by Microsoft,
more so than the platform-independent code generated by DW and GL.
To my knowledge only Microsoft tools attempt to trick the unwitting
developer into believing that Microsoft-specific code is anything less
than a stupid thing to force onto one's visitors, ever more so as
Internet Exploder's marketshare continues to decline in favor or more
standards-compliant alternatives like Firefox.
> Or do something like "<div span>" instead of "<p>" or even several
> "<br>" tags instead. Many will inject css when it's not even needed,
> just adding more the bulk of the code it will produce.
If you haven't played with the latest versions of these tools, in the
hands of an experienced developer you might be surprised to see some of
the good work that can be done with them.
Sure, I still consider it essential to know HTML and be prepared to
tweak generated code as needed; UI gestures simply don't lend themselves
to the full range of decisions one can make with HTML.
But by and large, by the time one adds the necessary browser-checking
code needed for good rendering across all browsers and platforms, the
net difference in code is more a question of style than size. If it
isn't, in some cases it may simply mean the hand-written code isn't as
thorough as the generated code designed by teams of some of the most
experienced engineers at Adobe and Macromedia.
>> One could argue that all C++ introduced over C was the insertion of
>> orders of magnitude more JSR statements into the object code. But of
>> course that's only one view, a view that overlooks the productivity
>> benefits of OOP. One could make a similar comparison of C vs.
>> Assembler, or to bring it back home, of Transcript vs. any lower level
>> alternative.
>
> Comparing hand coded html to the use of a WYSIWYG editor with C++ and C
> doesn't even equate.
True in the purest sense; as Aristotle said, ultimately every metaphor
breaks down because it's an approximation of what's being discussed and
not the thing itself.
But in spite of the comparative impurity, C++ does introduce a
tremendous number of JSRs into one's object code, with the result that
equivalent functionality implemented in straight C will often be faster
and have a smaller file size.
Users often bemoan that apps are bloated today over what was being
turned out 20 years ago, but that misses the bigger point: features.
It would be a special form of hell on earth to try to implement modern
application architectures in straight C, and prohibitively expensive in
Assembler. Multi-level Undo as part of Apple's Core Data, for example,
comes with relative ease for Objective C developers, but I know of few
C-based apps that dared to attempt it profitably, and certainly no one
insane enough to try implementing that in Assembler.
Similarly, one can indeed hand-type the JavaScript needed for modern
menu systems, but why? Code generators do this well, typo-free, and in
a fraction of a second.
Most modern HTML generators have options to optimize the output HTML
when uploading. I wrote one in Transcript some time ago as an exercise,
and even my modest two-hour hack produced leaner pages than most sane
people would dare write by hand. The output loaded and rendered more
quickly than the original, but was of course almost unreadable for humans.
In short, I believe that the differences between hand-typed code and
machine generated code are minor compared to the productivity benefits.
With lean output options, perhaps the biggest difference to the viewer
is that the machine-assisted pages often include features that the
hand-typer is still typing.
My personal feeling is to let machines do any work they profitably can,
freeing up human resources for where uniquely human ingenuity is more
critically needed.
> And just to note, Rev is not a VPL, nor are language such as VB or any
> other MS language available. There are very very few VPL's around, and
> the M:Poster I mention is long since gone from the net.
I haven't seen anyone here claim that Rev was a VPL, but it does raise
the interesting question of whether it would be fun to make one in Rev,
and whether the output could be efficient enough to make it worthwhile.
Given Rev's overall speed and the flexibility of Transcript, I'd bet
it could be quite doable.
--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
More information about the use-livecode
mailing list