In our modern day and age there are many many many different development tools out there that software developers use every day. A lot of these developers will loyally defend their chosen setup as the absolute best ever. While this may be the case there are many options out there and the choices can depend very heavily on what language, software stack, and operating system you are using. This article is by no means the end all be all best development tool set for every use case. Rather this is simply an explination of some good tools which are general purpose, cross-platform, and open source.
Techopedia explains a terminal emulator as:
A terminal emulator allows a host computer to access another computer, including remote ones, through either a command-line interface or a graphical one. The communication is made possible using protocols such as Telnet and SSH.
There are many great terminal emulators out there such as Konsole, Terminator, MacOS Terminal, and Windows CMD. However, not all of them are cross-platform and therefore if you switch between operating systems (as I often do) then you will have to remember and setup each individually which can be annoying.
Personally all of my machines run a terminal emulator known as Hyper. This is a solid open source project which is available on Windows 10, MacOS, and most major Linux Distros. It's simple to setup and configurable to look how you want it to. Hyper is built on web technologies such as Node.js and CSS so it is easy to create and implement plugins by using NPM. While the standard shell is sufficent for most use cases, its relatively simple to setup the fish shell which includes a lot of nice features such as command autocomplete and built in shell scripting.
Integrated Development Environment
An IDE (Integrated Development Environment) is the software used to write more software. Typically IDEs will include source code editors, debuggers, and automated build tools. Modern IDEs are built modular so that they can be configured to best fit the programming language and applcation being built.
Atom is a "A hackable text editor for the 21st Century" that is built and maintained as an open source project by GitHub. It has an extensive list of packages and themes that make it very flexable to whatever language and system you are working on. With integrations for Git, support for syntax highlighting every programming language out there, and configurable build options for most application types, Atom is a great general purpose tool for developing software.
Git is the most common source and version control system for maintaining code between multiple developers. While Git has a great CLI for the terminal, a lot of the more complicated tasks (such as merging and rebasing) are easier if you have a good GUI tool.
Git Kraken is a great tool for managing Git repos. It allows you to easily see where your branch is and where other branches in the repository are in relation to it. It has great merge conflict tools which help tremendously for those tricky merge issues which arise from time to time.
There are a lot of great development tools out there and these are just a few of my personal favorites. They all work on MacOS, Linux, and Windows 10 so that no matter which operating system you find yourself on you can have the same great development experience.