Answers.Body: <p>Small == Old.  Modern IDE != Small.</p>
  
  <p>However, would Turbo C++ or OpenWatcom work?  I believe both have "free" licenses.</p>
  
  <p>Caution: your students will get spoiled by how fast Turbo C++ is and then complain about every other compiler in existence.</p>
  
  <p>Good luck.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-05-01T13:58:07.930Z
Answers.Text: I admit that "lightweight" is a qualitative term and can vary wildly from person to person. I think we can get relatively "lightweight" modern IDEs. @RedDragon mentioned SublimeText, and I tried Geany, two text editors with IDE plugins which are both modern and simple to use.
Answers.UserDisplayName: leftcursor
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-04-29T04:19:38.887Z
Answers.LastActivityDate: 2020-04-29T04:19:38.887Z
Answers.UserDisplayName: Andrew Lentvorski
Answers.Body: <p>My department uses Dev-C++. It's free, simple, offline, portable, and lightweight. Windows native.</p>
  <p>Over the years the maintainer has swapped hands a number of times, it's occasionally gone a number of years without updates, and the size of the install has increased. But I like it quite a bit. As of this edit it got a new maintainer and update to v.6 a few months ago (November 2020):</p>
  <ul>
  <li><a href="https://www.embarcadero.com/free-tools/dev-cpp/" rel="nofollow noreferrer">Dev-C++ v.6 by Embarcadero (72 MB, 1/31/21)</a></li>
  <li><a href="http://orwelldevcpp.blogspot.com/" rel="nofollow noreferrer">Dev-C++ v.5 by Orwell (49 MB, 4/27/15)</a></li>
  <li><a href="https://www.bloodshed.net/" rel="nofollow noreferrer">Dev-C++ v.4 by Bloodshed (9 MB, 10/10/05)</a></li>
  </ul>
  <p>Mirrors for the v.6 version that avoid the current maintainer's request for a lot of personal data can be found <a href="https://embarcadero-dev-c.updatestar.com/" rel="nofollow noreferrer">here</a> and <a href="https://www.softpedia.com/get/Programming/Coding-languages-Compilers/Embarcadero-Dev-C.shtml" rel="nofollow noreferrer">here</a>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-05-26T23:19:18.173Z
Answers.Text: I think I found a compromise with CodeLite. It's lightweight, portable and easy to use. The main drawback is you need to install a compiler/debugger yourself, which is not that easy on Windows. I used MinGW-w64 using the binaries provided by Win-Builds (with a manipulation of the $PATH environment variable), but with students it could be a challenge.
Answers.UserDisplayName: leftcursor
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-05-27T01:19:41.790Z
Answers.Text: @leftcursor: Yeah, that would be a non-starter with our students.
Answers.UserDisplayName: Daniel R. Collins
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-02-08T18:27:04.563Z
Answers.Text: @DanielRCollins : The new TDM-GCC is much easier to install on Windows: https://jmeubank.github.io/tdm-gcc/  DevC++ also got an important update, so I will be checking it out. Especially since I'm having a ton of issues with CodeLite.
Answers.UserDisplayName: leftcursor
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-02-08T19:53:59.150Z
Answers.Text: @leftcursor: Thanks for drawing my attention back to this answer. I also discovered the Dev-C++ update at the end of December, and I've been very happy with it (suggested we switch in our school labs to that). Not sure if it's approved to update an answer like this here, but seems important enough I'll do that now.
Answers.UserDisplayName: Daniel R. Collins
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-05-25T02:12:36.400Z
Answers.LastActivityDate: 2021-02-08T20:09:25.117Z
Answers.LastEditDate: 2021-02-08T20:09:25.117Z
Answers.UserDisplayName: Daniel R. Collins
Body: <p>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).</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>Ideally, that IDE should be: </p>
  
  <ul>
  <li>Simple, so it is not overloaded with features we won't need,</li>
  <li>Lightweight, to work on older computers,</li>
  <li>Offline, for when the internet goes into molasses-mode,</li>
  <li>Portable, since students use various versions of Windows, Linux and Mac.</li>
  </ul>
  
  <p>I am aware it is more of a wishlist and that there might not be a tool able to do all this.</p>
  
  <p>What I've tried so far :</p>
  
  <p><strong>Adequate match:</strong></p>
  
  <ul>
  <li>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. </li>
  </ul>
  
  <p><strong>Partial match:</strong></p>
  
  <ul>
  <li>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.</li>
  <li>Geany: Very lightweight, but not easy to use. Would require to teach Makefiles.</li>
  </ul>
  
  <p><strong>Bad match:</strong></p>
  
  <ul>
  <li>Code::Blocks: It is too unstable. It keeps crashing and students are confused whether their code is wrong or Code::Blocks is misbehaving again. </li>
  <li>JetBrains CLion: Better than Visual Studio, but still heavy and complex to use.</li>
  <li>Apache Netbeans: Current version (11.0) does not support C/C++.</li>
  <li>Apple XCode: It is not portable outside of Mac. </li>
  <li>Spyder3: Nice IDE, but really minded for Python.</li>
  <li>Visual Studio Code: Too many complex configuration files, unique to VS Code. </li>
  <li>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.</li>
  </ul>
  
  <p>Also, I tried to compile a list that already exists and is better documented at <a href="https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#C/C++" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#C/C++</a></p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-20T15:19:44.153Z
