What are the current languages used to develop applications for Windows?

What languages are currently used for Windows application development?

I would like to know those that have dependencies, such as Java that needs to install JRE or some .NET that need you to install .NET Framework beforehand, as well as those that run without any previous installation.

Specifically I would like to know languages that are used in applications with graphical interface (GUI).

This question can serve as a guide for programmers who want to start developing for Windows Desktop.

Encouraged by this question: What programming language to create Android applications?

Author: Laércio Lopes, 2020-04-08

2 answers

Essentially all can be used from JavaScript to C, going through the ones cited in the question, and obviously C++, Delphi, Python and others, it makes no sense to list all of them.

Then we fall into the type of application that will use, Windows is very libertarian and allows all types, for each type there will be a more suitable language. I'll focus on GUI.

Web GUI

If you are using JavaScript you can do to run on the web even, in a browser, PWA, Webview in another application or something that supports web technologies, such as Electron. Some will say that this is do for web and not for Windows, but if it runs on Windows it is for Windows and is doing GUI.

Scripts and dependents

Several languages of script can be used to do various tasks, but if you are creating a desktop application with GUI it complicates a bit. It is not that they do not allow it, but is rarely so suitable.Some leave well the want, like JS if it is native GUI, PHP that has as but the result is very bad , and others because it has the problem of having to send all scripts instead of sending an executable for what seems to be a concern (some even have some form as Python does).

For Java GUI never got along very well because it looks like a duck (walks, swims and flies, no good), runs on all platforms but on all does not run well, but is a reasonable option .

Without installation

If you really want only the executable you have to think of languages like C, C++, Rust, Go, Delphi, and even moon or Harbour (I know almost no one uses it, but it's used and I like to quote it) depending on how you do it.

Of course it makes little sense to use C for a lot of complex GUI stuff. Go or even Rust has no history of use with GUI. Delphi is proprietary and nowadays this is a problem, but it has good GUI. C++ is not for anyone to work with. Each has a problem.

Qt is a very used library and see the bindings available for her that therefore make these languages candidates for the task described in the question. Qt is one of the most interesting, although I think it has been taking a complicated course, improved in several points, but stagnated in another and worsened in several some.

Another frameworkused is WxWidgets, See list of bindings.

I won't list all frameworks even because some are little used, many are usable in a very bad way despite the language supporting it in a binding, would have to do a deep analysis on each one. If you want it has a list of various toolkits (does not include frameworks that run on top of them).

.NET fits well because Microsoft makes it the flagship for GUI, but even there it has difficulty choosing because we have 3 options official (Windows Forms, WPF and WinUI) and other extras (some work outside of Windows or work on top of the native GUI of the platform that is running).

There are some products that run on various platforms, among them Windows, an example of Microsoft itself is Xamarin.

Among these it is possible to use the pure Win32 API for GUI but literally no one does it, it is not something palatable and is not even considered a real option.

And .NET does not it needs more to be installed on the machine to work. Actually this form of deploy can already be considered legacy. So C# is the most used and VB.NET she was considered, but she has no future. F # or other languages running on .NET can be used, but in practice they are not.

Conclusion

But I can not help saying that language does not matter but rather the ecosystem around them, that is what will define what is interesting for this task or not, you choose the framework that you will use and then see what is the best language for the task.

See criteria for choosing language for specific use considering performance and is there a problem with using Java for commercial automation application in dektop? Or is it better to do for web using PHP?.

 7
Author: Maniero, 2020-06-11 14:45:34

Four technologies are officially maintained by Microsoft:

  • Windows Universal - whose is Microsoft's latest technology made essentially for devices running on Windows 10. These applications can be native to the platform or infused into .NET Core applications .

    Includes development in c#, f#, vb.net, c++ and javascript .

  • Windows Forms e XAML - is a legacy technology, but still used, where your applications depend on the .NET Framework to run . XAML uses an XML - like design language for interface prototyping.

    Includes development in c#, f # and vb.net .

  • Windows API - also known as Win32 API - are native applications, made to run in any Windows environment. Are made essentially for applications that require direct communication with some driver or hardware or require unmanaged performance.

    Includes development in c and C++.

There are other third-party technologies, but I won't mention them here. Above I am describing what the scope of each. Windows Universal can cover all devices running Windows 10, including Xbox, computers, or televisions. The others are for somewhat more limited scopes.

They took Windows Forms to .NET Core . The theory is that interfaces work on cross-platform.

 5
Author: CypherPotato, 2020-04-09 13:37:12