Javascript secrets of Bret Victor's homepage
arcfn.com
arcfn.com
This harks back to those showoff pages at the dawn of the Web, which showed surfers things that surprised and intrigued, and did it without adhering to common design conventions. The sort of page that you raised your eyebrows at and bookmarked right away, because that sure was some genius and artistry behind it there. It's nice to come across these things, especially today when mostly everyone uses major platforms, templates, plugins, and conventions.
That aside, Bret Victor is a genius and I love most of is work. He's a great inspiration to me, and should be to anyone involved in any form of software development.
Again this reminds me of the Flash days, where people were doing things because they could rather than because they should. CSS text rotation is a great example of this.
Still I think sites like this are a great playground, and show what can be done.
The irony is this site would have been smoother using flash. On my mack , this webiste is pretty slow and hard to use.
I'm just going to assume he designed it for a different system that doesn't have these problems. On my end (Opera/Win7), it really does not show "what can be done" :)
What I mean is there's a difference between coding a site that has so much eyecandy the designer wrecks usability (which happened in the old Flash days) and coding a showcase site that looks fine (but flashy and perhaps not entirely intuitive) on some systems, but it a real pain on others. The latter didn't happen nearly as much for Flash because the plugin's the same everywhere, but I think it's more excusable than the former for a showcase website like this (even though it's too bad I can't enjoy the demo--at all).
I fear disable JS will be the new flash blocker :/
I think you should never hijack the default scrollbars of a browser... But a lot of Google products are doing it also so I guess it's a trend now...
I can't see a single thing that has its function derived from a real-life object. Maybe I didn't dig deep enough this time, but why not just call it bloat? (Which I think it is - even though it's really butter smooth on Safari)
Most "3D hacker interfaces" in Hollywood movies aren't skeuomorphic, yet they blink and rotate and blur and zoom all the time. Same for many Asian TV channels. In what way is worrydream.com bad that doesn't apply to these elements, and why is it caused by textures from real life? Aren't they just all confusing because they are doing too much at once?
> Special support for Ajax URLs
being raised as an industry standard and a best practice, whereas it's a Google hack of a solution.
HTML5 history.pushState[0] is the proper standard solution, with a nice polyfill[1]
[0]: https://developer.mozilla.org/en-US/docs/DOM/Manipulating_th...
And clearly it is (slow).
The WOW factor ? been doing all these kind of stuff for 10 years so it's long gone...
the fact that it is done with javascript ?dont care, still did it 10 years ago , faster ,smoother and it worked in IE6... and i'm pretty sure most of that site dont work in non webkit browsers... so much for "run everywhere"
My point is , dont do demo stuff if the tech behind it is under performing. Because you are "damaging" the tech and well as your work. There are better exemples out there of all these HTML/JS stuffs.
Don't even look at the effects, don't think about how it looks, it's irrelevant.
No, it's not. On the contrary, it's not only relevant, it's the central issue. Otherwise he wouldn't have made the site look like that.
I find your complaints - without these snippets and rationale - annoying and missing the point.
The site is awfully slow to scroll on my machine. I can't use the keyboard to scroll it, either. Right clicking on one of those icon thingies behaves the same as left clicking, which surprised the heck out of me. So did the fact that you can scroll the site by dragging the background, with left or right click; you can imagine what that did for my mouse gestures.
If you think I have to present snippets of code to validate these complaints, then you're the one missing the point.
Just in case: the point is that while the site is behaves like a nifty tablet app, it breaks both the widespread expectations of how to interact with a web site and several significant interaction mechanisms that a lot of people rely on. To distill the point even further, it would be a pretty nice mobile app, but as a site it's about as nice as using blink and marquee tags was back in the day.
Ok, I'm sorry, I presented my point of view and shouldn't have expected others to think the same.
As for me, I'm not exactly touched by visuals. My ideal UI and UX is CLI and this has not changed for over twenty years now. Anything more than this is an annoyance for me and I would probably consider much of really good designs as ugly overkill. Probably, because I have no way to say which design is good and which is not, I lack the skill to care.
However, I'm a programmer. I'm easily excited by what someone coded, especially if this something reaches the limits of technology. I am a kind of guy that's going to be amazed with a simple, bug ridden, slow and visually ugly proof-of-concept, just because it's cleverly coded.
I didn't had the time to read through the source yet. I don't know if it's enough to make me smile. Maybe it's not, maybe it is. And that's the point: I'm a programmer. Not a business person. I don't care about a product. I don't care about UX. I'm in love with code, and that's why I still work as a programmer, am not burnt out and not going to go into management.
If Bret was product-centric he'd use Flash to do this. It would be faster, both in development and execution times. It would be cross-platform, at least as much as Flash itself is. It would be prettier and much more usable. It would take fraction of work that went into coding this in JavaScript.
Maybe I'm misunderstanding him, but the fact that he did this in JavaScript suggests, for me, that he didn't treat it as a "product", that needs to be "shipped". I think he took a journey into unknown, beyond the limits of current JavaScript technology, and documented this journey in the form of code. That's why I'm going to read his notes, his code, and learn from him. Because I'm a programmer, because what I care about is code.
You are entitled to be primarily concerned with how usable the site is. When I said that you're missing the point, I thought that maybe - maybe - Bret didn't even think about usability of this particular site, maybe he wanted to show programmers that coding something like this is possible. Maybe I'm wrong, this is pure speculation - Bret himself should say what he intended.
That doesn't mean I expect everything to be a "product". If you tell me, "Hey, look at this clever concept/technique/trick/idea/spike/prototype that I cobbled together", I'm not going to tell you "Damn, why is it so ugly/slow/buggy" (unless the idea was specifically to be pretty/fast/bug-free).
You and I basically disagree about the assumed purpose of Bret's site. If his site were a game, then I would be the dude who's disappointed because it's Quake III and not Dragon Age ;)
PS: Caring about "product" and UX doesn't mean you'll get burned out or go into management ;) I know you weren't generalizing, but talking about your specific case instead, but I just wanted to mention that caring about code and caring about users are things that don't work against each other.
Fair enough :) I think we should wait for Bret's comment on this, only he will be able to tell us what he really intended to achieve with his site.
> Caring about "product" and UX doesn't mean you'll get burned out or go into management ;) I know you weren't generalizing,
I wasn't generalizing, but I certainly was exaggerating... a bit. Sure I like my code to be used, and that it feels nice to have users that are happy to work with something I created. It's just that my focus is primarily in code and I feel a bit frustrated here, because it seems like I'm in minority. There are many people here commenting on cool, clever, technical hacks, but I feel that there is more of those who only `itertools.cycle(["product", "business value", "product", "customers", "product", "shipping", "product"])`... I don't think it's wrong, just that I don't feel that way and would like to be recognized as someone of value (not necessarily business value) too :)
Works fine in Chrome although it doesn't scroll properly on a trackpad.
The only way to move the least common denominator forward (aka. progress) is to have people pushing the tech to the limits.
On the other hand, when you're building a personal site you can do whatever you want, especially if you want to make a statement, and especially if you are specialized in information and interaction design. You push the status quo and lead by example.
The web is not a static organism. It needs to evolve, it needs to be pushed to it's limits and beyond. If you don't want to innovate (in this particular area), than by all means stay with least common denominator. But don't stop those who want.