Gregory Casamento greg.casame...@gmail.com Open Logic Corporation, President/CEO GNUstep Lead Developer
On Aug 9, 2013, at 2:10 AM, "Dr Slivnik Tomaž MA (Cantab) MMath (Cantab) PhD (Cantab) FTICA" <sliv...@tomaz.name> wrote: >> The goals of GNUstep are quite clear. Our goal is to create an API which is >> a clone of the latest version of Cocoa ... > > Is this still a good goal to pursue, or should it be re-evaluated? What else can be done? Anything other than this would be valueless. We would be known as "that partial clone of Cocoa which decided to go in our own direction." So, no, I don't believe it should be re-evaluated. > NeXTstep/OpenStep was a well and carefully-design API and operating > system/desktop environment. When I say well-designed I mean not only the > framework APIs but also visual design, user experience / user interface > guidelines, the icon sets, the widgets, etc. down to the tiniest detail. > Furthermore, it was aimed at the technical user. It was really aimed at both. > Mac OS X is none of the above. I'm not really sure I agree with this assessment. NeXTSTEP and OpenStep (OPENSTEP was NeXTSTEP 4.0) were very utilitarian in their design mainly because they had to be. The hardware of the time was limited and yet they managed to do so much with it by keeping the design of the UI relatively simple. The main reason GNUstep has the look that it does is because it started at roughly the same time and cloned the UI as it was back then. Mac OS X had to fit into the existing Mac OS user base in order to be accepted, so, as a result, the old UI necessarily went away. I would have loved to have seen what direction NeXT would have taken us if they had not been bought out, but, ultimately, that's not what happened. Nevertheless, GNUstep currently doesn't imitate the OS X UI. The classes implemented in Cocoa are soundly designed, just like those in OPENSTEP and NeXTSTEP before it so I don't see what you're saying when you say that Cocoa is not well designed. > The impression I get is that Apple has more or less abandoned the desktop, a > long time ago, in each and every way, have focussed all their attention, > thought and resources on mobile, where most of their market is, and will > never reverse this. > > When I say in each and every way I mean: > > - the programming language (Objective C 2.0 is not elegant, punchy carefully > designed like the original Objective C was, but, although it has some nice > innovations - like blocks, which however seem to me to be not so much an > extension of Objective C as of C - is more of a hodge-podge like C++ than the > elegant Objective C) Blocks were originally proposed by Brad Cox, the inventor of Objective-C. The 2.0 change that I detest is the dot syntax used to access properties since this breaks the philosophy that Objective-C would never re-use C syntax for other purposes. > - the user interface guidelines. Mac OS X GUI is cool/flashy/tasty gummy but > it is neither well designed nor very usable IMO: > - while animated GUIs may look pretty, I do not think Apple has thought > through the undesirable consequences of your working area being a moving > target and your clicks and typing often end up in a different place than > where they were directed at when you entered it, simply because the state of > the GUI was changing as you were typing. This often has disastrous effect. I've been using Mac OS X for years now and I've never had this cause any problem for me. > - there seem to me to be many more alert panels than in NeXTstep which > likewise switch the keyboard's & mouse's focus from where you were typing I honestly can't say whether this is true or not, but I remember there being a fair number of alert panels in NeXTSTEP as well. > - there seem to be many different kinds of incongruent-looking widget > sets > - right-clicking is often so overloaded with incongruent meanings that > clicking a few pixels away from the correct area has a completely different > effect than intended. A few pixels away can be caused inadvertently by > pointer moving as you press a button, etc. > - the very useful tear-off menus and other NeXTstep-unique features > have been removed Useful to be certain. VERY useful, I'm not sure about. > - the app design: > - NeXT was based on the idea of interchangeable components; Mac OS X > seems to be based on large monolithic apps (e.g. iTunes) with names of other > apps (e.g. Address Book) baked in, with no publicly visible APIs for users to > extend/replace the functionality of included apps iTunes uses the iTunesLibrary framework to access music metadata and the MediaPlayer framework to play it. All are publicly accessible and, in fact, recommended and in some cases (on iOS) MANDATORY to access some data. So I'm not really sure what you're talking about with respect to "Large Monolithic Apps." > - Mac OS X apps often include "machine learning" behaviours which cause > the computer to behave in unpredictable ways which maybe were intended to > provide useful defaults for technically unsavvy users, as opposed to NeXTstep > which opted more for configurability by programmability (which is largely > absent from Mac OS X) > - basic standard apps like Mail.app are unbelievably buggy, to the > point of being nearly unusable, and don't seem to be developed or maintained > at all. Mail.app, for example, loses mail messages, editing rich text is > almost completely unusable, etc. I use Mail.app every single day to handle my 200,000+ message mailbox. It does so beautifully. > - the O.S.: > - HFS+ - need I say more? > - ugly hacks in implementation of filesystem features on non-native > filesystems (._ files) > - bugs, often fatal crash bugs in the O.S. I know at least two ways to > crash OS X.4 from a 2 or 3 line C program run in user space. Maybe OS > X.5,6,7,8 are better, but I doubt it. I have a feeling I know which bug you're talking about. There was a PPC bug which allowed a very short program to freeze the system due to a processor bug which caused the CPU to enter supervisor mode, but I could be mistaken. This bug as I recall was not something that could be trapped or prevented by the operating system. There was a similar issue on intel processors a long time ago caused by a faulty FDIV instruction which could be exploited easily and used to freeze the computer. I tried it once on my old Pentium when I used to run OPENSTEP on it… it worked just fine. So I'm not sure that these crashes you're referring to are actually issues which are related to a OS level issue. Additionally, if you haven't used OS X since 10.4, I'm sure that your information isn't even nearly up to date at all. To you, Mac OS X has been frozen in time and hasn't changed for several years. 10.5-10.8 have offered a sea of changes and bug fixes. > I could go on and on but I neither have the time to write more nor would you > have the time to read more. > > Would it not be a more worthwhile goal for GnuStep to > > (a) polish the edges of GnuStep so it implemented not only the OpenStep API > but to also be a GNUstep currently does fully implement the OpenStep API. The only classes which are not implemented are: Listener -- NeXTSTEP compatibility class... NSCStringText -- NeXTSTEP compatibility class... NSDPSContext -- DPS is not implemented NSDPSServerContext -- DPS is not implemented. Speaker -- NeXTSTEP compatibility class… The reasons for not implementing these are all obvious. NSDPSContext* is of no consequence since it's not public (it is a concrete subclass of NSGraphicsContext) and the others are compatibility classes. Other than that GNUstep implements all OpenStep classes. > well-rounded, well-designed, usable - if minimal - desktop environment / > distribution a la NeXTstep. Currently, the integration with WindowMaker > leaves much to be desired. There is no GnuStep-native login panel. GnuStep > apps seem to be buggy and flakey, even basic ones like Terminal.app, e.g.: > - resizing the window does not re-wrap the text This is not a bug, but a feature.. LOL. That functionality, I don't think, was ever intended to be there in the first place. I would consider this a feature request. > - the font panel does not work properly for me Works fine for me. > - etc. Elaborate… > > (b) aim to continue to develop GnuStep as a framework aimed at technically > savvy users - as most Linux users are - who appreciate its reliability, > modular component-based, well thought-out design. And try to evolve it in the > way OpenStep would have evolved if it had not been acquired by Apple and > changed focus from technical/higher education users to the mass > consumer/"creative" market. It is fundamentally impossible to market GNUstep towards one thing or another since we aren't a company. People use us when they need us. :) > In my opinion, trying to track the latest Cocoa will never get any traction. > Cocoa is a moving target, so GnuStep will never be complete / debugged & > tested enough for any serious developer with a currently shipping product to > use it to port their current Apple product, simply because these developers > will use bleeding-edge Apple stuff and will not waste time using a framework > which is necessarily 3 generations of Cocoa behind, is buggy, has no > traction/user base. Apparently you're unaware of the following set of developers who do take GNUstep seriously enough and consider it complete and debugged and tested enough for a currently shipping product… please follow this wiki link: http://wiki.gnustep.org/index.php/Success_Stories The three on that list that should stand out are Adobe, Apportable and TestPlant/EggPlant. :) > Nor will it get traction with technical users if it tracks the Mac OS X API > in all its ugliness and poor design. This assertion addressed above. > On the other hand, there is a very clear niche of technical users who are > crying for a well-designed, robust, "just works", "mission critical" > environment, with nowhere to go. > > E.g. a GnuStep distribution could be built which provided a basic and minimal > set of apps (Terminal, TextEdit, GnuMail, TeXShop, Gorm, ProjectCenter, > etc.), well and fully implemented, bug-free, carefully designed and with the > aim of frameworks and apps being extended by the open-source community. We're already working on a set of applications for GNUstep in the GAP project http://gap.nongnu.org > In my opinion such a distribution would gain (some) traction, its target > audience would necessarily be niche, but a decent sized and growing niche. > Which is better than it being "not quite the thing for me" for everybody. > >> We are 10-20 developers working part time on a project which has no funding >> and no company which formally backs it. > > I would consider offering some financial support to GnuStep, though, at > present, would be unlikely to contribute any time (maybe and hopefully this > will change in the future). GC _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnustep