IDE vs Text Editor

preview_player
Показать описание
What’s better, a simple text editor or a sophisticated IDE? What is an IDE, what is the best text editor for programming? We all have a strong attachment to the tools that we use to create great software, and so strong opinions. But what are the advantages and disadvantages of each approach? Is it better to use the power of our computers to give us hints, advice and fast feedback on our programming choices, or rely more on our own skills and understanding?

In this episode, Dave Farley, author of Continuous Delivery and Modern Software Engineering, compares the advantages and disadvantages of IDE vs Text Editor and talks about the best tools for programming to support software development. So whether you are looking for the top code editor for python, or the best IDE for Java or C#, checkout Dave’s advice.

--------------------------------------------------------------------------------------
🔗 LINKS RELATED TO THIS EPISODE:

-------------------------------------------------------------------------------------

📚 BOOKS:

In this book, Dave brings together his ideas and proven techniques to describe a durable, coherent and foundational approach to effective software development, for programmers, managers and technical leads, at all levels of experience.

📖 "Continuous Delivery Pipelines" by Dave Farley

NOTE: If you click on one of the Amazon Affiliate links and buy the book, Continuous Delivery Ltd. will get a small fee for the recommendation with NO increase in cost to you.

-------------------------------------------------------------------------------------
Also from Dave:

🎓 CD TRAINING COURSES
If you want to learn Continuous Delivery and DevOps skills, check out Dave Farley's courses

📧 JOIN CD MAIL LIST 📧

-------------------------------------------------------------------------------------

CHANNEL SPONSORS:

Рекомендации по теме
Комментарии
Автор

I personally prefer ms paint as my primary IDE and taking photos of the code with my phone for source control

DenTheGodKing
Автор

There are two issues involved i.e., Value and Mindset
1. Value
Refactoring changed the debate for IDE vs Text. Refactoring made it worth to use IDEs
Even before that, Microsoft IDEs have great intellisense and did the plumbing work for developers.
2. Mindset
I used to think that the great developers don't use any crutches.
"Pragmatic Programmer " changed my mindset. Difference between modern and prehistoric men are tools.
There is no shame in using tools to give better deliveries.
With Regards,
Vikas

softwarearchitecturematter
Автор

Neovim user here. I've been a intellij fan for years before I (definitively?) switched to vim. I don't think editors are less featured than IDEs. (I can refactor and lint in vim thanks to language servers). I think the difference is that you have to build your editor if you want it to be like IDE. It comes with a lot of pain, but it's so great to have a tool you've spent years to sharp for your needs !

loutrea
Автор

This subject gets more complicated every day. Text editors can now rival IDEs with things like the Language Server Protocol. The line between editor and IDE is blurry.

EvilSpaceHamster
Автор

Yeah, I really don't understand people who use vim.

ThePrimeagen
Автор

My favorite I really like about neovim is how it subverts the distinction between IDE/text editor. Out of the box it's "just" a text editor. When I want an ide feature like error notifications for new language, I install a plugin (or two or three) + a language server (as neovim supports the protocol). So the only downside is time investing in configuration and dependency management. Personally, I enjoy that activity so the trade-off is clear.

jmann
Автор

I would say that when using a text editor, you're more likely to rely on CLI tools and this will certainly help you set up automation in CI/CD environments. Your IDE is usually using these CLI tools in the background as well, but might not expose all of its features out of the box. I do prefer an IDE but I also strongly recommend stepping out of the comfort of the GUI and familiarizing yourself with terminal tools. When I'm in an artisanal mood I do bust out vim to write my commit messages 😉

CordieBram
Автор

We did long interviews with scientists and research software engineers on how they work, why they work that way and which tools they use and miss. They use Vi/Vim and Emacs for climate models. When working with Python some of them used IDEs (PyCharm) or Xcode. The main argument for Vi/Vim and Emacs was that they can edit code on HPC machines without the need to install an IDE there and export the display to their local workstation. They tried this. Modern IDEs are too slow to use via X11. However, Emacs and Vi can be used in a text terminal which always works. Most of the interviewees used Vim. While only a few used Emacs. In Emacs they used syntax highlighting and function lookups etc. as that "Editor" brings many IDE features with it.

We will have a paper out on their domain and one on their processes (hopefully) this year.

reinerjung
Автор

A bit of a different point of view from someone who prefers simpler editors (Sublime Text to be more specific)
* Being in a role that makes it expected for me to not spend 100% of time in the code, I find fast startup very valuable. I really frequently need to get quick access to the code and check something. Waiting for an IDE to start up would frustrate me a lot.
* Working with a lot of projects, I'd need multiple windows, one per project, with all IDEs I've used. With Sublime, I can simply drag my projects into one window. When I press ctrl+p, I can search them all at once, very quickly.
* The lines between IDEs and text editors are blurred these days. "I need IDE's refactoring fetaure because I mould my code" is really not a good argument. Whatever feature you need from an IDE, there's probably a plugin in your text editor.
* There's a cognitive overload when you first open an IDE with default layout and it throws all the features it has in your face. With text editors, you can start with the essentials and add bells and whistles as you discover you need them. Cannot be arsed to install a plugin? You probably don't really need the feature then.
* Newbies who are told they need to use an IDE to be real programmers end up skipping or glossing over the essentials. They don't understand how git works or how their project depends on the file system. The git problem is especially severe as they have no awareness of a difference between real git commands and the buttons in their IDE. Some examples are "I used git shelve" and ours/theirs vs mine/theirs. Similarly, IDEs use git command in an opinionated way. Have you checked how IntelliJ uses git commands? Do you understand it? Are you ok with it?
* Text editors (barring exotics like vim), use common shortcuts. ctrl+p works in text editors, in VS Code which is kinda halfway between the two, and in browser devtools which are neither. IDE vendors benefit from coming up with their own sets of keyboard shortcuts to lock you into their system (IntelliJ does this a lot)
* The project setup magic drives me insane. Might not be common to all IDEs, but with most of them you can initialize a project and it magically creates a bunch of files. In a strict, stable world like Java that might be beneficial, but in a lot of other languages there many ways to do it, and the way the IDE does it might not be what I need.
* Don't want to sound arrogant or anything, but I have powerful hardware and I still do notice the performance difference between text editors and IDEs even after startup. I do type and move around files faster than most, so it might be a subjective feeling. Maybe devs who are used to an IDE never notice the speed up? Why would they? They've never missed the performance in the first place.

Background: Even though Sublime Text is my current choice, I've done a lot of soul searching over almost 20 years of software development (not always engineering :)). The ones I can remember are Eclipse, NetBeans, UltraEdit, Coda, VS Code, Atom, Webstorm.

elfnecromancer
Автор

Vim is a fighting game with strings and special moves

chakala
Автор

I started with Java when it was in beta, and the entire API chart fit in a magazine centerfold. Who needs an IDE for that? 💁‍♀️ I was awfully, painfully, stupidly slow to recognize that what made sense in 1998 made no sense a decade on. I tried Intelli-J (skeptically) and was horrified to realize how much time I’d wasted over the years by underestimating the value of an IDE.

KathySierraVideo
Автор

I'm using emacs, and it's by far the best tool that I've ever used yet. I completely LOVE vim more than anything else (even emacs), but just the concept of having a lisp runtime optimized for text manipulation is just so powerful. I can make emacs do exactly what I want it to do. With evil-mode, I can have vim-like keybindings anywhere I want, not just while editing code. It's a trully beautiful experience.

tehscanny
Автор

I think VS Code is a great “meet in the middle” option for these two. Technically it’s a text editor, but it does let you get some of the useful speed enhancements that an IDE offers.

HelloNotMe
Автор

Cult thing around using editors like vim was the most interesting part for me. I totally agree that this is some sort of status symbol for some people but I like things to get done and use IDEs far more often.

Sjwnbszhbsjnbvvs
Автор

I used to be a fan of text editors. Particularly when the only IDE I had experience with was Eclipse (which broke whenever I squinted hard). Nowadays, I have my favourite IDE / text editor for each language that I write in

Zoltag
Автор

I find the tools analogy to be especially apt. I can use my electric drill or circular saw to accomplish the same jobs as (and often larger jobs than) a screwdriver or a hand saw, respectively. However, if I’m just looking to tighten a few screws or cut one small piece of wood, I don’t want to deal with power tools when my hand tools are more straightforward to deal with.

conradtm
Автор

(neo)vim already has every mentioned advantage of an IDE if you add plugins. Though for debugging I prefer vscode, because it is just easier to do with a mouse for hovering things and it just works for most tasks. Also the performance argument still matters. If your Android Studio/IDEA hoggs 3-4G of ram + you have a browser with dozens of tabs + 1-3 electron apps for messangers + you need a docker or maybe 2-3 virtual machines, etc. 32G of ram is not a default, so having your text editor consume 2-4 times less ram can be a big selling point for a person with 16G of ram on work laptop.

ЯрославФ-ыж
Автор

I don't like when an IDE or editor is forced on you. When I work with others, I don't care what tools they use, as long as they don't make the project depend on an IDE for configuration or building. If they want to generate a standard makefile from a configuration that is ok too, if there were changes needed I could ask them to implement them. My second strong opinion is that the IDE or editor may never lag when displaying text. I look at the monitor when I type and if there is a delay it is very disruptive, even a very slight delay like a few frame buffers on a TV that does "image enhancement". I also will not tell people what they should use, if they want to know my preferences that's fine but they need to find their own path.

I must say, I was quite surprised that so many c++ programmers that you asked preferred text editors! I always thought programmers of object oriented languages preferred using an IDE, like Java programmers do. With Python I was not surprised it was a mix, python is widely adopted by people both doing low level programming close to hardware or high level programming in a cloud far far away.

Those are my two cents, I enjoyed hearing your take on this, thank you!

miklov
Автор

I used vim exclusively for almost a decade, the modal editing is what kept me for so long. I wouldn't mind expanding my configuration for additional languages as I went on...

However, this maintenance and tinkering became too time consuming when I was sold out as contractor for many clients, all with different languages, versioncontrol, some monolith projects etc. These clients would often have base setups for common IDEs so that was way more productive to start.

Now I just install a vim emulator in those IDEs. The cult of vi is everywhere. I could then strip down my vimrc to the basics to be close to defaults so that when I remote to machines that text editor is the same as I am used to.

tumi
Автор

My experience is that it is the text editor users who are locked in by years of avoiding any other tool. Those worshiping at the alter of Emacs have usually so heavily customized the editor that they become a basket case if they cannot use their precious Emacs. It may be a particularly good hammer, but that still doesn't mean everything is a nail.

_winston_smith_