IDEs and Editors, Which ones and why!

Hello,
One of the bigger questions I continually ask myself is which text editor or IDE is best. I know that @zedshaw is not a fan of IDE’s in general from LPTHW and as a result i rarely use them but i’m curious what others use. I typically run my programs through powershell or bash on win 10. I’m not good enough to have self supported programs or executables yet.

For Python I use ATOM with a lot of the autocomplete stuff turned off. I like that its connected to github and Its also the first editor i’ve really ever used. :slight_smile: Also done some custom keybindings so that makes it more mine.

For SQL I run my stuff through ATOM but I was recently shown https://apex.oracle.com which lets you spin up a test SQL environment which is really cool. plus they have some generic databases for just messing around and such.

For PHP I use ATOM and I have a wordpress setup on my localhost that I break pretty consistently for realtime practice.

For C I think I have GCC running through bash on win 10 or on my ubuntu box. I don’t do a ton with it but i like to poke around because 75% of the time everytime I learn something in C helps make something more clear or understandable in python.

As a side note, If there’s an easier way to run C on a win 10 machine or an ubuntu machine i’d love to hear it. I also tried running it through Cygwin and that wasn’t very fun.

A few of my buddies really strongly recommended visual studio, I played around with it a bit and didn’t like it, seemed too crowded to me but I’m sure its awesome when you get it customized. Does anyone use it consistently? If so do you have a preferred setup for python?

I also tried pycharm for about 3 minutes. I know I didn’t give it a fair chance but I really like just crunching away on my text editor know and normal IDE’s seem in the way now and I just didn’t like it at all.

Occasionally i’ll use notepad++ because i can close it and it saves my stuff. Sort of like a fancy clipboard lol.

What does everyone else use and why? Not really wanting to have any fighting about editors or IDEs, I’m just addicted to this stuff and love trying new editors and such and love to see whats out there.

1 Like

Notepad++ Haven’t tried ATOM or the others.

1 Like

So, keep in mind that I’m against IDEs mostly because a text editor like Atom, VS Code, Vim, or Emacs will do most everything an IDE does but work with any language. When you depend on an IDE you can’t go into new programming languages and are at the mercy of whatever the IDE vendor thought was important. Also if you’re learning a new language then using an IDE can make it too easy so you don’t really learn the language.

However, I am totally for IDEs when either the platform, language, or project demand it. Platforms like Windows .NET, Apple’s iOS, or Android almost always have their own special IDEs that you have to use. Microsoft’s IDEs are also really great, and I can’t really fault them for their tools. They do a great job. Some languages are specifically designed to make you buy an IDE, which would be Java and most every .NET language. If I had to do Java again I would never use vim. This is very true for any GUI development or Game development. Many times the IDE will shave years off your development time if you use it correctly.

The last one is if the project demands it. I don’t mean if your boss makes you use the IDE everyone else uses. Experts shouldn’t be forced to use tools they don’t like. I mean, if everyone on a project used an IDE, then there’s a good chance that they produced an insane mountain of convoluted code you will never tease apart without an IDE. In that case, just find out what they’re using and go with it.

It sounds like you’re doing fine with what you have. I’d say if you want to expand your tools then check out vim or emacs, but be prepared for some crazy learning curve and make sure you stretch your wrists before you try Emacs. :wink:

2 Likes

Sublime Text provides a very fast, bare bones experience that I feel is ideal for learning as long as you don’t install any language extensions. Licenses cost $80 but you can download and evaluate it for free. The trial period does not expire as far as I know.

For C on Windows I think the Windows Subsystem for Linux is the way to go. I tried MinGW with MSYS2 for a shell environment and that felt rough. Fetching native dependencies is easier now with vcpkg (like apt-get for Windows) but I believe that package manager is Visual C++ specific and not compatible with GCC.

Thanks for the perspective and advice. I’ve heard a lot about emacs and vim as well and might give them a try!

I’ve heard of sublime, I thought it was charge only, I might try the trial though. And agreed on the C side. I was driving myself crazy with cygwin so much that i almost quit working on C altogether. Linux saved the day though.

I like vim. Its pretty easy to google how to do things and makes stuff like changing 4spaces into a tab easy.

I used to use Vim, but messing around with .vimrc became too much of a time sync when I was meant to be coding, and I’m on Linux less now for my development (the GUI version for Windows is ugly out of the box). I switched to Atom with the Vim plugin for a few months. I love it, but it keeps on breaking on our wonderful company’s version of Windows 8.1. I installed VS Code yesterday and installed the vim plugin for that. Couldn’t get the find and replace in ex mode to work. Hopefully I’ll figure that out today. Otherwise I’ll just have to uninstall the vim plugin :frowning:

I’m not a huge fan of win 8. I cleaned some virus’ and such of an 8 box and it took me 3 times longer than 7 or 10 would. Not much fun for sure. couldn’t imagine working on it all the time at work.

You also point out one of my big issues. i enjoy tinkering so much i stop what i’m working on lol.

This is a good topic as I have found that learning a language as well as a new IDE, (with many of the features you’ll probably not need initially) only complicates the process.

However investing the time in ‘just’ one to really understand it, does have massive payback. I generally use VS and more recently VS for Mac, mostly due to the enterprise licence my client provided for me. With ReSharper added it’s ace for C# and .Net. Knowing that I can use it when I go back to learning Python too is a bonus. I’m tempted to see how Rider stacks up imminently.

