Help me get back into computer programming

Here’s the TL;DR: What language, development environment, or other resources should I use to figure out how to make simple-but-useful, standalone, Windows programs/apps (on a strictly amateur level)?

Now the background:

Back in the 80s and 90s I was a fairly decent amateur-level programmer using BASIC, Pascal, and a smattering of other languages (including (Visual) C++) that I’d have to relearn in order to do anything useful with them today.

Recently I’ve been playing around with Python, and I’ve gotten it to do some fairly useful things. But I was disgusted when I found out it’s strictly an interpreted language, so you apparently (correct me if I’m wrong) can’t use it to write stand-alone software that you could actually give to someone else that they could actually use without having to install Python. Which I’d kind of like to be able to do. So now I’m thinking I ought to move on to a real, grown-up language.

But which one? C++? Java? C#? Visual Basic—do people still use that? Something else? And what’s the best (easiest, quickest, friendliest) way to get up to speed, without being overwhelmed with stuff that I’m not ready to worry about? I’m thinking about writing Windows apps, but if they’re easily portable, that’s a plus, and I’m also open to learning about Web-based or Android app programming. I’m not looking to go pro or produce anything too major.

Any books, websites, or other resources you’d particularly recommend?

I think the ecosystem has shifted enough that programming an application specifically for Windows, which needs to be installed on the disk, is no longer where it’s at. I mean, there’s still room for that, especially in corporate environments, but most stuff that ordinary people find useful is on the Web (which solves the cross-platform issue) or is an “app” for Android or iOS or Windows (and often, the app is just a thin veneer over the Web site). I’ll let others weigh in on which languages are most important on that side; I’m sure JavaScript and Python will be on the list.

Assuming you want to remain on the Windows desktop, the modern options are mostly based on .NET (meaning C#). You can get by with Python or Java if needed.

It’s true that Python is not included by default on a Windows or Mac system, but I don’t think it’s such a deal-breaker. I’ve seen software installers that took care of installing the interpreter at the same time as your software (similar to a Java application).

C++ has seen a resurgence these past few years for intense computation, but it’s not the simple C++ of the 1990s, and its facilities for user interfaces on Windows aren’t very modern. C++/CLI is a complicated cousin of C# for some niche applications.

The BASIC with line numbers from the DOS days is as out of date and useless as a disconnected stick phone forgotten in a closet on a Royal Mail steamship. The Visual Basic you may have known (<= 6.0, from 1998) is also dead and buried. Visual Basic .NET is the official replacement for VB but is just a less-capable cousin of C# that looks vaguely like the “old” VB. There’s little point in using it today.

Pascal is even deader. The Delphi development environment (using Object Pascal) still exists but mostly for companies that wrote important software with it around 1995-2005.

There are tools to make standalone executables from python scripts …

So, what’s the easiest way to do this—anyone?

Ignore the haters; this whole “internet” thing is strictly a fad and will be gone in a few years. Desktop applications are where it’s at!

Seriously though, there’s nothing wrong with a desktop application, particularly if you’re just making simple-but-useful standalone programs for your own use. Writing for the web requires a web server and security and various other pain-in-butt details that aren’t necessary if you just want to write a variant of the Calculator that displays in Comic Sans or whatever.

And as for the actual question in the OP, I personally recommend C#. Download a free copy of the Microsoft Visual Studio development environment, ask it to generate you a skeleton of an application, and have at. Your previous experience in Visual C++ will make it seem really familiar, but C# has several advancement and modernizations as compared to its predecessor.

You can do the same with Java, of course. I have my students use Eclipse in the Java class, and we go through these 14 steps with Eclipse. You should be able follow these steps if you have a good understanding of Windows. I just hope you can figure out Eclipse and the Java JDK.

We use JavaFx for the graphical layout. In Python we use Tkinter, mostly because it’s pretty simple.

You also use Java to create Android apps. There are a number of good books out there; the one we use is Head First Android Development. It’s not at all graphical/game programming, but you’ll learn some database features which is a nice side skill.

If you just want to be able to run a program in a web browser, you’ll want to look at JavaScript. That’s supported by every major browser.

Yeah, so I see. That seems to work, but a bit kludgily.

Yep, that’s what I want to do! :slight_smile: Okay, not exactly, but it’d be nice to be able to do that kind of thing.

I am reading up on C#. It looks like it might be fun to play with. Later I may look into Java and/or JavaScript.

Thanks to all who responded.

In case anyone’s curious, I ended up doing what begbert2 suggested, working with C# in Visual Studio. And I’ve managed to get it to do what I wanted to do, and I’m pretty happy with the result.

Just in case anyone else is in a similar situation, the resources I found particularly helpful were: The three tutorials from Microsoft starting here were well-designed and extremely helpful in showing me how Visual Studio Windows programming works. This book (downloadable pdf) was pretty good at bringing me up to speed on the C# language. Add to that of course plenty of Googling, and trial and error, to figure out how to do various things and how to fix what wasn’t working the way I thought it should.

Glad I could help! :slight_smile: