📄 00000008.htm
字号:
<BR> How hard can a UI toolkit be?
<BR> LinuxWorld: Why did you write Gtk as part of Gimp?
<BR>
<BR> Mattis: The original version of the Gimp (0.5) used Motif. At the time, <BR>LessTif
<BR> wasn't usable. I think the Motif name is tarnished in the open source <BR>community and
<BR> no one has really stood up to defend it. The original impetus for Gtk was <BR>simply my
<BR> wanting to understand how to write a UI toolkit. I figured it couldn't be <BR>that difficult.
<BR>
<BR> Kimball: I can't adequately convey the pain suffered while programming <BR>with Motif.
<BR> It's a bloated and inflexible toolkit. I'm sure that anyone who's familiar <BR>with it would
<BR> agree that trying to make it conform to your idea of the perfect UI is an <BR>exercise in
<BR> futility. Instead, your UI will simply conform to what you can actually <BR>manage to put
<BR> together that doesn't seg fault when you breathe on it.
<BR>
<BR> In light of these issues, LessTif is still undesirable; Gtk was the chosen <BR>path not
<BR> only because it would be free, but because it would have a friendlier API. <BR>
<BR>
<BR> Mattis: You should understand that the
<BR> Gimp and Gtk weren't written to fill <BR>holes in
<BR> the software available under the GPL
<BR> (GNU General Public License) and LGPL
<BR> (GNU Library General Public License). <BR>The
<BR> Gimp was started because I wanted to
<BR> make a Web page. Gtk was started
<BR> because I was dissatisfied with Motif <BR>and
<BR> wanted to see what it took to write a <BR>UI
<BR> toolkit. These are purely selfish <BR>reasons.
<BR> That is probably why the projects
<BR> progressed so far and eventually
<BR> succeeded. I find it much more difficult <BR>to
<BR> work on something for extended periods <BR>of
<BR> time for selfless reasons.
<BR>
<BR> Think about how many vaporware projects have started because someone <BR>said,
<BR> "the open source community needs X to succeed." Now think about how many
<BR> open source software packages are available in which the author states, "I <BR>wrote Y
<BR> because I needed to be able to do Z" or "I wrote Y because I wanted to <BR>learn how
<BR> to do Z."
<BR>
<BR> LinuxWorld: Gtk isn't based upon Xt and so it doesn't have access to the <BR>X11
<BR> resource database, which is the traditional mechanism for customizing X11
<BR> applications. Work has gone into making Gtk customizable. Do you like <BR>what's
<BR> been done?
<BR>
<BR> Mattis: The biggest flaw in most of my programming is that I like to start <BR>from
<BR> scratch. When looking at the big picture, it might have been a mistake to <BR>not use
<BR> Xt. But for what I was trying to accomplish with Gtk, not using Xt was the <BR>right
<BR> decision. I wanted to learn every detail of how a UI toolkit is <BR>constructed. Xt hides a
<BR> lot of problems and provides a lot of functionality.
<BR>
<BR> Yes, I like the work that has gone into making Gtk customizable. I haven't <BR>actually
<BR> seen the code, but the screenshots look nice. And I know Owen Taylor is a <BR>fairly
<BR> disciplined designer. I can't say anything about Rasterman because I've <BR>never
<BR> looked at any of his code. My only comment about Raster is that he should <BR>learn to
<BR> spell.
<BR>
<BR> The Gimp Plug-In Registry
<BR> LinuxWorld: How much do you think the plug-in architecture and the Gimp <BR>Plug-In
<BR> Registry served to help Gimp succeed? Did the independent releases of <BR>plug-ins
<BR> smooth out release cycles for Gimp? Could you tell what impact the <BR>repository had
<BR> on the other developers?
<BR>
<BR> Kimball: The plug-in architecture of the Gimp had a tremendous impact on <BR>its
<BR> success, especially in the early stages of development (version 0.54). It <BR>allowed
<BR> interested developers to add the functionality they desired without having <BR>to dig into
<BR> the Gimp core. In those early days, I probably redesigned the entire <BR>application five
<BR> times over when the current paradigm would become too outdated to
<BR> accommodate the constant addition of new features. I can't imagine the <BR>headache
<BR> of having to coordinate those massive upheavals with a community of <BR>developers.
<BR> Without the ability to add features independently, early developers would <BR>most
<BR> likely have been alienated in the midst of these constant changes.
<BR>
<BR> Mattis: I think the plug-in architecture was immensely important in <BR>allowing other
<BR> people to contribute to the Gimp and get a feeling of ownership. It's a <BR>wonderful
<BR> feeling for someone to write a small plug-in and then get it included in <BR>the next
<BR> "official" distribution.
<BR>
<BR> Tied into the plug-ins is Gtk. Gimp originally used Motif and so did the <BR>plug-ins. The
<BR> result was that the UI for plug-ins was very limited. When Gtk came along, <BR>a lot of
<BR> very complex plug-ins with nice user interfaces started popping up. The <BR>switch from
<BR> Motif to Gtk also opened up the Gimp core to a lot more developers who <BR>didn't
<BR> have source for Motif.
<BR>
<BR> The repository was nice from my perspective in that it allowed me to find <BR>the latest
<BR> versions of plug-ins easily when I wanted to make a new release. It's not <BR>terribly
<BR> easy to coordinate dozens of developers via e-mail, but if all they have <BR>to do is put
<BR> the most up-to-date version of their plug-in on a Web site they will <BR>usually do it.
<BR>
<BR> LinuxWorld: I've been wondering about the demographics of free software
<BR> hackers. My guesstimate is that about 50 percent of the time spent working <BR>on free
<BR> software comes from university environments, about 20 percent somehow fits <BR>into
<BR> a job description, and about 30 percent is "other." You must have some <BR>ideas
<BR> about this. What are they?
<BR>
<BR>
<BR> The GIMP (v. 1.0.2). Click for full-size image: 58 KB.
<BR>
<BR>
<BR> Kimball: I'd say that 60 percent of the free software hackers are from <BR>university
<BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -