What current languages are used for Windows application development?

Asked

Viewed 1,125 times

6

What current languages are used for Windows application development?

I would like to know which ones have dependencies, like Java that needs to install JRE or some . NET that need you to install . NET Framework previously, as well as those running without any previous installation.

Specifically 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 apps?

  • 1

    Programming languages are one UI thing are Apis or other things resources, one thing has nothing to do with the other, for example, the native visual elements of Android apps are "generated" by the operating system (part of it) and manipulated by the Java language, but vc can use NDK which is in C++, so the generated elements are of the same origin, but the manipulator is that they are different languages, taking away languages aimed at generating exclusively images and visual resources it seems to me that any and all language makes use of Apis and UI is not part of the language itself.

  • 1

    Another example is Electron, is Javascript the language, but the visual features are HTML+CSS, IE, are not even elements of the operating system, is a browser with program face of "truth"

  • Thanks for the @Guilhermenascimento information, I didn’t know that. I thought the graphical interface was part of the programming language.

2 answers

7


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

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

Web GUI

If you are going to use 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 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 several tasks, but if creating a desktop application with GUI complicates a bit. It is not that they do not allow, but is rarely as suitable.Some leave much to be desired, such as 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 the scripts instead of sending an executable to which seems to be a concern (some even have some way as Python does).

For GUI Java never did very well because it looks like a duck (walks, nothing and flies, no good), rotates on all platforms but in all does not rotate 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) 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 using GUI. Delphi owns and nowadays this is a problem, but it has good GUI. C++ is not for anyone to work. Each has a problem.

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

Other framework used is the Wxwidgets, see the list of bindings.

I won’t list them all frameworks even because some are little used, many are usable in a very bad way despite the language support it in a Binding, would have to do a deep analysis on each. If you want to have a list of several toolkits (does not include frameworks that rotate upon them).

The . NET fits well because Microsoft makes it the Flagship for GUI, but even there has difficulty of choice because we have 3 official options (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 the Xamarin.

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

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

Completion

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

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

5

Officially are maintained four technologies by Microsoft:

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

    Includes development in , , , and .

  • Windows Forms and 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 , and .

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

    Includes development in and .

There are other third-party technologies, but I’m not going to quote them here. Above I’m describing what the scope of each is. Windows Universal can cover all devices running Windows 10, including Xbox, computers, or televisions. The others are for slightly more limited scopes.

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

  • 1

    "Windows 32" are pure and native applications? Maybe you’re talking about "Win32 API" and not "Windows 32", I can assume that possibly many things use the "Win32 API" internally in windows and we don’t even realize it. PS: the name I think is now just "Windows API", I do not know when they changed.

  • I will make some statements so as not to mislead anyone who reads and does not know the subject: The Microsoft page only talks about what interests it and does not list everything that exists. Windows Universal is not a Toolkit or framework GUI, is a name used for applications that run on top of the UWP platform. Part of this is not GUI (it looks like I wanted to list the Guis). Other languages run in it, in theory any could be made Binding for this API. I have my doubts whether JS is still supported, or at least evolved. Windows Forms is a framework with Binding that rotates over Win32.

  • XAML is strictly the declarative language used in some different Guis, among them WPF which is perhaps what you wanted to use. It is used in others as it was in Silverlight, some forms of Xamarin, third-party products and UWP. Actually the part of UWP that is GUI calls Winui and now runs out of UWP. It’s the technology that Microsoft is investing in GUI today. WPF seems to be considered done (will have some evolution if Visual Studio needs) and Windows Forms will have some improvement, but do not expect large investments.

  • Win32 and not Windows 32 is the basic Windows API and we can say that there is no GUI that does not use it one way or another, even if it avoids its own Toolkit. Then there is bindings for it in all languages that have GUI in Windows. Almost no one actually programs on Win32 other than something very trivial and specific, it is used to build others frameworks. Not only does Windows Forms run on . NET Core, WPF and Winui, not to mention third-party products.

  • @Maniero if you want to make the proper editions to complement, I would appreciate.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.