

EveryJS: The Right Tool for the Right Job - bradly
http://www.everyjs.com/

======
zapf
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?

~~~
tomdale
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.

~~~
zapf
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'

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

------
thaumaturgy
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.)

~~~
tomdale
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.

~~~
thaumaturgy
Works great now, thanks. :-)

------
zmmmmm
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).

------
skrebbel
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.

~~~
wycats
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>

~~~
skrebbel
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.

------
jschuur
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.

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

------
ashish01
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>

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

~~~
tomdale
Fixed, thanks!

------
hoprocker
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

------
dorkitude
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)

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

------
chrischen
Don't forget NowJS. <http://nowjs.com/>

------
smhinsey
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?

------
glenjamin
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.

~~~
tomdale
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.

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

~~~
tomdale
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.

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

~~~
tomdale
Yep — <https://github.com/tomdale/everyjs.com>.

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

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

------
jschuur
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.

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

