Which programming language for writing Windows applications?

Blueychan

Senior member
Feb 1, 2008
602
0
76
Hello all,

I have done some basic C programming in a Unix environment before but that was 8 years ago. Now I want to create Windows applications for fun but there are alot of questions I have in my mind.

1. What is the most popular programming language used to write Windows application nowaday. For example, software such Point-of-Sale system, bittorrent client, limewire, etc. which languages do developers used for creating such softwares?

2. What IDE should I use if I want to start creating softwares in windows?

3. Is the C programming language still popular are it is being replace by more modern programming languages such as C#, python, Java , etc.

4. Which language is the easiest to use when create windows application?

5. The easiest language is generally the slowest in term of the speed of the application, is that true?
 

Scarpozzi

Lifer
Jun 13, 2000
26,392
1,780
126
Originally posted by: Blueychan
Hello all,

I have done some basic C programming in a Unix environment before but that was 8 years ago. Now I want to create Windows applications for fun but there are alot of questions I have in my mind.

1. What is the most popular programming language used to write Windows application nowaday. For example, software such Point-of-Sale system, bittorrent client, limewire, etc. which languages do developers used for creating such softwares?

2. What IDE should I use if I want to start creating softwares in windows?

3. Is the C programming language still popular are it is being replace by more modern programming languages such as C#, python, Java , etc.

4. Which language is the easiest to use when create windows application?

5. The easiest language is generally the slowest in term of the speed of the application, is that true?

I'm going to state first off that I'm a SysAdmin and more of a web programmer so I'm only replying with what I think I know....

1. .Net is what you should focus on. With Vista out, most new programs will be based on these libraries.

2. Microsoft Visual Studio if you're going with .Net. Otherwise, check out Eclipse. I've used it for some Java development stuff in the past.

3. C is a standard. If you know it, you can do just about anything. The higher level languages are just slightly more dynamic. When you start getting into applications, it's nice to have a lot of functions to use so you don't waste time reinventing the wheel.

4. Visual Basic/.Net are where Microsoft has invested all their money. If you stick with them as a developer, you'll have more support, in general.

5. No.....not necessarily. This goes back to what I was saying before about built-in functions. If you reference the functions rather than designing them, you end up with bloat. They're usually multi-functioning sects of code. You should be able to code the bare-bone functions you need, but it's more time consuming than its worth. The other consideration is which features in the program have similar requirements. If you have to include a lot of libraries just to accomplish one small feature, it might be a good idea to drop the feature.
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
1) Even though Limewire I believe is Java, most apps like it written today are using the .Net Framework. Which means its probably written in C#, or VB.

2) Microsoft Visual Studio Express found on their website (its free!)

3) C is still popular, but trying to write a windows app in straight C would be quite a headache. C is better for .DLL's, and operations which don't require much user input. Even though there is MFC, which alot of C programs use to write user interfaces. MFC is basically a helper library for windows programming, but I think most are shifting away from that and going to .Net.

4) I'd start off with Visual basic .net 2008.

5) Sometimes. Alot of the easier languages do alot of things for the user, but you are stuck using generic functions that could work for everybody. If you write your own functions, you can usually do it your way that you need and make it quick as possible, and eliminate alot of the error checking involved which might slow things down. Not to mention the more easy things are, usually there is more layers of the program (like an onion) and everytime something is being done its going through the layers, you have to peel it which slow things down.

(I was trying to use a metaphor)
 

Blueychan

Senior member
Feb 1, 2008
602
0
76
Hello folks,

First of all, thank you for the reply. From reading the replies I guess I will go with .Net Framework. I know you guys recommend Visual Basic .Net, but since I am more familar with the C syntax, wouldn't C# be better for me?

Also C# is relatively new, newer than Visual Basic. Does it have any advantages in term of efficiency over Visual Basic?
 

tfinch2

Lifer
Feb 3, 2004
22,114
1
0
I'd go with C# over VB since you are familiar with C. Plus, VB can turn into spaghetti code very fast.

C# does not have any performance advantage over VB because they are both compiled into the same CLI.
 

trexpesto

Golden Member
Jun 3, 2004
1,237
0
0
Just to be clear: when you say "Windows apps", many languages can provide windowed applications. If you are targeting MS Windows platform, working with the OS, registry, clipboard, etc, THAT is what I would call "Windows Programming", where you leverage the OS. Otherwise, seems like it would be simply "Programming in a Windows Environment", and you can use any language that is appropriate.

The performance question: Yes C routines can be faster than those in higher-level (more levels of abstraction) languages. This becomes evident in mathematically-intensive operations. For instance, some games are written using a higher-level language to control logic flow, and delegate calls to ( lower-level) C/C++ libraries like OpenGL or DirectX to handle hardware-accelerated geometry and drawing.

Does high performance matter for your application? If you are not hogging system resources, sticking with a higher-level language keeps it simple and maintainable. Almost anything you do, there are good libraries out there to use, so if you find something especially compelling, might want to use that language.

Want to be able to run on unix without recompiling? For multiple platforms, java is good.

I'm all java, but C# looks similar, got the automatic memory management too. I have heard good things about .Net remoting.

Edit: Interesting C# vs C++ comparison LINK
 

Net

Golden Member
Aug 30, 2003
1,592
3
81
visual basic hands down. its so unbelievably simple. you draw your GUI then put code behind it.