Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Interviews Thomas Fuchs and Michael Buffington Talk JavaScript and Rails

Thomas Fuchs and Michael Buffington Talk JavaScript and Rails


1. We're here with Thomas Fuchs and Michael Buffington. Both are prominent figures in the Ruby community. We want to talk a little bit about Scriptaculous and the java script in the Ruby community and about where this is all going. Thomas can you tell us a little bit about yourself and your company?

Thomas: I'm Thomas Fuchs and I come from Viena, Austria and I'm based there. I'm with a company called Wollzelle. We're doing mostly design work, but we're also really into programming. We don't like the separate those two things too much.


2. How long have you been designing?

Thomas: I'm not really the designer in the company, but I'm trying to catch up.


3. What is your programming background?

Thomas: I've been programming since 1995 and it's mostly web programming. I've done Java Script since back in 1996, 1997. It's been a long time.


4. Michael what about you?

Michael: I've programmed ColdFusion for about ten years. When it first came out it was 1.5 and that's when I started using it. I was working for an ISP at that time. About a year ago I picked up Ruby on Rails. Right and right about that time Scriptaculous was just really starting to hit and it was amazing


5. Let's talk a little bit about your claim to fame. Were you involved in Prototype?

Thomas: I was involved in Prototype, I did some of the things in Prototype, some side stuff like the event handling. Scriptaculous really started first as an addition to Prototype. It was integrated in Prototype. There were some small effects integrated and in June 2005 I moved all the stuff out into Scriptaculous and it was really updated and completely renewed effects engines, plus other stuff like drag 'n drop and various controls. It really took off.


6. Do you like programming in JavaScript? What role does that play in the end result of what you've done in Scriptaculous ?

Thomas: Not really. (Laughter) I don't like JavaScript in particular. When I first the Prototype Library and my interest got somehow renewed into JavaScript. I first did JavaScript in 1997 and it was on and off again.


7. What about you Michael? Fan of JavaScript?

Michael: I don't really hate JavaScript, but I was never a developer in JavaScript. I knew how to do the little things, but it wasn't until I saw Prototype and Scriptaculous that I realized it is pretty effective.


8. Let's talk a little bit about your claim to fame in the Ruby on Rails community.

Michael: I just talked about which is an online game and uses a lot of Scriptaculous methods to do a lot of the interface. I think without the interface and some of the methods I use, it would be kind of dry. In fact there were early iterations where the game itself felt fine, but it's so much better when it's much more interactive. People mistake it for Flash almost everyday.


9. Did you set out to do for any purpose other than just for fun?

Michael: Just for fun. I've wanted to do it for a few years and I had some downtime during the summer and I said "Ok this it what I'll learn Rails with...".


10. I think this next question applies to both of you but in slightly different ways. Why not Flash

Michael: I didn't think I could get it done in Flash. It's too complicated for what I'm trying to do. A lot of the Scriptaculous stuff is really simple; it is just about moving this particular element at a certain distance; it would have been completely overkill in Flash. I addition to that I would have had to figure out how to tie that altogether with the Rails backend and it certainly wouldn't degrade as well as what I could do with a Rails app with some JavaScript.


11. Part of what Wollzelle does is build clients, right? Is there one that has been making waves?

Thomas: Yes. About a year ago we started a work in our product called Fluxiom which is a sort of digital asset management online; it's not really digital asset management nor is it web storage stuff . It really has its own niche. It is about managing your files, but only the stuff that you currently need.


12. Is it an ASP model where you host the app or is it deployed at the client location?

Thomas: It is a completely hosted solution. We will not have any deployed...


13. Essentially you're working as a product company? This is something you put on the market and make money out of it commercially? What kind of organization do you target?

Thomas: Yes you're right. We mostly target small teams that really need to share the files and have access to their latest versions of files, so think of it as a file server that actually works because you find the latest stuff and everyone has access to it from all around the world. You can also easily share stuff with clients.


14. You haven't actually released it yet, right? Do you have beta testers?

Thomas: Yes we have a private beta test now and we're going to release in April (2006).


15. As you enter beta testing with real users there are a new class of problems that may arise. For those that are going down the main road in terms of building a commercial offering with Rails, do you have any words of advice or expectation?

Thomas: We didn't have any real surprises with Rails itself. We used some tools external from Rails (various open source stuff), so we had some bad surprises with that, but you should really go through and just fix it as you go along. It's a test phase.


16. Michael there a totally different model in your case. was live from the very start. How much effort did you put into before it went live?

Michael: Probably two weeks. I got something up where people could sign up and I wanted people in there right away because I really did want a lot of feedback from the very beginning and I knew what the consequences of that would be. I knew that I'd get a lot of feedback and some people might be turned off by it, but I'm ok with that. It's different when you're developing a game. The stakes aren't as high. If people don't like what they are seeing and if they leave it is not going to hurt me; it's not going to hurt anybody.


17. Describe some of the surprises you had along the way.

