discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Our self-presentation, not just on our website. (Was: Re: GS based a


From: Gregory Casamento
Subject: Re: Our self-presentation, not just on our website. (Was: Re: GS based app release: djay by Algoriddim in Beta)
Date: Sun, 3 Sep 2023 15:44:31 -0400

I will address the portion in which you mention me...

On Sun, Sep 3, 2023 at 1:54 PM Albert Palacios <optimisme@gmail.com> wrote:
Well, thank you for the answers and the attention you are giving to my email.


<BIG BIG SNIP!!>


Gregory: I'm very surprised by your statement:

"Myself and others are absolutely FOR creating new visual themes. I don't know why the very common misconception persists that we aren't. The issue is that many people don't look past the default theme which is what I believe you're referring to. Changing the default is a bit difficult from a code perspective.”

Well, the years go by, and there are no visual changes, tools or themes that update the appearance of the GNUStep applications. Perhaps that's why there's an impression that you have no interest in creating new themes.


GNUstep has had theming capabilities for many years now... from a windows theme which uses native widgets...

WindowsTheme.jpeg

To a theme that approximates macOS...

MacLikeTheme.jpeg

Thematic has been announced and been available for quite a while now.  What the issue I think is that we are simply bad at putting the word out.

There's absolutely no documentation online about how to create a modern-looking theme, are you saying it's possible?

There is some documentation on this, but you're correct in that it is not easy to find.
 
I managed to start a new theme based on old code, lately also with help from ChatGPT (Daniel got it right), and a lot of patience. But as I said, the list of problems is long and I've given up. Right now, I believe updating the look of GNUStep by simply developing a new theme isn't feasible.

You would be wrong.

If I'm wrong, and you've done it several times for private projects, I'd appreciate it if you could post a project or tutorial online for reference. 
 
I think you have an excellent point.   I have been doing a series on my youtube channel about GNUstep and will be trying to post something each day showing off different features.



I'm not sure if the GNUStep project is popular among businesses, looking to migrate their apps to other systems, but I'm convinced it could be more popular. Especially if updating its aesthetics was easier.

I gave examples in my previous email about companies using GNUstep in production.  What I am working on is to make it more popular.  In my previous email I failed to mention algoriddim.   They are using GNUstep on windows under MSVC to build their app mentioned at the beginning of this thread.


Thank you for your attention, regards.

Albert


El 3 set. 2023, a les 18:11, Gregory Casamento <greg.casamento@gmail.com> va escriure:

Hey Albert,

On Sun, Sep 3, 2023 at 5:30 AM Albert Palacios <optimisme@gmail.com> wrote:
Hello,

I don't want to upset anyone or start a war. I have been following the 'GNUStep' project with admiration for years and have held back from sending these comments so as not to disturb anyone. I truly offer them with a constructive spirit to help improve things.

Constructive criticism is always welcomed.

I know that some of the main GNUStep developers are against offering an updated visual theme, and in various interviews, they argue that this is the community's responsibility, implying that it's easy to do.

Myself and others are absolutely FOR creating new visual themes.  I don't know why the very common misconception persists that we aren't.  The issue is that many people don't look past the *default* theme which is what I believe you're referring to.   Changing the default is a bit difficult from a code perspective.
 
But I've tried several times and encountered significant obstacles, which discouraged me from trying again. I may not remember everything, but basically:

    • Themes don't offer an easy way to modify 'margins' and 'paddings'. The clearest example is menus; they're terribly condensed, and it's not possible (or simple) to space them out. Likewise, you can't modify the rounding of edges, change the 'mouseover' selection method, or adjust transparency.

You're correct, they don't do this unless they are code based themes. There are two basic types of themes: one is code based where we have a class compiled into the bundle that does custom rendering.  The other is configuration based where it simply replaces images and makes certain settings.  It would be a great enhancment to add more flexibility to configuration based themes.
 
    • There are library incompatibilities between OSX and GNUStep. Due to a lack of documentation, you can waste hours discovering that ‘NSBezelStyleRounded’ corresponds to ‘NSRoundedBezelStyle’ or that ‘NSButtonTypeMomentaryPushIn’ has an equivalent in ‘NSMomentaryPushButton’.

We do try to minimize the differences between the two since the aim of GNUstep is to be compatible with Cocoa and provide some extensions when possible.   But, you're correct... we do have a lack of documentation.  We have a way of generating the documentation, but we have not posted it recently.   It would be a good thing to do that with every release.
 
    • GNUStep simply doesn't have a good animation system. In OSX, you can invoke NSAnimationContext and get a smooth transition with minimal effort. In GNUStep, I've tried animations, and the best I've achieved is with NSTimer. Still, they're so crude that I'm embarrassed to publish any application in those conditions. Maybe the problem is the same as before, and I haven't been able to find valid documentation and examples.

GNUstep currently has a placeholder implementation of NSAnimationContext, so this is definitely an area we should start working on.

    • Trying to style most components can become a nightmare, even when you give up and decide to reimplement the “drawRect” method. Some components are simply different between OSX and GNUStep. For example, NSProgressIndicator displays squares and text titles unrelated to what you've previously programmed. Also, animations are not smooth and stop when interacting with the interface. Pressing a button in the same window with an indeterminate progress bar makes the animation pause. It's frustrating.

    • Not to mention trying to create components that blend the title bar and toolbar like modern OSX applications. With GNUStep, it's simply impossible.

GNUstep can manage it's own decorations, but, unless it is doing that the decorations (including the title bar) are managed by the window server (whether that's X, Wayland, or Windows) this makes it impossible to draw into them unless you have the setting which allows GNUstep to draw it's own window decorations turned on.
 
