Introducing JS.js
October 31st, 2011
Do you ever wish that you could write awesome client side code while using a familiar syntax? Do you want to leverage powerful concepts like closures and prototypical inheritance? How about using 3rd party libraries without conflicts?
Well, your dreams are about to come true. I’m pleased to announce a brand new JavaScript library called JS.js. This revolutionary new library allows you to do so much I don’t even know where to start. I really mean it, I’m having difficulty coming up with the right combination of words to describe it. Hmm, this is awkward…
Ok, I got it. How about a bullet list of what JS.js is all about:
- JS.js is unobtrusive, small (less than 500 bites uncompressed), yet highly functional.
- JS.js works with all modern (and not so modern) browsers. I’m talking all current and future versions of IE (including that weird new Metro IE), Firefox, Mobile Firefox, Safari, Mobile Safari, Chrome, Mobile Chrome, Konqueror, Mobile Konqueror (I’m assuming there is one, but I may be wrong on that), Netscape, and many more.
- JS.js is fully compatible with all existing libraries including jQuery, backbone.js, underscore.js, Ext js, and many others.
This is a big reason why most individuals prefer using it is due to the new 45 day advance online discount cialis notice rule at a recent conference call to reporters. Semi-rigid rods are rods that are implanted into the penis that makes the penis an extra time erection. http://downtownsault.org/wp-content/uploads/2012/01/Tax-Increment-Financing-and-Development-Plan-Number-One.pdf order viagra Oatmeal with 2 tablespoons of protein powder, apple slices, cinnamon on top. get cialis overnight Well before discount viagra sales, that was a reality for many couples.
Intrigued? Of course you are. Excited? How could you not be. Can’t wait to get your hands on it? Wait no more, here’s the download button:
How did you like that button by the way? Impressive, no? I thought so.
Ho Do I Use JS.js?
You may be wondering exactly what your code will look like with JS.js awesoming it up. Well, here’s a code snippet which utilizes the library:
var isJSdotjsUseful = checkUsefulnessOf("JS.js"); function checkUsefulnessOf(library) { if (library === "JS.js") { return "Awesomely useful"; } else { return "Sorry, the jury is still out on " + library; } }
Did you notice it? No? Look harder… See it now? Still nothing? Keep looking, it’s definitely there. Trust me.
Why Did You Develop JS.js?
This is a great question, one with many answers, some of which probably depend on your definition of the word “why”.
I first came up with the idea for JS.js while perusing the plethora of currently available JavaScript libraries. A thought popped into my head: “It seems like every jackass with a keyboard is writing a JavaScript library these days… Hey, I have a keyboard too!“. And with that, a dream was born.
You know, it feels like I’ve been working on JS.js for years (though technically it’s probably closer to minutes). Yet, in a lot of ways it feels unfinished. It’s as if there is so much more it can and should (and shouldn’t) do.
How Can I Contribute?
Well, the best contribution would probably be a direct financial cash transfer to me, preferably in unmarked bills of large denominations. Aside from that, please feel free to spread the word about this wonderful new library as far as your ISP will take you. The web development community will almost certainly thank you* for opening their eyes to JS.js.
* Disclaimer: odds of anyone thanking you for JS.js are roughly 2,400,000:1.
You may also like:
Did you love / hate / were unmoved by this post?
Then show your support / disgust / indifference by following me on
Twitter!
This post got 78 comments so far. Care to add yours?
Good one man..LOL
Thanks Nick, glad you enjoyed it!
lol! knew this had to be a joke or a terribly named library from the get-go. hilarious.
thank you very much Chris.
iLol’d
thank you very much
Less than 500 “bites”? What is a “bite”?
JS.js is too awesome to be measured in conventional units 🙂
A bite is how a mosquito tells you he loves you
“He”? I’m quite sure I’ve never been bitten by a male mosquito — as they love flowers and whatever.
It’s the females that are the bloodsuckers 😀
A bite is more than a nibble!
Javascript is a ghetto!
But seriously, I enjoyed this 🙂
thank you Jon Paul!
I can’t wait you open a bug tracker. There are so much to fill \o/
That’s not a bad idea. Maybe I could even implement a bug tracker using JS.js. I know it can be done!
Is there a version compatible with CoffeeScript?
I’m working on one as we speak… Ok, done. In addition to CoffeeScript, it’ll also support MochaScript, TeaScript, LowFatVanillaLatteScript, and DietPeachSnappleScript.
Any plans for LightSaltedCaramelNoWhippedCreamThanksScript?
I was going to do it, but then Starbucks threatened to sue. Something about copyright violations.
Why is this not released under the WTFPL license?
That’s a great point, I’ll be sure to release the next version (code named The Deuce) under WTFPL.
It’s really amazing! Great work! Thank’s for sharing, etc. etc.
I’ve put it directly in PHP and it works!
Think that you’re the next Steve Gates
Thank you very much, fpiat. I usually think of myself as more of a Bill Jobs than Steve Gates.
Mind. Blown.
This is exactly the kind of innovation and forward thinking Google’s Dart team needs.
Way to Go man!
Thank you TVD, I completely agree!
Is this a fork of Thomas Fuch’s hugely successful vapor.js? Or did you develop it clean-room?
Hi Trent, the question of vapor.js came up elsewhere as well. I find Vapor to be somewhat lacking in substance, so forking it was never really an option. JS.js is as greenfield as it gets
hahaha!!
After reading all post and comments, download the “library”, I enjoy it, you catch me!
Thank you Elvis!
Is it on github? I think I’ve found a bug and I’d like to submit a patch.
It’s not on github yet, but that’s just a matter of time and/or my laziness.
Great work! This library might help me in developing bean.js and milk.js — bean compiles to milk which compiles to coffeescript which compiles to javascript. Saves a lot of development headaches.
Thanks Michael! I knew there was a truly worthwhile use for JS.js and looks like you’ve found it!
Nice effort, but I’ve got some complaints about the API.
Why is `typeof null === ‘object’`? And why have you made it so hard to subclass Arrays?
James, all great questions. The basic answer is this: JS.js giveth and JS.js taketh away.
I am disappoint. I was expecting something that did something clever with JavaScript source code, like node-burrito.
Sorry to disappoint Ben, but I’m nowhere near smart enough (as is clearly evidenced by the article) to do that.
Amazing! The One js lib that was missing to rule them all!
[…] Well, your dreams are about to come true. I’m pleased to announce a brand new JavaScript library called JS.js. This revolutionary new library allows you to do so much I don’t even know where to start. I really mean it, I’m having difficulty coming up with the right combination of words to describe it. Hmm, this is awkward… Javascript Read the original post on DZone… […]
Awesome !!!. You truly have the great skill of Steve Job(less)
Thank you jojo!
Ahahaha that’s absolutely brilliant!
Can I click on “download” or is it dangerous? 🙂
Thank you Nico. You can absolutely click on the download so that you can experience the majesty of JS.js first hand!
Wow! It’s the next big thing after vapor.js, which I believe is more compatible with other librarries but lacks some of features that js.js provides.
Jokes aside, there’s a lot value in what you want to express.
Ever watched Kung Fu Panda?
There is no “secret sauce/technique/teaching”; work hard and get back up when you get knocked down, and learn from your mistakes.
To fully grasp JavaScript, you have to learn JavaScript, not a famous library of your choice. And that’s the hard path to follow.
Thanks for making my day 🙂
Thank you very much Volkan, really glad you enjoyed it!
Does not work on IE6 for me.
Thanks for the heads up Jeff, I will be sure to investigate.
I was surprised to find that this work even in other languages.
It really makes anything awesome!
Thanks Stefan, JS.js is surprising like that. I consider it to be the gift that keeps on giving.
What version is this? Please post on GitHub so I can fork this baby.
Hi Nick, JS.js is currently on version 0.0.0.0.1.0. It’s not on GitHub yet, but could be soon
man, you saved us all! We need a minified version, too!
Thank you Djam!
Awesome work! But will you release a minimized version of it? And will be there a CDN to include it in my projects by simply paste a script tag?
Thank you Alexey. I’ve actually tried minifying JS.js a few times, but it refused to shrink. It’s a very proud library.
Great lib! How will you resist the bloat that comes with a more mature library? Though, it’s clearly not really necessary to build off the great work you’ve already done!
Thank you Steve. That’s a great point, I really tried hard to fight bloat with this version and I’m sure it’s going to get even harder as I start work on the next version (code named The Deuce).
Does JS.js have rules engine in it? How does it deal with ephemeral lexical scope?
Hi Steve, the answers to your questions are “of course” and “simply”.
I don’t like this library. It seems to put everything in the global namespace.
I’m sorry to disappoint Delce. I tried containing JS.js in a local namespace, but it broke out. Its power is overwhelming.
Well, I gave it a second try and there might actually be something redeeming here. JS.js seems to work even without downloading the file and referencing it in my HTML page. The following seems to do the trick:
(function(){//Look for awesomeness})();
How does your server handle such remote access?
Hi Delce, the short answer to your question is “Quantum Mechanics”. The long answer to your question is too unstable to be directly observed.
HOW DO I BUILD SITES WITH IT DERP?
Greatness. Fits perfectly in #unplexing.
Thank you Adam! Also, I’m glad you consider JS.js worthy of the unplexing vision.
js.js is a real library – a javascript interpreter in javascript:
https://github.com/jterrace/js.js
But this js.js existed first
There really is (or at least was) a Mobile Konqueror. It’s called Konqueror Embedded and ran on Linux handhelds in the early 2000’s: Compaq iPAQ and Sharp Zaurus. It was the Cadillac of mobile web browsing at the time.
That’s good to know, thanks Mike!
[…] JS.js (intro) […]
[…] at Nodeable, and they serve us pretty well.You should ignore all other JS libraries (except for js.js … Joking!!) I know there are probably some that I am missing, and I would love to learn what […]
Jeez… still looking…
No clues?
[…] as it is in theory. I welcome some enterprising hacker to try it! In fact, Stanford student Alex Tatiyants has already compiled Mozilla’s SpiderMonkey engine to JS via Emscripten — all […]
[…] claro como lo es en la teoria. ¡Agradeceria que algunos hackers intrepidos lo prueben! De hecho, Alex Tatiyants, estudiante de Stanford, ya compilo el motor SpiderMonkey de Mozilla a JS usando Emscripten; Todo […]
[…] as it is in theory. I welcome some enterprising hacker to try it! In fact, Stanford student Alex Tatiyants has already compiled Mozilla’s SpiderMonkey engine to JS via Emscripten — all […]
This took all the lolz I had to give today.