DOMAssistant – Why bother?

Maybe I’m just writing this because I’ve been feeling a bit low lately, but I do wonder if there’s any idea that I put any more time into DOMAssistant.

Last night we held another Geek Meet here in Stockholm, with a staggering 70 persons or so showing up. Great fun, and I really love meeting so many dedicated souls in real life, and learn from them!

However, what came up from two persons working with/for two different large web sites here in Sweden is that they both tried DOMAssistant, and it worked out fine for them, but at the end of the day they needed to have a JavaScript library which was well-known with a large community. This was especially important when we’re talking going international with their products. They are both now using jQuery.

And previous to them, one of Sweden’s most visited web sites removed DOMAssistant, not because they didn’t like it, but because other parts/products used Prototype and they needed a consistent approach.

And really, I definitely have no hard feelings about this, and completely understand where they’re coming from. It’s about motivating it to your managers and protecting your investments. Why would they choose a JavaScript library from a local boy, just to be nice? That’s not real business sense.

Why I created DOMAssistant

The reasons I started working on DOMAssistant are three-fold:

  • I felt that they JavaScript libraries on the market could be leaner with less bulk.
  • I wanted to give something back to the web development community, and to make people’s life easier.
  • I wanted to learn and get better at JavaScript and, consequently, CSS selectors.

Where to go from here

The thing is that I feel I can’t compete with DOMAssistant against the other major JavaScript libraries that are out there. It doesn’t matter if it’s one the smallest libraries available, while having full CSS 1-3 selector support, or if most people who have used it have really liked the functionality, code syntax and feature sets.

Where I fall short is in areas like the fact that something like jQuery has one million downloads or so of the latest version and has co-operations like this. I can’t compete with that, with maybe 1000 downloads of DOMAssistant. Don’t get me wrong, I’m happy that a 1000 people are using it/trying it out, but given the time it takes to maintain it, test it and all the time that I could put into other things (like having a life), I’m just not sure if it’s worth it.

To be honest, I know of very few people who use DOMAssistant in production, but I’d love to know more about it, to have an actual list of implementations to base my decisions on. But while I’ve always felt good about offering an alternative, I’m just not sure what price it’s worth to pay for just a few people ending up using it.

Is it over now?

I really need some good advice here: what do I need to make DOMAssistant get a much wider user base, and compete with the major players? Or should I just let it go, leave it at its current state; feel content that I could prove to the world that I’m a decent JavaScript developer, and that’s it?

Posted in Developing,DOMAssistant,JavaScript,Technology |

