Hacker News new | past | comments | ask | show | jobs | submit | c-smile's comments login

I am working on Sciter.GLX - Sciter Engine (HTML/CSS/JS) combined with OpenGL runtime working on all platforms, even on those that do not support OpenGL natively (e.g. Windows/ARM and MacOS).

Sciter offers access to OpenGL as by WebGL/JS as by native OpenGL API access.

Idea is simple: pretty much any 3D application needs some form of 2D UI/Chrome. And so Sciter.GLX provides just that - HTML/CSS/JS UI with <webgl> islands.

Sciter.GLX is also about direct support of as Wayland as X11 on Linux.

Check preview: https://sciter.com/sciter-glx-generation-4/


We MUST, having life on just one planet waiting for the next mass extinction event here is too optimistic.


Why must we? There are other intelligent life forms in the Universe, undoubtedly. What makes us so special?


They are also 20 feet tall and wear propeller hats, no doubt.


We're the only ones we've found so far.

personally I'd say don't bother, but I'm a nihilist.


"don't bother" doing what? Looking for them?

The chance of our ever encountering one in person is close to zero. We might find evidence that they're there, but that's about it.


Just in case:

Sciter has Reactor - its own native and built-in implementation of React.

Main difference is that component is instanceof Element - components are DOM elements. This allows to unify React and WebComponent under the same umbrella/mechanism. Yet to extend standard DOM methods by use of JSX, so this

    someDomElement.append(<div>Hello</div>)
works just fine - appends content from the vDOM.

In fact Reactor is three entities implemented natively:

* JSX - embedded into JS compiler (830 LOC) - https://gitlab.com/c-smile/quickjspp/-/blob/master/quickjs-j... , produces vDOM literals

* Element.prototype.patch(JSX/vDOM) (420 LOC) - reconciliation / diff implementation

* Binding of lifecycle methods (200 LOC) - componentDidMount and Co.

There is also native implementation of Signal's (310 LOC) but they are optional for React'alike functionality.


This is cool, but how big are the practical advantages (performance?)?


This is very cool, first time I'm hearing of Reactor, thanks for sharing



As of Sciter and "antialiasing" issues mentioned in the article...

Author did not enable high-DPI support in his/her application. As simply as that...

Either in Visual Studio : https://sciter.com/wp-content/uploads/2024/06/high-dpi-aware...

Or by including proper manifest: https://gitlab.com/sciter-engine/sciter-js-sdk/-/blob/main/d...

That actually is explained in "Hello C++" tutorial: https://sciter.com/hello-cpp-tutorial/


Sciter desperately needs an evangelist who can reply and help people with their problems and just in general provide support and work on the ecosystem. I think from what I remember from indiehackers you are not there yet to be able to afford it but we desperately need that.

Even paying pravic to keep the libraries for different languages up to date would be of great help.


Sciter's support forum is pretty active : https://sciter.com/forums/

Mr. Yuri (Pravic) has his own agenda these days. As far as I know creation of Go, Rust and Python backends for Sciter was a method for him to determine best frontend technology for his organization.

If someone wants to take care about Go, Rust and Python wrappers - let me know.


Ultimately as a user / customer I dont care who maintains the bindings I need to use to achieve my goal.


1. These wrappers are Open Source.

2. I do not have customers that requested either one of these wrappers.

3. Customers that do use one of wrappers, as AdGuard for example, maintain their own version of Sciter/Go: https://github.com/AdguardTeam/go-sciter


What kind of license do I need to buy for the bindings to be updated?


As with any other Open Source project - contact its author and discuss with him/her.


Might end up being yourself.


> Almost-Linear-Time Algorithm

From O(mn) to O(m) ... thus excluding N (number of vertices) from computation ...

Too good to be true?


Constant factor so large it's going to be slower than existing (asymptotically worse) algorithms on any practical inputs.

Still, a neat theoretical result.


The constant factors could be optimized or even accelerated with special-purpose hardware. There could be a simplification or even something like reuse/caching/memoization that in real world will reduce the constant factor significantly.


Maybe, but that would be a different research project.

The constant factors are currently so large that even multiple orders of magnitude speedups would not make this practical.


This seems to be modelled after Sciter's popups that existed 10 or so years.

anchorElement.popup(elementToPopup, options) - https://docs.sciter.com/docs/DOM/Element/#popup

In Sciter popup element is always associated with its anchor element and appears relative to it.

