What programming languages are good for creating cross-platform desktop applications? [closed]

The question was asked: 8 years 4 months ago   views: 192

Looked Java. In x64 system, the window HelloWorld eat off around 20 MB of memory, and this number is growing quickly while creating new objects. Mono - just look at the player Banshee to understand that the situation is not better (Music player biting ~ 100 MB of memory, despite the fact that I always keep loaded player I don't like it).

C++/Qt, seems a good idea, but the study will have to spend a lot of effort, despite the fact that it is not known whether justified(in General Qt now as I see it is not the most stable situation, and with the advantages of the new projects people have become more careful)

Python/PyGTK was surprisingly more modest memory than java, but the language itself seems to me so unstable, maybe I just don't understand dynamic typing. The lack of encapsulation and overloading of functions is surprising. It is not clear what value returns a function. Code found is not readable just because of the lack of brackets. Somewhere stumbled upon the advice to use less function calls, especially in cycles because this is an expensive operation in Python. Before my eyes immediately introduced huge methods in 200+ rows.

PS Maybe I do something wrong because look at these languages are very superficial. Cross-platform-level compilation would suit perfectly(with the same code).

"In x64 system window HelloWorld eat off around 20 MB of memory, and this number is growing quickly while creating new objects. Mono - just look at the player Banshee to understand that the situation is not better" - this is all because of improper use and configuration of virtual machines. - 20-05-2011 в 17:46:19
By the way, how do you define 20M or more? Where did the figure of 20? When talking about virtual memory, the virtual machine 20 metres will not start at all. Because it requires a lot of memory to display dynamic native libraries: in this case the real physical memory is not consumed. PS: I have 20 metres even vim cannot start. - 21-05-2011 в 09:55:04
free - look free memory without buffers and caches, then run again free. Why python is eating less a mystery to me. - 21-05-2011 в 10:13:01
What do you think why Python don't write large applications running longer than the CGI script? Imagine that you would have to write it on the application class in Eclipse or IDEA.. I have no doubt that will be epic fail. - 21-05-2011 в 11:04:12
Why it will fail? - 22-05-2011 в 01:04:19

Answers   3


Which is better depends on the selection criteria. In this case, they are: Development time and the time of the changes (and the second may be more important than the first for custom applications).
The complexity of the application.
The type of application("photoshop", "WoW" or "to Twitter"), or custom drawing.

  1. C++
    the speed of development low

    for complex applications

    for replicable solutions requires a highly optimized implementation. For weak iron - GPS navigation devices, cash machines, CNC machines, ...

  2. Java
    development time less than C++. Especially the time of the changes, improvements

    for complex applications

    when required, the effectiveness of the program (a waste of memory concerned only young programmers. Neither manufacturers of smartphones on Android, nor customers the business of software is a property of the JVM do not care. And my wife also don't care how many are eaten off the music player), and it does not require optimization run using low-level tricks or specifics of the OS.

  3. Python
    development time the low

    for simple and medium complexity applications (for complex - only when the high qualification of programmers or a formalised development process)

    for non-critical lead time(examples - customer Dropbox'and wikidpad). For customized, short-run applications. (program on the servers of Google and Yandex - "custom", because its unique)

About the time of the development of young programmers usually don't bother. And often in life - winning is not the best, and first. Especially when working under the order.

About dynamic typing.
It requires self-discipline development, which usually do not have young programmers, and they themselves are "evil Pinocchio" code quickly turns into chaos.
It requires mandatory and severe use of TDD or similar methods.

The interpreter/compiler YAP with dynamic typing would never be able to run/generate code of the same efficiency of the implementation is that with static typing.

To the question - likes/dislikes any programming language.

First, often the "not like" this - "didn't know don't know don't want to know"

Secondly, when after several completed and running programs remains "not like" is he really worth to think about changing the programming language. Development favorite programming language is a very important motivator to reduce development time and improve its quality.

(About myself - professionally(ie for money) written on plain C, Java, Python)

Answered: 21-05-2011 в 11:37:47
the only noteworthy response in the midst of plenty of topics for holivarov - 28-07-2011 в 19:53:03
Answered: 20-05-2011 в 12:02:12
I will add that for Python there is a library PyQt - 20-05-2011 в 12:05:43
Thank you for such a detailed answer. And what IDE to use for python you personally? And what pleasant side of dynamic typing? (If to consider that to declare variables and, if necessary, allow the types of clearly - not a problem) - 20-05-2011 в 14:37:17
I use [PyCharm][1] from a team of JetBrains. Very happy with this IDE and auto-completion works fine, and the debugger, and evolve she is very active. About dynamic typing added to the response, this does not fit =) [1]: jetbrains.com/pycharm - 20-05-2011 в 17:40:57
you write on py3k in PyCharm? - 21-05-2011 в 15:24:07
Yes. But frankly, in military projects Python is only used as triggers in postgresql. - 21-05-2011 в 23:13:54

Qt itself is not so difficult if you are familiar with C++. But the possibility is powerful. Cross-platform total! Appreciate Qt also for the fact that the layout of appearance of objects is almost automatic - it is impossible gaudy curves (as often love to make programmers Delphi). For any operating system's appearance will be identical - you can not fear to write under Windows application which will be later compiled under Linux, and it will look the same here and there. A powerful set of classes for all occasions - multimedia, graphics, text editors, databases, etc. Stability and support for a very large company. Regular releases. Free version and version for mobile devices.

The complexity of studying the language and the set of libraries pays for itself many times over.

Answered: 20-05-2011 в 09:35:41