tedtriv.co.uk

Programming and a Fork in the Road

Tags:

Areas of Interest

Potential Languages

Web Development

Graphics Programming

IDEs

Visual Studio Code

Wasn’t meant to be an IDE but everyone has made it into one. It’s a shame Microsoft doesn’t use this to their advantage and insist they have the most widely used IDE. Instead they have turned it into an “ai editor”, in the panic that Cursor created, which “Open"AI invests in which is 49% owned by Microsoft.

With that aside, it has extensions for all of my languages. If you don’t want to use extensions, you wouldn’t get much functionality unless you wanted to use HTML, CSS or JS/TS as these are supported natively.

I wrote a lot of PHP with the Intelliphense extension. This worked well enough for a small project and most people who don’t want to spend money on PHPStorm could get by with it. Debugging was possible with XDebug and configuring the editor accordingly.

For Python, I was happy with it. I didn’t try debugging with Django with it but it’s easy enough to attach a debugger.

My current experience with editing Django templates wasn’t perfect. I could get snippets working for the curly bracket parts, but not HTML syntax. Perhaps I will try again and get it working.

Visual Studio

The first IDE on my list, which is the one I would use for .NET and C++ development. I have no problems with these two, Microsoft’s documentation is very good and many other tutorials will assume you are using it.

There is some sort of AI line completion (Intellicode) but it is nowhere near as good as JetBrains IDEs.

Visual Studio is much better than Code for Windows desktop development and ASP.NET. You can also use the XAML designer for WPF programs, which is probably the best way to design Windows programs currently.

For anything else, I wouldn’t really bother. Even though it’s a great IDE, it’s not that good for frontend or Python. Python is supported, but many will turn to other software to do this.

JetBrains

I tried the trial versions of PHPStorm and PyCharm Professional. CLion is now completely free. All of these use the same first party Vim plugin which is excellent.

All of them use a local AI model for line completion. Normally I’m not interested in AI tools but I think this one is very useful, mainly for repetitive code and to save time writing out the obvious. To be clear, I wouldn’t use (or encourage) using these sorts of tools to write out entire projects. Please, understand what you’re writing at a minimum!

PHPStorm: A massive improvement over VSCode. All your PHP code has a different background to the HTML making templating less of a pain. Also supports syntax highlighting of SQL queries much better than VSCode and supports autocompletion for them once you have told it your database exists. It would be worth the money if you write a lot of PHP.

PyCharm Professional: I didn’t use this as much as PHPStorm but I can expect much of the same functionality. Django templates are supported much better than VSCode including code snippets for blocks, and HTML autocompletion out of the box.

Should I happen to spend more time with Django or PHP, I think I would use be more likely to buy PHPStorm instead of PyCharm. PHPStorm blows VSCode out of the water more than PyCharm does.

Even though the Django support is not in the free version of PyCharm, I might be able to get it working better in VSCode.

CLion: Uses CMake and mingw out of the box. I am more used to the way things are done in Visual Studio, but I wouldn’t turn it down if you like JetBrains products.

Where Next?

Part of this post was about trying to make my mind up about what to do. Currently, my mind is headed towards web development with Django. Over the past week or two I have also been following the Learn OpenGL tutorial, which is in C++. However it should go without saying that it will be quicker to finish a website than a 3D engine…

For me, it would be idea to use C# and either a rendering engine or OpenGL/DX11 itself. With WPF, it would be the most straightforward way to add UIs. I have looked into this and the support for rendering engines and libraries like Raylib and Monogame are more promising. Whilst OpenTk is usable, SharpDX is dead and Silk.NET still has nonexistent documenation.