Hacker News new | comments | show | ask | jobs | submit login
EveryJS: The Right Tool for the Right Job (everyjs.com)
118 points by bradly 2394 days ago | hide | past | web | favorite | 40 comments

Why are you using sproutcore for a static plain ol html page? There is no need to use much js on such a page, is there? And then you are ending up breaking the page on old browsers. Whats the point? Are you using the right tools for the right job?

A very valid question. :)

First, I wanted to test drive SproutCore 2.0. It's always good for framework developers to be app developers themselves; and just from the feedback and collaboration today I've fixed several bugs in SproutCore. So, that's a net positive, even though I'm sorry there was temporary frustration while we got to it, and it didn't help that I was in a plane for part of the day.

The second reason is that this is just the start. I plan to add many more browsing and filtering capabilities over the next few weeks and months. I hope this can be a good demo for how to build data-driven applications in SproutCore.

Well said. Looking forward to the page developing further. Would be cool to be able to search the list etc.

Thanks for the page though, it is very clear and tells me how much I have been missing on whats been happening in the 'js scene'

"Just 2k", "Just 3k"... Then "Just 295k" seems rather out of place. Maybe selectively replace "Just" with a different word here?

Error: Object.create is not a function

Source File: http://www.everyjs.com/js/libs/sproutcore-2.0.a.2.min.js

Line: 9

(Page doesn't list anything for me. Firefox 3.6.15/Mac.)

Good catch! There was a bug in the SproutCore 2.0 developer preview where Object.create was being invoked on platforms where it isn't available. I've put up a new version of SC that fixes this.

Please let me know if you're still having problems. Sorry for any inconvenience.

Works great now, thanks. :-)

You need to upgrade to FF4. (Presumably as SproutCore 2 gets closer to release, it will get better error handling. But the old Firefox is the reason is won't render.)

No, I really don't need to.

3.6 barely runs on my machine as it is; a number of clients are asking me to downgrade them from 4 to 3.6 because of stupid issues like not saving your tabs by default when you close the browser. I have about thirty tabs open in my browser right now, and the last time I upgraded Firefox, it didn't bother to save any of them the next it launched.

I just can't be arsed to go to that much trouble over one website.

edit: (removed snarky edit.)

The landing page for FF4 has a "restore previous session" button on it which opens all your tabs for you if you so desire (just in case you missed that).

Also you can "pin as app tabs" anything that you like to consistently have open.

FF4 also runs considerably faster. I can't imagine wanting to downgrade ...

It's also under the "History" menu item with the same name, in case it just loads the home (which happens usually).

I regret ever upgrading to FF4. It absolutely crawls on both of my machines.

Some problem in Opera 11.11. Now I wonder if it works in any version of IE...

Seeing nothing on Safari 5.0.5/Mac

    sproutcore-2.0.a.3.min.js:8 TypeError: defineProperty is not supported on DOM Objects

Wow, that's bad. I accidentally shipped the version of SproutCore 2.0 with property accessors turned on; however, Safari 5 has a bug where this blows up when called on an element, and we've been testing on Lion.

Anyway, fixed now. Sorry for the inconvenience.

Since YUI3 has no recommendad usage scenario, I would submit for consideration:

Use YUI3 if you want a comprehensive framework that includes DOM manipulation and event handling along with a highly consistent set of widgets, layouts and utility components all in one package.

At least, this is when I choose YUI over arguably lighter / smaller / simpler solutions (like jQuery).

Nothing here either (Opera 11, Windows). Seriously guys, Sproutcore is so horribly not-cross-browser that it's a joke. Please stop making sites with it.

Just FYI: the version of SproutCore being used here is SproutCore 2.0 developer preview, which made aggressive use of new browser features, but missed a couple of places to polyfill. Those places are now plugged, mostly due to this exercise.

SproutCore 1.x, the current stable line, is in use for a number of major sites that work across a large number of browsers, including IE7 and IE8.

@tomdale's comment above provides some context for the rationale behind using a developer preview for this site: http://news.ycombinator.com/item?id=2598829

I'll assume that there's a reason why you wrote "across a large number of browsers, including IE7 and IE8" in reply to a comment about Opera?

I must admit I haven't checked right now, but at least a few months ago the site was all about how awesome Sproutcore is, but accidentally neglected to mention that there are common browsers on which it does not work. I had to install and try to use it to figure that out.

IMHO this is a serious attitude problem; launch first, make work later. That's all right if you're open about what's missing, but the Sproutcore site makes promises ("it works") that it can't keep.

It's working okay on Opera 11 for Mac. I'll test on Opera 11 for Windows when I get a chance.

Edit: Works now, thanks for fixing it so fast.

That's what I get now using Opera 11.11 32bit on Linux.

    Uncaught exception: ReferenceError: Security error: attempted to read protected variable: toString
    Error thrown at line 9, column 22266 in x(a, b, c) in http://www.everyjs.com/js/libs/sproutcore-2.0.a.3.min.js:

Similar, but with less content to http://microjs.com, which is credited in the footer.

I prefer EveryJS's presentation though, since it's easier to read the description.

Also, microjs is limited to JavaScript frameworks under 5k, and without dependencies.

Good resource! Just a little fix: Dojo is linked to backbone.js.

Fixed, thanks!

Also take a look at Knockout.js (http://knockoutjs.com/)

Its a lightweight MVVC framework which brings WPF like data binding to HTML.

See some live examples at : http://knockoutjs.com/examples/

and I ported backbone.js todo example to knockout over here : https://github.com/ashish01/knockoutjs-todos

In line with tomdale's quite constructive multi-framework suggestion (and yeah I gave it props on the pull's comment page too), everyjs site looks ready for a third pulldown at the top: "Render this page using <JS-library-list>"

Maybe with some loadtime stats and other statporn too

The explanation of MooTools' advantages should mention inheritance. MooTools is indispensable if you want to build a robust class-and-instance structure that more closely matches the architecture you're using in other client technologies (e.g. java, flex, or cocoa)

Would you be willing to submit a pull request? I don't know enough about MooTools but would be happy to merge.

Don't forget NowJS. http://nowjs.com/

Ender looks really interesting but I feel like it's missing the example that really shows the power behind it. I'm not sure I'm seeing it right now. Anyone have/know of such an example?

Is this intended purely as libraries to use in the browser? JavaScript doesn't just mean web anymore - but if this is aimed at web it might be worth saying so explicitly.

I had that originally in the House Rules section but removed it. I'll reconsider the best way to word this without trying to cause a server/browser JS flamewar.

A ruby-toolbox.com for JavaScript would be useful, but it'll need a bit more organization than this.

I agree! I put this together in a few hours while spending Memorial Day weekend at my parents' house.

I'm planning on adding sorting/filtering based on browser compatibility, file size, and area of expertise. I'd be interested in hearing any other criteria people want.

The web page is actually a SproutCore 2.0 app, so I'm hoping it can be used to show the flexibility of the framework when it comes to building data-driven apps.

Is the source of this Sproutcore 2 app on Github? Thanks

Yep — https://github.com/tomdale/everyjs.com.

Look at index.html and js/app.js. That's where most of the action is happening.

Might be a good idea to break the data out from the actions.

Question for Tom: Some of the wording ('your own' and 'maintainer') suggests you only want people to submit their own libraries and not ones they use and enjoy. Is that intentional?

That might impede the amount of submissions you would get.

Not at all! I'll clean up the wording. Thanks!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact