

If PG and YC are such awesome hackers, why does news.yc use spacer GIFs? - henning

Spacer gifs are present on paulgraham.com as well. C'mon mang, it's 2007, not 1997. CSS and semantic markup are the way to go.
======
rwalker
One of the speakers at our YC session had a great quote: "It just doesn't
matter." The site delivers interesting stories and commentary on a topic I
care about - who cares what HTML it uses?

~~~
paul
Exactly. Spacer gifs may be lame, but I don't think that they have held back
the site much, so no need to worry.

I think it's a kind of religious thing, and having successful sites around
that don't follow the rules threatens their religion.
[http://paulbuchheit.blogspot.com/2007/06/dogmatic-
programmer...](http://paulbuchheit.blogspot.com/2007/06/dogmatic-programmer-
when-software.html)

------
pg
Because we're smart enough to realize that html is object code?

For all I know, my macroexpansions are ugly too. The whole point is that I
don't have to look at them.

~~~
randallsquared
HTML is object code only because you don't have a dedicated designer who wants
to make design decisions and changes without requiring the programmer's time.
For news.yc that's fine, but for many business sites, having HTML
automatically generated in a designer-opaque manner is inconvenient.
Eventually you want to hand off the design to someone who is good at design,
and having to find someone good at design and good at the programming language
you use limits the pool of designers.

The usual alternative to html-as-object-code is to use a template system, but
template systems seem to move as a group (and individually during development)
toward being a way to write your usual language, but surrounded by HTML, which
has the same problems I outline above, since the designer still has to mess
with what's really application code. I suppose this is because template
systems are usually designed by programmers, for programmers.

~~~
thomasptacek
I think you missed the part where he doesn't give a shit.

~~~
randallsquared
You may notice if you look around that much of the time when someone replies
to someone else (in any context, not specifically news.yc) they are saying
something they wanted to say or like saying, rather than expecting to change
someone's mind.

In fact, there are many, many exceptions to my general rule that you'd want to
eventually turn over HTML/CSS/design stuff to a designer, and news.yc is one,
probably. But the vast majority of _my_ projects are no exception, and I'm
fortunate to be married to a designer with strong opinions on the matter, so I
get good feedback. :)

------
henning
Furthermore, links which appear to perform non-idempotent actions (voting)
which are sent as GET requests seem kind of sketchy.

Ever hear the horror story about what happens when Google rolls through your
CMS that has the "delete" button as a link?

~~~
dfranke
Voting and deletion are both idempotent, they just aren't side-effect free.
The weaker condition of idempotence is all you need for GET, because it's
sufficient for guaranteeing that caching won't break things. The solution to
the problem with Google is to not let anonymous users delete pages
irrevocably.

~~~
ratsbane
That's a good distinction. I had to look up the HTTP 1.1 RFC, 2616 and read
section 9.1.1 "Safe Methods" to note that while what you're saying is correct,
the RFC does strongly discourage... well, here:

In particular, the convention has been established that the GET and HEAD
methods SHOULD NOT have the significance of taking an action other than
retrieval. These methods ought to be considered "safe". This allows user
agents to represent other methods, such as POST, PUT and DELETE, in a special
way, so that the user is made aware of the fact that a possibly unsafe action
is being requested.

Naturally, it is not possible to ensure that the server does not generate
side-effects as a result of performing a GET request; in fact, some dynamic
resources consider that a feature. The important distinction here is that the
user did not request the side-effects, so therefore cannot be held accountable
for them.

------
portLAN
CSS is ugly. For anyone who's used it throughout the years, it was
consistently poorly-documented and incompatible across different browsers.
Standards compliance? What's that?

A lot of deprecated methods are still used because they work reliably, whereas
the replacement often didn't, until much, much later. People remember the pain
and bugginess and so you lose the early adopters even if the problems
eventually get fixed. Cf. Apple III, g++, MySQL.

~~~
zaidf
I agree. I cannot stand CSS fanboys one bit.

CSS is awesome for many things--but blindly using it everywhere isn't a smart
choice.

~~~
steve
Css is hell with shiny gradients.

------
kcl
Validating XHTML Strict does not increase your valuation.

------
orionlogic
It's hard to comment in this one i think. Yes, it's lame to use spacer GIFs as
a design standpoint, with all web community try to separate meaningless
technique's (tables, spacers,&nbsp; etc...) from documents.

However for this web site, Yes it just doesn't matter.The functionality become
more important.There is news link and comment section with a clean interface.
Not much black ink.

If you are in this situation, it doesn't matter but with your new startup's i
think its better stick with the notion of separating mark-up with design.

I can't keep silent to those anti-css comments but don't know where to
start...i think web started as a way of exchanging "documents" between
computers. So in basic terms what you see in your screen is "a document" so it
should be seen as " a document". without css in html code what you see
is...well some kind of hectic ASCII art.

"It is a valuable thing if your page seen as a document"

i sometimes think that, under the supervision of PG, a small design team
(designer, info. arch. & UI person) "may" help founded startups to achieve
better in their goals.

------
dcurtis
While we're on the issue of the news.yc user interface, here's something that
pisses me off every time I view comments: the comment author's name is buried
in a sentence-long thing of text, and hard to pick out. Make it more
noticeable, please.

Paul basically said he doesn't give a shit, which is pretty stupid considering
how many people visit the site regularly, and how poor the user interface is.
Just because spacer gifs don't directly affect the content, those kinds of
poor design techniques influence the user interface and make it crappy, which
it has become. Paul, you know good designers-- get them to make it look good.

------
falsestprophet
Thank you for bringing the fact that Paul Graham's unreleased programming
language does not yet have a mature web development framework to our
attention.

------
pg
Slow news day.

~~~
projectileboy
No shit... I deal with programmers like this on a daily basis. These
discussions are always kicked off in the name of "good design", or some such,
but the view from where I'm sitting is that of a bunch o' corporate IT geeks
that like nothing better than burning big piles of cash while providing little
to no value.

------
byrneseyeview
I've wondered about that, too. One guess: it makes the design harder to steal
(but not harder to copy). With CSS, you can just reuse someone else's format
-- not so with spacer .gifs.

~~~
rrival
Security through... obsolescence? =)

~~~
SwellJoe
The last time pg had to do design work or perish (figuratively speaking) was
ten years ago. It'll take him a while to get up to speed on all this new-
fangled technology.

Besides, it works in all browsers, is reasonably accessible, and if it doesn't
make him uncomfortable to work with it...why does anyone care?

~~~
jkush
I think there's some fairly clever stuff going on. The page source is pretty
simple (yes, I'm sure we've ALL looked at it at one point). Take this function
for instance:

function byId(id) { return document.getElementById(id); }

My guess is that the function body is rendered differently for different
browsers. If that's true, it's a clever way of doing cross browser Javascript.

~~~
nostrademons
document.getElementById is generally pretty portable across browsers.

And another clever way of doing cross-browser JavaScript is just to use a
mature JS library like Prototype or JQuery. They all give you byId for free,
in the form of the $ function.

~~~
jkush
I'm with you there - prototype is first class stuff. I wasn't sure if
getElementById was supported by Opera or Safari. If it is, it looks like
byId() is good way to save some typing.

