4 ms·
Ask HN: Why is HN based on tables?
From my point of view, it's paradox that a website like HN is so outdated (HTML-tables, inline-styling, non-responsive) while hundreds of people post interesting state-of-the-art stuff here... Is it because of the KISS-concept? Or does nobody dare to update the source code?
- tokenadult 14y agoA good functional programmer should be able to update inline styling and replace it with an external style sheet, although there is still the issue of whether anyone who has authority to change the code base actually thinks that is worth the trouble.
- blubbi2 14y agoThis leads us to the question why HN is written in Arc. The first version of reddit has been written in Lisp, but later on they realized that Python is much easier to maintain, because there are simply more Python-programmers than Lisp-geeks. HN in some way tries to emulate the early days of reddit, but now it's time to follow reddit's example and rewrite HN in a more common language.
- pavelludiq 14y agoThey actually rewrote it in python because in 2003 open source implementations were of much lesser quality, also, hunchentoot didn't exist, and neither did the modern lisp frameworks like caveman/clack or restas. CCL and SBCL are way better than CMUCL and clisp, which is what I believe they used(CMUCL is barely used these days, and clisp has a bunch of rough edges and being byte compiled is slow, unlike ccl and sbcl which are pretty fast). These problems are no longer valid, and if reddit were to be written today, it would be less likely to be rewritten in python. Lisp has gone a very long way in the last 10 years. Using common lisp and restas + Postmodern(for postgreSQL access) today is actually a better choice than using something like flask or sinatra. And since i dislike full stack frameworks, my personal opinion is that it's better than django or rails too, for a small team of good hackers.
- zck 14y ago>HN in some way tries to emulate the early days of reddit, but now it's time to follow reddit's example and rewrite HN in a more common language. Why? HN isn't a startup needing to hire a bunch of people to hack on the codebase; it's a site written by Lisp experts -- in their spare time -- with, I believe, one programmer paid to hack on it. It's open-sourced in dumps, and they don't seem too interested in working with other people on it (I sent in a small patch to add quotation support to HN, and didn't hear back), as it seems to satisfy their needs. What's the benefit of rewriting?
- RodgerTheGreat 14y agoPerhaps the value of websites is unrelated to whatever cargo-culting nonsense constitutes good web design at the moment. HN is functional. You don't maintain it. Who cares if it uses tables?
- xauronx 14y agoThere's always at least one person who responds in this kind of aggressive tone. I don't think the question is about good web design, but about good data structure, doing things in a maintainable way. It's like "Why don't you comment your code?" "Perhaps the value of my code is unrelated to whatever [blah blah] nonsense constitutes good programming practice? My code is functional. You don't maintain it. Who care's if there are comments?"
- Ziomislaw 14y agoHow do you know it is unmaintainable? Have you seen the code?
- xauronx 14y agoI wasn't specifically saying the code itself wasn't maintainable. However, I wrote a scraper for HN and the structure isn't really there. Granted, no one designs a website to be scraped. It's the kind of "well, let's use a table for everything" that people use for their first web application because they don't know how to use CSS. I'm not one to complain about it, I like HN and yes it does the job, but to get aggressive with someone when they point out a problem... Not really productive.
- jhowell 14y agoI agree with this statement. I've never understoodwhy people here at HN express frustration with Craigslist's Web 1.0 design, but not HN.
- ScottWhigham 14y agoIt's worthwhile to ask questions like this from time to time, and it's one of the values "new blood" brings to any community (asking the same questions but a year or so later since the last person). In this case, OP, you've "mixed metaphors" so to speak - your title is about tables, but then you mix in inline-styles and non-responsive which open the possibilities of the answers quite a bit. I think your question can be broken into two parts: (1) the design of HN, and (2) the tech parts. 1) Over the years, people have posted many suggested HN redesigns. Inevitably, they've made much more whitespace - making it more like {reddit | digg | etc} - and people always are polarizing in their comments ("Hate it - how can I function with this many scrolls?!?!" or "Love it - HN looks like crap currently!"). I suspect the "Love the current design" crowd is/has been in the majority or perhaps pg himself is in that group - either way, I've yet to see a redesign post that a large group of the community embraced. The end result: the majority of people seem like the way it is now so nothing has changed. 2) For the tech aspect, I have to ask whether you see "HTML-tables, inline-styling" as perhaps the reasons behind the "non-responsive"? Do you propose that moving to a CSS-based grid system with external stylesheets would make the system so much more responsive that we wouldn't have trouble? That's not necessarily the correlation you've drawn in the OP but it is possible that you think these are the reasons, I suppose (or contributing factors). pg/admins have talked about the server before (and it's recently been upgraded/replaced). They've also talked about the DDOS attacks they have been under as well (I think they are on Cloudflare now to help mitigate this). In the end, it's a single server managing a large community. Inevitably there will be problems when you mix those two.
- bdfh42 14y agoI think the question misunderstands the nature of the task. The HN page is a list with each list entry having a similar structure being made up on a number of components (like an up vote facility). the HTML table seems to fit the requirement perfectly. As to "in line" styles and JavaScript - this approach would seem to me to be very well suited to the task of generating the individual components that collectively construct the list of entries. A small snippet of code can be used to generate each component. Maintenance is a breeze - adjustments need only be made in one place in the code base. So all in all, what we see is a simple solution to a straightforward task.
- Maarius 14y agoWhy not use something like Stylebot (http://bit.ly/13qEfhm http://bit.ly/13qEfhm), then you can just apply your own style. This is what my HN looks like: http://imgur.com/LDMWgMd http://imgur.com/LDMWgMd
- myfonj 14y agoI cannot express how much I adore Georgify Dark (Hacker News) userstyle [1]. And it is quite amusing to see how many other userstyles exist for this site [2]. BTW, There was "Show HN: HackerNews reimagined without tables or center elements." [3] with relevant discussion. [1] http://userstyles.org/styles/71155/georgify-dark-hacker-news http://userstyles.org/styles/71155/georgify-dark-hacker-news [2] http://userstyles.org/styles/browse/ycombinator?as=1&per_page=50 http://userstyles.org/styles/browse/ycombinator?as=1&per... [3] https://news.ycombinator.com/item?id=4376184 https://news.ycombinator.com/item?id=4376184
- DanBC 14y agoThis has been discussed before, and there's useful comments in the old threads, so it's worth searching to find them. There are a bunch of HN redesign attempts. Some of them are reasonably nice. They all seem to have the same problems - less information is presented. There are a whole slew of plugins, extensions, user scripts, user styles, alternative websites, etc etc, that add or change functionality for HN. (I'm making a list for a tiny website which I might put up one day. It's tricky curating everything.) So people can tweak HN to be pretty much how they like. I'd really like bigger buttons, or more spacing on the up / down vote arrows, to prevent fat-finger-voting errors. Once you start tweaking HN it's hard to know when to stop. Remove the tables; use semantic markup. But then should you add comment-tree-collapsing?
- meerita 14y agoHN HTML code is just… creepy. FONT element everywhere, tables, etc. I think my phone would love to save something and profit the responsiveness of the HTML5 and CSS work. And why not my 3G connection, or my laptop. Why should I waste resources when this can be done well.