
Show HN: Yue – A new library to create cross-platform GUI apps - zcbenz
https://github.com/yue/yue
======
Jasper_
Hi,

You're using large parts of WebKit source code (LGPL) in your proprietary
library. This is against the license. Please compare:

[https://github.com/yue/yue/blob/master/nativeui/gfx/gtk/pain...](https://github.com/yue/yue/blob/master/nativeui/gfx/gtk/painter_gtk.cc#L90)

[https://github.com/WebKit/webkit/blob/master/Source/WebCore/...](https://github.com/WebKit/webkit/blob/master/Source/WebCore/platform/graphics/cairo/PathCairo.cpp#L206)

~~~
drinchev
Wow, that's very bad.

Created an issue for this to prevent anyone else using it.

Let's see how the author will respond.

[https://github.com/yue/help/issues/4](https://github.com/yue/help/issues/4)

~~~
GuiA
Your last sentence, _" How would you respond to these?"_, is fairly passive-
aggressive. Pointing out the issue (use of LGPL code with a license that does
not permit it) is sufficient.

~~~
drinchev
Fixed

~~~
tomcam
Gracefully done. Thanks

------
irq-1
From the FAQ, [https://github.com/yue/help](https://github.com/yue/help)

> But once you have done modifications to Yue's source code, all your code
> linked with Yue have to be open sourced with MS-RL. The only way to remove
> this limitation is to subscribe to Yue's paid plan.

> The license seems like a non starter.

> Note that the license of Yue has less restrictions than LGPL, it does not
> require you to open source your project when you statically link with Yue,
> or compile Yue's source code as part of your project.

> So if you are fine with LGPL libraries, there is no reason to worry about
> Yue's license.

> Yue is just another open source project with dual licenses, and it has less
> restrictions than most dual licenses projects.

With the LGPL you can change the code, compile and dynamically link _without_
releasing your own code. It's a significant difference.

~~~
rhencke
With Yue's license you can change the code, compile and dynamically link
_without_ releasing your own code.

There is no difference here.

Lest you doubt:

    
    
        Reciprocal Grants- For any file you distribute that contains code from the
        software (in source code or binary format), you must provide recipients the
        source code to that file along with a copy of this license, which license will
        govern that file. You may license other files that are entirely your own work
        and do not contain code from the software under any terms you choose.

~~~
detaro
The README on the other hand states:

> _The Yue project is under the Microsoft Reciprocal License (MS-RL) with
> following clarifications:_ [...]

 _Using a modified version of this software is considered as containing this
software 's code, so any code linked to it has to be licensed under MS-RL._

That at least to me reads like a different interpretation, which is worrysome.

------
zcbenz
Hi everyone, I have written a C++ library for creating native GUI apps, it
also has language bindings for Lua and JavaScript (V8).

In the past I have written the Electron framework, which is a popular project
for creating desktop apps with Chrome web engine and Node.js, while this
library allows you to create native desktop apps.

If you want to see some screenshots and example code, check out the sample
apps repo: [https://github.com/yue/yue-sample-
apps](https://github.com/yue/yue-sample-apps).

If you are wondering how this library is different from other GUI toolkits,
check out the FAQ:
[https://github.com/yue/help#faq](https://github.com/yue/help#faq).

If you want to learn this library quickly, there is a detailed tutorial on
using Yue with Node.js:
[http://libyue.com/docs/v0.2.0/js/guides/getting_started.html](http://libyue.com/docs/v0.2.0/js/guides/getting_started.html).

~~~
jancsika
> In the past I have written the Electron framework, which is a popular
> project for creating desktop apps with Chrome web engine and Node.js, while
> this library allows you to create native desktop apps.

Are you the same developer Roger Wang wrote about in his "Statement on the
history of node-webkit project" public post?

[https://groups.google.com/forum/#!topic/nwjs-
general/LIrC7zH...](https://groups.google.com/forum/#!topic/nwjs-
general/LIrC7zHtQdo)

He claims you misrepresented the scope of your work as an intern on the node-
webkit project (now named nw.js), and that you removed copyright notices from
code in Electron that was derived from node-webkit.

~~~
jasondemeuse
Definitely, and those same claims are made in the yue docs.

>I had been the solo developer of Electron and node-webkit (now known as
NW.js) for a very long time, and today big corps are building their new apps
on them. So I think it should not be hard to be confident about Yue.

[https://github.com/yue/help](https://github.com/yue/help)

------
paultopia
I'm sure this is an amazing project. But the readme and FAQ and such have such
an aggressive, almost hostile tone---if you want to communicate with the
author at all, even to report a bug, it'll be five thousand bucks a month...

~~~
bitcoinofficial
I don't get that either. Also look at
[https://github.com/yue/help](https://github.com/yue/help). The author is
basically saying "I'm a really cool developer, was there, did that, anything
else?". Every single sentence consists of narcissism (or how should I call
that?). This is only how I see that, I'm sorry if I offended somebody.

~~~
imron
The author is not a native speaker so might not be aware of how some sentences
come across.

~~~
dragandj
I'm not a native speaker either, but having a quite high exposure to English
language, I am still puzzled at _why would anyone think those sentences were
hostile_. Can any native speaker translate what I quoted to a non-hostile
version, so we can see what's it all about?

~~~
bjterry
> The issues page of this repo is disabled on purpose, for help please go to
> the yue/help repo where users help themselves.

>To report a bug, you have to create a pull request with a test case of your
problem, or you can choose to subscribe to paid plans.

Polite translation:

> The issues page of this repo is disabled. To report a bug, please create a
> pull request with a test case of your problem.

> For support, please go to the yue/help repo for help from the community.
> Paid plans are also available if you want to receive support from the
> project maintainers.

I wouldn't say the original is exactly impolite, but it's definitely more curt
and direct than usual or than you would expect in the business world.
Especially the text on the yue/help repo comes across as slightly combative or
defensive in different areas. For example "You can ask any question about Yue
in the Issues page here, but please do not expect to get an answer" sounds
fairly dismissive to a native ear.

~~~
dragandj
Thanks. I got (and agree) that it was not written very skillfully, but, as you
said, it was not _hostile_ either.

------
mwcampbell
Unfortunately, this library has no support for accessibility, e.g. for blind
users with screen readers, particularly on Windows, where it implements its
own windowless controls without implementing the UI Automation API. So I
advise against using this library for any application with a broad target user
base until this problem is addressed.

------
setzer22
With a quick glance, I learnt about the intrincate details of the license.
However, I have no idea of the technical details behind the library or how the
relevant code may look like (note that I can go to the sample sources, but
without a proper introduction it takes some work to follow).

I'd suggest putting more emphasis in the library details, and _why_ it is good
(not just _how_ good it is) especially before all that licensing information.

------
pbnjay
It'd be really helpful if there were screenshots of a sample app from each
supported platform. Is this wrapping native elements or providing custom
elements?

~~~
joemi
If I'm understanding you correctly, what you've asked for is already there.
Follow the "Sample Apps" link to here [https://github.com/yue/yue-sample-
apps](https://github.com/yue/yue-sample-apps) and then click on one of the
sample app directories and there are screenshots.

------
drinchev
Kudos for this. It does look awesome. Just tried out JS version.

Nevertheless I'm still afraid that features / maintenance will be
unsustainable, since you are the only developer [1] ( considering your
expertise ).

I hope there are companies that support the project.

1:
[https://github.com/yue/yue/graphs/contributors](https://github.com/yue/yue/graphs/contributors)

------
Zekio
5k per month for license O.o

[https://github.com/yue/yue/tree/master/docs/paid_plans](https://github.com/yue/yue/tree/master/docs/paid_plans)

~~~
dragandj
OTOH, the license is optional. You can use it for $0.

I'm not even a potential user of this library. I'm just amused with how people
expect open source programmers to work for peanuts.

~~~
Zekio
I'm not expecting it to be free but 5000 usd for just for the right to not
redistribute it when you modify the source, seems a bit expensive, but maybe
I'm just a poor fella

~~~
drinchev
Why not? If you want to modify the source, just do it in a manner that you can
commit back to the repo.

~~~
Zekio
I take you haven't read whats under the title contributions

[https://github.com/yue/yue/tree/fb08ff884c6f9b7fb7a767dde937...](https://github.com/yue/yue/tree/fb08ff884c6f9b7fb7a767dde9372284ef7b8e64#contributions)

~~~
pcthrowaway
You can redistribute your modified source code without sending a pull request.

------
fluxsauce
> By sending a pull request, you are agreeing to transfer the copyright of
> your code to Cheng Zhao.

Nope.

~~~
Cthulhu_
Is there any open source project where the author retains copyright?

I mean in this case I'd say the copyright is transferred to a nameless entity,
e.g. "the Yue project". IIRC any project with a developer agreement (like
Google's) include a transferrence of copyright note.

~~~
carussell
> Is there any open source project where the author retains copyright?

Yes. Pretty much all the most successful FOSS projects operate like this by
default—there's no central authority and contributors retain their copyright.
It's only in the last couple years or so that a weirdly high amount of orgs
even started cargo culting the CLA process. And the reason for the CLAs seems
to be that this was happening for nascent, quasi-corporate projects from orgs
who were making their foray into open source and were under the impression
that this is just how everyone else was already doing things. Meanwhile, back
in reality, the old standards and posterchildren for open source were actually
humming along with no CLA in sight. (E.g., Linux, Mozilla.)

The CLA trend is waning, though, as people realize that they were never
necessary, they only really only introduce friction to contribution process,
and the only reason anyone ever adopted them was because they were looking
around and trying to emulate each other. (You know the phenomenon where
someone seems to be famous just for being famous?) Projects that came about
during this time (e.g. NodeJS) have actually been getting rid of their CLAs.

EDIT:

> IIRC any project with a developer agreement (like Google's) include a
> transferrence of copyright note.

This is not true wrt Google. Contributors retain their copyright. Where did
you learn otherwise? Comments like this are how famous-for-being-famous
happens.

~~~
mi100hael
CLA = contributor _LICENSING_ agreement. CLAs don't need to include transfer
of copyright.

A CLA is still necessary in some form in this case for the owner of the repo
to re-license the product under the commercial dual licensing scheme.

~~~
carussell
I don't understand what point you're trying to make. The tone of your comment
comes across as if you're refuting/disputing something (that may be implied?)
in what I wrote, but I'm not sure what it is.

~~~
mi100hael
Your comment conflates CLAs and copyright transfers.

~~~
carussell
Can you point to where?

------
notheguyouthink
Nifty! I look forward to (hopefully/eventually) someone making Go bindings for
this :)

With that said, it would be nice if the sample apps included more components
of the native UI. Eg, a bunch of buttons, text editors, etc - a sort of
kitchen sink screenshot. Just to understand what it looks like on each OS. All
the samples I saw so far seemed very limited, visually.

------
ComodoHacker
This looks much like Sciter[0], but without declarative CSS and built-in
scripting.

0\. [https://sciter.com/](https://sciter.com/)

~~~
c-smile
Sciter uses H/W accelerated graphics, on Windows for example it uses
Direct2D/DirectX. And Yue uses GDI+ that is pure CPU based rasterization.

With modern high-DPI monitors, when number of pixels is 4...9 times larger
than on old 96ppi monitors, non-GPU rendering is not an option anymore.

------
nautilus12
Im very confused what is going on here. He works for electron full time but is
releasing something else thats basically the same with more confusing terms?

~~~
eivarv
How is it basically the same?

As far as I understood Yue is a GUI toolkit that wraps the platforms' native
widgets, whereas Electron is a Node runtime and a Chromium instance (which
lets you build GUIs with web technology).

------
harisvs-code
As a side note, I made an app with nodejs and vala without resorting to yue.
[https://github.com/harisvsulaiman/Pushy](https://github.com/harisvsulaiman/Pushy)

Its a WIP

------
viach
Does it have any relations to Vue.js or it's just co-branding trick?

------
eivarv
Great job!

Maybe now we'll finally see accessible and efficient GUI apps from those who
insist on writing desktop applications with JS.

~~~
majewsky
> accessible

Too bad it ignores accessibility entirely:
[https://news.ycombinator.com/item?id=15219025](https://news.ycombinator.com/item?id=15219025)

------
wheresvic1
I read the help page but I'm still not sure how this is different from
Electron then? Could you care to comment?

------
z3t4
It would be nice with Android support, otherwise I see no real advantage over
electron or nw.js or a web app.

~~~
eivarv
I'd say wrapping native widgets is an advantage in and of itself.

------
_binder
Right, So I am doing a research project and If I want to use this library in
that project, does that mean I have to pay to use it. My project is currently
closed source , because don't want anyone to steal stuff before I publish my
paper. After that the code goes public.

~~~
fiatjaf
No, you don't have to pay. You only have to pay if you modify Yue.

~~~
rkeene2
If you modify "Yue", want to redistribute the modified "Yue", AND don't want
to release your modifications to "Yue" in source form.

------
brodock
Thank you for not doing that in JavaScript ️.

------
andrewmcwatters
For being a library designed to assist with creating cross-platform GUIs, the
website itself—which should give a good first impression of the project's
attention to user interface details or user experience—is a joke.

Compounded with the other HNer's comments regarding its licensing, make your
own judgments.

------
jasonkostempski
Is the license similar to the React one?

Edit: Not trying to start a controversy or anything, I've never seen the
Microsoft Reciprocal License before, it just looks like a similar idea. I'll
just go look it up.

------
KayL
I don't really like the name.

Vue Yue Vue Yue Yao Yue.

------
fiatjaf
Is that as amazing as I think it is? The Electron killer, the Holy Grail of UI
frameworks, the El Dorado of cross-compatibility, the One Library to rule them
all?

~~~
jacoblambda
not really, especially considering it has the same author as electron

