It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
mqstout: Ever recommending that to anyone for any reason earns you a special place in the deepest parts of hell. Just no.
I agree. That's the most wasteful way of doing anything.
avatar
eric5h5: Java and .net are trivial to decompile, so you really can't stop anyone reading your source code. There's no such thing as "private" as long as an app runs locally.
But there are all kinds of obfuscations that can be done, though they can't be done to source code, very well, anyway.
isn't .net core meant to be cross platform?
Between Windows and Linux, Java + Swing are truly cross platform. AFAIK, the same goes for JavaFX, but I've no first hand experience.

I do recall there being something about Apple shipping some incompatible (or was it just older?) version. I don't recall the details, as OSX never held any interest for me. If Amazon make a version of Corretto for OSX, you could use that.

The recent licensing issues Oracle have caused, I can't advise you on. Google it.
avatar
HeresMyAccount: But there are all kinds of obfuscations that can be done, though they can't be done to source code, very well, anyway.
True. But if this is a really important issue for you, I wouldn't count on it.
avatar
zenstar: isn't .net core meant to be cross platform?
Not for GUI apps. Yet...
Post edited February 04, 2020 by brouer
avatar
nightcraw1er.488: JavaScript is cross platform and with electron can be used to build apps as that uses chromium (web browser to display ui).
avatar
mqstout: Ever recommending that to anyone for any reason earns you a special place in the deepest parts of hell. Just no.
Guys got a list of requirements as long as your arm, which removes the possibility of pretty much everything. Am only suggesting things which might work. I mean there are lots of options, however every single one of them suggested has been blocked by some requirement. He doesn’t even have a Mac!
End of the day JavaScript is one of the biggest languages out there, and electron may be bloated (and no one likes using google anything), but it would work.
Also we know nothing about the project other than the list of requirements. Could be a simple front end in js, backend services on a server (although it’s already been pointed out that we can’t use the internet, can’t connect to the internet, can’t use installers which require the internet etc. Just look up the other threads in the chains.
avatar
nightcraw1er.488: Guys got a list of requirements as long as your arm, which removes the possibility of pretty much everything. Am only suggesting things which might work. I mean there are lots of options, however every single one of them suggested has been blocked by some requirement. He doesn’t even have a Mac!
End of the day JavaScript is one of the biggest languages out there, and electron may be bloated (and no one likes using google anything), but it would work.
Also we know nothing about the project other than the list of requirements. Could be a simple front end in js, backend services on a server (although it’s already been pointed out that we can’t use the internet, can’t connect to the internet, can’t use installers which require the internet etc. Just look up the other threads in the chains.
The list of requirements isn't very long; I basically boiled it down to 3 things which I listed above.

Also, it's not that the language/IDE can't have an online installer - it can but I'd like to ideally avoid that, but if I need to use one then I will. What it can NOT have is a requirement to remain online while I'm using it for development.
avatar
HeresMyAccount: It's more private because I don't want anyone reading my source code! Also, someone above said that Python compiles, so why would that be open-source?
You *really* need to learn what open source means. Because you won’t be able to find a programming language that both fits your demands and is not open source.
avatar
hummer010: I'm curious about the closed source requirement. How is closed source more private?

Otherwise, my recommendation would be python + tkinter. Easy to code, easy to run, very portable.
avatar
HeresMyAccount: It's more private because I don't want anyone reading my source code! Also, someone above said that Python compiles, so why would that be open-source? And is it more portable (if by that you mean cross-platform) than java?
I think you should separate GUI and functionality, especially if your code is "super secret" that nobody should see. If you expose the code to the user, basically they have all they need, even if compiled/obfuscated etc. Then you can write your backend in whatever you want. Same goes for the GUI
avatar
hummer010: I'm curious about the closed source requirement. How is closed source more private?

Otherwise, my recommendation would be python + tkinter. Easy to code, easy to run, very portable.
avatar
HeresMyAccount: It's more private because I don't want anyone reading my source code! Also, someone above said that Python compiles, so why would that be open-source? And is it more portable (if by that you mean cross-platform) than java?
Being open source has nothing to do with your code. It means that the source code of the compiler/interpreter/runtime/whatever is available.

For a gui application, I would say that python+tkinter is more portable - tkinter is part of the base install on all OS's.
avatar
HeresMyAccount: In what way is the Java license problematic?
I can't be bothered to fully read it or consider what it might mean for you, but the The yellow box at the download page looks potentially alarming.
avatar
HeresMyAccount: Why wouldn't OpenJDK have JavaFX?
I thought it didn't, but my information may be outdated.
avatar
HeresMyAccount: Why is it complex to set up and run Java?
Need to set up a third-party runtime environment instead of just running native software. It comes from a vendor that slaps an unfriendly-looking license on it. You probably can't distribute the Oracle JRE with your application unless you pay Oracle for the privilege.

Not even sure if you can distribute OpenJDK with your application, unless your license is compatible with the GPL.
avatar
HeresMyAccount: Why wouldn't OpenJDK have JavaFX?
avatar
Rixasha: I thought it didn't, but my information may be outdated.
Oracle decided to unbundle JavaFX from the JDK, so newer versions won't include it.
But it's trivial to include it, along with other dependencies, when distributing your own Jar.
So the unbundling itself is no reason to dismiss JavaFX.


Just to muddy the waters a bit more: There's also Google's Go language.
You can build totally self contained executables with it. Including cross compiling for the three major platforms.
Like. NET Core, it doesn't come with an official GUI framework out of the box, but there are options.
Packt Publishing have a book called "Hands-on GUI Application Development in Go" that describes those options in fair detail and shows how to use them (including how to build for Mac on a Windows PC).
avatar
Rixasha: I thought it didn't, but my information may be outdated.
avatar
brouer: Oracle decided to unbundle JavaFX from the JDK, so newer versions won't include it.
But it's trivial to include it, along with other dependencies, when distributing your own Jar.
So the unbundling itself is no reason to dismiss JavaFX.

Just to muddy the waters a bit more: There's also Google's Go language.
You can build totally self contained executables with it. Including cross compiling for the three major platforms.
Like. NET Core, it doesn't come with an official GUI framework out of the box, but there are options.
Packt Publishing have a book called "Hands-on GUI Application Development in Go" that describes those options in fair detail and shows how to use them (including how to build for Mac on a Windows PC).
Interesting. The one thing stopping me looking at Go has been lack of gui, as it’s mainly used on back end. The language itself is nice, and fast, plus compiles quick and small. From what I read somewhere there is more less focus on gui’s and more on command line backend things now, with web page front ends. Could be wrong that’s just what I read. Will look up that book.
avatar
vv221: You *really* need to learn what open source means. Because you won’t be able to find a programming language that both fits your demands and is not open source.
I know what open-source means: it means that I allow people to see my code, which I don't want to do.

avatar
blotunga: I think you should separate GUI and functionality, especially if your code is "super secret" that nobody should see. If you expose the code to the user, basically they have all they need, even if compiled/obfuscated etc. Then you can write your backend in whatever you want. Same goes for the GUI
But that wouldn't give me the ability to be compatible with PC and Mac, because I have no way of developing on a Mac - hence the requirement for cross-platform, so that it's write once and run anywhere (as long as there's nothing Windows-specific in it).

avatar
hummer010: Being open source has nothing to do with your code. It means that the source code of the compiler/interpreter/runtime/whatever is available.
Well in the context that I was using it, I was referring to a requirement that my own program must not be open-source, and for that reason I can't use a language which is interpreted without being compiled first.

avatar
hummer010: For a gui application, I would say that python+tkinter is more portable - tkinter is part of the base install on all OS's.
You're saying this "tkinter" thing that I've never heard of is included with all versions of Windows, MacOS, Linux, Unix, etc.? Then why have I never heard of it? I'm going to look it up...

avatar
Rixasha: Need to set up a third-party runtime environment instead of just running native software. It comes from a vendor that slaps an unfriendly-looking license on it. You probably can't distribute the Oracle JRE with your application unless you pay Oracle for the privilege.

Not even sure if you can distribute OpenJDK with your application, unless your license is compatible with the GPL.
Oh, for God's sake, I'm not going to be selling anything, so doesn't fair use cover it?

EDIT: Actually, I just read how they define "personal use" and it's anything that isn't used for the purpose of any business or to make money, and since I'm not doing that, the license should apply to me with no problem.
Post edited February 05, 2020 by HeresMyAccount
avatar
hummer010: For a gui application, I would say that python+tkinter is more portable - tkinter is part of the base install on all OS's.
avatar
HeresMyAccount: You're saying this "tkinter" thing that I've never heard of is included with all versions of Windows, MacOS, Linux, Unix, etc.? Then why have I never heard of it? I'm going to look it up...
TkInter is included as standard in the Python installer. Not the OS.
avatar
HeresMyAccount: I know what open-source means: it means that I allow people to see my code, which I don't want to do.
Yeah, right, I see you know everything you need about open source, sorry to have put your knowledge in doubt…