5 ms·
Yeah, the haphazard/inconsistent nature of HTML/CSS/Javascript is the flip side of the "open standard" coin. I always tell students "a perfectly architected sys
by jordanlev 11y ago
Yeah, the haphazard/inconsistent nature of HTML/CSS/Javascript is the flip side of the "open standard" coin. I always tell students "a perfectly architected system would mean it's controlled by one company, and you'd need their permission and/or have to pay money to build those apps/sites" (then I talk about the negatives of the app store review process to demonstrate the point).
Which of course doesn't mean we shouldn't be trying to improve them... just something I remind myself whenever I start to get angry about all the annoying things that need to be thought about when writing HTML/CSS/JS.
- tejaswiy 11y agoGotta disagree - Unix etc. are open, built by consensus, and have very good APIs. HTML / CSS for some reason is a clusterfuck.
- toyg 11y agoUnix was also extremely inconsistent, before the Linux monoculture became dominant. It can still be painful to support BSDs, HPUX, Solaris etc.
- SixSigma 11y agoIt's almost like the competing browser vendors didn't want the spec to work !
- pcwalton 11y ago> Gotta disagree - Unix etc. are open, built by consensus, and have very good APIs. No, those APIs are not good (or, at least, not obviously better). The POSIX API has just as many ugly corners as the Web APIs do. Look at SysV shm, flock vs fcntl locking, ioctl, cmsg, etc. And that's not even getting into the horrors of Xlib…
- RyanZAG 11y agoArchitected system designed by one company isn't a silver bullet. Win32 or COM APIs? Even modern iOS has stuff like Core Data which is an incredible pain to work with. Don't think anybody needs to even get started on some of the APIs lurking in Android... There's good and bad APIs from both open standards and closed ones.
- catshirt 11y agojordanlev said "a perfectly architected system would mean it's controlled by one company" not "every system controlled by one company is perfectly architected" to counter, you'd need to find an example of a perfectly architected system developed as an open standard by multiple companies
- AnimalMuppet 11y agoHeh. Start by finding a perfectly architected system. Oh, there aren't any? Then jordanlev's idea of the only possible way to create one is, shall we say, purely hypothetical.
- catshirt 11y agoyou're being unnecessarily literal- we can use variable values for "perfect", most of which are clearly better than the system explained in the article. but, if we must be so literal, i'd say you're not using your imagination. you think a literally perfect architecture is impossible? some systems are very small, you know. that all said- they never even concretely suggested one existed in the first place. you could infer a hypothetical from their post.
- AnimalMuppet 11y agoI don't think that helps. I think that, if you use variable values for "perfect", and you turn the value down to the point where you start getting systems (more than one) that are considered perfect, then by that time you get some that come from corporations, and some that don't. I think jordanlev is committing the opposite fallacy of the one RyanZAG made. RyanZAG said "companies have produced badly-architected dreck", which is true but doesn't disprove jordanlev's point. But jordanlev looks at web standards and says "open standards can only produce dreck", which is also logically wrong. As a minimum level of validation for jordanlev's position, I'd like to see someone name the systems that corporations have produced that are above the standard of perfection that has ever been achieved by open standards.
- ebbv 11y agoI disagree with your premise that one company being in charge of something makes it more internally consistent. You might have consistent implementation if one company does the only implementation of a standard, but the standard itself may still be completely riddled with inconsistencies. See: any product of sufficient complexity.
- dragonwriter 11y ago> I always tell students "a perfectly architected system would mean it's controlled by one company, and you'd need their permission and/or have to pay money to build those apps/sites" I think that's a mistake. While open standards create forces which tend to produce certain architectural misfeatures, being a controlled tool for a single company does to. Its just a different set of forces working against ideal architecture between the two cases. Though, while different, overlapping. And, in the case of <input> and other web standards, the big problem is also common in single-source systems: compatibility (e.g., backward compatibility with previous systems that aren't perfectly architected for the current use case, for whatever reason -- with an open spec system that may because someone just went off spec and got popular anyway, with a closed system it might be with an older system with a different purpose that ended up being popular in the domain for which the new one is designed.)
- jordanlev 11y agoYeah, I see your point (and the other replies to my comment). I certainly don't mean it as a guiding principle on how they should build software, but rather as a way to get them to think about trade-offs and realize that nothing in the real world is perfect. (These students are often fresh out of high school and still in the mindset of "the world doesn't make sense but surely that's just because I'm young, and these older people must know what they're all doing" :)