-
Notifications
You must be signed in to change notification settings - Fork 568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add goals section to README.md #971
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some grammar stuff.
Thanks! I've fixed those. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay a bunch of nitty rewording thoughts, take 'em or leave 'em!
letting users write fast, small, and generally efficient programs with minimal | ||
hassle. | ||
Druid is an experimental Rust-native UI toolkit. Its main goal is to offer a | ||
polished user experience. There are many factors to this goal, including |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to the developer or the end user? 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To the end user. I think using user to mean end-user and developer to mean developer is a fine distinction to go with.
README.md
Outdated
- Enable robust internationalization. | ||
- Ensure accessibility to a wide group of people. | ||
- Produce small and fast binaries with low memory usage. | ||
- Have a small dependency tree with a high quality code base and good organization. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this item is a process goal, but not really an end goal? So I'm not sure I'd include it here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would say having a small dependency tree is an end goal. To put it differently, having a small dependency tree is one of the major reasons I'm personally interested in druid over Electron. I wrote in more detail about it #806.
Also the point about cargo build
working is even more of a process goal, because that won't have any impact after the build step, while a small dependency tree will matter at runtime too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess I see "produce small and fast binaries with low memory usage" as being our shot at electron?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aside from being a good goal in general, I think it can be seen as such.
README.md
Outdated
|
||
Druid's primary goal is to provide a smooth and polished user experience with | ||
pixel perfect design and no behavioral quirks. In order to achieve this we | ||
strive for a variety of things: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels vague. I might say,
`Druid's goal is to make it easy to write and deploy small and efficient desktop applications that work on most common platforms.'
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, but then I'd like to see this item added to the goals list:
- Provide a smooth and polished user experience with pixel perfect design and no behavioral quirks.
smooth = no stutter
polished = care has been given to details
pixel perfect = widgets aren't being drawn willy-nilly in roughly the correct location, but instead in just the right pixels
behavioral quirks = application behaving differently under uncommon scenarios, like hot state not working when alt-tabbing out etc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to strike a middle ground on this one:
Druid's goal is to make it easy to write and deploy high quality desktop
applications with a smooth and polished user experience on all common
platforms.
as the summary, and
Facilitate a smooth and polished user experience with no behavioral quirks
as an additional point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think if we already have the smooth & polish in the summary, then the extra point isn't needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, you are right. I suppose it was a bit to late when I wrote that and my brain wasn't working properly anymore. I've removed the extra point.
README.md
Outdated
strive for a variety of things: | ||
|
||
- Make it easy to build and package on all supported platforms. | ||
- Provide abstractions to avoid platform specific quirks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Provide abstractions to avoid platform specific quirks. | |
- Provide a flexible and ergonomic API that abstracts common platform behaviour. | |
- Make it possible to interact with the platform directly when more control is necessary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to note that abstracts common platform behaviour wouldn't cover things like the multi-click api in #859 because that's not a common platform behavior. It's an abstraction that builds the behavior.
@Finnerale I think we can merge this. If there are any adjustments needed there's always a possibility to make a new PR. However if this doesn't get merged before 0.6.0 then the crates.io readme won't have this. |
Ok, I'll do a rebase in about an hour 👍 |
This defines Druid's goals more prominently in the readme and merges the
Alternatives
section with theNon-Goals
. This is based on the discussion in #806 .Closes #806 .