"Scripting" versus "Programming" -- and non-profits
Interesting discussion over at Slashdot right now about my most recent column ("Tools for the short hike") about "scripting" versus "programming." Programming and scripting are one and the same as far as I'm concerned, but the discussion does tend towards the religious at times -- who said there wasn't room for religion at work? The key outcome, whether you call it scripting or programming, is functional, maintainable, and reasonably well-documented code. A disciplined and talented programmer can write elegant object-oriented Perl or Java. Just as easily, an inexperienced programmer can stink up the joint with Java and C++. Good code is good code.
On a semi-related note, I spent this weekend and some of my "free" time last week helping a friend on a web application for a non-profit. The application, built in PHP with a mySQL backend, is a tool that will be used in homeless shelters here in the Bay Area to help people build professional job applications and resumes. While I'm doing this kind of thing very much part-time, others are doing it full-time, and I admire them even more after this experience. A couple of thoughts about the process:
- The availability of open source tools makes it possible to build a highly-scalable database application for a non-profit with few resources. Without mySQL and PHP, we would have been begging at the doors of commercial companies who are (understandably) focused on emerging from the current rough economic environment.
- Still, while open source tools can help a non-profit organization save on licensing costs, the administrative overhead of any web-based database application -- open source or otherwise -- is considerable. Tools like myPHPAdmin can help abstract some of the database tasks, but you're still dealing with SQL and programming logic in the end. This is not necessarily an easy thing for grant writers and non-profit managers who need to leverage technology to promote their programs in a decidedly digital world, but have no full-time technology mentors at their sides. The traditional "day at the soup kitchen" sort of volunteering is all well and good, but if you know technology, give the soup kitchen a call and see if your help might be best provisioned on a database project or with their web site. You might be surprised at the depth of their technology needs.
- Tools that generate code are needed by folks who are getting their feet wet with database programming (and programming in general), but they can generate serious messes instead. I spent a lot of my time this weekend commenting out extraneous PHP code generated by Dreamweaver (which is great otherwise). SQL select statements that returned result sets that were never used. . .things like that. While my friend might have been doing something "wrong," isn't it the point of GUI code generation tools to give novice programmers a way to build applications without knowing too much about the internals? If there was something that she needed to "know," I'm not sure I understand the benefit of such a tool to the novice programmer in this particular context. . . better to sludge through the code and take some lumps in a vanilla text editor, perhaps?
Posted by Chad Dickerson at
01:40 PM
Linux on my desktop -- making the temporary switch
A long break from the blog world, in part due to a fried hard drive and a seriously harried schedule. Ironically, the fried hard drive on my Windows desktop forced an answer to the question I posed in my last column:
how would [Linux] perform in an environment where people just want to get their e-mail, write Word documents, and crunch numbers in a few key spreadsheets?
As it turns out, quite admirably, thank you very much. The restore on my hard drive didn't take that long, but while I was waiting for that to complete, I rolled my desk chair over to the Linux machine I keep running off to the side. By the end of the day, I was so productive in the Linux environment that I didn't switch back when I had the chance.
While InfoWorld is still running Lotus Notes on its backend, I had already leveraged its IMAP capabilities (yay, open standards!), making the switch to the excellent Mozilla mail client. With e-mail at the ready on the Linux box running Mozilla (same interface I was using on Windows), I hardly missed a beat (except for the custom filters I had set up on the Windows machine, which didn't automatically migrate). I got a couple of PDFs in my e-mail that opened fine with xpdf and the two MS Word documents I received in the normal course of business worked perfectly in the OpenOffice Writer word processor. I use AOL Instant Messenger regularly, and the open source Gaim handled those duties without incident.
The experience made me realize that perhaps I am not as Windows-dependent as I think. If you think about it, maybe you aren't either. There are, however, notable exceptions that keep me in the Windows-for-work camp, but it's not the usual "I need MS Office" excuse. The blog software I'm currently using, which also supports Mac, keeps me on Windows. I was also out of luck late yesterday and earlier today when I wanted to download and begin fooling around with Groove Workspace with no functional Windows machine close at hand. Had I needed to access some of our legacy Lotus Notes applications, I would also have been stuck. For some reason, I've never been so compelled to make everything run under Linux that I've tried WINE, but one of these days I'll give it a try. For now, I'll get back to work in my Windows-but-liking-Linux-more-and-more-for-the-desktop world.
Posted by Chad Dickerson at
06:40 PM
What's wrong with this XML picture, Microsoft?
Recently, I wrote about how MS Word is part of the backbone of InfoWorld's editorial workflow, which makes Mac integration difficult because of the lack of XML support in Office for the Mac (see more below). I got a number of e-mails from people suggesting a wide variety of solutions to deal with the problem: 1) Dump MS Word, 2) use RTF (!!), 3) go all-Mac, or 4) go all-PC. This brought up an interesting point, and for those of you who aspire to be a CTO or CIO, perhaps an instructive lesson -- although the CTO has technology power vested in him, sometimes he can't simply can't change the way people work by fiat. Everyone at InfoWorld knows how to use MS Word, so with limited time, money, and training resources, Word it remains. And I'll never get all the Mac people to switch to PCs. And I'll never get all the PC people to switch to Macs. It's just a reality that you have to deal with in a real business.
Which leads me to this: what's wrong with this picture?
XML will be a native Office format as of Office 11, truly an exciting development and I'm certainly looking forward to that future -- but what about core XML services for the ascendant OS X platform? I don't see it here. As long as we all have heterogeneous environments (and in media, it's going to be that way for a while), I'll have to punt on developing enterprise-wide applications around Microsoft's XML vision until they throw in some OS X support.
Posted by Chad Dickerson at
06:38 PM