Skip to content
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

Merged
merged 6 commits into from
Jun 1, 2020
Merged

Conversation

luleyleo
Copy link
Collaborator

This defines Druid's goals more prominently in the readme and merges the Alternatives section with the Non-Goals. This is based on the discussion in #806 .

Closes #806 .

@luleyleo luleyleo added docs concerns documentation S-needs-review waits for review labels May 21, 2020
Copy link
Member

@xStrom xStrom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some grammar stuff.

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
@luleyleo
Copy link
Collaborator Author

Thanks! I've fixed those.

Copy link
Member

@xStrom xStrom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

Copy link
Member

@cmyr cmyr left a 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
Copy link
Member

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? 😁

Copy link
Member

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.
Copy link
Member

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.

Copy link
Member

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.

Copy link
Member

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?

Copy link
Collaborator Author

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:
Copy link
Member

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.'

Copy link
Member

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

Copy link
Collaborator Author

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.

Copy link
Member

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.

Copy link
Collaborator Author

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 Show resolved Hide resolved
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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 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.

Copy link
Member

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.

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
@xStrom
Copy link
Member

xStrom commented Jun 1, 2020

@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.

@luleyleo
Copy link
Collaborator Author

luleyleo commented Jun 1, 2020

Ok, I'll do a rebase in about an hour 👍

@luleyleo luleyleo removed the S-needs-review waits for review label Jun 1, 2020
@luleyleo luleyleo merged commit e082704 into linebender:master Jun 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs concerns documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Define the current scope of druid in the readme
4 participants