> 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?
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.
Mac OS X is none of the above.
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)
- 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.
- 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
- 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
- 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
- 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.
- 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 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 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
- the font panel does not work properly for me
- etc.
(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.
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.
Nor will it get traction with technical users if it tracks the Mac OS X API in
all its ugliness and poor design.
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.
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).
_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnustep