On 5/29/15 1:49 AM, Ian Wadham wrote:
My project for this year is to get Pallet, the MacPorts GUI, up and running 
with the support for newest versions of OS X and XCode. After that, I intend to 
give it, and the Framework, some more modern-day-MacPorts features. No features 
are set in stone as of yet, but I'm considering adding doctor, reclaim, 
rev-upgrade, a progress bar, or possibly even the ability to edit portfiles.
Instead, I started to work on a new GUI which I named Fossick.  It takes rather
a different design approach - similar to that of Guigna and PortAuthority.  
Fossick
uses only Objective C, Cocoa and Unix utilities and it interfaces to MacPorts by
using only the "port" command and the portindex file.  My idea is that this is 
not
only easy and straightforward, but also more "future proof" than a 
special-purpose
library, because the "port" command does not change much over time and edits
to canned commands can easily be made if/when it does.
As the developer of PortAuthority, the longest-maintained GUI for MacPorts (over a decade now), I'd be happy to offer a perspective on the state of GUI clients for the project.

MacPorts has never had a fully functioning, actively maintained GUI component as part of the project. When I first started using MacPorts in 2004 or so, there was a Cocoa client in some alpha stage of development, but it was never released. At that time the Fink project was MacPorts' main competition, and it had a superb, FOSS Cocoa-based client called FinkCommander that was actively developed--that was the model. In that environment, I developed PortAuthority, first as FOSS, then later as what was then called "shareware." PA took a similar design approach to FinkCommander and the approach Ian's project did--sitting on top of the command-line client, parsing its output and sending commands back. There were other, later projects to develop a MacPorts GUI--Porticus, a free-but-closed-source app, and Pallet, first developed by Randall Wood and then donated to the MacPorts project, with intermittent maintenance since.

Among all these projects, PortAuthority is the only one that has stuck around. It's not as heavily used as it used to be (it once made real money, now it brings in a little bit each month), but it's still standing and advancing when others have stopped. There are a few reasons for this:

1. The design decisions of most of the MacPorts-based Cocoa clients to work with MacPorts internals rather than following the Unix paradigm of having a GUI sit of on top of a CLI make those apps much more complex. GUI programming is hard enough without having to translate between MacPorts' C- and Tcl-based internals and Cocoa/Objective-C datatypes, not to mention the elevation of privileges that is required for many operations.

2. GUI programming, by definition, is hard and is a different discipline than the programming skills required to maintain MacPorts itself. Cocoa is exceptionally complex and hard to learn. I chose to program PA using Tk, which simplified things, but only to an extent--the entire process of coding to a graphical interface paradigm is simply different than the {cmd args} approach and one that fewer devs in the open-source community have taken the time to learn.

3. GUI projects, like any other, need ongoing maintenance and development to improve and stay relevant. Pallet never got beyond alpha stage in my view and has never had a single owner devoted to improving it: someone may work on it for a while as part of the GSOC project, and add a few features, but then it just sits moribund again. Porticus was a more sophisticated project by an experienced Cocoa developer, but he apparently lost interest in continuing on it, absent a financial incentive. FinkCommander itself has not been touched in years, apart from being recompiled for Intel, but it was so well-done that it has continued for all these years on the sheer momentum of its initial polish. PA continues to receive periodic, annual-or-so updates from me, none of which are dramatic in themselves but which do add up over time.

It would be great if Pallet developed into a viable, ongoing GUI client for the MacPorts project. My guess is that it will need a lot of work, and ongoing maintenance from a single owner or team, to get there.

--Kevin

--
Kevin Walzer
Code by Kevin/Mobile Code by Kevin
http://www.codebykevin.com
http://www.wtmobilesoftware.com

_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to