Electron IDE

Seems like Electron might be a decent candidate for cross-platform applications (Win/Mac/Linux/Web), but all the tutorials I see seem to show people creating UIs from code. Is there a drag/drop UI creation tool for Electron? (Being open source, maybe there’s several?)

I know Electron has been around for a while, but I never really had to use it until just last week when I started writing a plug-in for an app and consequently had to teach myself JS.

For desktop apps, however, I like to be able to create dialogs with controls in them by drag/drop/resize, add events and so on…
Can desktop apps be created using native controls in Electron?

(I think Discord and Slack as well as VS Code are written in Electron?)

What are anyone’s thoughts on Electron?

I dont know of any IDE’s like Xojo for electron apps

As for opinions ? Fat. Bloated. Not really “native”. Electron is basically a web app wrapped in a container that lets it be used like a desktop app. So you get “web app” like behaviour which isnt always “native” since you may be using non-native controls.

Gotcha. VSCode looks to be a decent, modern looking desktop app, but for reasons I don’t understand, it has no native printing capabilities…
I don’t see any real native controls, and yes, it does look like a web app.

However, old-school as I am, it does seem like more and more desktop apps are becoming web-like…

Many are
But Xojo does a decent job of being native and x-platform
Note DECENT not PERFECT :slight_smile:

IS there something preventing you from using that or pushing you to something else ?

Not at the moment. Xojo is fine, but not particularly popular or well-known as you know, so always interested in what the “cool kids” are doing…

It’s also not free, but that’s a double-edged sword. I’d have no issue whatsoever with the cost if they actually fixed bugs…

I dislike Electron for several reasons but the two biggest are:

  1. Bloated. The apps are huge and by design contain an enormous amount of redundant code in every app.
  2. They use Javascript. Some might say this is an advantage but I find Javascript to be a heinous Frankenstein of a language. It’s not OOP for one (which I find a negative).

Javascript is “object like” at best.
There are efforts with things like TypeScript to make it harder to code yourself into a real bind using Javascript because its so type fluid and some what unstructured.
Using VSCode for Typescript is an alternative way to write type safe and decently structured OO code that then is converted into javascript

I agree that JS is a double-edged sword. It’s easy as can be to write code using JS, but it’s non-strict-ness makes hard to find bugs easy to make. It takes less time to write because you don’t worry about conversions, and if it happens to convert things the way you hoped or expected, then great. If it doesn’t, then it can be hard to track down what happened.

I’m a big fan of strictness in programming. I think Xojo isn’t strict enough. C# or VB.NET with option strict is more my cup of tea. I like to know that the code is doing what I told it to do. I could look at TypeScript, but honestly I’m not really looking for a new language, just comparing.

@Meestor_X I wish Xojo was less strict or at least provide a better generics mechanism than Variant. Something like how C# or Java do it.

Interesting. To each their own, I guess. I don’t like automatic conversions. Inheritance and polymorphism with objects, yes, but 1 + ‘2’ = 3, nope!

1 Like

Generics in a “Xojo style” would require a compiler engineer
There’s been talk about it but no actual progress on it between Aaron and Joe as far as I recall

I’ve posted some code online that makes it possible for us to kind of do our own “generics” but in a limited sense. What I cant do is have the compiler enforce things which is what I would really like.

if you could do

    dim stringList as new List<string>
    dim typedDict as new Dictionary<string, integer>

or something semantically similar and have the compiler enforce, at compile time, that stringList ONLY gets strings added to it and that the typedDict only gets integer values added with string keys that would be AWESOME !

the most general form feedback://showreport?report_id=14699
or feedback://showreport?report_id=56919

again - compiler engineer required -

the little I did post about making a typed dictionary

1 Like