My integrated development environment (IDE)

My integrated development environment (IDE) consists of three items: 1) a terminal application (Mac OS X Terminal), 2) a text editor (Barebones's BBEdit), and 3) a file transfer application (Panic's Transmit). I guess it goes without saying, I do all my work on top of Mac OS X.

Mac OS X Terminal
Mac OS X Terminal
Barebones BBEdit
Barebones BBEdit
Panic Transmit
Panic Transmit

At the very least, I need a terminal application, and Mac OS X's terminal works just fine. Open a connection to my local host, or SSH to a remote host. Use the resulting shell to navigate the file system and execute (that sounds so violent) commands. Increasingly I write Bash scripts to do my work. Given a relatively sane Linux environment, one would be surprised how much functionality can be harnessed with simple shell scripts.

BBEdit is my most frequently used application. Very rarely do I use some sort of word processor to do any of writing. "Religious wars" are fought over text editors, so I won't belabor my points. BBEdit will open just about any file, and it will easily open files measured in megabytes in size. Its find/replace functions are full-featured. I frequently use its sort function, duplicate line function, remove line breaks function, markup function, and reformat XML and JSON functions. It also supports the creation macros, knows about my local shell, and can do AppleScript. BBEdit can even be opened from the command line, meaning it can take STDOUT is input. Fun!

While BBedit suports SFTP, my go to file transfer application is Transmit. Transmit knows many file transport protocols, not just SFTP. For example, instead of using a Web browser to navigate a Google Drive (dumb), I can mount the drive with Transmit, and the result is much more responsive. Very similar to my terminal, I use it to connect to a remote host, navigate the file system, and then I create, move, rename, and delete files. Simple. One of the coolest bits of functionality is the ability to download a text file, have it opened in my editor, and when I save the text file, then it is saved on the remote host. Thus, there is little need to know a terminal-based editor like vi, emac, or nano, but I do use vi or nano every once in a while.

I have never felt the need for a "real" IDE. Too much overhead. No need to set any debugging points nor trace the value of a variable. I don't feel the need for a bazillion windows, panes, nor panels. An IDE feels too much a shell for my shell. Yet another thing to learn and an obfuscation of what is really going on. This is just my style. There are many different ways to cook an omlet, paint a painting, sing a song, etc. The same holds true maintaining computers, running software, and writing programs. To each his^h^h^h their own.


Creator: Eric Lease Morgan <eric_morgan@infomotions.com>
Source: This items is/was published as a part of Infomotions Musings.
Date created: 2020-12-20
Date updated: 2020-12-20
Subject(s): software development;
URL: http://infomotions.com/musings/my-ide/