|
These two scientists, now justly famous for their software development achievements, attribute much of their success to Mac OS X and the Xcode tools that come with every Mac. Griekspoor says, Cocoa makes developing full-fledged, beautiful applications for Mac OS X fast and simple. Developing an application like EnzymeX on any other platform would have been a much larger undertaking. In fact, he explains, We couldnt have done this anywhere else, because an equivalent to the Cocoa application programming interfaces (APIs) is simply not there on other platforms. All the fancy things you can add in just one line of code with Cocoa would be so much work otherwise—it would take a year of work. Alex continues, With Cocoa, we can build applications within hours or days and start prototyping. With technologies like Core Data and Cocoa bindings, you can create an application in no time, and then focus on things that make your application really great. This allows you to start adding really cool things that you cant find anywhere else. Five years after they began developing Mac applications, Griekspoor and Groothuis have just completed their PhD theses and, by combining their science expertise with a keen sense of aesthetics, have managed to become renowned Mac software developers. They now refer to themselves and their company as MekenTosj, or Mac and Tosh, nicknames they were given by colleagues for their commitment to the Mac platform (from the Dutch pronunciation). To this day, the two post-docs dont consider themselves programmers. Rather, they are simply two scientists who saw a need, sat down with Mac development tools, and found that developing applications with Cocoa and Interface Builder was remarkably simple and powerful, resulting in attractive products that were easy for their fellow scientists to use. The Power of EnzymeXA complete DNA sequence analysis and editing program, EnzymeX is representative of a wide and growing variety of science software that developers are designing specifically for Mac OS X. For molecular biologists, a powerful, user-friendly application for dealing with DNA constructs is critical for day-to-day workflow. In the case of EnzymeX, Griekspoor and Groothuis believe there really is no comparable solution on other platforms; the only alternatives lack the clean graphical user interface (GUI) that makes EnzymeX special. A good example of EnzymeXs cataloging capability can be explained in relation to DNA cloning. The DNA cloning process entails digesting DNA with known enzymes, each of which has its own cutting pattern. Without EnzymeX, the scientist must look up each cutting pattern manually in catalogs and product guides from the enzymes manufacturers. The first core function of EnzymeX is to provide a database in which all these enzymes are listed, thereby automating the process for the scientist. Groothuis says, There was nothing else available to do this, which was what motivated us to start the project. We just always looked all this data up by hand, which was a lot of work. Then when we started combining these enzymes, we had to use catalogs from different manufacturers, which compounded the problem—there was no single source. Defining the ApplicationStep one was getting the catalogs into the program and developing a clean GUI so that scientists would actually want to use the tool. Griekspoor explains the next step (for EnzymeX 2) was adding support for double digests so that the system could find compatible conditions for dealing with two enzymes at once, in a single tube. Griekspoor says, The first thing was cataloging; the next thing was doing double digests. When you mix two enzymes in one tube, you have to make sure both enzymes are happy in the tube. So, you need to find compatible conditions. This feature, called double digest, was the next big thing for EnzymeX. Searching for one enzyme in a pile of catalogs was difficult enough on its own; trying to match two enzymes and their associated properties without the help of a computer was simply not viable, so this feature was a big value add for EnzymeXs user base. As Griekspoor explains, version 3 completed EnzymeXs transition to a comprehensive DNA sequence analysis and editing program. He says, In version 3, we went to the last question people had, which was, Can I use this to figure out where to cut? This would allow users to plan the experiment ahead using EnzymeX 3; you could add your piece of DNA and do virtual digestions. EnzymeX Plug-insAnother attractive new feature in EnzymeX 3 is its plug-in software development kit (SDK), with which other developers can extend EnzymeXs functionality. EnzymeX can even download and dynamically load plug-ins automatically without restarting the application. The idea for this actually started with another of Griekspoor and Groothuis applications, 4peaks. Another developer, John Timmer from the Sloan-Kettering Institute in New York City, expressed interest in extending the platform. Alex says, John contacted us with specific needs that led us to developing the plug-in SDK for 4peaks together. When we made version 3 of EnzymeX, it was easy in Cocoa to just add the stuff from 4peaks directly into EnzymeX, so the plug-ins also work there. Additional Mac OS X SolutionsAs Griekspoor and Groothuis realized how easy it was to develop new applications with Xcode, Cocoa, and Interface Builder, they began branching out into additional projects. One of the first applications Griekspoor began developing is called Lab Assistant. Lab Assistant is designed to help scientists organize their experiments in an alternative manner to the usual combination of multiple timers, stickies, and a paper lab journal. Much like EnzymeX, the motivation for this project was to solve a problem that popped up in the developers everyday life. Tom laughs and says, Alex started programming it more or less because we would bike home and realize we forgot to take the bacteria out! He continues, We developed 4peaks as a DNA sequence analysis program. Some sequence viewers for Mac OS 9 were available, but none for Mac OS X. Alex found some source code for how to read these files, and in less than two weeks, we had the program ready. Advanced Features, Improved SpeedGriekspoor likes to emphasize his assertion that he and Groothuis are biologists, not programmers, so performance tuning wasnt really on their minds when they started development on EnzymeX. In EnzymeX 1.0, the goal was simply to make things work and create a user-friendly environment. Griekspoor explains that, after becoming more experienced with the Xcode developer tools including the profiling tool Shark, they started spending a bit of time on performance and learned that speed improvements were easy to find and easy to implement. He says, Shark is great. It shows you where the program is spending the most time and also advises you on alterations. Im sure a more experienced programmer would see more. We dont use many of the fancy optimizations, but it is a big help for those of us who arent advanced programmers. We can immediately pinpoint the right part of the program for our optimizations. By using Shark, we actually got 10 times faster performance. Making the Move to Intel, and Preparing for LeopardThe switch to the Intel processor was also an easy transition for Griekspoor and Groothuis. As self-professed non-developers, it seemed an architecture change could be a hurdle. However, Xcode made the EnzymeX transition as simple as selecting Universal as a compiler option. They reference 4peaks as the first application they moved over—a process that took all of half an hour at the WWDC Intel Binary Lab. This, too, would have been a simple recompile, except for one C library that was built outside of Xcode. Nonetheless, by the time the Lab was over, they had a working version. Griekspoor explains, We had fewer problems making our applications Intel compatible than we did in the transition from Panther to Tiger—and even that was easy. We just had some visual glitches to fix for the operating system update. The Intel switch was even easier. Griekspoor and Groothuis are taking particular note of the next operating system update, Mac OS X Leopard, scheduled to ship in the spring of 2007. The advances in Interface Builder and the updates in Xcode will be a huge benefit to their work. As Griekspoor explains, Especially Interface Builder, which looks much improved. The new animation stuff also looks really cool. It is obvious from our work that we care about interfaces, so it is great that you can create more flexible and dynamic interfaces with Core Animation. That is something we are really excited about. Leveraging Mac OS X ToolsWhen asked why so many developers and users in the science community like Mac OS X, Griekspoor is quick to point out the usability of Macs. He says, Scientists want a computer that just works so they can spend as much time in the lab as possible without having to solve computer problems. That is why the Mac is very popular in our group. Many scientists cite the ability to leverage UNIX power and desktop productivity applications side-by-side, whereas Griekspoor notes the fact that he can leverage Mac OS Xs great developer tools to hide the intricacies of UNIX from his user base. Alex says, We have written quite a few GUI wrappers in Cocoa around UNIX applications, which is a great plus. In our institute, 90% of people have no experience with UNIX, so they dont use command-line applications. He gives an example: We had one application in particular where it took me a single day to write a little GUI wrapper around it, and then the people in our institute started using it and finding great results. They ended up publishing a great article, which really shows the power of this. The bottom line for Griekspoor and Groothuis is to make science user friendly. Each of their applications solves a real-world problem that either they or their colleagues have experienced. Some things will change a bit for these two new PhDs, but they plan to continue the development of great science applications for Mac OS X. For more information about EnzymeX and their other products, see the mekentosj website. |
|