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:

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:

copy a file called JS.js to your computer

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:

tagged with:

Did you love / hate / were unmoved by this post?
Then show your support / disgust / indifference by following me on Twitter!

This post got 77 comments so far. Care to add yours?

  1. Nick says:

    Good one man..LOL

  2. lol! knew this had to be a joke or a terribly named library from the get-go. hilarious.

  3. suoranciata says:

    iLol’d

  4. nitpicker says:

    Less than 500 “bites”? What is a “bite”?

  5. Jon-Paul says:

    Javascript is a ghetto!

    But seriously, I enjoyed this :)

  6. I can’t wait you open a bug tracker. There are so much to fill \o/

  7. Sakuraba says:

    Is there a version compatible with CoffeeScript?

    • Alex Tatiyants says:

      I’m working on one as we speak… Ok, done. In addition to CoffeeScript, it’ll also support MochaScript, TeaScript, LowFatVanillaLatteScript, and DietPeachSnappleScript.

  8. webmage says:

    Why is this not released under the WTFPL license?

  9. fpiat says:

    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

  10. TVD says:

    Mind. Blown.

    This is exactly the kind of innovation and forward thinking Google’s Dart team needs.

    Way to Go man!

  11. Trent says:

    Is this a fork of Thomas Fuch’s hugely successful vapor.js? Or did you develop it clean-room?

    • Alex Tatiyants says:

      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

  12. fesebuv says:

    hahaha!!

  13. @ElvisMiranda says:

    After reading all post and comments, download the “library”, I enjoy it, you catch me!

  14. Clinton says:

    Is it on github? I think I’ve found a bug and I’d like to submit a patch.

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

  16. James says:

    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?

  17. Ben Atkin says:

    I am disappoint. I was expecting something that did something clever with JavaScript source code, like node-burrito.

    • Alex Tatiyants says:

      Sorry to disappoint Ben, but I’m nowhere near smart enough (as is clearly evidenced by the article) to do that.

  18. Dovyski says:

    Amazing! The One js lib that was missing to rule them all!

  19. [...] 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… [...]

  20. jojo says:

    Awesome !!!. You truly have the great skill of Steve Job(less)

  21. Nico says:

    Ahahaha that’s absolutely brilliant!
    Can I click on “download” or is it dangerous? :)

    • Alex Tatiyants says:

      Thank you Nico. You can absolutely click on the download so that you can experience the majesty of JS.js first hand!

  22. 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 :)

  23. Jeff says:

    Does not work on IE6 for me.

  24. Stefan says:

    I was surprised to find that this work even in other languages.
    It really makes anything awesome!

  25. Nick says:

    What version is this? Please post on GitHub so I can fork this baby.

  26. Djam says:

    man, you saved us all! We need a minified version, too!

  27. Alexey says:

    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?

    • Alex Tatiyants says:

      Thank you Alexey. I’ve actually tried minifying JS.js a few times, but it refused to shrink. It’s a very proud library.

  28. Steve Calvert says:

    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!

    • Alex Tatiyants says:

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

  29. Steve says:

    Does JS.js have rules engine in it? How does it deal with ephemeral lexical scope?

  30. Delce says:

    I don’t like this library. It seems to put everything in the global namespace.

    • Alex Tatiyants says:

      I’m sorry to disappoint Delce. I tried containing JS.js in a local namespace, but it broke out. Its power is overwhelming.

      • Delce says:

        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?

        • Alex Tatiyants says:

          Hi Delce, the short answer to your question is “Quantum Mechanics”. The long answer to your question is too unstable to be directly observed.

  31. UniWeb says:

    HOW DO I BUILD SITES WITH IT DERP?

  32. Adam Presley says:

    Greatness. Fits perfectly in #unplexing.

  33. Jeff Terrace says:

    js.js is a real library – a javascript interpreter in javascript:
    https://github.com/jterrace/js.js

  34. Mike Ryan says:

    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.

  35. [...] 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 [...]

  36. Andrew says:

    Jeez… still looking…
    No clues?

  37. [...] 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 [...]

  38. [...] 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 [...]

  39. […] 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 […]

Leave a Reply