35 Comments

  • Andreas says:

    > feel content that I could prove to the world that I’m a decent JavaScript developer, and that’s it?

    Maybe, if that’s what you feel you want to do.

    I’ve been working on my PHP framework for about 2 years. I’ve never released any code to anyone (although it is up on Google code as of last week or so). The reason I develop it is because I love to write code and learn new stuff. Every time I work on it it gets better, and I get better at doing what I do.

    I don’t need people to use it or even play with it (although I wouldn’t mind if people did) for me to feel happy about working on it. I work on my framework to learn and because I think it’s a lot of fun.

    If you feel that it’s not fun any more or that you’re happy with how far you’ve come then maybe it’s time to move on to something else. I definitely do not think you should develop just for others. Do it for yourself and if people like it, great. If not, well, at least you’ve learned a lot.

    Regardless of your decision I think you should be proud of DOMAss and the fact that you’ve written a JS-library that _can_ compete with the likes of jQuery. Good work and keep it up!

  • If you want it to be more well-known, you need to put as much effort into marketing it as you do developing it. jQuery got the attention it did by being smaller than Prototype, having cool animations without needing another library (again, better than Prototype at the time), and because John Resig was prone to making bold statements about the performance of the library.

    Do some benchmarking; make some comparison charts; prove to people why they should consider DOMAssistant a serious competitor to jQuery et al.

  • Well, survival of the fittest.

    I think all frameworks that started up in the JS scene some years ago had good reasons to exist back then. But now when they all are getting mature and mimics the functionality (more or less) it's nothing strange that people tend to gather around a few of them. It's simply how the software industry works. MS won the office products, Adobe the graphical industry etc.

    You have made a great job, as all java script developers can see, you have probably learnt alot on the road to current state. Sometimes it just better to let go and do something else.

    I've been in the business for 15 years now, and I don't think anything at all I built ten years or more is in use anymore. They got replaced by other versions, on other platforms etc.

    And that's the beuty of the IS-industry – we are to do new things all the time.

  • Just one more thing. People don't necessarily gather around the best product with VHS as the best example.

  • Jaap says:

    DOMAssistant fills a niche market in the javascript library world. I don't think it should compete against the "big ones" out there, they fill their (larger) part of the market and DOMAssistant caters to those people looking for a lean, mean and powerful lib.

    The most important thing being is you having fun creating this lib. It shouldn't be a chore. Think of all of the support questions you would be receiving if DOMAssistant were being used by all the new bandwagon javascript developers. In a way being small helps you focus on quality code.

    I think you need to see this project as a fun investment in your javascript skills, that in the same time is usefull for an bunch (maybe not a huge amount) of people. Not many people have the skill and guts to show of their code in such a way.

    Writing code isn't a competition, at least it never has been for me and if it became one I'd probably quit writing code too.

  • Ceriak says:

    There are a lot of JavaScript libraries out there, and DOMAssistant does not provide any new, revolutionary feature. Small size, reliability and so on, are not those things that get a lot of attention at release.

    So the only thing you can do is to constantly develop it, add features that concurrent libraries have (while maintaining modularity), try to build community around it, do some PR. Beginning is always hard, but keep up the work and it will certainly gain popularity.

  • FWIW I have chosen to use DOM Assistant for a huge, global corporate site that I am currently working on, and am happy with it. Keep up the good work.

  • Hi Robert :)

    As Ceriak said, there are too many libraries on the net.

    The result is that as we don't like to have different and/or not standard browsers (you know what kind of nightmare we have to deal every day with both CSS and JS), we sould be able to use and learn one single library that is frequently updated and has a lot of support.

    I agree with you that a good and small library should be useful, specially for who know how to use them, but currently, I think in production everyone would like to use a good GUI too.

    Most downloaded/used frameworks have a GUI namespace, YUI!, Dojo, jQuery (with or without amazing JS Ext), MooTools, Prototype … and I think that's one of the most important thing for a web 2.0 production library.

    I've personally developed (I don't know how many times) my JS general purpose libraries, but at the same time when I need something I need time too because I am simply alone.

    Someone, like Dean, would like to be alone during lib development but I think that if we will help jQuery, or another one, to be every day better than before, we will both learn how this library work and contribute to make them "perfect".

    I am really thinking to join jQuery ml and help John and others to solve/fix bugs (as I did few times with code suggestions) and I think that if you'll enjoy jQuery contributors "team" you'll be able to add full CSS 1-3 selector and every other kind of useful stuff as well.

    So, why don't we create a collaboration team with a single aim: solve first, improve them, a well know framework? (jQuery, for example, should be perfect)

    In this way we could become "free-time partners" and make our web-life easier for ourself too, so please think about that.

  • Adrian Olaru says:

    I think you shouldn't care what others think. If you like what you do , you do it anyway, so why bother compete with someone when you do what you love. Besides that, don't forget to market your product better… I don't think there is a js library out there which I could say is the best, there are only 2 or 3 better marketed.

  • katy lavallee says:

    I haven't tried using DOMAssistant for a full-fledged web application yet, but I am planning on trying for my next project instead of Prototype. I do like DOMAssistant better than Prototype and I think it's the best library to choose for landing pages because of it's light weight.

  • Jeff L says:

    Robert,

    To be honest, I'd need to see something about DomAss that would make me want to try it out.

    This is the original blog post that sold me on trying jQuery:
    http://jquery.com/blog/2006/10/18/zebra-table-sho

    If you do decide to give it up, I hope you'd consider donating some of that time towards one of the other libraries, such as jQuery.

  • chenghong says:

    Robert, don't give up! I've spent time evaluating all the JS libraries out there and in the end settled with DOMAssistant to Web2.0-ify our production system, a credit card payment gateway. I plan to use it on many upcoming projects too.

    The reasons are simple: DOMAssistant is small, lean, efficient and has a nice syntax. It also supports the widest range of browsers, which is an important criterion in corporate environment as many businesses still use Win2K, which by default ships with IE5.0. I've written a compat layer to make DOMAssistant play nice with this dinosaur. I don't think the same can be done to other libraries.

    If you have the time, you could write an Effects plugin, supporting some of the basic animations like slide, fade and so on. That would keep you busy and motivated for a while. Try to build a community around DOMAssistant too.

    I look forward to the next release in enthusiasm!

  • chenghong says:

    By the way, I should mention that jQuery is probably the worst in terms of CSS-selectors performace. I wish there is a way to pit DOMAssistant against the big three.

    Do similar tests and publish it on your blog. If DOMAssistant wins, this will be an excellent marketing material.

  • I am currently using jQuery.Before that prototype and script.aculo.us. But now I plan to give DomAss a shot. First it's the effects that appeal the most when you are looking for a library. It's the eye-candy!!!

    But after that, you are looking for functionality and simplicity. To write code that is fun to write and solves problems in a satisfying way.

    The functionality that comes to my mind that might be needed:

    – Window/Forms plugin to create modal windows and such. And it really does not take that much code to do it.

    – Effects! Maybe something like jQuery to write own custom effects

    I will use DomAss in my php framework to play around. Will give you some feedback :)

  • I wish there is a way to pit DOMAssistant against the big three.

    There is. Slickspeed is open-source and a breeze to set up. Rob, you should definitely set up a comparison on your server. From my internal tests you smoke other libraries :).

  • Robert,

    Don't give up. Before jquery there was another popular library and before that yet another popular library and before that… Even if you end up with a niche impact we need variety. If we didn't then we'd all be using IE6.

    I'm with others in that I think it would be a good idea to add an effects library to DOMAssistant. As others have said, "eye candy" is what attracts people to use a library. I wrote an AJAX front end for our internal portal, yet users and especially management didn't see how cool it was because the widgets didn't fade, or slide in. They thought that AJAX meant a bunch of "cool" effects.

    A forms validation plugin would be cool too.

    I would also be interested in how DOMAsistant stacks up performance wise with other libraries.

  • NICCAI says:

    I think you've achieved a lot with this library. That said, I'd love to see you contribute to jQuery. It is my library of choice, and I think they could benefit from a developer such as yourself. When it comes to libraries, I think you need a competitive advantage (or at least a perceived one), or at the very least a level of scale (in print, in contributors, or in users). I think your time could be better spent contributing to the vision. It's always hard to let go of doing everything yourself.

  • Robert Nyman says:

    Thanks a lot for all your comments and kind words! I sincerely appreciate your honest and respectful takes, no matter if you're for or against continuing the development of DOMAssistant.

    I'll think this over over the weekend, and make a final decision next week on what I will do, but I have pretty much chosen what it will be. I'll let you know next week. :-)

    One thing that I do want to point out now, though, is that I definitely don't feel like it's a chore to me. I've done it for my as well as for other peoples' sake, and up to this point it has just felt fun, learning and challenging (in a positive way).

  • Steven Clark says:

    Robert I can see by your Flickr stream etc that you're a quality of life person. I'd consider whether it really needs to become that competitor to JQuery. Maybe its time to use that to springboard into a new more interesting project for you.

    You could pass DOM Assistant on or let others in as an open source project perhaps, I don't really know the answer to that.

    While marketing effort may improve the situation I'd say it would need significant marketing effort and investment. From a business perspective I'd be thinking of something perhaps more of an AJAX Web 2.0 startup style that might generate income.

    After all, as much as its fun to do stuff its a lot of fun being paid for it too. Financial security and peace of mind are important. You'll never get those years back you miss with your children by sitting up running tests on DOM Assistant.

    Hope that's of some advice-like help.

  • Rey Bango says:

    Hi Robert,

    Let me start of by saying that I'm a member of both the Ext and jQuery teams.

    Now, I think you need to look at what your expectations are and then decide whether you want to keep DOMAssistant updated. If your intention was to build something that would help you learn JS & selectors while having the added benefit of helping you in your job, then I think you've accomplished what you set out to do. The fact that you have additional support is icing on the cake.

    It sounds though, that you're disappointed that more folks haven't embraced DOMAssistant while other libs continue to grow and so you need to determine whether your intentions and expectations have changed. If they have, then you need to come up with a concerted plan to get DOMAssistant more exposure. Posting a blog entry or getting an occasional mention in Ajaxian isn't going to push you ahead. Its hard work and in jQuery's case, for example, it took John nearly two years of effort to finally get the respect that his work deserved. For Ext, Jack took off nearly a year from work so that he could come out with the best UI framework available.

    Honestly, I don't believe it's anything to do with your functionality. DOMAssistant looks great. Developers are just fickle and to-date, I've still not been able to pinpoint why developers choose specific offerings.

    If you really want to make DOMAssistant pervasive, then I would recommend enlisting the help of others and forming a project team. Once in place, come up with a plan to distinguish DA from the pack. If you're "just like the others" DA will get lost in the pack guaranteed. And contrary to what others are saying, selector speed is *not* going to distinguish you from anyone. All of the libs have tweaked their selector engines to the hilt and throwing yourself into a battle of selectors, in my opinion, is not enough to set DA apart. Try to determine your sweet-spot and build from there. With jQuery, it was file size, ease-of-use and performance. With Ext, is was UI. Prototype was first to market and has Scriptaculous involved. And MooTools has amazing effects and OO.

    If you need advice or assistance, let me know. The Ext & jQuery teams are here to help.

    Rey

    Ext & jQuery Project Teams…

  • Robert Nyman says:

    Steven,

    Thanks for good input. Only thing I'd like to point out is I only program when the rest of the family sleeps, so I don't miss out on time with them, I just become a bit sleep deprived. :-)

    Rey,

    Thanks for visiting and some great advice! I can't really say that I feel disappointed or that I would have expected more at this point, really. I have the utmost respect for the time, work and marketing put into JavaScript libraries, so I never expected things to be easier.

    It was rather that I, combined with just feeling generally low when i wrote this post, felt that if I were to continue developing DOMAssistant, naturally I want it to become useful for more people than me, while at the same time, naturally getting better at and learning more about scripting.

    If I decide to continue, I definitely have a game plan, and your advice is spot on. Also, I really appreciate the respect and openness between JavaScript library developers, just like you expressed here, so thanks for giving me faith about a brighter future, no matter what path I choose.

  • Carsten says:

    Hi Robert,

    for someone being attracked to your code for the last couple of months your post provides shaking news – but as with most of my preceeding commenters I'd like to encourage you: Go on coding. In which manner is up to you, and one shall (and surely will) respect whatever you decide.

    Personally, I can't see any reason why DomASS should compete actively with the big ones. DA is for me one of the most nifty JS products, created for those knowing the big ones and being capable to specify their disadvantages as well as for the framework beginner. While most people tend to go on with their once-chosen library herd, many like most of the writers above should see DA as the nifty alternative. And this might outline a real perspective: the precious niche product beside the mass solutions.

    Some above pointed out marketing issues. Well, DA indeed comes very handcrafted and unpretentious, so others may miss the "webtwonullaty" of let's say the mootools download assistant (which look-and-feels great, but incidentally serves every chosen module configuration under the same filename). Let them get their coffee-to-go at Starbucks. You provide the Viennese coffee house: Five or six modules, all together or available each particular. Beside of this, building a community seems apparent to me: Giving it a standalone portal, having asked a designer for a nice frontend, can be a good basis for those liking to engage in this project – and the ones preferring "appearance" over functionality ;-)

    Cheers,

    Carsten.

  • Rey Bango says:

    My pleasure Robert. Any help you need, don't hesitate to ask. Also, you have my email so keep me abreast of your progress so I can post on Ajaxian as well (yep, I'm an Ajaxian too :D ).

    Rey…

  • Robert Nyman says:

    Carsten,

    Thanks a lot for very good input! You make excellent points, very much in lie with what I'm thinking.

    Rey,

    Yes, we'll definitely talk. :-)

  • Kevin says:

    When I look at libraries, I am looking for certain features, completeness, and compatibility.

    Q.1) If I call $(my_id) does it correct the call for Internet Explorer?

    (e.g. does it have a fix similar to #3 for bug 152)

    Bug 152

    Q.2) Does it have a "DOM Builder" function of some kind, and if so does it handle IE's buggy .setAttribute and or .innerHTML? (Most don't, but providing something smart here is always appreciated)

    Bug 242

    Bug 245

    Bug 299

    innerHTML bugs: http://webbugtrack.blogspot.com/search/label/inne

    Q.3) What does this library offer, that any others don't?

    Q.4) How easy is it to extend? The very first thing I'll be doing with any library is adding more code… this should be fairly easy, and documented.

  • Robert Nyman says:

    Kevin,

    Thanks for your input. It's always good to see input from developers, and what features they themselves specifically are looking for.

  • John B says:

    Hey,

    I just came in via the front page on my way to the DOMAssistant docs and saw this post.

    I am a bit of a Javascript purist and believe in knowing how to do it myself before relying on a library and therefore try to keep my library usage small. I was turned to DOMAssistant a while ago by Roger and am using it in a large project that I'm not currently at liberty to speak about. However, when it launches I'll let you know where DOMAssistant is at work.

    I really like it because it's super easy to use, and because I can pick & choose what parts I use. Some things I prefer to build myself, but for others I really like using DOMAssistant.

    So, if you haven't figured it out, my vote is Keep Going! (even if it is for kind of selfish reasons).

  • Robert Nyman says:

    John B,

    Thanks a lot, I'm glad to hear that!

    I can't really say anything more yet but that you will probably be happy with how things will evolve. :-)

  • Keith says:

    Robert, please don't give up. I am new to the world of JavaScript frameworks, and I've adopted DOMAssistant for my first project. I like it because…

    1. It gives me what I need

    2. It doesn't give me a bunch of junk I don't need

    3. It's easy to implement

    4. It does what it says

    5. It's well-documented

    Keith

  • Robert Nyman says:

    Keith,

    Thank you, I'm very glad to hear those kind words!

  • Pelle says:

    I haven't commented this post yet I think.

    I'm using DOMAssistant in a new hosted webshop solution I'm developing and will use it in every new project that needs javascript as long as DOMAssistant is actively developed and I would have nothing against contributing code to the project.

    So my vote is definitely that you should continue with developing DOMAssistant and it's community. I have the feeling that eventually will have a strong community. Perhaps not big – but dedicated…

  • Robert Nyman says:

    Pelle,

    Thanks a lot for those kind words!

  • […] a month ago, I wrote a hesitant post about DOMAssistant in DOMAssistant – Why bother?, so it’s about time to talk about that […]

  • Jlake says:

    I am looking for a javascript library for iPhone Web Application. DOMAssistant is not bad, in iPhone, the code for IE is not required any more.

    Maybe you can rewrite DOMAssistant, for smart phone (such as iPhone, Adroid, mostly based on WebKit) only.

  • Robert Nyman says:

    Jlake,

    I'm not involved in that project anymore, but please suggest it at DOMAssistant.com.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>