Michael: I think one of the hardest parts I had at first, was getting a good stable serving environment. This was about a year ago and things have changed pretty significantly since then. But it was right when Lighttpd was getting recommended and I had a pretty difficult time transitioning from Apache to that, just learning how to config files the right way.


18. You're basically a one man job.You're doing the Photoshop and all the way to the Lighttpd configs. What are the challenges in wearing that many hats if any?

Michael: It was challenging, but I don't have a problem with it. I can only blame myself if something goes wrong first of all.


19. What about you Thomas? You have a really small team, right?

Thomas: We are 3 people and just 2 of them are really working on the product.


21. What are some of the key aspects that you think enable a small team to produce a world class product like that?

Thomas: It's mostly Ruby, and Rails. You can do incredible stuff with just a few lines of code. It doesn't take a huge amount of time to get anything done, so you can really concentrate on what is important for the application and what's not important and just decide ...


22. You mentioned the size of your code?

It's about 1500 lines of code just Ruby code.


23. How much bigger is the rest of the app?

Thomas: If you have to count in all the HTML templates and Java travel scripts, I think it's about 5000-6000 lines.


24. What about

Michael: If I knew the number I'd be embarrassed to show it anyhow. I think it's because it has in evolution all the time and I have to go in an clean it up. It's relatively simple. All you do is roll some dice and roll it on a square; it's pretty simple. There's an app that I'm working now with a business partner that is pretty significant as far as the functionality goes and I think the lines of code are around 200-300 length.


25. What are some of the lessons learned for you Michael; you went through a period of really high scaling?

Michael: Some of the lessons were not to freak out over stuff; you can't let people who are making a lot of noise, drive you where to go. You should not do that and you should stick to what your initial plan was and don't let anybody sidetrack you. Sometimes it's a guy complaining about random numbers and you can spend a lot of time getting deep into random numbers because that's one of the big problems everybody is trying to solve. If it's good enough than stick with it and move on. I kind of made a mistake there of listening to that. One of the lessons learnt was to make sure that you know what you are dealing with (read the manual.)


26. Are you a game programmer by trade?

Michael: No. It was always a sort of a dream. I think a lot the programmers dream about making games because it's out of the ordinary and they make people happy and keep the patients ok.


27. You want to share that story?

Michael: I got an email from somebody saying "Thank you for putting this game up. I work at a mental hospital and I watch over a few suicidal patients and they're enjoying your game immensely. They feel that it is a sort of escape from their day to day activity. Please keep it up. "


28. Now all of a sudden your game became a mission critical system.

Michael: It's not only going to lose people money if I stop working on it but it's going to lose people's lives.


29. What about you Thomas, one of the feelings people express when looking at apps like Fluxiom is "why do you have to get so fancy?"

Thomas: Because we just like it to be so. We don't want to make the hundredth bad looking asset management asset system that doesn't work for people.


30. There are a lot of additional UI controls that you have in your app such as rubber-band selection, multiple selection and things like that. Why aren't those in Scriptaculous?

Thomas: There are two things. One is business side, we want to have it first. Others will try to copy it, but we're the first and that's the business side.


31. Do you think they'll come out in later releases of Scriptaculous?

Thomas: It may be. It's also the technical issue because it's not generalized at the moment. You can't really take it and use it for everything. It's very specific to the environment in the browser that Fluxiom has.


32. Why hasn't someone taken Prototype and Scriptaculous (or maybe they have) and built a high level UI library on top of it. You still have to do a lot of kind of manual composition of DIVs and things like that. Any perspectives?

Michael: I seem to recall seeing some libraries that did use Scriptaculous and I guess the Treasure Chest has quite a few little things people have contributed. But there's nothing like a GUI made out of it yet.

Thomas: Maybe it's because Rails is anti-components. If you would start to build this UI component out of it, it doesn't make sense because everyone needs something slightly different and it probably would be faster if you build it yourself.


33. Someone was telling me that this didn't really make sense to them to make an app as rich as yours in the front end. Why not just do it in a .NET or native or as a Java Swing app?

I've done Java, but it's one of the reasons I don't want to use Java for something like this because it's not going to work.


34. Why? Why wouldn't you use Java Swing? What are the dis-incentives?

Thomas: The primary focus of the application is you buy it (subscribe) and you just log in and there you have it. You can't do it with a Java application. It is not possible. You might not have a browser that does Java or you might have a different version and so on. You just login to a URL and you're in there.


35. You mentioned World of Warcraft and I think you made a lot of good points. Are we moving towards a direction where you don't have to do gigs and gigs of install.

Michael: I hope so! I would love to sit down to any computer and do everything that I can. I want to do my work processing; I want to do my emailing from any computer that I've never touched before.


36. Most good programmers have like their personal holy grail that they're after. You seem to allude to one of those.

Michael: My holy grail is to do everything through instant messenger.


37. Can you explain that?

