3 ms·
The trouble is not in finding a solution that works on desktops for Linux, macOS and Windows -- we have that already 10 times over. What is needed is a protoco
by lwansbrough 9y ago
The trouble is not in finding a solution that works on desktops for Linux, macOS and Windows -- we have that already 10 times over.
What is needed is a protocol which can be targeted by the average JS UI framework creator. It needs to be fairly light weight, and exist mostly as a layer below any sort of framework. If that's X11, so be it, but I haven't seen it running in a browser before.
One such use case would be a JS library which handles the protocol at a fairly low level, allowing someone to create a custom ReactJS renderer which targets the protocol instead of the DOM. Hook up a protocol receiver in your favourite native language, and now you've got native UI driven by React + JS.
- j_s 9y ago> native UI driven by React + JS. https://github.com/Microsoft/react-native-windows https://github.com/Microsoft/react-native-windows Watching how Microsoft manages this project may give an additional insight into how ideas you are suggesting would fare. (It doesn't seem to be a tire fire or anything from initial impressions.)
- lwansbrough 9y agoI’m fully aware of this, but it only solves the problem for React. Which isn’t really very good solution.
- j_s 9y agoI shared it primarily because it is an open-source UI project managed by Microsoft that has to support an "API" that is cross-platform, but it also meets this portion of your original criteria: > as long as you can host the language a given UI framework is built in, you can use it to create UI elements in whatever platform you want (The work has already been done to host React/JavaScript cross-platform alongside .NET: see Edge.js http://tjanczuk.github.io/edge/ http://tjanczuk.github.io/edge/ previously mentioned elsewhere in this thread. http://www.hanselman.com/blog/ItsJustASoftwareIssueEdgejsBringsNodeAndNETTogetherOnThreePlatforms.aspx http://www.hanselman.com/blog/ItsJustASoftwareIssueEdgejsBri...) As an aside, I recommend you include some details summarizing reasons for rejecting existing solutions when initiating future discussions so all participants can begin on the same page.