CSS was expanded to support popups: :popup state flag/selector is "on" the popup element and :owns-popup is "on" on popup anchor element when the popup is shown. Also several CSS properties: popup-position, popup-anchor-reference-point, popup-reference-point, popup-animation.

Sciter has built-in JSX and so element.popup() accepts JSX that creates popup DOM element on demand, for example this

   button.onclick = function() {
      button.popup(<select type="list">
        <option>A</option>
        <option>B</option>
        <option>C</option>
      </select>)
   }
will popup selectable list as dropdown popup.


Politics aside, how that in principle is different from "hostile takeover" (https://www.investopedia.com/terms/h/hostiletakeover.asp) ?


Nice try, but politics can be just put aside. Today you ignore politics, tomorrow it's banging at your door with an automatic rifle. The matters of national security have always been more important than economic freedom, everywhere in the world.

Chinese authoritarian government doesn't allow American companies to freely operate in China, but they want freedom for the Chinese companies in the West? That's a little hypocritical, don't you think?


> Chinese authoritarian government doesn't allow American companies to freely operate in China, but they want freedom for the Chinese companies in the West? That's a little hypocritical, don't you think?

Not really, no. Our government operates under our constitution, not China's.


Which is also why national security (and think of the children) is used to justify whatever they feel like. Any mention of either turns off the critical thinking parts for a large fraction of the population.


> being able to deploy same codebase on web and desktop

Desktop UI and Web UI models are so different that in reality you cannot use the same codebase on 100% in both targets.

Web UI uses traditional Web's "endless tape" model where only width is known. This does not really work on desktop where width and height are finite. See this Sciter based app https://notes.sciter.com/ as an example.

> reusing the vast selection of libraries for web

If you do need this then you can use Sciter's WebView that is a <frame> backed by system browser:

https://sciter.com/wp-content/uploads/2022/04/sciter-webview...


If you set the height of your body element to 100vh (100dvh in the case of iPhones), then the web acts like the desktop in this regard. They’re different since the tooling is different but not because they’re essentially different.

> If you do need this then you can use Sciter's WebView that is a <frame> backed by system browser:

iframes are very constrained in what you can do, if you’re targeting the web from the start you get the full power of using those libraries beyond the bounds of a single frame.


> Desktop UI and Web UI models are so different that in reality you cannot use the same codebase on 100% in both targets.

I develop an Electron app and the CSS is 100% same on both web and desktop. It's not a "web page", it's an app, which doesn't use the "endless tape" model.

> If you do need this then you can use Sciter's WebView that is a <frame> backed by system browser:

At that point it seems easier to just use something like Tauri which uses the system browser for all rendering.


> past Russian ... imperial impact

Not sure how "past Russian impact" is at all related to ttb writings ...

Could you elaborate on that?


I am not an expert but Mongolia was under heavy Soviet influence so they adopted Cyrillic alphabet

After USSR dissolution there's an impulse to return to the traditional vertical script which is a bit impractical because compared to say Han it's not possible to write it horizontally.

Wiki can tell it better than me https://en.wikipedia.org/wiki/Mongolian_Cyrillic_alphabet


USSR !== Russian Empire.

Anyway...

Vertical writings are fading out not because someone's political will, but because of their impracticability in modern era.

First commercial typewriter appeared in US in 1874 and it effectively set the end for any non-LTR writing system.

In that respect, can we attach USA to that imperial club that killed TTB writing systems?


USSR is Russia's most successful imperial project. Let's not pretend it was Estonians and Tajiks who ran the business.


There was a whole team behind Microsoft Trident (IE engine) that was dissolved in favour of third-party (for them) Blink engine. That team was surely knowledgeable, but they had gone.

Blink source is de facto current spec. Each function, if not single line, there is a paragraph in spec.

I remember at WHATWG / HTML5 WG times when Ian Hickson (Google) was pushing whole SQLite (and its SQL flavour) to be included in HTML5 ...

The spec area is so huge and indeed obscure that even Microsoft could not handle it.


Blink source is not the spec, there are W3C specs implemented by Webkit/Blink/Gecko, see the Interop project.

It's not that MS couldn't handle its own engine, it was just not worth it for them in the long term.

Ladybird, NetSurf or Servo engines are prime examples that it is possible to create an independent web engine from scratch even not being a big corp. If they can do it, MS definitely could do it as well if they wanted.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: