## Installing Programming Languages Tools Without The Virtual Machine. If you can't install my virtual machine, either because you have an ARM Mac or due to other reasons, you will have to install the tools needed for this class separately. We will look at many languages, but the languages you will definitely be asked to write programs in are: - **C** and **C++** (gcc and g++, or clang and clang++). In addition, your C++ must be C++14 or newer (accepts `std=c++14` option). - Microsoft **C\#** and **[F\#](https://fsharp.org/)**. These languages do not require Windows to run. You can install them on [Mono](https://www.mono-project.com/) in Linux or MacOs. In fact, I would recommend Mono even if you have Windows and the .Net development tools, because it's easier for writing small programs. - **[Rust](https://rust-lang.org)** - Python and Perl (maybe) We'll deal with other languages if the need arises. ### Recommendation for PCs If you have a PC but can't install my VM, my recommendation is to use VirtualBox or some other VM host such as Multipass to install a new Linux VM on top of Windows. I recommend Ubuntu since it's easy. Installing development tools in Linux is usually much easier than on Windows. For example, to install the SFML library for C++ in Debian or Ubuntu Linux, you just need to `sudo apt-get install libsfml-dev`. Without a Linux VM, you will have to install the tools on Windows directly. The community edition of [Visual Studio](https://visualstudio.microsoft.com/downloads/) is free (be sure to install F# as well as C/C++/C\#). ### Recommendation for Macs You can also install your own Linux virtual machine on top of MacOS with a non-VirtualBox VM host such as [Multipass](https://multipass.run/). However, since MacOS is also a Unix-based operating system, it's already very similar to Linux and so I don't think it would be much better than just installing the tools directly. You will certainly need [Xcode](https://developer.apple.com/xcode/). Download Mono, which comes with C\#, and follow instructions for installing F\#. You might have some languages installed already, such as Python. #### C/C++ Compilers on Macs There are two versions of C and of C++: ANSI C/C++ (clang/clang++) and Gnu C/C++ (gcc/g++). The gnu versions allow some extentions that we will be using in some programs. On a Mac, although you can run gcc/g++ once you've installed Xcode and the relevant command-line tools, these are NOT the genuine Gnu versions. For licensing reasons, gcc actually calls clang - clang and gcc are the same. To install the real gcc/g++, you can try to follow the instructions [here](http://cs.millersville.edu/~gzoppetti/InstallingGccMac.html). After you follow all the steps carefully, Gnu C/C++ will be available as gcc-13 and and g++-13. gcc/g++ will still refer to the ANSI versions. ### Choosing a Development Enviornment I believe that the best development environment for writing relatively small programs and experimenting with various languages is a simple editor and a command-line compiler. But you can use whatever you want. Macs and Linux already should have Vim and some other simple editors installed. All systems can run [VS Code](https://code.visualstudio.com) (not to be confused with full visual studio). For PCs, you can also choose a simpler editor such as [Notepad++](https://notepad-plus-plus.org/) and for Macs, [Textmate](https://macromates.com/). Be sure to use an editor designed for writing code (not notepad or wordpad) and do things like show line numbers and match parentheses and other brackets.

Lastly, please remember the following: although I will be happy to help you setup your computer if I can, ultimately you are responsible for preparing your computer to do the assignments for this class. Do not rely on me for tech support.