A Trifle Absurd
Matthew Morgan’s software notions
Independent Mac Development
28 September 2005 at 17.05 • in Mac, ProgrammingI want to learn about life as an independent Mac developer from those who live it. CocoaRadio is a good resource for that: Blake Burris has made it his mission to track down small-shop Mac developers and pick their brains.
Listening to Brent Simmons on CocoaRadio led me to macsb, a Yahoo group devoted to Mac small business. It leans toward the practical details of running a small software business and making decisions about licensing, activation, etc.
(When I searched for “macsb” just now, Google asked “Did you mean MacsBug?” No. No, I don’t mean MacsBug, and I will never mean MacsBug ever again. [shudder] But then, some things never really change: I spent a chunk of the morning in gdb trying to figure out why PyObjC was crashing on me.)
Dazzle
23 September 2005 at 19.21 • in HaskellOn the heels of my decision to use Haskell, there’s an encouraging paper: Haskell Ready to Dazzle the Real World, by Martijn M. Schrage, Arjan van IJzendoorn, and Linda C. van der Gaag. From the abstract:
Haskell has proved itself to be a suitable implementation language for large software projects. Nevertheless, surprisingly few graphical end-user applications have been written in Haskell. Based on our experience with the development of the Bayesian network toolbox Dazzle, we argue that the language is indeed very well suited for writing such applications.
The paper gives examples of the abstractions used in Dazzle, most of which generalize to any GUI application. I particularly liked their method of interleaving progress-bar updates with pure computation.
Mostly, though, it’s just heartening to see a real example of an ordinary GUI app in Haskell—and to know that the authors are delighted they chose Haskell. It gives me hope that I’m on the right track.
Why I Chose Haskell
20 September 2005 at 17.10 • in Trifle, Languages, HaskellI’m trying to build an application to sell, with the highly practical goal of making a living. So why on earth would I pick a wacky academic programming language that hardly anybody uses?
Because I need leverage. I’m developing Trifle on my own, so I need the most powerful tools I can find. Haskell is a very powerful and high-level language: my code works sooner than I expect, and is shorter and simpler than I expect.
Because it fits the situation. Of the various high-level languages I had to choose from, Haskell was the best fit: it has an Objective-C bridge, an active user community, and decent performance.
Because I can. At a regular programming job, the language choice would be a given, handed down from on high (like many other choices). One of the biggest benefits of working independently is getting to make my own decisions. I think Haskell is the right choice, so I’m going to use it. Where else would I get that opportunity?
Choosing A Language, Again
19 September 2005 at 18.28 • in Trifle, Languages, Programming • Comments (3)Making Trifle a commercial app gives me another language dilemma, the four contenders being Objective-C, Python, Scheme, and Haskell.
Objective-C just doesn’t cut it: it lacks type safety, garbage collection, and a REPL. There are ways to mitigate those problems, but ultimately, I want a higher-level language.
Python is out of the picture—I can’t hardly develop a closed-source app if I have to ship the source to run the app. (It might be possible to ship just bytecode, but that’s still a rather mild form of obfuscation.) Besides, try as I might, I just can’t muster much enthusiasm for long-term coding in Python.
Scheme is more promising: I’d have several compilers and interpreters to choose from, I could use real macros, and I might even be able to re-export it as a scripting language for Trifle users. But I’d have to build my own Objective-C bridge.
Haskell, to my surprise, is the winner: it has an existing Objective-C bridge, and would likely run faster than most Schemes. On top of that, it’s one of my favorite languages; I’m eager to build a real application in it.
Trifle as a Commercial App
15 September 2005 at 20.27 • in TrifleI’ve decided to change tacks with Trifle and develop it as a commercial application. I’ve been inspired by the example of independent Mac developers that manage to make a living by selling software, and I hope that I can one day do the same.
This is a bit of a mental shift. I’ve reflexively assumed all along that Trifle would be open source, but switching to the Mac (and deciding to make Trifle Mac-only) has opened the door to this new option.
But of course I’m not abandoning the open-source world. Trifle will no doubt use several open-source components, and I look forward to contributing bug fixes and perhaps even features to those components. And if and when I get back to Overleaf, it will definitely be open source.
CascadiaCon
9 September 2005 at 16.02 • in WritingTen days of blog silence—so where have I been? First I attended CascadiaCon for several days, and since then I’ve been in think mode and haven’t been programming.
I’m an SF-con newbie; my only prior con-going experience was Westercon in 2003. I can find my way around, but so far I’m too introverted to socialize. Still, it’s a lot of fun, directly and indirectly. Directly, ’cause I get to be around writers (including some of my favorites) and hear what they have to say; indirectly, ’cause I get to marvel at the practitioners of pastimes that I’d never go for, like filking and costuming.
All that exposure to writers gets me thinking about writing. I decided I was done writing fiction after last year’s NaNoWriMo, but even before this con the desire to write was sneaking up on me again. Now I’m planning to fit some short-story writing into my daily routine.