Beyond the inability to develop a modern-looking theme, other issues urgently need addressing:

    • Having a GNUStep configuration folder in the 'home' directory is unacceptable to anyone mildly organized (or with obsessive-compulsive disorder). Can't you put a '.' before the name to make it hidden?

This is a good point.  I believe that it was initially done this way because of integration with the WindowMaker window manager which does also create a GNUstep folder in the user directory.   It might be worth re-examining whether or not this is still needed, but it hasn't really been a priority given all of the other work there is to do on the project.   As RFM pointed out, in another email, this is configurable.
 
    • Changing the system font or font size causes applications (especially buttons) to be inexplicably cut off. In 2023, for accessibility reasons, this is a 'must’.

This might be better handled now that we have a working implementation of the constraints (i.e. view resizing and spacing) classes.
 
    • The icons, this type of icons were not visually attractive even in the 90s. In fact, I think it was the first thing fixed for OSX Cheetah.

Again, these can be themed, but this really hasn't been a huge priority.

I genuinely don't want to upset anyone. I see the tremendous effort dedicated to GNUStep, which is why it angers me that more people aren't interested in using it. But I understand why.

We should probably emphasize the people and companies that do use us...   here are a few examples:

* Eggplant - https://eggplant.io -- This is a company known as Keysight, I work for them.  They started as Redstone and make a product known as Eggplant, I helped them port it to Windows.  Windows is their PRIMARY platform that they deploy on.  They use GNUstep to do all of this.  Some of their clients are listed on their website.
* Apportable - They are defunct now, but their assets are used by PocketGems.  If you have ever seen an applications that has been ported from iOS to android it was likely done with their framework which is based on GNUstep and contains their own UIKit classes for porting apps to other mobile platforms.  I worked with them briefly because they consulted me about the framework.
* ImmortalData - https://immortaldata.com -- This company is an offshoot of XCor (a space company that is now defunct) and is used to track data on aircraft and spacecraft.  It uses GNUstep at it's core to record and track and graph the data.  They also consulted with me.
* EngageHUB - They use GNUstep every day in production and it is run by two of our members.

Additionally... many of the sites you see that have "coding" challenges that use Objective-C are using GNUstep to do it.  I know this because I have tested for GS specific things on them. :).  So, we are a bit more widespread tha you think.  The above is just a list of some of the most prominent companies involved.   Also important are the users and developers in the community that love the project.   I would very much like to grow that number so you're feedback is very much valued.
 