What’s wrong with notepad++?

lol, nothing at all that i know of. I like Atoms customization a bit more so far but love that i can copy/paste code into np++ and it saves it. plus its such a small program that its easy to dl. I do prefer dark themes for coding, never bothered to check if np++ allowed for that.

settings>style config and you’re all set. For dark theme try obsidian. Can also customize colours, fonts etc.

1 Like

In my attempts to get started with programming in the past I’ve either used basic text editors, which are only ok for a bit of scripting, or full blown IDE’s which I’ve found to be far too daunting for the beginner and just made my entry to programming too time-expensive!

This time I’ve stated with VS Code and for me it has the perfect set of features that actually help me learn whilst not being so complex as to get in the way of me actually coding. I’ve started playing with some of the other plugins such as SFTP and Github which look like they’ll be useful to me, although I’ll only ever be a hobbyist programmer so I’m not necessarily looking for “Pro” features.

I’ve also used Notepad++ which is definitely better than Notepad (what isn’t) but I’ve felt instantly at home with VS Code, at least for now, as I get to grips with Python.

I believe it, I think there was just too many buttons for me lol. I’m sure i’ll use it later on. I have a few friends who are much more experienced than me who swear by it. From the little i played with it seems like a beast, very powerful and customizable.

1 Like

Great post, as I have always wondered whether I should be using an IDE.

I’d say you should use the tool that helps you get the job done, and that you should embrace the opportunity to get familiar with other tools (new or old) that may prove helpful.

To me, it doesn’t make sense to either not use an IDE for whatever firm belief (IDEs are evil, you don’t learn as much, etc., etc.), or to stick to one specific IDE through thick and thin even if there are better tools out there. Sure, I have a Vim config I am fairly happy with, and it let’s me do a whole bunch of stuff super fast, but if I need to mock about in a C++ project on Windows, there’s pretty much no way around Visual Studio or Qt Creator. They just let me do the job even faster. If I need to compare two text files, I find notepad++'s compare is just brilliant.

As an example;
currently, I am mostly working on a couple of web applications using python and flask, and partly on an open source python API interface. I’d love to say I’m brilliant at what I do, but I am not - so I need some help. Thus, for these projects, I (predominantly) use a combination of Vim, PyCharm, and Visual Studio Code.

I love how PyCharm lets me open multiple projects, and represent them within their own context (specifically by isolating the file hierarchy). I have virtual environments (venv) for each project, as they have different dependencies. PyCharm lets me select which interpreter to use for each project, and as such provides me with feedback on whether or not the package I’m using is even installed in my venv. If I add a new requirement, it also tracks requirements.txt and helps me make sure I don’t commit something with broken dependencies. I also find it very useful that PyCharm provides some hints on expected arguments to function and method calls in the packages I am less familiar with, and that I can explore what’s available through code completion. I still spend more time reading about things online than writing code, but these discoveries help me to narrow down what I’m searching for.

For one of these projects, a pet personal website, I pull a lot of different feeds from various websites online into a list. I find it very helpful copy the entire contents of this list into Visual Studio Code, and let the XML Tools plug-in clean up the feed so it is more readable. I also use a Vim extension, which lets me inspect scopes within the XML file extremely fast. When spanning thousands of lines, this has proved to be a lifesaver.

I also keep a couple of terminal windows open at any given time, and use tools such as less, touch, cat, ls, and grep. I also do all commits, pulls, branching and git pushes from the command line (although, I have to admit, I don’t mind that PyCharm suggests to add files to git if I add them through the IDE).

tl;dr
Use an IDE if and when it makes sense, and not otherwise.

For me it gives me real joy to work with Vim as I’m a “keyboard-guy” (learned touch-typing at age 13 in an attempt to become a writer. What never happened :confounded:). In Vim I can do everything with my hands on the keyboard without ever have to leave it to grab my mouse. That makes it really fast for me and natural. But when I have to work with multiple files, browse my computer or anything else I don’t prefer it because it get’s to complicated for me (as I’m not working all day long in Vim and I really quick forget the nifty commands :slight_smile: ).
For web-development I use Brackets and I really love it (I tried Atom to, but I never got really used to it).
As a side note, learning Vim was not an easy task. Still I’m not a pro, but I know enough to work confidently with the code and have fun with it.

1 Like

On Linux I prefer nano over vi or vim, can’t stand emacs cause you need a science degree just to understand it’s short cut keys. Sounds weird, but I like the layout of nano, simplez. It probably reminds me of the day of 64bit monochrome screen lolz. My opinion is that if the editor does the things you need than it doesn’t matter which one it is.

IDE’s: my experience is the IDE’s struggle with dependencies. Wouldn’t recognise that I had installed “tweepy” for example and yet the code ran fine through Terminal. I tried install it “tweepy” on 2.7 and 3.5 python to solve issue. Wasn’t recognised by IDE but worked fine in Terminal. So, haven’t read what Zed said but IDE’s can be annoying.

Other than that, Atom does every and more. For example, you could have a large file. Put it into Atom. Install a extension that allows you to just highlight the first 8 letters get rid of the rest and run your code on it. No need to invent the code. Read, Interpret, Use, Evaluate, start all over again