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!
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.
Why I created DOMAssistant
The reasons I started working on DOMAssistant are three-fold:
- I wanted to give something back to the web development community, and to make people’s life easier.
Where to go from here
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?
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.
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.
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.
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.
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.
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:
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.
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!
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 🙂
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 :).
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.
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.
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).
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.
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.
Ext & jQuery Project Teams…
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. 🙂
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.
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 😉
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 😀 ).
Thanks a lot for very good input! You make excellent points, very much in lie with what I'm thinking.
Yes, we'll definitely talk. 🙂
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)
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)
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.
Thanks for your input. It's always good to see input from developers, and what features they themselves specifically are looking for.
I just came in via the front page on my way to the DOMAssistant docs and saw this post.
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).
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. 🙂
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
Thank you, I'm very glad to hear those kind words!
I haven't commented this post yet I think.
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…
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 […]
Maybe you can rewrite DOMAssistant, for smart phone (such as iPhone, Adroid, mostly based on WebKit) only.
I'm not involved in that project anymore, but please suggest it at DOMAssistant.com.