I'm fortunate to work with teenagers interested in computing and programming. I can assure you, when they hear about GNUStep and see the aesthetics of the applications, they don't see any practical use. Let's be honest, if aesthetics weren't important, Apple wouldn't have spent a dollar updating them since the 90s. Yet they've consistently improved and updated, and their current theme isn't much different from 'Aqua', but it looks modern, clear, and clean (take a look at: https://mackuba.eu/2014/10/06/a-guide-to-nsbutton-styles/).

I do agree that athetics are extremely important for any API or toolkit and that we do take it very seriously.  A considerable amount of time has been spent in GNUstep on making it themable.  To the point where we can make it blend in with OSX, Windows, or GTK based desktops.   There is still a long walk left, however as we still have some shortcomings.
 
There's significant interest in these libraries, and GNUStep is well ahead of other projects:

    • The DarlingHQ project aims to adapt aesthetics to the 'host' system. They're years away from achieving this. Right now, they're more focused on low-level compatibility (and even across processor architectures) than improving graphic applications. This approach, adapting aesthetics to the 'host', will fail because OSX applications are designed only for OSX's visual components.

I don't think that's fair to say.  Darling's main purpose is to allow you to run Mach-O executables on other platforms.  Unfortunately, the project developer has chosen to use another framework to facilitate compatibility.  Said framework stopped development in 2008.

    • The RavynOS project may never be more than a 'diversion'. But they've attracted many people's attention with a single slogan: “Finesse of macOS. Freedom of FreeBSD”. They only have a visually appealing website and a lively Discord community, without even a decent demo. It's the exact opposite of GNUStep, yet they generate more interest.

RavynOS is trying to reimplement the ENTIRE macOS ecosystem which is NOT the aim of the GNUstep project.

    • ElementaryOS started with a 'crazy' premise: Using a dead language (Vala) and constantly evolving libraries (Granite), you could develop applications with a contemporary aesthetic easily. They've always had excellent documentation and copy/paste-ready examples. This 'crazy' premise has grown into a strong developer and user community, primarily due to impeccable aesthetics for application components, icons, and user experience.
 
There are tons of examples of operating systems that try to imitate the aesthetic of the mac, but never quite achieve the elegance that exists within it.   Unfortunately, most people don't look beyond that.

>From the points above, some keys to attracting more users emerge:

    • Improve aesthetics
    • Enhance documentation
    • Provide small, 'ready to go' code examples that can be copied and pasted to start developing applications (or themes)
    • Enhance the libraries themselves, such as animations and nomenclatures
    • Improve development tools; a plugin for VisualStudioCode would be fantastic

All of these are excellent ideas.
 
I repeat, I don't want to start a war or offend anyone. On the contrary, I recognize that GNUStep is an extraordinary project. But if there isn't a change in direction soon, it will remain a mere "curiosity" in computer history.

No, I don't think you're trying to start a war.  Part of being part of any project is listening and taking to heart the suggestions and opinions of those who use it.  If you care enough to write this email, then you, obviously have a passion for the project and that should never be ignored.  Please feel free to share your opinions and speak your mind.  A healthy project is one were dissenting or critical voices are always welcomed.

Kind regards,

Albert

I appreciate your feedback.  If you are capable of helping us to address some of the things you have mentioned, please feel free to do so.  I have worked hard to minimize the barriers to entry on this project.   Your suggestions and, indeed, any contributions you might wish to make are encouraged and welcome.

Yours, GC


> On 3 Sep 2023, at 04:22, Svetlana Tkachenko <svetlana@members.fsf.org> wrote:
>
> Ubuntu have another model, they have several official flavors each showcasing another aspect of the platform. Perhaps this could be useful to show different configurations of GNUstep/WindowMaker rather than having only one as a reference.
>



--
Gregory Casamento
GNUstep Lead Developer / OLC, Principal Consultant
http://www.gnustep.org - http://heronsperch.blogspot.com
https://www.patreon.com/bePatron?u=352392 - Become a Patron



--
Gregory Casamento
GNUstep Lead Developer / OLC, Principal Consultant
http://www.gnustep.org - http://heronsperch.blogspot.com
https://www.patreon.com/bePatron?u=352392 - Become a Patron
https://www.openhub.net/languages/objective_c - OpenHub standings

reply via email to

[Prev in Thread] Current Thread [Next in Thread]