Answer the question
In order to leave comments, you need to log in
Best choice for cross-platform application programming?
Hello.
The question is not holivar for the sake of — there was a need for work.
I myself am more connected with web programming, so I have a rather vague idea about OS programming.
I am interested in the least expensive to create and maintain a cross-platform application for the main desktop operating systems (Windows, Linux and MacOS families). At the same time, I would like to be able to make the application as native as possible in terms of design in each of the operating systems, so as not to annoy the user.
Choosing between Java, C# and C++.
The essence of the application is a client application that accesses the web server via HTTP, formulating certain headers and body, receives a response and draws the data as needed. It is necessary that HTTP be available out of the box, work with popular codecs (audio / video), the ability to cache media content and text, JSON support (just don't know if it's out of the box somewhere).
A big plus of the language would be its easy learning. The person will change to it c Delphi.
Answer the question
In order to leave comments, you need to log in
I wrote C++ a hundred years ago, I don’t write C#, so I’ll talk about Java.
It meets your expectations. Java Swing (GUI library) can include native look&feel. So the application in each OS will look like a native one.
There are a huge number of free libraries for Java. Google Apache Commons
There is support for a lot of useful stuff. Google the Java Media Framework
for multimedia.
The language is beautiful and elegant, although seasoned C++ programmers will throw a stone at me. And not alone.
I recommend Python + wxWidgets. If you don't like it, there is Qt + C++ || Python.
Media features in Python can be connected with different libraries (ffmpeg, mplayer), quite simply.
The most efficient is Qt and C++.
1. A good development environment is included, there is a form designer
2. Quite a lot of ready-made examples and applications in which you can always see an implementation example
3. Bindings in Python and other languages
4. There are many ready-made libraries in C ++ that you can use in your application
I also use Java (Swing)
But now something serious is being squealed on Java2ee, and there, in my opinion, the entry threshold is quite high
After all, you need to make it work, and an inexperienced person will do it. Therefore, the only option is Java, since more errors will be detected at the compilation stage. On python, js and pluses, a beginner is tormented by debugging his g-nocode. C# is more complex than Java and not cross-platform.
As for the fact that Java2ee has a high threshold of entry, this remark is out of place, since the application is desktop and does not require IT.
As for resources, Java is comparable in speed to C ++ and leaves Python, js and other dynamic brethren far behind. The increased memory consumption is noticeable only if you have a lot (millions) of small objects, and then compared to c/c++, dynamic languages have the same consumption. You don’t have many objects and they are large (you said media).
I support about JS + webSocket|ajax. Only as system requirements there will be the latest builds of browsers so that you don’t have to learn the zen of crutching. The most economical and optimal option, with the specified requirements, because. everything described is already there. Don't forget about manifest.
Of everything - with codecs there will only be nuances. But if you install extension packs for browsers, troubles will also disappear. Well, this is if the work is on order.
If something is more serious, then I will directly say - C ++ and QT (QScript). There you have a webkit and all that. But for a person moving from Delphi, the pluses will be complicated. Although powerful editors for QT through the roof. Especially for a delphi developer, it will be convenient to simplify the work with qtdesigner.
Regarding Java, take your time. With the requirements that you described, it would not be the best option to use such a monster in terms of resources.
If there are any other requirements for the tasks - write. Then it will be possible to give more accurate advice.
The easiest and most modern (in my opinion) is C#. There is a cool WCF WCF . But it's not cross-platform. There is Mono , of course, but I don’t know how it actually works.
C++ - here either Qt or wxWidgets. Qt, as far as I know, does not have a native interface, unlike wxWidgets. But the language is not the easiest, you understand =) ... however, exclamations are heard from the plus camp that Qt greatly facilitates the work.
Java - I don’t know, honestly, but I haven’t seen applications written in it for a long time.
MSDN now often has examples of the same functionality in c++, c# and vba.
Personally, I found # easier than all C, C+, C++ put together. But how to work with this under a poppy and in Linux ... ahem ...
You can use PureBasic.
It supports Windows, Linux, MacOS and AmigaOS platforms. Both 32 and 64 bit.
air sucks friends with Linux and other androids. So far the most adequate option is Q.
If you like c# with its sugar and WPF + HTML is close to you, then I can advise AvaloniaUI, the project supports all platforms including android via (.net core/mono) . Here is an excellent report on this topic https://youtube.com/watch?v=8qzqweimcFs
PS The project is in beta, but you can already write a GUI on it.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question