I am teaching a second year programming course for adult students. It is an introduction to C++, with a chapter on Git. I'm not covering Makefiles and while I could find a bit of time to talk about build systems, the course is already pretty loaded (as any "introduction" to C++ can be).
The issue is that our school currently only supports Microsoft Visual Studio 2019, which is a behemoth and much too big for the tiny hello-world-ish stuff we need to do. It forces my adult students to go deeper into debt just to buy a new computer to run the thing.
It is also very complex and forces me to teach about managing Visual Studio's projects and files, competencies that are not really useful outside of Visual Studio.
I've been doing a lot of work with online tools (especially repl.it and onlinegdb.com), but our internet can be flaky and I would much rather have an offline tool.
Ideally, that IDE should be:
- Simple, so it is not overloaded with features we won't need,
- Lightweight, to work on older computers,
- Offline, for when the internet goes into molasses-mode,
- Portable, since students use various versions of Windows, Linux and Mac.
I am aware it is more of a wishlist and that there might not be a tool able to do all this.
What I've tried so far :
- CodeLite: Seems like a stable and up-to-date version of Code::Blocks/Dev-C++. Must install a compiler and debugger however, but it seems easy enough with GCC/GDB on Linux/Mac and Win-Builds' MinGW-w64 install on Windows. It also requires to add the executables to the $PATH environment variable on Windows.
- Sublime Text: Lightweight and easy to use. Build system seems to be unique to Sublime Text however, but is not too hard to use. Nagware which require to pay for the official version.
- Geany: Very lightweight, but not easy to use. Would require to teach Makefiles.
- Code::Blocks: It is too unstable. It keeps crashing and students are confused whether their code is wrong or Code::Blocks is misbehaving again.
- JetBrains CLion: Better than Visual Studio, but still heavy and complex to use.
- Apache Netbeans: Current version (11.0) does not support C/C++.
- Apple XCode: It is not portable outside of Mac.
- Spyder3: Nice IDE, but really minded for Python.
- Visual Studio Code: Too many complex configuration files, unique to VS Code.
- Atom w/ gpp-compiler package: The IDE is added on top of the text editor. Error messages are difficult to read since they are on popups. Uses command-line GDB for debugging. The gpp-compiler package itself is still buggy.
Also, I tried to compile a list that already exists and is better documented at https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#C/C++