yatima1460 / Dhanos

Universal D binds for webview UI library running on Windows, Linux and OSX
GNU General Public License v2.0
8 stars 0 forks source link

What about Ultralight? #1

Open spikespaz opened 5 years ago

spikespaz commented 5 years ago

I've had my eye on https://ultralig.ht for a while. I'd like to know your thoughts on it. Why this instead?

https://github.com/zserge/webview is new to me, is it more mature and would you recommend it over Adam Simmons' project? Adam made Awesomium which is well-known, albeit abandoned.

I have vested interest in a this repository, but I'm wondering if bindings for Ultralight may be a better direction.

yatima1460 commented 5 years ago

@spikespaz sorry if I reply late!

Didn't know about Ultralight, well, I'm just testing stuff now, but I'm starting to hate how every D library in the end is just a binding to a C or C++ library, in this way D will never replace them

webview is even more minimal than Ultralight from what I can see, and my plan is to completely rewrite it in D

yatima1460 commented 5 years ago

Well it's true that it actually links to the giant webkit 🤔 Anyways Dhanos is already designed to have an interface with multiple backends, so we could theoretically support both

spikespaz commented 5 years ago

D language uses existing C++ and C libraries because it can, and there's no reason to reinvent the wheel. In my opinion, it's a strength, not a weakness. As the language matures and gains a larger and more stable audience, I'm sure we will see pure-D alternatives to existing popular libraries, such as ncurses, etc. But so far, there aren't enough people using the language to make libraries with only D, that rely on garbage collection. The standard library is great but that is the biggest weakness.

yatima1460 commented 5 years ago

@spikespaz very experimental "Electron"-like rendering with D still unfinished

took me more than a week to bind JS<=>D

it's all HTML and CSS

started a new branch for Drill to test it, it's in Source/Frontend/WebView and there is Dhanos as submodule https://github.com/yatima1460/Drill/tree/webview

image

yatima1460 commented 5 years ago

@spikespaz Tried WebKitGTK for about 2 weeks, the library is theoretically good, the problem? The implementation is so unstable I had first to use gdb to find out which was problem, then gdb crashed and had to use Valgrind, and with it I found that the library itself has memory leaks and corrupts MY memory!!

NEVER EVER USE WEBKITGTK

I think I will do what you suggested and make a bind of Ultralight, can you investigate on the licence? It seems they use a custom one, can I use it with GPL-2.0?

spikespaz commented 5 years ago

The EULA does say derivatives aren't permitted, but I would say that a wrapper isn't a derivative, rather a supplementary yet still separate project.

Only a portion of Ultralight is open-source, and those are the headers. Since your bindings are ultimately a port of the C headers, I see no conflict. You aren't going against the wishes of Adam Simmons but rather furthering adoption of his product by making it accessible to yet another language. He plans to make bindings for other languages so I don't see why you can't.

Actually, now that I think of it, all of the above speculation and assumptions are irrelevant because I just remembered that I already talked to him and asked permission for this exact thing. 😐

Would have been nice if my brain remembered that before I read the EULA.

Also, this is funny:

Under this EULA, Ultralight Inc's maximum liability is further limited to one US Dollar (USD$1.00).

If it breaks your computer I would bet they'd gladly give you a dollar. 😂

yatima1460 commented 5 years ago

I don't really like the idea of using something not open source for an open source project They could change something and it could be PURE PAIN to debug it

I tried NW.JS some months ago and it seems pretty good, also Open Source

https://github.com/nwjs/nw.js/

yatima1460 commented 5 years ago

I will try Ultralight anyway, working on fixing the executable complaining about not finding some shared libraries

spikespaz commented 5 years ago

@yatima1460 I personally am willing to bite the bullet and use this specific proprietary library, simply because Adam Simmons made Awesomium. Also it's one of the only good (performant) available options that the moment.

NWJS seems like it could potentially be heavy, whereas Ultralight is gutted to be only what's necessary to make a responsive desktop program. NWJS just seems like a native port of Electron.

spikespaz commented 5 years ago

Plus that looks waaaayy too complicated for a wrapper library