I interviewed Brent via email, and our extensive discussion covered a wide range of topics, including: Apple’s treatment of small Mac developers; deciding which features would separate the Pro and Lite versions of NetNewsWire; Brent’s previous experience working forUserLand软件; and much more.
约翰格鲁伯：RSS聚合已经存在了数年But its popularity has skyrocketed in the last yearOne could definitely make the case that NetNewsWire has played a significant role in the RSS explosion, but I also think it’s the case that NetNewsWire Lite debuted in the right place at the right time.
Prior to NetNewsWire, I had always seen RSS syndication as a technology that was mostly useful for publisher-to-publisher communicationLike the way that Slashdot uses RSS feed to populate their “Slashboxes” on their customizable homepageWhen did you begin thinking about creating a personal RSS aggregator?
布伦特西蒙斯：我不确定何时开始考虑个人聚合器The idea came up several times and disappeared several timesI was working at UserLand, and we had a server-based aggregator (My.UserLand.Com) — and then we developed Radio UserLand’s news aggregator, one of the first personal aggregators.
But even before we started working on Radio’s aggregator I had seen Chuck Shotton’s Gossip, which was a sort of personal aggregatorI don’t recall if it used RSS or not: it may have done screen-scraping onlyGossip was different from Radio (though browser-based) and different from NetNewsWire.
As a science fiction reader since I was a kid I always knew that “personal newspapers” were comingThat’s an old science fiction predictionI didn’t know what they’d look like — and they’re still in the early stages — but they’re here nowSo I always thought of RSS syndication as publisher-to-reader rather than publisher-to-publisher.
格鲁伯：NetNewsWire的基础是多少您wanted in an aggregator, and how much was what you thought the public would want?
西蒙斯：The basic layout — the three-paned thing, like Mailsmith or Outlook — that’s what I wanted我想要一个漂亮的OS X桌面应用程序。
I hoped that the public would want it too, and I was utterly pleased when the first people who saw it liked it a lot.
但是很多功能都来自人们的要求For instance, the idea of having groups and of having a feed that shows all new items — that comes from usersMy original vision was just a flat list of sites.
格鲁伯：One problem you faced when NetNewsWire debuted is that most Mac users had never seen or used a news aggregatorIt’s really a new class of application, and one which I think is hard to explain the need for without actually using it for a few daysWere you worried at the outset that NetNewsWire wouldn’t take off?
西蒙斯：是的 - 但不是太worried, because if it didn’t take off there are always plenty of other ideas.
Some of the things that helped (I think) were that it took really no configuration to get started只需启动它，你就会得到一些消息借助网站抽屉，您可以轻松开始自定义Feed列表。
But the biggest thing was probably just that the interface is so familiar — millions of people have used this interface before with email or UsenetSo while the concept of a news aggregator may be new to lots of people, the app doesn’t feel (I hope) like some radical departure into the far reaches of geek space.
另一件事是做标记：“更多新闻，更少垃圾Faster.” That came to me with almost no effort.
Now, maybe nobody reads the tag line — but if they do, they understand the claim that this software helps you keep track of more news with less work in less time一个简单明了的利益声明。
I don’t really know if that has anything to do with NetNewsWire’s success so far or not我想这么想。
格鲁伯：我同意In fact, I think the entire Ranchero web site is just terrificIt is everything a developer’s web site should be, and nothing moreThey say you shouldn’t judge a book by its cover, but I generally find there’s a high correlation between the design of a developer’s web site and the design of their softwareNot necessarily the质量他们的软件，但设计Most web sites are over-designedSo is most software.
西蒙斯：很多不同的小东西It could be a bit more attractive, perhaps — but I’m not a graphics guy, so that part isn’t easy.
I’d like for pages like the NetNewsWire home page to be a bit less clutteredThere’s too much stuff there, and it will only get worse unless I do something about it.
格鲁伯：I think that speaks volumes about your sensibilities, since the NetNewsWire home page is already a lot less cluttered than most web pages.
西蒙斯：我想为其他开发者提供更多资源I have a couple tutorials and some open source classes (for parsing RSS and OPML), and I’d like to do more of thatIf I have some success with NetNewsWire and make money, it’s good karma to be as generous as I can, not just with people who use my software but with other developersAs a developer I’ve always appreciated when other developers do that, so I try to do it tooSo, whenever I can make time I plan to add more tutorials and open source Cocoa code and things like thatWell, even if there’s no real karma at work at least it makes me feel good and it’s fun to do.
And then there are some little things like making the bug tracking system easier to use (and probably making it available via RSS).
The main thing is to just keep reducing clutter, making it easy to use and easy to read, and making sure there’s good stuff there — news, software, tutorials, sample code, docs, and so on.
格鲁伯：NetNewsWire only supports RSS; it doesn’t do screen-scrapingHave you considered adding screen-scraping capabilities to NetNewsWire?
西蒙斯：我可能会做的是间接支持屏幕抓取One feature request has been to allow feeds that are actually local scripts — Perl scripts or AppleScript scripts or whatever — and those scripts would then be run instead of being readWhatever the script returns should be a valid RSS feed.
This way anybody could write a script that scrapes VersionTracker (for instance) — and then you could share that script with other people if you wanted to.
格鲁伯：这是一个有趣的解决方案I think it’s a good thing that NetNewsWire only reads RSS feeds — that makes it easier to understand the scope of what it does.
西蒙斯：究竟One of my philosophies is that any piece of software should be describable in a sentencePhotoshop是一个图形编辑器Nisus Writer is a word processorNetNewsWire Lite是一个RSS阅读器NetNewsWire Pro is an RSS reader and weblog editor.
刮网容易破损All the scraped site has to do is change its format and the screen-scrapers stop workingI’d check my email in the morning to find a hundred emails telling me that NetNewsWire has a bug because site X (a hypothetical scraped site) doesn’t work anymore.
I want sites to use RSS rather than just say, “Hey, people are scraping us, that’s fine, we don’t need to do anything.”
我不想在网站上遇到麻烦不like being scrapedIf you provide RSS, then that means you don’t mind if people read your sites with an RSS readerIf you don’t provide RSS, I can’t assume that you’d consent to having your site be scraped.
In fact, with just a very few exceptions, there aren’t even any RSS feeds in the Sites Drawer that are generated by scrapers.
格鲁伯：Plus, it shows that if you want to have any control at all over your site’s RSS feed, you need to produce it yourselfBecause if you don’t, someone else is going to scrape it, and you won’t have any control over itIt’s getting very close to the point where RSS feeds are not optional.
西蒙斯：RSS feeds are not optional — I’ll think I’ll personally go to every web developer’s house, knock on their door, and tell them that RSS feeds are not optional.
格鲁伯：NetNewsWire seems to have arrived at the right place at the right timePrior to the past year, RSS feed were, for the most part, only available from commercial web publicationsHowever, with the explosion of blogging software and personal weblogs, RSS is now easily available to personal publishersIn fact, my guess is that NetNewsWire users are tracking way more personal RSS feeds than they are commercial onesDid you foresee this when you started work on NetNewsWire?
西蒙斯：I always figured that personal weblogs would way outnumber any other type of RSS sourceI worked on Manila when I was at UserLand, and we added automatic RSS generation early on, and lots of Manila users were publishing personal weblogsAnd then when UserLand did Radio’s aggregator it was clear that personal weblogs outnumbered other sources by a large majority.
It’s cool by me, by the way — I’m totally glad to see the huge number of personal sites我希望世界上的每个人都有一两个博客（并且它们都可以通过RSS获得。）
格鲁伯：你是如何决定NetNewsWire的正常价格 - 39.95美元？
西蒙斯：Part of me thinks the price is too high, and part of me thinks it’s too low, so maybe it’s rightDeciding on a price is harder than programming or doing user interface or tech support or anything else这很难It’s tough partly because I just want to give it away, and partly because I want to keep feeding my cat.
格鲁伯：我很乐意告诉你该怎么做But I think the price is very fair我当然不会更低。
There’s a large contingent of users who are going to gripe about any price that isn’t zeroReading the user reviews at VersionTracker, I’ve noticed that unless software is free, there are总是numerous posts advocating either a lower price, making it free, or recommending that everyone use some other application that is free (even though it might not be as well done).
这些人都是白痴，他们不能高兴You can put software users into two distinct groups: those who will consider paying for commercial software, and those who will决不pay for software.
The first group, those who will consider buying software, are the only people commercial developers need to worry aboutLike any widely-generalized grouping, there can be a large variation in the criteria these people use to decide what to buySome won’t hesitate to buy very expensive software from companies like Adobe, Macromedia, and MicrosoftSome won’t spring for $600 packages, but will happily buy lower-cost software (which usually comes from smaller independent developers)Maybe they don’t have a lot of moneyMaybe they feel good about supporting small, privately-owned enterprisesBut regardless, they’ll at least considering paying for good software.
But trying to appeal to the second group, those who will not buy software under any conditions, is a terrible ideaBy definition, you can’t win — they’re not buying anythingThe problem is that there are a lot of people who fall into this category, and many of them are quite vocal他们通常也是非常不诚实的They will say things like “I’d pay $20 for this, but not $40$40 is ridiculous.” But if you cut the price to $20, they will tell you it ought to be $10.
What many of these people do not want to admit, even to themselves, is that they are simply cheapskates.
西蒙斯：One of the things I read sometimes is that people who develop software are “greedy.” And I’ll probably read that, or something like that, about meEven though I’ve put nearly a year of my life into NetNewsWire, and there’s a freeware version, and the price is only the cost of a couple pizzas and a pitcher of beer.
但我已经为此做好了准备When I worked at UserLand there were always people griping about price, and I learned that it’s a fact of the software business, not something to take personally.
我也得到价格太低的反馈People remind me to price the app what it’s worth, that the price sends a message about the quality.
格鲁伯：I see a lot of software that’s priced in the $10-20 range, and I think that’s almost always a bad ideaAt least if the developer is trying to make a living selling the software (or even a significant part-time supplement)如果你考虑一切potential user of your software, something like $15 might seem like a reasonable average for what they’re willing to payBut if you only consider the aforementioned first group — discounting people who will never buy software — the threshold goes much higher.
我理解的吸引力自由from the users’ perspective, because they don’t have to pay anythingI like free just as much as anyoneBut I also want talented Mac developers to be financially successful, so that they can spend time doing what I want them to do: writing software.
I also think developers can address this issue by doing freeware “lite” versions of their software我猜你同意。
顺便说一下,我也喜欢免费的东西But I’m a generous person — I like to give away as much as I can for free, and I don’t mind paying for software that I like, especially when it’s from a small developerAn example isMscape的Iconographer我完全依赖它It only cost $15我很乐意为此付出更多。
格鲁伯：How did you draw the line between which features are only in the Pro version?
西蒙斯：The first obvious line to draw was that Lite is read-only and Pro is read/write简单易懂的区别。
But the Pro version also includes some advanced reading features, such as the Find command and date displayIn future versions there will be more such features added to the Pro version, including the “Kottke view” — where titles and headlines are together in the same pane rather than separated into two panes.
格鲁伯：Did you ever consider putting a limit on the number of subscriptions you could have in the Lite version?
西蒙斯：也许一秒钟我讨厌这样的限制It’s one thing to not have an entire feature like the Weblog Editor, but quite another thing to arbitrarily limit the number of subscriptionsDoing that would, in my mind, make the Lite version no more than an advertisement for the Pro version.
格鲁伯：Did you set out from the beginning with the intention of creating a commercial version of NetNewsWire? I assume so, since the free version made its debut with the “Lite” suffix.
西蒙斯：是It was the intention from the beginning, and that the main difference between the full and Lite versions would be that Lite is read only, while the full version is also a writing tool.
格鲁伯：You’ve stated that one of your models for the relationship between the freeware NetNewsWire Lite and the commercial NetNewsWire was BBEditDoes Bare Bones’s recent decision to discontinue BBEdit Lite give you pause?
西蒙斯：For about a second — but then I read (I think on your site) something to the effect that after so many years, BBEdit is a very well-known piece of softwareThey don’t really need BBEdit Lite to get people to know about BBEdit.
当我看到他们继续制作BBEdit Lite时，我很高兴I think that’s the right thing to do.
格鲁伯：There’s a tricky calculus involved when creating a freeware “lite” version of a commercial productOn the one hand, you want to the free version to be capable, useful, and popular, thus creating good will and increased popularityBut on the other hand, you don’t want the free version to be so good that it hurts sales of the commercial versionNow that NetNewsWire is shipping, how well do you think you’ve balanced the differences between NetNewsWire and NetNewsWire Lite? Would you do anything different with NetNewsWire Lite if you could start over again?
西蒙斯：I think I’ve done a good job on the differences between Lite and the full version我很幸运，很明显很多。
I can’t think of anything I should have done differently with NetNewsWire Lite, noThe differences between the Lite and full versions will grow over time, as I add new features to the full version.
That’s not to say that the Lite version won’t ever get new features: it willFor instance, I’ve been thinking about adding Rendezvous support, and it’s likely the Lite and full versions both will include Rendezvous features.
格鲁伯：You have a lot of respect for your users — it shows both in your comments and in your software designI think it’s a common misconception that well-designed human interfaces should be geared toward making things easy for idiotsI think the opposite is true — the best interfaces are those which make things easy for smart people.
Who do you have in mind as the target user when you’re designing software?
西蒙斯：I tend to think in specifics, I think of people I know and the kinds of things they might like(I also think of myself, of course.) I know lots of smart people who love good user interface, who love the web, who love to read, who love to writeThat describes me and it describes many thousands of people.
西蒙斯：Let’s go way back — I got my start programming Apple computers in 1980, when my parents bought an Apple II PlusBoth my parents were programmers (my Mom still is), so I learned lessons like “goto considered harmful” at the dinner table.
Then later as a teenager I took a break from programming, until returning to programming in 1994 with my first MacintoshAt first I tried to learn AppleScript, and it gave me gas, and then I picked up Frontier — and I took to it like a bird to air.
Despite serving similar purposes on the surface, however, Frontier and AppleScript are very different beastsThe languages use very different styles of syntax; AppleScript attempts to be as much like written English as possible, whereas Frontier uses an object-oriented dot-notation.
What are your thoughts on how Frontier has evolved, and its current status?
西蒙斯：I first started using Frontier shortly after the freeware “Aretha” release这是Frontier 4.0b1，如果我没记错的话It was before the HTML framework and ManilaIt did have a CGI Framework, which I fell in love with immediatelyMy main interest was in doing dynamic web sites on Mac-based servers (running MacHTTP/WebSTAR).
CGI框架非常简单易用Your scripts took one parameter, a table containing elements of the HTTP request, and returned HTML text小菜一碟Though I haven’t written a Frontier CGI in years, I could probably sit right down and do it without having to look up any docs它被烧到了我的大脑里。
I think UserLand was right to realize that competing with AppleScript as an automation language was just not going to happenNever mind issues of merit (which are hard to quantify with such different systems) — but AppleScript came free with every MacintoshIf you write an AppleScript script you know you can distribute it without worrying that people have AppleScript, since everybody has AppleScript.
But, more than that, I think making Frontier a system for web publishing was and is the right moveReason #1 is that web publishing is way more funAnd it turns out that Dave Winer was right back in 1996 — that templates and scripts and so on are going to play major roles in the future of web site building(He wasn’t the only person who thought that, of courseBut not everyone who thought that developed software that did that.)
格鲁伯：我不得不承认我当然不同意DaveMy problem, and I think it was shared by many others (and maybe still is), is that when the web appeared I was already very experienced with desktop computers and hierarchical file systemsI understood files and folders, and I also easily taught myself HTMLTherefore, I saw a web server as a disk full of folders and HTML files (and GIF images)My unit of measure when creating a web site was the individual HTML file.
It ends up this is a terrible way to make a web site — at least if it’s a web site you plan to update regularlyWhen you’re managing all your files by hand, it’s hard to update linksNot hard meaning “difficult to understand”, but hard meaning “pain in the ass”The whole point of weblog software is that it takes away the pain-in-the-ass part of updating a web site frequently.
西蒙斯：Even before the term “weblog” existed, people were building weblogs with FrontierFor instance, here’s NewsPage, which was published in January 1997:
Another bit of software archaeology: NewsCenter by Phil Suh was another weblogging tool built in Frontier before the term “weblog” existed:
And you could go back even farther and find AutoWeb and Clay BasketThey weren’t weblog tools exactly, but they were early web publishing toolsAutoWeb was billed as “The Newsroom System for the Worldwide Web.”
格鲁伯：I remember Clay Basket, and I thought it was overkill, useless for someone who knew how to hand-code HTMLBut now I understand — the basic unit of measure on the web isn’t the file, it’s the link.
Part of me thinks that Frontier could have used a super-nice GUI front end to its HTML frameworkI haven’t used Fog Creek’s CityDesk, but I think something along those lines might have grabbed Frontier lots more users back in 1996-1997But who knows? I’m just speculating.
格鲁伯：我同意I think the lack of a comprehensive GUI front-end made the barrier to entry a bit highIt meant you had to read something to get startedMost people are only going to try something new if they can double-click an app icon and poke aroundIf they like what they see, they might read the documentationBut they won’t read before they get started.
格鲁伯：The AppleScript-vs.-Frontier thing reminds me that every few years the same theme recurs — that Apple hurts developers by including competing products in the Mac OS像Sherlock一样（vsWatson), and now SafariOr Mail, which may have crippled the market for commercial Mac email clients — a market that was once quite vibrant.
I’m not complaining, necessarily, because I don’t know what else Apple could have doneThey need to bundle a free email client with the system, because people rightfully expect to be able to “do email” as soon as they get their computer hooked up.
I think Apple’s struck a very good balance with Safari, which although it competes with every other Mac web browser, is also going to result in a very nice HTML rendering library for all Mac developers to use我认为OmniWeb尤其可能更好如果他们采用WebKit作为他们的渲染引擎。
As a small Mac-only developer, what are your thoughts? Do you worry that Apple is going to create an RSS aggregator now that NetNewsWire has become a hit?
西蒙斯：我同意 - 苹果有一些东西具有去做One of the biggest complaints about OS X was the slow browsing experienceSafari totally changes that, and that’s going to help sell Macs.
And as a developer I want to be able to use the Safari renderer in NetNewsWire.
But then there are the weird cases: I don’t know that Sherlock had to happen the way it didWatson is such a good product, why not just make a deal and bundle it? Or make a respectable offer to buy it?
苹果可能会使RSS聚合器,我完全意识到My hope is that they’ve learned from the Watson thing and either don’t do it or, if they really want an RSS aggregator, they make a deal with me.
But I think they won’t do an RSS aggregator any time soon for a couple reasons:
RSS阅读器仍然有点令人讨厌Much less so than they used to be, but it will still be a while before they’re seen as a mass-market thing like browsers and email apps.
Though there are thousands of RSS feeds on the web, most of them are weblogs, and that’s just a little too anarchic even for Apple(Or any largish company.) I can imagine Apple’s default subscription list as being only sites like Salon and so onWould they even have a Sites Drawer (or equivalent) which lists hundreds of weblogs? (Some of which are critical of Apple or may contain offensive language or pictures.) I doubt it虽然我完全错了Apple has to think about John and Jane Doe, while I’m lucky, I get to write software for John and Jane Einstein我承担了大公司无法承受的风险。
My hope — and all one can do is hope — is that Apple realizes that lots of great software from outside Apple is crucial to the success of OS XI think they do realize that, while at the same time they have to do things like Safari tooThey have a balancing act to perform, and they slip sometimes: it’s hard to walk on that high-wire.
西蒙斯：I have experience with several different languages: C, C++, Objective-C, Java, Python, UserTalk, PHP, even a little HyperTalkI still have trouble with AppleScript(I like AppleScript, it’s just that my brain is wired in such a way that makes AppleScript very difficult.)
I used to feel exactly like you do, then it eventually started clicking对我来说最大的不同是BBEdit 6发货时It adopted an object-model approach to scripting, as opposed to the more simple command-and-verb approach used in previous versionsIt broke most of my existing scripts, but once I learned my way around the new object model, everything just started clicking, and I felt like I “got it”.
西蒙斯：Good! Maybe if I keep trying I’ll eventually get it too我希望。
The biggest problem for me is that it seems like English, but it isn’tThere’s a dissonance there — like playing a C and D note together on the pianoI prefer my programming languages to be at least a minor third away from English: a fourth or fifth is even better(And I think UserTalk, C, PHP, etc五分之一。）
格鲁伯：我认为这是一个准确的批评AppleScript is the world’s easiest-to-read programming language(Assuming you can read English, I suppose.) I think this comes at the expense of being hard-to-writeIt’s easy to open an existing AppleScript, figure out what it’s doing, and then slightly tweak itBut it’s hard to start from scratch and get all the syntax just right.
Let’s say, as opposed to Perl, which once you learn it is very easy to write一旦你掌握了Perl，你就是什么认为will work probably does但Perl因难以阅读而臭名昭着。
西蒙斯：I don’t use Perl myself — the very look of it has kept me from wanting to use itI’m sure it’s every bit as cool as people who love it say it is但我更倾向于使用Python，这更适合我。
西蒙斯：I’ve done a lot of web development, most of it in Frontier, though my current web site is done with PHP and MySQL.
西蒙斯：是It was the first thing I did once I started out on my own last yearPartly for the fun of learning a new language and database system, partly to expand my skill set, and partly because I wanted to run on Linux.
但也出于政治原因As a newly independent developer who planned at the time to make software for people who read and edit weblogs, I didn’t want to be seen as being particularly tied to any one weblog system or vendor.
格鲁伯：那很有意思I totally understand the desire to roll-your-own from a tinkerer’s perspective我也很受诱惑(If I’d gone that route, however, I’d still be working on the system, and Daring Fireball wouldn’t yet existI’m a horrendously slow programmer.) But I hadn’t thought about the political position you’re in as the creator of NetNewsWire.
西蒙斯：我考虑过向公众发布我的系统But I haven’t done so for a number of reasons:
已经有很多很棒的系统了I don’t think my system has anything unique to add.
As a former UserLand employee, I felt a karmic obligation not to compete in the area of creating weblogs(I don’t think I had a non-compete clause, but then again I didn’t look for it.) That’s what Radio and Manila do, that’s UserLand’s bread-and-butter.
It would mean that NetNewsWire would work best with my weblog systemOr at least people would see it that wayThe way it is now there’s no favoritism, and that’s important to the product and people’s perception of the product.
西蒙斯：1996年初，UserLand发布了MacBird，我很喜欢它In some ways it was like a mini-Cocoa — you had an interface builder (the MacBird editor) and a place to write code (Frontier)I put up a web site about MacBird and became an active member of the Frontier community.
Soon after that I helped Dave with his 24 Hours of Democracy project, and then worked with him on a few other things, and some time later I was hired as a contractor to do things like ContentServer (this was probably early 1997)后来我被聘为正式员工。
西蒙斯：In my last year or two at UserLand I started working on the Frontier kernel — and that was totally funMuch of what I did was just fixing little glitches here, particularly UI glitches in the outliner and so on, but I also did some things like kernelizing the OPML parser (based on Dave’s original scripts) and adding some new features like support for icons in the outliner.
格鲁伯：Did you only work on the Mac version of Frontier, or were you working on cross-platform code as well?
西蒙斯：我也在使用Windows版本I wrote a fair amount of Windows-specific code, evenAnd I learned that I don’t really like developing for Windows very much.
I suspect that many Mac users are like me, that they’re driven in part by aestheticsAnd they want to use software written by people who are driven by aestheticsWindows不美观。
格鲁伯：一点也不I think the fact that you’re only writing Mac software is tremendously interestingThe conventional wisdom holds that commercial developers should concentrate on Windows, because the market is so much largerAnd that Mac software should be an afterthought, and possibly ignored unless you think you can obtain a significant return on investment.
One of the reasons I develop for OS X is that, when it comes to user interface, this is the big leagues, this is演出. That’s probably what Joel would call an “emotional appeal” — and to call it that, that’s fine by me.
格鲁伯：I think the biggest difference between the Windows and Mac software markets is that on Windows, features sellThe app with the most features usually winsThis has certainly been Microsoft’s strategy with regard to software design, and it’s ended up being the most profitable business strategy in the history of capitalism.
然而，在Mac上，它的设计最重要The best-designed app usually winsAnd I don’t mean “design” in the cosmetic sense (although that’s part of it)I mean intuitiveness, consistency, and usability.
I also think that the best Mac software is designed by the developers themselvesWhereas on Windows, a lot of commercial software is designed by “product managers”, and the programmers just write codeIs this part of the appeal of running your own company — that you get to do both the design and coding?
西蒙斯：绝对我喜欢做设计和编码And doing the web site and writing documentation and emailing with users.
I like pretty much all aspects except things like accounting and setting up the e-commerce system — but I’m lucky, Sheila is wonderful at that stuff(She’s a major key to understanding Ranchero Software, even if she’s very behind the scenes.)
格鲁伯：When working on Frontier, did you mostly write UserTalk or C? I’ve always thought that must be one of the cool things about writing a programming system — eventually, you can start using your own language to write itself.
西蒙斯：我大部分时间都在UserLand工作，我写过UserTalkIt was just the last year or two where I did a bunch of C programming.
If you look through the source code to Manila, you’ll see my initials (PBS) in lots of placesThat’s one area where I wrote a bunch of UserTalk code(P代表彼得。)
格鲁伯：我假设您在Objective-C中编写了大部分NetNewsWireHow do you like it as a language? Do you miss UserTalk?
西蒙斯：我已经逐渐开始喜欢objective - cIt’s not as daunting as it looks — it’s actually quite simple有点像带括号的Python。
我不会错过UserTalk，不I spent six years or whatever writing mostly in UserTalkThat’s not to say UserTalk is bad — it’s cool — but just that I’m happy with what I’m doing now.
格鲁伯：Dave Winer是Mac开发人员中的佼佼者The damn kids of today might not recognize it, but更多is without question one of the biggest smash hits in Macintosh historyPeople still use it today, and it hasn’t been updated in, what, ten years? What was it like programming for him?
西蒙斯：对于MORE的最后更新时间，十年听起来是正确的Let’s see — I actually have it on my hard driveGet Info tells me that MORE 3.1 was created Mon, Dec1991年2月I’m not sure if there was a version after 3.1.
MORE也是我最喜欢的软件之一我热爱它J'adore更多没有其他大纲已经接近(As a mini-homage to MORE, the outliner in NetNewsWire can be set to be somewhat MORE-likeYou can use + and - instead of icons, and you can set it so a double-click expands and collapsesBut the outliner in NetNewsWire has miles to go before it would ever come close to being as good as MORE.)
戴夫的编程很棒Dave has a reputation for being a bit pricklyBut he’s a great teacher, and not so prickly as a boss as his reputation might lead you to think.
That’s not to say there weren’t days when I wanted to tell him to fuck off这是正常的，任何老板。
A good teacher knows when to lead someone by the hand through learning something and knows when to tell them to dive in and just leave them alone戴夫擅长这一点。
One of the best lessons I learned from working for Dave Winer was to be utterly ruthless about simplicity.
That may sound surprising to anyone who knows how complex Frontier and even Radio UserLand are under the hoodBut if you think about these apps as mini-operating-systems, then you realize that a certain level of complexity is inevitable.
The first internal version of the create-a-Manila-site form had a dozen or so fields to fill outIt was easy for me to use the form, but that’s because I was working on Manila and I understood what all the fields meant.
When Dave first saw it he was surprised, I think, that creating a Manila site should be so complexOr he was surprised at me for not making it simple.
不管怎样，他一直盯着我，让它变得更简单And I did, piece by piece, until finally it’s the form you may be familiar with today, where it asks you for a site name, a theme, and your username and password.
That’s the kind of lesson I learned over and over, to keep hacking away at complexity until it’s not complex anymoreIt’s hugely important, and it’s something not enough people understand the value of.
格鲁伯：And in the end, if you do a good job, the result is something that looks like it was easy to create, because it’s so simpleFar too many people equate “lots of interface” with “good interface”.
西蒙斯：If people say that NetNewsWire is small and lean, that means I’ve done my job wellThe amount of source code that goes into it is probably larger than most people would think那没关系。
格鲁伯：I think you’ve taken an interesting approach to open source software你正在使用一些，而你正在释放一些But the NetNewsWire and NetNewsWire Lite applications are not open sourceThis is similar in spirit to what Apple is doing with Safari and KHTMLWhat open source components does NetNewsWire use?
Do you agree that open source and closed source software can happily coexist within the same projects?
西蒙斯：NetNewsWire在其“关于”窗口中归功于一些开源组件SQLite, SQLDatabase (a Cocoa wrapper for SQLite), cURL, and CURLHandle (a Cocoa wrapper for cURL).
So I benefit from open source code, and I think it’s only right to pay something back by also releasing open source code and freeware versionsThe generosity of so many developers is one of the things that makes me proud to be a developerThere aren’t that many fields where people are and have the means to be so generous.
I agree that open source and closed source can coexist within the same projectsNetNewsWire就是一个例子Mac OS X is sort of an example (even though it’s not one project) — there’s a lot of mix there, lots of open source, lots of commercial softwareI think that’s a good thing, if for no other reason than diverse ecosystems tend to be healthier.
我希望看到的是来自各个角落的狂热Open source is good, shareware is good, commercial software is goodIt all comes down to good apps, using the right tool for the jobI prefer less ideology and more generosityFor me, Mac OS X is the only OS that seems to have in its DNA that spirit.
格鲁伯：I find it interesting that you’ve adopted a public beta policy for the development of NetNewsWireWhy? And how well do you think it’s worked, compared to a more traditional closed beta?
西蒙斯：早期的测试程序αprogram, actually — was closed because it’s simply not fair to inflict such unfinished software on lots of peopleThe people who did help with those early versions have my thanks.
我尽可能早地打开了测试计划For several reasons:
这比封闭式方法更有趣I like connecting with people, and I like that they can connect with meThat’s the fun part of doing software(罗伯比尔曾经对我说,这就像裂缝It is.)
One of my software philosophies is that I don’t want users in the sense of John and Jane Doe — I want people whose names I know, whose web sites I know, who come up with good ideas, who care about software and the web and other people.
One of the fun parts about doing NetNewsWire is that I can put all these people’s weblogs in the Sites DrawerI like that links to people’s web sites are actually in the product(In fact, often I think this is the best part of NetNewsWire.)
NetNewsWire Lite的公开测试版运行良好NetNewsWire Lite owes a great deal to the people who reported bugs and had good ideas about how it should workHad the beta program been closed I would have gotten only a fraction of those bug reports and good ideas, and it would have shown in the software.
Since Ranchero Software is just me and my wife Sheila, it’s not like we have a group of testers right here to useWe have to do software development in public这完全是酷的我吗Even if we had a choice I’d still do it this way, as open as possible.
Bottom line: a closed beta means the software isn’t as good as it could and should be至少在我的情况下(That may not be true for big companies like Adobe, of course — but I strongly recommend this approach for smaller developers.)
根据定义，Beta软件是错误的Anyone trying your software while it is in beta is going to get their first impression based on its current state.
Most public beta testers aren’t going to submit valuable feedback他们只想要免费软件。
如果有严重的错误，无辜的人可能会受苦Like with the bug in the first release of Safari that could result in people’s home directories getting erased.
I can’t think of any other commercial software that I use which was developed using a public beta testBut I suspect we’ll be seeing more of it.
我对我的测试人员非常有信心The tag line for the Ranchero Software site is “News and software for smart peopleMostly Mac.” — and I think I’m lucky enough that my software attracts smart people.
Beta-testers also get an impression of the development process and of the developerHow responsive is the developer? Is he open about things? Does he fix bugs and implement feature requests? These days I think this stuff is very important, because when people buy software they don’t just evaluate the software itself, they think about the source.
Again, maybe I’m lucky, but I get tons of great bug reports and feature requestsA good number of the reports come from people who I know from my UserLand days — they’ve done beta testing on UserLand products I’ve worked on, so I know them and they know me and they’re great testers.
One of the things I do is be extremely careful about things like writing to diskFirst I look at the code and wonder if there’s any chance it could go haywireStep through the code looking for potential pitfalls再次介绍它然后我测试和测试Look at it againAnd then I make sure any potentially harmful code is fully burned in on my machine before beta testers ever see itFor instance, the feature in NetNewsWire Pro where feeds are cached on disk — that feature ran on my machines for a few months before any beta tester ever saw it(It was done before the Lite version even shipped, it just wasn’t enabled except for my test builds.)
And should a serious bug like that appear despite my best efforts (which can happen even to Apple), I’ll make sure it’s known about and fixed as soon as is humanly possibleNot days, but hours or even minutes is preferable（当然，第一步是提醒人们马上。）
格鲁伯：我认为这是您通过公共测试版取得成功的关键You respond quickly, both with information on your web site, and with new builds总有一种前瞻性的发展势头。
I also think the web itself, along with the pervasiveness of the Internet, are key to public betasThe traditional closed-beta model was in place long before the Internet was commonplaceA public beta like yours — with frequent new builds and information for your testers — wouldn’t have been possible 10 years ago.
That’s why I think public betas are going to become more common going forward.
格鲁伯：无论如何，Cocoa是一个了不起的应用程序框架But it’s not magic, and it’s quite largeSo it took a while for existing Mac developers to ship applications built using Cocoa.
Now, two years after Mac OS X first shipped, there are a lot of very interesting new applications being written in Cocoa.
How does Cocoa, along with Project Builder and Interface Builder, compare to what you were used to?
西蒙斯：我以前的应用程序工作是使用CodeWarrior和ResEditAnd most of that was working on Frontier and Radio UserLandThe interfaces in those apps are almost entirely code-builtWith Cocoa you have Interface Builder, which allows you to set up interfaces in advance.
I didn’t think I’d care about that — I don’t mind doing interfaces in code — but it turns out be a huge advantageThere’s so much you get for free: toolbars, split views, table and outline views, and so onThat makes development faster and it means I have less code to maintainFor a small developer it makes sense to use the system-provided stuff as much as possible.
I find myself not really thinking much about what I’d like to see improved in Cocoa我想这可能是因为我太忙了。
我想要WebKitWebKit WebKit WebKitI want to be able to use Safari’s renderer in NetNewsWire.
西蒙斯： KagiWe’ve sent them a list of pre-calculated serial numbers, so when you buy NetNewsWire you get your serial number right awayWhich is as it should be.
西蒙斯：是让我高兴的是And to the betterment of the business and the software.
格鲁伯：I suspect you’re frequently asked if you plan to port NetNewsWire to Windows你如何回应这些要求？
西蒙斯：询问Windows端口的最常见的人是我的妈妈(She’s a systems architect and, ugh, a Windows user.)
格鲁伯：How are you handling technical support for Ranchero? How much time does it consume?
西蒙斯：到目前为止，我只是通过电子邮件处理技术支持I expect Sheila will help with it before longAnd sometimes users help other users via the mailing list, and I totally appreciate that.
One of my goals in software development is to minimize the amount of technical support neededNetNewsWire is designed to not really require much support.
我还试图确保文档涵盖的内容Half the time I answer a question just by pointing to the FAQ page.
我每天只花几分钟处理技术支持Not much: half an hour would be a busy technical support dayIf that increases, it’s probably because I’m selling a lot of software, and I’d be able to hire someone to help.
格鲁伯：NetNewsWire的性质使您处于一个独特的位置In addition to being the developer of the application, you also get to decide which RSS feeds are in the default subscription list.
This might not be such a big deal in a few years, when RSS aggregators are commonplace and everyone will already have a long list of feeds they subscribe toBut now, while RSS aggregation is still fairly new, I suspect that being in the default list is a big deal and can generate a lot of traffic for a site — sort of like being in the bookmarks menu back when Mosaic and Netscape introduced web browsing. You added 万博manbetx贴吧 to the default subscription list when NetNewsWire 1.0 shipped, and I saw a noticable increase in traffic.
How seriously do you take this responsibility? What kind of mix do you hope to achieve in the default subscription list?
The prime directive is “do no harm.” In earlier versions I just put sites in there that I liked without thinking of the extra bandwidth costs they may incurSo now before adding a personal or small-business site I ask if the extra bandwidth use will be okay.
I try for a mix of personal and commercial sites and for a mix of interests, leaning toward Mac sites(Since the one thing everyone who uses NetNewsWire has in common is that they’re using a Mac.)
格鲁伯：How often do people ask to be put in the default list? What do you tell them?
西蒙斯：我每周都会收到一封电子邮件Most of the time I reply that it’s set for the next release, or that I don’t think it’s a good fit, or whatever.
西蒙斯：我考虑过了常见问题解答甚至说它是可能的A couple people have asked about the cost, and I tell them it’s something like $2000/month.
In other words, I don’t really want to sell placement in the default list.
Paid defaults would have to be marked as such, and that means I’d have to add something to the UI, and that would make it more complex, and I don’t really want to do that.
格鲁伯：“网站”抽屉列出了大量的FeedHow many are there? What are your criteria for adding a feed to the sites list?
西蒙斯：我不知道网站抽屉里有多少个FeedAround 500, I think.
My criteria are basic: would somebody somewhere maybe be interested in this? The answer is Yes 99% of the time.
I also do a sanity-check, make sure the feed isn’t incredibly, way-over-the-top offensive in some way(That hasn’t happened yet, and I don’t expect it to, but I suppose it’s possibleI’m a free speech zealot, so the feed would have to include child pornography or something like that before I’d reject it on these grounds.)
格鲁伯：What’s next for Ranchero? A new project, or more refinements to NetNewsWire?
西蒙斯：NetNewsWire里面There are bugs to fix, for starters, and I’ve received tons of great feature requests1.0版本几乎没有开始。