Comments.Text: If a complex IDE supports more than just one language then it might be well worth the initial pain of learning it. I use Eclipse, which is also gigantic, written in Java, but supports many languages and other sorts of projects since it has a plugin architecture. Learn it once, use it always.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-20T17:05:20.827Z
Comments.Text: Have you thought about using something like Vagrant or Docker to create a standard environment? Down-sides; It could be challenging if you've never done anything like it before,\* and the instructions for installing Vagrant/Docker will be different for students running on different hardware platforms. Up-side: Once everybody's got it installed and running, then all of your students will be running in _exactly_ the same environment.
Comments.UserDisplayName: Solomon Slow
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-20T17:05:45.593Z
Comments.Text: \* You might get lucky and find that somebody has already built a Vagrant Box or a Docker container that meets your needs.
Comments.UserDisplayName: Solomon Slow
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-20T17:29:24.477Z
Comments.Text: Look at [NetBeans](https://netbeans.org/downloads/old/8.2/), pre 9.0 should be light enough and is available in all 3 platforms.
Comments.UserDisplayName: Gypsy Spellweaver
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-20T20:37:46.843Z
Comments.Text: @SolomonSlow: I thought about using Docker but I wasn't sure which IDE to put on it. It could resolve part of the portability issue, however!
Comments.UserDisplayName: leftcursor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-21T07:04:58.807Z
Comments.Text: Don't teach git and C++ at the same time. I don't care how much experience they have there brain will explode (30 years in not enough). Teach git, using one of there existing languages. Then move on to C++.
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-21T07:08:42.953Z
Comments.Text: As you are teaching `git` maybe you can help with my question, it about 2 years old, has had loads of attention, but still no satisfactory answer. It is asking how can I teach git? (I would be happy if I could just become proficient with it) https://cseducators.stackexchange.com/q/2897/204
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-21T11:14:35.483Z
Comments.Text: Do you need a projects system (i.e. an integrated zero-configuration build process)? If not, and editor like VS Code might meet your requirements.
Comments.UserDisplayName: VisualMelon
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-21T14:24:32.807Z
Comments.Text: @ctrl-alt-delor, "Teaching git" leaves a lot unsaid. There are entire books devoted to the subject, but you can do a few simple things—enough for a lone committer to manage a single branch—if all you have is a cheat sheet with a few magic spells. The ocean is vast and deep, but you don't have to know the techniques of celestial navigation or deep sea diving in order to enjoy an afternoon at the beach. Yeah, you can get into trouble at the beach, but hopefully, leftcursor is prepared to play the role of lifeguard.
Comments.UserDisplayName: Solomon Slow
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-21T19:17:29.750Z
Comments.Text: I agree with @ctrl-alt-delor, but I don't have the liberty to alter the curriculum. So I do a quick dip in Git, just so the students know how to commit, branch and resolve conflicts. More a trip to the lake than the beach, but I think a lot of my students drown anyway :P
Comments.UserDisplayName: leftcursor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-21T19:23:02.203Z
Comments.Text: @VisualMelon : Zero-configuration would be a bonus, but I can deal with minimal configuration. I heard VS Code works on Linux and Mac, I should give it a try.
Comments.UserDisplayName: leftcursor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-21T21:21:08.333Z
Comments.Text: Who comes up with the curriculum? Do they teach? It is like someone is saying that we eventually need to be able to drive an F1 car, and that is hard, so better start now. Except these F1 cars have manual gear-change, manual ignition advance (yes. who can remember what that is), manual fuel mix control, separate break pedal for each wheel (one for each foot), manual independent power distribution between all 6 wheels, etc...
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-04-22T08:27:13.970Z
Comments.Text: Would [this](https://blog.codingblocks.com/2019/setting-up-a-c-competitive-programming-environment/) be something you are looking for? It's not exactly an IDE though.
Comments.UserDisplayName: Sharat
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-02-20T19:01:12.150Z
Comments.Text: Is DEV-C++ by Embarcadero that is suggested in this thread truly portable, i.e. can the install folder be moved around without breaking the app? When I execute it, I find it odd that it defaults to the C:/Program Files/ folder for install. From installing tons of portables, it's not the standard behavior. Since it is a +-500Mb install, I prefer to be 100%! Thanks!
Comments.UserDisplayName: Ken
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-08-22T02:15:42.157Z
Comments.Text: I  suspect that in 2022, vscode is probably the best tool fits your bill and it is not that complex to set it up.
Comments.UserDisplayName: Qiulang 邱朗
Tags: <c++><ide>
Title: Looking for a simple, offline, portable, lightweight IDE for C++ with a compiler and debugger
ThreadText: # Looking for a simple, offline, portable, lightweight IDE for C++ with a compiler and debugger
  
  (Asked by: username_0 on 2020-04-20)
  
  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 :
  
  **Adequate match:**
  
  * 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.
  
  **Partial match:**
  
  * 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.
  
  **Bad match:**
  
  * 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++>
  
  **Tags:** c++, ide
  
  > **Comments:**
  > **username_1**: If a complex IDE supports more than just one language then it might be well worth the initial pain of learning it. I use Eclipse, which is also gigantic, written in Java, but supports many languages and other sorts of projects since it has a plugin architecture. Learn it once, use it always.  
  > **username_2**: Have you thought about using something like Vagrant or Docker to create a standard environment? Down-sides; It could be challenging if you've never done anything like it before,\* and the instructions for installing Vagrant/Docker will be different for students running on different hardware platforms. Up-side: Once everybody's got it installed and running, then all of your students will be running in _exactly_ the same environment.  
  > **username_2**: \* You might get lucky and find that somebody has already built a Vagrant Box or a Docker container that meets your needs.  
  > **username_3**: Look at [NetBeans](https://netbeans.org/downloads/old/8.2/), pre 9.0 should be light enough and is available in all 3 platforms.  
  > **username_0**: @username_2: I thought about using Docker but I wasn't sure which IDE to put on it. It could resolve part of the portability issue, however!  
  > **username_4**: Don't teach git and C++ at the same time. I don't care how much experience they have there brain will explode (30 years in not enough). Teach git, using one of there existing languages. Then move on to C++.  
  > **username_4**: As you are teaching `git` maybe you can help with my question, it about 2 years old, has had loads of attention, but still no satisfactory answer. It is asking how can I teach git? (I would be happy if I could just become proficient with it) https://cseducators.stackexchange.com/q/2897/204  
  > **username_5**: Do you need a projects system (i.e. an integrated zero-configuration build process)? If not, and editor like VS Code might meet your requirements.  
  > **username_2**: @username_4, "Teaching git" leaves a lot unsaid. There are entire books devoted to the subject, but you can do a few simple things—enough for a lone committer to manage a single branch—if all you have is a cheat sheet with a few magic spells. The ocean is vast and deep, but you don't have to know the techniques of celestial navigation or deep sea diving in order to enjoy an afternoon at the beach. Yeah, you can get into trouble at the beach, but hopefully, username_0 is prepared to play the role of lifeguard.  
  > **username_0**: I agree with @username_4, but I don't have the liberty to alter the curriculum. So I do a quick dip in Git, just so the students know how to commit, branch and resolve conflicts. More a trip to the lake than the beach, but I think a lot of my students drown anyway :P  
  > **username_0**: @username_5 : Zero-configuration would be a bonus, but I can deal with minimal configuration. I heard VS Code works on Linux and Mac, I should give it a try.  
  > **username_4**: Who comes up with the curriculum? Do they teach? It is like someone is saying that we eventually need to be able to drive an F1 car, and that is hard, so better start now. Except these F1 cars have manual gear-change, manual ignition advance (yes. who can remember what that is), manual fuel mix control, separate break pedal for each wheel (one for each foot), manual independent power distribution between all 6 wheels, etc...  
  > **username_6**: Would [this](https://blog.codingblocks.com/2019/setting-up-a-c-competitive-programming-environment/) be something you are looking for? It's not exactly an IDE though.  
  > **username_7**: Is DEV-C++ by Embarcadero that is suggested in this thread truly portable, i.e. can the install folder be moved around without breaking the app? When I execute it, I find it odd that it defaults to the C:/Program Files/ folder for install. From installing tons of portables, it's not the standard behavior. Since it is a +-500Mb install, I prefer to be 100%! Thanks!  
  > **username_8**: I  suspect that in 2022, vscode is probably the best tool fits your bill and it is not that complex to set it up.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_10 on 2020-05-25. Score: 4 | Accepted answer
  
  My department uses Dev-C++. It's free, simple, offline, portable, and lightweight. Windows native.
  
  Over the years the maintainer has swapped hands a number of times, it's occasionally gone a number of years without updates, and the size of the install has increased. But I like it quite a bit. As of this edit it got a new maintainer and update to v.6 a few months ago (November 2020):
  
  * [Dev-C++ v.6 by Embarcadero (72 MB, 1/31/21)](https://www.embarcadero.com/free-tools/dev-cpp/)
  * [Dev-C++ v.5 by Orwell (49 MB, 4/27/15)](http://orwelldevcpp.blogspot.com/)
  * [Dev-C++ v.4 by Bloodshed (9 MB, 10/10/05)](https://www.bloodshed.net/)
  
  Mirrors for the v.6 version that avoid the current maintainer's request for a lot of personal data can be found [here](https://embarcadero-dev-c.updatestar.com/) and [here](https://www.softpedia.com/get/Programming/Coding-languages-Compilers/Embarcadero-Dev-C.shtml).
  
  > **Comments:**
  > **username_0**: I think I found a compromise with CodeLite. It's lightweight, portable and easy to use. The main drawback is you need to install a compiler/debugger yourself, which is not that easy on Windows. I used MinGW-w64 using the binaries provided by Win-Builds (with a manipulation of the $PATH environment variable), but with students it could be a challenge.  
  > **username_10**: @username_0: Yeah, that would be a non-starter with our students.  
  > **username_0**: @DanielRCollins : The new TDM-GCC is much easier to install on Windows: https://jmeubank.github.io/tdm-gcc/  DevC++ also got an important update, so I will be checking it out. Especially since I'm having a ton of issues with CodeLite.  
  > **username_10**: @username_0: Thanks for drawing my attention back to this answer. I also discovered the Dev-C++ update at the end of December, and I've been very happy with it (suggested we switch in our school labs to that). Not sure if it's approved to update an answer like this here, but seems important enough I'll do that now.  
  
  ---
  
  ### Answer by username_9 on 2020-04-29. Score: 2
  
  Small == Old. Modern IDE != Small.
  
  However, would Turbo C++ or OpenWatcom work? I believe both have "free" licenses.
  
  Caution: your students will get spoiled by how fast Turbo C++ is and then complain about every other compiler in existence.
  
  Good luck.
  
  > **Comments:**
  > **username_0**: I admit that "lightweight" is a qualitative term and can vary wildly from person to person. I think we can get relatively "lightweight" modern IDEs. @RedDragon mentioned SublimeText, and I tried Geany, two text editors with IDE plugins which are both modern and simple to use.  
  
  ---
  
  