Michael: I know it seems crazy... In unroll, one of the new features I'm going roll out soon there is an interface through instant messenger so there's a bot sitting there and it takes in commands and it does it. Before that, I had actually written an interface to my weblog and I began realizing that I would post more often if I had written it through the instant messenger interface. That's because I have that on all the time as that's how I keep in touch and talk with people. Having that there and just being able to say my blog entry and have it go in, that's such a time saver. It's less typing than putting up the url to the interface to it. If I can start sending emails from there or saving links (like if I just grab a link from something I'm browsing and drop it in there and it becomes part of, that would be great.)


38. What steps are you taking to realize some of that?

Michael: The interface that talks to, I'm probably going to release it as an open source. It's basically just a Rails app that listens to a Perl AIMbot, but you can replace the Perl AIMbot that you can replace with any other chat bot that can talk xml-rpc out of the box itself out to the Rails app. It's a really simple "How come has nobody done this yet" kind of thing. It just takes a command from the chat line so the first word it sees is the command and it has a model that has all the models in it. It's really powerful and simple too.


39. What is your holy grail that you're after Thomas? Scriptaculous represents leaps and bounds forward. I find it hard to believe that you don't see a greater purpose (for it) ...

Thomas: I just want people to use it and be happy with it. So if they don't want to use it I'm happy to use it.


40. It's extracted right? You literally pulled the features out? How important to do you think that principle is?

Thomas: I pulled them out of Fluxiom. I think the principle it is extremely important, if you just took it and wrote it because someone might need it, it might be useful or maybe someone could use it, that's not going to work. If code comes out of some strange thought process without any real usage it's probably worthless.


41. Michael, do you feel the same way?

Michael : Yes. Doing the Bot to Rails app was similar to this. I had this need that wasn't bot-related. I had this need to be able to talk to my game with other interfaces. Of course you put xml-rpc interface in there and then I can come at it from any angle? It's double-duty like you build something in your app and then you go "I can release this to the public and then other people get use of it that is not going to hurt your app because they are going to know where it comes from." I know about Fluxiom, because I know about Scriptaculous. There's this association.


42. How do you profit from the activities that you're doing? Is that part of the equation?

Michael: No, I don't get profit off of at all. It's an open opportunity. I do freelance work. If they want to see what I'm doing I go and say "check this out and see what you think".


44. How much of the interest level for your products is just riding on the coat-tails of Rails popularity?

Michael: I've stopped and thought about that and I have direct evidence that some of the popularity of my game is because of Ruby on Rails; because at one point somebody within the core team of Ruby on Rails said "This application is written on Rails". Of course he talked about it going open source. Just calling it a Ruby on Rails application people are willing to check it out and see what it can do.


45. What's the next thing? Pragmatic Dave said you should learn a language every year? Have you heard that before? What's your language this year?

Thomas: I think next we're probably going to launch our product... We have new ideas and once we have one out we can easily put other products out.

Michael: I agree with learning per year, but I will probably use only one. Obviously you're going to be better off if you learn a new language.


46. What's going on with the ColdFusion community nowadays?

Michael: It's interesting as it seems to be climbing; people still pick it up and use it. I haven't followed it for about a year but the people who watch those kind of things have noticed that it still has uptake.


47. ColdFusion sits on top of a Java Stack nowadays.

Michael: You can run on any J2EE server.


49. Wouldn't it bear some similarity to JRuby on Rails, running on top of a JVM? Is there anything similar?

Michael: I didn't really like it when they moved to the J2EE platform of ColdFusion. It actually really slowed a lot of things down, made admin of things a lot harder. Obviously, it was a move that Macromedia made so that they could get more enterprise uptake. They wanted bigger customers in their commercial entity so it made sense. It was really difficult to try to solve these huge Java related issues that really had nothing to do with your ColdFusion app but you couldn't serve it because the J2EE server was just going bonkers or whatever. It used to be very simple and it's a real pain now.


50. IE is kind of a sore-spot isn't it and the Scriptaculous website does not even render correctly?

Thomas: It looks a bit funny.

Michael: actually does not support IE at all. I made it clear from the very beginning that I wasn't going to support it.


51. Do you support IE7? Any interests?

Michael: I have no plans to support IE ever again.

Thomas: Obviously we have a commercial product so we need to support to IE or we would cut ourselves.


52. What does the future hold for that? Do you know?

Thomas: I don't think they'll get it right. I don't get it, why they don't just take an open-source codebase like Apple did and just throw the old stuff away.

Michael: They can make really easy on themselves if they want to. It could be a good thing for Microsoft.


53. Is the Ruby on Rails community like Apple, Mac in terms of the design focus?

Thomas: Maybe it is a bit, because many Ruby on Rails programmers or developers really care about code beauty for example. Very short, concise, very beautiful code, it is something that has to do with design.


54. Does that translate into beautiful UIs? The UI for is just gorgeous.

Michael: Being a game it was really easy just to throw something in there. You don't have to think about it. Within the Apple community: we know our stuff it's good and that's why we love it. I mean, look at how many Ruby developers have Apples! I think if that they do like simplicity. We love simplicity, we don't like a lot of fluff, and we don't want to mess with stuff over and over again. We just want to build stuff that works and is clean and has appeal to the people that we build it for.

Thomas: It's really about choosing the right tool.

Feb 22, 2007