D language for Graphical User Interface and Cross Platform Development
Robert M. Münch
robert.muench at saphirion.com
Mon Jun 29 12:23:42 UTC 2020
On 2020-06-28 18:01:08 +0000, c-smile said:
> Sciter's author here.
Hi Andrew, thank for jumping-in.
> Sciter API is pretty compact, it is exposed from sciter.dll as a
> structure (
> https://github.com/c-smile/sciter-sdk/blob/master/include/sciter-x-api.h#L50
> ) and normally application use 20-30 functions of it. Sciter is
> perfectly suitable for D. D integration was one of design targets from
> the very beginning.
I didn't know that D was taken into account for Sciter nor that it's
well suited to work with D. Might be a good addition to your web-page
(if it's not already there and I overlooked it).
So, this means, that all the embedding principals work with D too?
> Just in case, initially Sciter was meant to be written in D. Here is
> the story: https://sciter.com/10-years-road-to-sciter/
Oh, cool. Again, if this thing is so good integrated with D, that
should be made more public.
> I still think that among native languages D lang is the most suitable
> one for GUI development. GC is the must for UI if to consider complex
> ownership graphs that frequently contain loops.
I agree... it feels very natural to do such frameworks in D.
> Having said that, it is possible but quite hard to make an
> embeddable/shared (to other systems) GUI engine in D, for very same
> reason as the above. The most feasible approach, I think, is along the
> lines of my Quark project ( https://quark.sciter.com ) - self-
> sufficient executables that contain GUI engine linked statically.
That's a very interesting thing! I have some questions:
* Our goals is to create a zero-dependency standalone EXE application.
As I read this, this is possible? We would have additional D/C code we
want to all "link" statically.
* Does quark does anything against reverse engineering? I mean, all the
script stuff is very nice, but we have to be sure, things are not
changed, extracted, etc.
* Is the scriping engine, which seems to be genuinly done from scratch,
fully JS compatible? Or how does it fit into the overall web-stack
space? Can exteranl frameworks be used, too? Or do these need some
Sciter specific adjustments?
> If to consider a "perfect and modern D GUI library":
>
> 1. It should have unified DOM serializable to HTML/XHTML. There are
> many good reasons for that, from Accessibility (a.k.a. Section 508), to
> things like enabling React alike functionality and JSX. D syntax may
> even support JSX natively in the way I did in Sciter's script:
> https://sciter.com/docs/content/script/language/ssx.htm
I always see two parts:
1. The "how to code it" part, which should use a declarative DSL that
integrates with the rest of the D application code pretty simple and
without any friction. If there HTML/CSS/JS is the best combo, could be
discussed. At the end of the day, I think this is all more about taste
than technological superiority.
2. The "how to display" part. I prefer to have a GUI toolkit, that
doesn't use any native widgets, instead just renders the stuff the app
needs. I want access from high-level abstraction to low-levels, so I
can get in between and do whatever is required for my app.
> 2. It should be style-able, so is CSS or its subset. It is again
> flexible and 95% UI developers know it already. Style-ability here
> means not just colors but flexibility and configurability of element
> flows (layout manager in Java AWT terms).
Agree, again, if this is CSS or something else, can be discussed. But
of course you are right, that more and more people know this CSS stuff,
it doesn't make a lot of sense to reinvent the wheel.
> 3. It shall use GPU rendering as much as possible. That's the must for
> high-DPI monitors.
Yes. Or have a very sophisticated, hight speed sofware renderer.
> 4. Implementation shall be compact - each D GUI application will
> include it statically and compilations time shall be short.
Yep!
> Please let me know if someone will start doing anything close to the
> the above in D - I can help.
I might turn this the other way and take a deeper look into what you
have. Beside, doing a GUI library is a fun project, I have a clear
business use-case behind it.
Going to PM you for more details, that might not be that interesting
for the community.
--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20200629/dd074690/attachment.htm>
More information about the Digitalmars-d
mailing list