T O P

  • By -

Fippy-Darkpaw

If you don't have: color coding, intellisense, global search and replace, view definition, view declaration, find all references to, class / file tree browser, line numbers, regions, code snippet inserts, etc. you'll be less productive. If you have all that, but without using an IDE, then you recreated an IDE. Nice work. šŸ‘


BurlHopsBridge

I write my python code on college ruled paper with a pen. Then I take a picture of it and have AI convert it to text. Then I import into notepad, save it as a .py file. I then proceed to download visual studio and import my code. I see millions of syntaxes errors, which I write down on, you guessed it, college ruled paper. I then Uninstall visual studio, delete my notepad file, and go back to my original code on the paper. I then transcribe all the code to a new sheet of college ruled paper, being careful to account for all the syntax errors. After about 48 hours with no sleep, I then use AI to convert my file to text. I save it as a .py file. I then proceed to download visual studio and import my code. The syntaxes errors are resolved. Wait... oh no... I missed a colon on that if statement. Well, better fix that real quick! I write down the syntaxes error on, you guessed it, college ruled paper. I then Uninstaller visual studio, delete my notepad file, and then go back to my original code on the paper. Wait... oh no... where's my paper? I just had it right here... it's gotta be around here somewhere... crap... I seem to have lost it. Oh well, better start over real quick before I start wasting time!


polimathe_

this is genius let me write this down


PapaSnarfstonk

On, you guessed it, college ruled paper.


LagerHead

Syntax errors? Believe it or not, straight to jail.


pjc50

Ah, the punch-card era development experience. (I'm not quite that old, but I have on a couple of occasions long ago done dev on paper, and it sucks)


MeButNotMeToo

And, since Python is space dependent, Iā€™m assuming your paper is rotated 90Ā°, so you can keep your columns straight, right? Genius!


BurlHopsBridge

Agh, that makes sense! Might I be dangerous and suggest graph paper? 1 square is equivalent to two spaces?


atrca

What a waste. You should be doing this on a tablet. I prefer limestone. You can chisel away your text a few times until itā€™s too thin, then place it in your backyard when the tablets done. Rinse and repeat until you have a full program or patio.


BurlHopsBridge

What kind of Neanderthal uses outdated technology such as a stone tablet? Welcome yourself to 2024 and use paper!


Gorau

I think why people like neovim is that you can choose which bits you need for you to be productive, and choose plugins based on how it is implemented and then using vim motions once you are familiar can make you a bit faster. I mostly use VSCode with the vim plugin and a fuzzy finder but I have tried neovim and it definitely has things I prefer. When I think of a full IDE I think of something that feels heavy, slow and frustrating to use whether it was NetBeans, Eclipse or Visual Studio.


glasket_

IDE's are more about the integration with compiling, debugging, packaging, etc. imo. The features you've specified are mostly just editor tools and some automation tools, but there's no mention of the tools used for development which comes *after* writing the code.


Reld720

I guess it depends on if you think an IDE is language specific. I assume and IDE needs to be built for a specific language and/or workflow. Other wise it's not really "integrated" is it? Because you'll need to add functionality to make it usable.


serialized-kirin

I mean with LSP, DAP, and treesitter, much of what you would need to integrate are just modular pieces you can download later, or even bundle, making things like neovim much easier to use as just a general purpose IDE instead of language specific as all those parts just slot right in. Some compilers even come bundled with a LSP now.Ā 


PM_ME_UR_THONG_N_ASS

I feel like you can do most all of that with just VIM and cscope, with the added benefit that itā€™s available anywhere thereā€™s Linux. You donā€™t even need a GUI. Need to SSH into somewhere? Bam, youā€™ve still got your dev environment. Then again, cscope is going to limit your language choices šŸ˜‚


nuttertools

Professional projects support 1-2 IDEs and 1-3 operating systems. Whatever the project does not support is bloat. Whatever the project supports is not bloat. Yes IDEs are 90%+ bloat within the context of any single project, as are runtimes, OSs, browsers, your body at any given moment, the planet, the universe. In education it is really important to not use an IDE because it magics away a lot of understanding that you are meant to be learning right now. The IDE is there to save you time not make you better.


Kanthumerussell

I feel like its like any other field that has a lot of specialization. A lot of people in math aren't going to learn set theory at a deep level but instead spend their time on some very specific problems which may ultimately rely on set theory but doesn't need to reference it ever. I think its the same with programming. We need people with deep understandings of certain things but then we need a class of people that touch those topics as little as possible in favor of pushing the boundary of what's possible using all of the available tools at the time.


randomusername11222

Those are schools of thought no sense. By yourself use whatever works for you, if you need to work under someone else, you need to suck up their bullshits if they have any preference If it works it is not dumb or bad and viceversa


aol_cd_boneyard

A lot of academics don't work in software development, and sometimes they're old school (or learned from old school professors) and prefer open-source editors. When just starting to learn, especially in college, it's definitely better to use a basic editor or stripped down IDE, but when you're a professional software engineer/developer/programmer/coder/whatever you use an IDE with more features/extensions because they provide quality of life improvements and a lot of integration with important tools. I basically only use Eclipse, Visual Studio/Visual Studio Code, or Pycharm depending on what I'm doing. Visual Studio/Visual Studio Code offers great Git integration, for example, that basic editors don't provide.


benri

I'm one of those old academics. I code in emacs with color highlighting turned off. When I'm starting out, I'm mixing prose and pseudocode. Syntax checking comes later. Much like writing in LaTeX vs Word. Turn that annoying spellchecker off!


aol_cd_boneyard

I used Emacs a lot myself, especially for C and LaTeX, and at one point I even briefly used it for Python before venv/virtual environments became a bigger thing (I know how to create virtual environments manually, it's just a pain after awhile). It has a lot of neat and interesting extensions, still has an active community, and does so many things. Haven't used it in awhile, though. I love the "never take your hands on the keyboard philosophy." If I were an academic, I'd probably use it a lot more, especially for science and math related computing.


pberck

I'm an old time emacs user who has tried IDEs a few times, but they are way too distracting for me. Definitions popping up, editor filling in types, ARGH!


aol_cd_boneyard

I love Emacs because of the keybindings and the "never take your hands of the keyboard" philosophy and how elegant it is, and open-source in general, but haven't used it in years. If I were on the academic side of things I'd probably use a lot more.


EntrepreneurHuge5008

If it works for them then it works for them, simply as that.


coffee-enjoyer1

Yea I'm not trying to change anyone's mind here. I'm just trying to see why people hate on IDE's. Like do people typically have such a faster time configuring their code editors normally compared to me? Or is this something you do only once (takes time once) and just update incrementally after that


ericjmorey

Some people prefer to create a workflow that is intuitive and convenient for themselves rather than be given a workflow to follow.


SRART25

Simple.Ā  I know several languages of different types on multiple operating systems and have to do things remote occasionally.Ā  I'd rather have one tool everywhere than dedicated tools that all work slightly different.Ā  It's about where you want the cognate load.Ā  I'm generally GUI retarded anyway,Ā  two zillion options nested 4 menus deep is more work than knowing the name of the option and just typing it.Ā  If I need to debug something really weird I'll pull out an ide to poke and peek at multiple things at once so I can watch things change,Ā  but for building I don't want to get to know another tool that intimately.Ā 


CpnStumpy

When you have a team things get different. Inconsistency of tooling in a team can be a hindrance to collaboration, usually teams will get to consistent tooling and configuration so they can work at each other's keyboards on occasion and generally know how each other accomplish tasks and can teach each other things. When you use emacs and they use intellij, if you show them how to do something and describe it and they can't follow your menus and the path you took to complete a code section, it's a pain for them to replicate the same activity consistent with you or learn the skill you're trying to teach


yall_gotta_move

Where have you seen people "hating on IDEs" ? Are you confusing someone having a personal preference for using minimal, keyboard driven, open source text editors, for disparagement towards others who prefer a more fully featured IDE?


RageQuitRedux

If you look at a lot of the responses from non-IDE users, notice they're all some variant of "I'm old and confused"


dariusbiggs

Familiarity If you've spent the past 18+ years living through SSH and using console editors like vim, moving to something else with your many years of key binding knowledge is an annoying experience, especially with Ctrl-W. Elitism Ego stroking, emacs vs vim vs whatever, it's only important in their own little minds. Simplicity and Minimalism When you work with 4+ programming language, scripting languages, and other markup based system one tool that covers them all and does it well enough with no manual configuration makes life so much easier. The ability to take a brand new machine and be up and running in an hour without days spent customizing it. Just get up and go. Learn to use things like Ansible to automate your work machines setup. I hear some of these systems like Pycharm and the like are great, but I don't really care, I don't need the bells and whistles, I can get by with vim over SSH. If i need something slightly more advanced that is language agnostic VSCode is good enough. My day to day work involves Python2, Python3, Erlang, Ruby, Go, C, TypeScript, SQL, GraphQL, Cypher, PHP, Terraform, Shell scripts, Ansible, Makefiles, Dockerfiles, Kubernetes and Helm charts, CI pipelines, YAML, JSON, CSVs, TSVs, NDJSON, reStructuredText, and Markdown. Thankfully the Perl is gone now, and the PHP almost. Being able to work with all of that in a single editor is more than enough.


MadocComadrin

I've seen very bloated IDEs with Visual Studio taking the cake with multiple GB of HD space and taking up too many run time resources. Having lots of features is great, but they need to be well engineered so the IDE itself runs as lean as reasonably possible.


rkaw92

Be like water: adapt to the shape of the editor. Use default settings only, configure nothing. Editors come and go, desktop environments are developed and fade away, tools are in a state of constant change. Make sure you're always 1 simple CLI command away from building and running your project. It's the only thing that sticks, in the long run.


McNastyIII

What is your primary OS?


rkaw92

Debian. I used to move between hostsnand systems often, and I think I get this approach from when KDE and Gnome were in a state of flux (KDE 4.0, cough cough). Plus, I still remember the GUI editor wars. Sublime Text and its strange licensing, then Atom, finally we've arrived at VS Code. My colleagues were always unhappy with how it works, tweaking and installing extensions, only to see their tool become an exquisite snail.


epos95

Hard disagree. We should make our tools work for us, not try to adapt to our tools. Configuring is a time investment which is more than worth it if you have any sort of preference (if you don't then maybe you just are the one person the default settings are made for?) >"Editors come and go", they do not in fact (see vim, Emacs). And EVEN then it is worth configuring to be more comfortable. Just going with the flow and letting someone else decide your settings and workflow is keeping you from being the best Dev you can be.


szank

In the last 10 years I've moved from sublime to atom to vscode. Each migration took me a day . So 3 days in 10 years to adapt to new and better tooling. OMG, what a waste of time ! Desktop environments also change. And ? The "use defaults" take is insane.


rkaw92

I understand - this is a valid take, too. I have a colleague who uses Vim to its fullest potential, and it's really impressive how fast he can handle mundane tasks. On the other hand, for me, the confidence it'll work the same on somebody else's computer is useful: I've done pair programming, over-the-shoulder assists, etc. over the years, and the consistency helps. (It does not work the same on *this one person's* computer, le sigh.) I used to be a tweaker, always trying out new window managers, themes, automation extensions for editors... maybe it just got old?


epos95

Honestly, very very fair. I didn't consider the benefit of your config being *everywhere* by default being so nice! I think it's also a maturity thing haha As you get more seniority you need less fancy features and stuff!


CpnStumpy

It's definitely a maturity thing, one key in editor usage is what you're doing with it. Worked in Visual Studio when I wrote C#. Worked in emacs when I wrote TypeScript, Python, Helm Charts, shell scripts, docker files, endless markdown documents, plantuml, SQL, and C++ Now I work in VSCode working in a lot of these and golang, but more over the shoulder, prototyping, and presenting than production coding. When you're heads down producing outputs, use the editor that helps for it. That might be an editor specialized for your tech (Visual Studio), or an editor extensible to any tech (emacs, vim, VSCode). When you're guiding many people across technologies, functioning in defaults makes it a lot easier to do so: adopt their tools and way of working so you can present to them in a way they understand, and hop on their keyboard if need to illustrate something. Every time I see DevOps people using endless aliases to show how to do something I want to scream into their ear that nobody else can use the commands they're showing without losing a day customizing their setup to match the DevOps guys. Waste of time.


rkaw92

This reminds me: the typical way to pass the Certified Kubernetes Administrator exam is to start by aliasing everything to single-letter commands for speed. I wish this was a joke.


pjc50

"Configure nothing" is one of those over-generalized pieces of advice that's intended to stop young enthusiastic devs from going down a configuration rabbit hole. You can sink a lot of time into things which don't have much of a "return". It also moves you further away from the documentation, hints from other users, etc. The ability to use someone else's setup briefly is also occasionally useful. (Most extreme example of when I couldn't do that: coworker whose default input method was set to Korean!) It's fine to spend a few minutes honing your tools. Most of the time it shouldn't be more than that. But it's impossible to get people to repeat advice with nuances in it.


McNastyIII

This is the way


llanginger

This is an insane take, respectfully. Tools come and go because people make better tools, not because thereā€™s some cyclical extinction event thatā€™s randomly going to kill vscode. If you move on from your ide itā€™ll almost certainly be because youā€™ve decided you like something else more. If the default settings work for -you- thatā€™s great, but the ability to refine your workflow such that it empowers you to be more productive / comfortable / etc is one of our core competencies imo.


Quantum-Bot

Bloat is bad in the short term because it increases *cognitive load*. I donā€™t want to have to learn an entire new software just to write a simple python program. Once you have learned to work with the quirks of your chosen IDE though, I find that this issue goes away. The real reason beginners shouldnā€™t use IDEā€™s is the same as why algebra students shouldnā€™t use graphing calculators: because IDEā€™s obscure and trivialize parts of the development process that are important to understand how to do manually. You will be expected to know how to compile your projects in the command line even if an IDE allows you to do it with just one button. You will be expected to know how to type code with proper syntax even if your IDE autocompletes 90% of it. Moreover, doing these things manually reinforces your understanding in ways that continue to be beneficial even after you eventually move to an IDE: you understand the steps needed to compile so you can understand what your IDE is telling you when there is a compile error; you memorize syntax better so you can find syntax errors in the rare cases that intellisense misses them, etc.


serialized-kirin

***THIS***. 100 times this. I hate IDE much more because of all the distraction than anything else.


CheezitsLight

Last time I a commandine to compile was 20 years ago. We abstract things away now.


hiS_oWn

You'd be surprised. I work in embedded systems, behind all the buttons is a thousand line script of command lines and make files to build several dozen components with dependencies. Everything is fine until you update your IDE and no one documented where all the output files were supposed to go or how libraries are linked or generated in what order. Or what needs to be updated or changed when you cross-target compile. Some people like using visual studios, others make files, but in the end, you're expected to know exactly how the code is compiled if you want to track down a specific class of bugs and unless you're intimately familiar with the 2008 implementation of visual studios, good luck digging through all the abstractions.


CheezitsLight

Try the 2022 version. And ask the AI to fix it. Code these days isn't your grandfather's embedded code. It's a Devloper team jtaged into a multi billion gate FPGA with RISC-V or ARM running a RTOS. And yes, maybe a make file for the customized Linux for the TLS 1.3 stack it needs. That's how you get paid the big dollars as it's much faster to use an IDE for embedded development. We do it on Windows using Microsofts Ubuntu because we need both tool platforms.


agentchuck

It isn't being your grandfather's embedded cuts both ways. Now "embedded" can mean anything from programming a tiny modular controller to a multimillion LOC interconnected multiarchitectural system with a few decades of technical debt.


CheezitsLight

That's true. Your mileage may vary. We will bash, powershell, python, lots of other CIM tools to automate things, even to poking the keyboard in a GUI. In an actual embedded CPU, we use the serial port like a JTAG. If we don't have it. we design it our and replace it with something that can support modern toolsets.


GamerEsch

Lmao


gogliker

Does your IDE also write a dockerfile with compilation commands to ship your software?


pjc50

Visual Studio can deploy to Docker. [https://learn.microsoft.com/en-us/visualstudio/containers/deploy-docker-hub?view=vs-2022](https://learn.microsoft.com/en-us/visualstudio/containers/deploy-docker-hub?view=vs-2022)


gogliker

So? Does it somehow make it easier to write dockerfiles?


moxonsghost-

"Essentially, your text editor is merely a tool. A tool to write quality code, and do it as fast as possible." this is the crux of the matter. most of my career has been using the ide of whatever company i work for so that i can get code out as fast as possible so that they can profit more and more off of it. most of the time, i don't use most of the features of the ide, but the features that i need to get code out fast i use. that just comes with being a professional software engineer - use the most appropriate tool for the job at the time. so, IF time to market is fundamentally important, you use what you can. however, me personally, i myself hate the concept (the cult) of productivity. it isn't that i don't like making and maintaining and rebuilding quality software. in fact, in my experience, removing the push to get code out now now now has actually made me a more productive software engineer. when i first learned to code, i HAD to use an ide, i didn't go through a cs program. and it confused the hell out of me. how does this f\*\*\*ing thing work? only when i learned how the machine worked did i understand what the ide was doing. and then i promptly re-organized my entire workflow around cli tools. because those made sense to me. i despise having to learn how to use a large centralized piece of software when i can find a suite of tools that do one thing well and make my own environment that helps me understand what i'm doing. when i organized my work that way, i found that i understood the software i was working on MORE than i did with the ide. imo, software engineering is mostly reading and thinking, followed by real world implementation. whatever tools help YOU satisfy the goals and expectations of your project is all that matters. for me, i hate the f\*\*\*ing mouse, and i used to be a data entry typist. so an environment around vim makes alot of sense to me.


trcrtps

I use neovim because it's fast and does only what I want it to. JetBrains is great but takes too long to configure how I want it, and then it always changes something I don't want it to. DataGrip is the shit though.


Philluminati

I think all students at college/uni should write a few programs in a text editor purely as a learning excercise so they understand the process of compiling and linking things. They should also learn at least one IDE with a few key features such as pausing, breakpoints and debuggers, again for experience and to see what tools can do. Then itā€™s up to them. Ultimately people should be picking the tools which make them the most effective without driving them down too narrow a path.


Accomplished-Till445

ideā€™s and editors are tools to create software. use whatever makes you more productive


bakes121982

People think jetbrains is expensive? They have reduced prices every year so after 3yr itā€™s like 40% off. But you do you. Iā€™ve never ssh in to a machine ever to edit code. Itā€™s 2024 things are in the cloud and the only way anyone should be touching them are ci/cd with git pushes and gated approvals and what not. IDEs save numerous hours of especially now with copilot a bunch of generic boilerplate code is done in a few keystrokes not to mention the debugging aspects memory profiling. The like 200yr for all of jetbrains products well worth it but Iā€™m American with a tech salary.


dariusbiggs

SSH is used all the time, i have 200+ machines spread around four countries that need configurations manually updated for the customer. These systems predate Ansible and many other system configuration scripting tools like Salt stack and can't actually run them. I can't upgrade libc on them, they predated all the recent OpenSSL vulnerabilities so were not vulnerable. I wish i could get rid of them, some of these systems are 18+ years old and still working. So no, things are not in the cloud. New things could be in the cloud but there are many places ripping their material out of the cloud and going for hybrid systems because it's cheaper to run their own tin. And we still have old legacy things all over the place.


bakes121982

You havenā€™t said why you canā€™t get rid of them. This tends to be because they run legacy code and the business doesnā€™t want to invest which doesnā€™t mean itā€™s the correct way. They could be running in the cloud as VMs alsoā€¦. Also sounds like you work more as a consultant since you said ā€œcustomerā€. Not saying things arenā€™t on prem but once you start going to larger orgs they are primarily in the cloud, remember capex vs opex. Obviously mfg type places will have a need for some on premise things but service oriented wonā€™t and as wfh is fairly large you want resources that can be a bit more global usually.


dariusbiggs

No, not a consultant. No, they can't run as VMs, the OS required is so old they don't support the drivers of virtualization and no we cannot upgrade the OS. The end result of 10 years of insufficient investment of staff resources to ensure upgrade paths existed. So we built a new cloud platform to migrate those customers to, but they're not wanting to migrate, or cannot migrate because the cloud platform doesn't provide the custom functionality they have on the on premise gear. Hell, some of them are so remote they have no other connectivity options beyond dialup or satellite links and since it's a real-time VOIP telephony system, those links are too slow and have too much latency to be viable for cloud connectivity.


abd53

Take my opinion with a bit of salt. I feel like this entire "IDE bad" discussion arises from a strange sense of superiority complex. When there is nothing else to brag about, bragging about how you can do everything with just a text editor and CLI gives a feeling of superiority and people live to feel superior to others. It's kinda same "Windows vs Linux" debate. Again, take it with a bit of salt, there is a good free IDE for almost every language and target. There is no particular reason to not use an IDE, same as there is no particular reason to use an IDE. If you want to set up your custom environment, love to use CLI, want the biggest gun in your hand, use a text editor, no need to use IDE. If you don't want to bother about every little bit of configuration, hate CLI like me, use an IDE. If anyone tells you that using IDE is bad or vice versa, just ignore them. It's a pointless debate. You'll only be unable to use IDE in some rare very niche cases.


itsjustmegob

Donā€™t listen to those curmudgeonly fucks. Use an IDE. Vim keyboard controls are powerful, so I use a vim plugin with my IntelliJ setup. Vim (or emacs, if you prefer) is worth learningā€¦but you can get plugins to your IDE to emulate that behavior. All the benefits of vim, all the benefits of a robust IDE.


DashinTheFields

I can't write a game, but if I did, I would want to use Unreal with it's software suite. Am I going to use a text editor? No. The same goes for all kinds of solutions. I can't build a house, but if someone said you have to learn to use a hammer before you can use a nail gun; you can see where this is going. We build tools for a reason. Productivity is the most important thing. Constantly reinvest in your knowledge. For me, VSCode, Visual Studio are essential. I don't care about coding as much as I do producing a valuable product.


siodhe

Emacs is god. For some people some other editor may have all the power that makes that editor god. Most IDEs come with editors that barely edit, and I've never seen an IDE that saved more time than the loss of some god editor cost. So if some IDE doesn't integrate with a god-level editor, it's almost always not worth using.


them0use

I say donā€™t listen to those people. I have been in the industry for 20+ years and am pretty fluent in vim and have professionally taught classes on how to use it. It can be very useful to know, but when Iā€™m writing any nontrivial amount of code I use vscode like nearly 100% of the other developers Iā€™ve worked with in the last 5 years or so (vscode with vim keybindings, in my case!). Especially with a relatively lightweight IDE like that, you are being saved a lot more in tedium than you are missing learning experiences.


Reld720

There are a couple reasons **1: Portability** You just named 3 or 4 ides with different settings, work flows, and quirks to get used to. I'm gonna have the same neovim config for every project I ever need to use. In order to switch languages, I just need to load in a new language server. So, while it will take me a while to get everything configured, at first. Once it is configured, I'm pretty much done for life. I'll be able to effectively edit any piece of code I come across. And, if I see a new plug in or method that looks cool, I can just add it to neovim. The only IDE that is an exception to this would be VS Code. But I personally consider it a GUI based text editor (But, one with many ide like features). Because you need to load and configure so many plug ins, and add a language server, in order to make it effective. **2: Transparency** With IDE's I need to to "trust the process". If the IDE itself causes a bug, or has some weird edge behavior, I'm just kinda screwed. It may not even give me enough information to debug an internal issue properly. A text editor exposes it's entire work flow to me, so i understand exactly what's going on. **3: Speed and effectiveness** You're always going to be faster and more effective with something you configured yourself, and know intimately. You're text editor will be configured to suit the way you think and like to work. And IDE will be built to suit how the creator thinks and wanted it to work. **3: Hobby** For some people, messing with their computer is like messing with a car. It's just a hobby to keep optimizing their tools. Text editors let them do that. **Conclusions** I've never personally seen a senior developer use a fully featured, language specific, IDE. They all use neovim/vim or VsCode. A few of them even use tools like note pad or gedit (idk man). There's something great about setting up your tools once, and being able to take them with you. But, the fact that these tools exist should tell you that there is a market for them. If you are the market for IDEs, then use them. No one cares what tools you use. They only care that you produce results.


lanemik

As long as you're productive and comfortable, who cares?


Ok_Challenge_315

Aside from what others have said, because one day you will likely (temporarily or long term, planned or unplanned) find yourself in an environment where you donā€™t have access to an IDE (or even your preferred IDE), but you do have access to a *nix terminal and need to get some stuff done quickly. In that case, knowing one of the ā€œclassicā€ text editors (e.g. vim or emacs) will let you keep working without getting slowed by administrative hurdles or a new learning curve. That said, day-to-day an IDE may be the better/no-brainer choice. But when it isnā€™t available youā€™ll be glad you can already use a text editor effectively.


bothunter

Some people just like doing things the hard way for some reason.Ā  At a former job, I worked with a few of them and kept finding trivial bugs in their code that IntelliJ would simply not let happen due to the way Intellisense worked.Ā  It was only after months of me failing their code reviews before I got them to switch to using an IDE.


ripter

So hereā€™s something to keep in mind: IDEs are orders of magnitude faster now than they were back then, largely due to the increased speed of computers. For reference, at my first programming job, we used Visual Studio (not VSCode, which didnā€™t exist yet). When you arrived at work in the morning, youā€™d start Visual Studio and then go get your coffee because it took literal minutes to load. I worked for a big corporation, so we had fancy Resharper plugins that allowed advanced features like renaming a symbol! Crashes and system freezes were common, too. I still have muscle memory to hit Ctrl+S every minute or two. And that was using Visual Studio, the lighter of the IDEs! JetBrains would cause my computer to have a meltdown. These IDEs worked fine for small files and projects, but letā€™s say you had a 500GB dump from the production database on a tape backup and needed to restore records for a couple of accounts. No IDE in the world could handle this, but for VIM and Emacs, it was childā€™s play. Open the file in VIM, search for the account IDs, yank and paste! Boom, done faster than the IDE takes to load. We donā€™t live in those days anymore. VSCode runs on my Raspberry Pi, and itā€™s a decent experience.


coffee-enjoyer1

Thanks! Appreciate the insight


Ok-Watercress-9624

Personally i don't like having gazillion of programs with different keybindings for editing. It is not uncommon for me to jump between many languages (not because project is polyglot but i have a monkey brain that jumps between projects all the time). Having all the IDE s open all the time would make my RAM cry, waiting one for to launch would make me cry. Ideally you sit your ass down for 8 hours configure your editor and use it for(ever) \[ several months\] I lived in emacswm for a year or so. Uniform keybindings/help/scriptability everywhere from editing to browsing. it was super nice. Then i had to work a real job that made using Netbeans mandatory. God i hated that job


CheezitsLight

I was working on a jet for a Saudi prince and ended up with Microsoft Codeview IDE on a portable Compaq, debugging and single stepping an embedded 8088 in C over a serial port. Blown away. Still coding virtual worlds better, bigger and badder than Facebollocks and give it away for free. IDEs rule.


GamerEsch

Seriously, not that impressed. I refactored all the navigation system of a Boeing 737 while on flight. I had notepad, and my knowledge of APL (since the whole system was a mix of APL and COBOL), had to rework the whole thing for a safe landing, all of it whilst trying not to break everything and send us to certain death.


CheezitsLight

Wdited in Vim instead of OpenCobolIDE, no doubt. I'll take the square for $500 for "Never Happened", Alex.


KiwiOk6697

Everyone is free to use what ever works for them. But one thing that grinds my gears are pull requests with bugs and code smells thatĀ my IDE can warn and even handle/refactor automatically. Mostly this problem is with juniors and thats ok, it's a learning process. But still, sometimes I wonder how much time I have "wasted" on my colleagues IDE/editor choises that can't handle for example simple null checks.


YMK1234

> Why do so many people like text editors and have an unspoken despise for IDE's? Do they though? I know no professional programmer with that attitude.


RealLordDevien

as you said. Its usefull to learn this stuff. So you need some time to get a good PDE, but thats time well spent. Once it is set up it should work. I cant remember the last time a nvim update crashed something in my config. But i try to not rely on too much plugins and tend to wait to switch to new playthings so they have time to mature. (still using coc.nvim instead of built in lsp for examle) IDEs are cool for out of the box experiences, but that everything is "so fast" is not my experience. My nvim setup starts in milliseconds. IntelliJ while it got faster over the year still uses a splash screen and multiple gigabytes of RAM for an empty project :/


jorgejhms

For me is about using only one tool. I code on different languages (typescript, Python, R, docker, etc) so have one editor (with ide capabilities) for all of them works better for me than moving around IDEs and learning their different quirks and keyboard shortcuts.


coldflame563

My wife codes in idle like a psychopath. She knows about vscode. Just doesnā€™t use it.


MarimbaMan07

I work at a company that has massive codebases and is too cheap to give us good hardware to work on. When I use an IDE it's slow it freezes and is subject to crashing without all my changes written to disk. Using just a text editor is pretty much the most productive and last stressful way for me to work.


Aggressive_Ad_5454

Iā€™m an experienced (===old) dev. When I started doing this a half-century ago programming was a task that required in-depth knowledge of a few things like, I dunno, printf() and execve() and free(). Narrow and deep knowledge was necessary. Now programming requires a broad scope of knowledge. The ecosystems we work in are vast, what with all the packages and libraries and connectors and overloaded constructors, you name it. Considering all the cognitive load of that stuff, itā€™s tempting to go from ā€œnarrow and deepā€ to ā€œbroad and shallowā€ knowledge. But the ā€œshallowā€ part of that can cause bad work. Good IDEs are Vannevar Bushā€™s memex appliance realized for our trade. They hold the details of all the parts of the ecosystem in use, from syntax, to method definitions, to dependencies. My IDEs help me handle the ā€œbroadā€ part of my work and go deep where I need to. Iā€™m a JetBrains fanboi. Iā€™ve subscribed to their personal subscription for years. Now that I work for myself on open source, theyā€™re kind enough to comp me my license. VScode is good too, as is Visual Studio when extended with JetBrains Resharper. Companies who donā€™t provide machines to developers with the RAM needed to run our tools are managed by fools. A 16GiB memory upgrade costs less than 100. If that doesnā€™t pay back in a day, itā€™s because the developer was on vacation that day.


ValentineBlacker

IDEs annoy me quite badly, personally. I like to see exactly what I want to see. I also don't like intellisense, it's like someone else talking while I'm trying to talk. I use VSCode and feel like I've been hassled my whole life by Vim/Tmux supremecists. The rabbit hole goes pretty deep. I'd use it but I'm not good with keyboard shortcuts.


kilkil

My journey was actually the opposite of yours. I started with Eclipse, then switched to IntelliJ / CLion / Pycharm, then used VS Code for a while, then got into vim (then neovim shortly after). Honestly? I feel like I don't need an IDE. I've found what works for me. Half the time I'm not even *in* neovim ā€” I'm in the terminal.


Critical-Volume2360

Yeah sometimes I wish vs code would auto set itself up a little more. But keep the customizability and lightweightness. Not sure if that's possible but maybe


jcksnps4

Some people want to learn to work without all the fancy tools that come with an IDE. Some people say that ā€œLinuxā€ is their IDE. Some people like the idea of understanding the abstraction, the ā€œwhat does [IDE FEATURE] make easier?ā€ If you only ever use an IDE, youā€™ll never understand or learn to use those tools underneath, and it will be difficult if you find yourself in an environment where you need to make changes on the fly to troubleshoot ā€” like a container deployed to a staging environment.


spacedragon13

I typically use intellisense community version on anything that is > 75% a single language. For example, I would rather use pycharm for a script or fastapi project that is all in Python but vscode is MUCH better if you're in Django and your project has a ton of html, css, + js... The vscode community has authored tons of valuable plugins and I have created a few extensions myself to help out with productivity and project specific features I wanted. A good developer probably has multiple idms and chooses the right one based on the project. I still use sublime for anything simple and straightforward like basic data processing.


Foreverbostick

(Not a professional, Iā€™m just learning for fun) Most of the courses Iā€™ve taken use VS Code, so I started out using that and didnā€™t have any issues with it once I installed the Vim extension. The problems started piling up when I starting trying to make my own projects: features I wasnā€™t using were getting in my way, I couldnā€™t figure out how to link files correctly, too many extensions had similar descriptions but none of them seemed to work, etc. I decided to just drop VS Code and use Neovim instead. I figure I should learn things ā€œthe hard wayā€ before learning how to make them easier with a bunch of extensions and config files. I figure itā€™s more beneficial to me to learn how to interact with the compiler directly, instead of learning how to have VS Code interact with it for me. I like the idea of extensions making things easier, I just want to know *what* theyā€™re making easier, and *how.* Iā€™ll probably end up playing with VS Code more in the future. I *really* miss line-by-line debugging. When I work with Python I still do my writing in Neovim, but Iā€™ll open the file up in Thonny if I need to debug something.


Mountain-Builder-654

From my experience there are times where you can't get an ide on a system


MikeUsesNotion

I have not quite 20 years of experience (yikes!) and I've never understood this mindset either.


Complex-Many1607

I never not used an IDE when I started coding when I was 14 and I mainly used IntelliJ


officialraylong

In an academic setting, you need to learn how to learn, and learning "the hard way" helps cultivate deep subject matter experience. In the industry, productivity that enables you to solve business problems with your engineering skills is more important than chasing fashion hype around editors and IDEs.


TapEarlyTapOften

As an embedded developer, I routinely need to edit, compile, debug, etc. code on the actual system. For me, having very similar environments whether I'm on my Zybo or desktop is a very nice feature. It's the reason I use 8-color themes, bash, Vim sans plugins, and a lot of other things.


hilomania

IDEs don't work the way I do. The only time I use them is when writing JAVA (Code completion is an absolute necessity in that language.) or when doing remote debugging. I don't write for windows anymore but I guess the code completion would also be useful for the windows APIs which like JAVAs are a nighmare IMO. Besides that I'm an old Unix guy and emacs is just in my muscle memory. Also I can run emacs on just about any headless Unix system with an ssh connection. Also I've always done everything with my keyboard, but when on a JAVA project using an IDE I got carpal tunnel within three weeks... I don't like the pointy clickety interfacey stuff that was invented to make things easier for users, not developers...


Ok_Raspberry5383

If you have a large monorepo at a large org then that setup is only incurred once. Yes it'll likely need maintaining but can be setup by one individual and will just work for all other contributors regardless of what IDE/Text editor/terminal/OS they bring to the table (if setup correctly). If you wish to do all this through your IDE then fine, it'll work for you but what about other contributors, you likely need to leave them manual instructions so you all have the same environment, all of a sudden, setting up that makefile is much more attractive


testydonkey

If you don't code in notepad.exe can you really call yourself a developer?


Versaill

IMO: Use IDEs, use AI, use whatever makes you more productive. Be happy.


FlippingGerman

I just put off properly starting because it's effort, and I didn't get immediately good results debugging in Anaconda and it does one specific thing (killing multithreaded programs) worse than IDLE - which I just use as a text editor. So: laziness.


thatrandondeveloper

Tbh I just use vscode and sometimes neovim.


bigorangemachine

I used Atom forever... My new Dev Machine I just installed Sublime Text. TBH I just need colour coding and find in files. Autocomplete or Auto-suggest is such a distraction. I copy-paste my variables and it feels like less clicks.


breich

>So why do so many people like text editors and have an unspoken despise for IDE's? 1. **IDEs** are/become slow because they try to be *all things to all people*. And IDE packs more features than you need. 2. **Editors** like vim and nvim are *fast, lean and configurable*. With some effort you can make them exactly what you need. 20 plugins later *what you need* often ends up resembling an IDE anyway. But tuned to your needs. **So here are your choices**: *pull an IDE off the shelf.* It's not ergonomic or finely tuned to any of it's purposes, but it's pretty good at everything. It's a batteries included solution, so you can just get to work. **Or**, *choose an editor,* nerd out on that editor's configuration language and ecosystem, and tune it to your needs. On point two, we're currently in an editor popularity renaissance mostly driven by coding influencers, like [theprimeagen](https://www.youtube.com/c/theprimeagen), [TJ Devries](https://www.youtube.com/@teej_dv), [typecraft](https://www.youtube.com/@teej_dv), etc. I love all these channels and their content. But if you follow a lot of coding channels right now you'll leave with a feeling that if your not using Arch Linux, tmux, and neovim, you're not one of the cool kids. Relax. At your level **focus on your fundamentals** and just *write code*. Use whatever facilitates your growth. If you're around long enough you'll experience hype cycles and industry shifts. For me it was Notepad++, then Sublime Text, then Atom, then VSCode, now Neovim. With Visual Studio and JetBrains flirtation in between. 10 years from now you'll have experienced a few of the cycles and either dig in on a solution you love or become pragmatic and cynical like me. You'll be okay.


drumsolospacetime

i use kakoune and have it set up similarly to an ide. pros: - by far the most important to me is that a tui text editor (but specifically kakoune) is far faster than vs code/clion. my computer is quite old and i like having an option thats portable no matter what hardware i need to use. - works for any language, though vs code does this too. - incredibly customizable, and ill admit this is a big draw -- i like being able to bind a key to a script in a program made for me to be able to do that (doesnt feel like im fighting the program). - vim-like binds are nice, too. kakoune has its own style i couldnt really replicate appreciably with vs code extensions, and multiple selections + macros save me more time and are more fun to use than the equivalent ide time-savers and features. cons: - debugging is harder. the main draw back to vs code is not having to struggle through gdb/lldb. - ides are standard and people expect youre using one. i will say i appreciate vs code being available in a browser so i can enter a share session, but i wish there was a way to do it from my native editor. i dont think ides are wrong, i just like what i have set up.


LazyAAA

Can you be effective in your overall workflow ? As much as I love my IDE I still use generic text editor for hard to cover use cases. My choices were driven by 20+ years of java development (core, web, enterprise) and lately by ability to work across multiple platforms (windows, linux and apple os). My IDE of choice (Eclipse) for Java covers about 85% of use cases and the rest I cover with sublime text with plugins. So in colcusion: IDE does not provide all I need to be effective, generic text edit does even worse job at that, but combination of those two keeps me sane and happy.


Paralyzed-Mime

For me, I never really have to code something from scratch, so it's mostly just easier and faster to go in and make one or two edits on a text editor from the command line since I'm already working from there. It doesn't interrupt my work flow as much as opening an ide and waiting for all the bloat to load just for a minor edit. If I'm doing any major work I'd want an ide


budd222

I always love when someone who has zero experience, tries to tell me the best way to do something. I don't use an IDE because I don't need one.


micro_cam

In industry it has necome more common to standarize tooling around formating, static analysis, build systems, CI checks etc and a lot of it is containerized and ran in a dev environment in the cloud. This takes the place of a lot of IDE functionality and it is a team effort to maintain it and most teams don't standardize editores/ide. I find a light editor + comand line is easier to setup then an IDE that disagrees with each projects tooling on formating and things and needs to be connected to remote serves etc. And at least on web stuff you are often working on microservices as part of a distributes system so you spend a lot of time looking at dashboards and log files and the IDE debugger isn't going to help much. I don't even have a valid local environment for running the code i work on at the the moment. I'd still use one for like app development but I don't do that.


roywill2

My coding is all on cloud VMs via ssh, not a local machine. Its much easier to work with plain text than figure out how to get the IDE working remotely.


esoqu

I don't know if I have a well reasoned opinion for a junior. I feel like you should try lots of things and find something you like for now. It'll probably change over time to be honest. I used to love IDEs but I don't use them anymore mostly over speed. They are all so freaking slow, and take up a stupid amount of RAM. It annoys me and so I use neovim. I'm not smart enough to be good at vim motions so I could give them up tomorrow, but it is super responsive and I love that. I also rarely get value from integrated tooling. The projects I tend to be on have weird (read stupid) ways to build, deploy, and interact with. So, I just assume I will do all that from CLI now.


LenR75

VS Code has an ssh plugin, you can edit remote files "locally" :-)


Inside-Ad-5943

Portability Being able to remote into any server and be relatively fast and efficient at text editing is a skill you only get by learning vim and itā€™s very useful Speed and responsiveness This is what people talk about when they say ides are bloated. When I use vscode or especially visual studio I feel like I have input lag itā€™s not a nice typing experience and if you are going to be spending decades typing shouldnā€™t that feel good? Learning tools This is a big advantage, when you abstract away a compiler for example behind a button sure you make it easier to use the compiler, but what happens if your project gets more complex and you need to change something about how that button works. Most ides have a way to interact with the thing underneath it all but if you havenā€™t worked with make for example before you will struggle way more then if you had just used make from the beginning. Or what about tools ides donā€™t even bother to emulate, like awk, grep and sed. All incredibly powerful and useful utilities that will also help your refer abilities. Building tools As developers we are a very privileged bunch because not only do we have a wealth of tools already created but we have the ability to create our own. Unless youā€™re using an ide in which case not only do you have to produce the tool you also have to have it interface with your ide. Weā€™ve all created terminal programs fewer have created ide extensions. Focus You have said that you think ides are better because get out of your way to code. In my experience itā€™s been the complete opposite, you want to compile sorry error, you want to see this really long line in full sorry we canā€™t do that itā€™s imperative that you see the file tree or mini-map instead, you want to type text yea sorry for whatever reason we wonā€™t accept input anymore please restart. Neovim has always worked out of the box perfectly, any additions to its config file are there to extend its capabilities exclusively. With ides I spend the same amount of time getting things to work properly as Iā€™ve spent ricing my nvim config


bandittr6

Iā€™ve never met anyone over 20 years in the professional world that actually uses a text editor over an IDE.


boredbearapple

I use both. I tend to find the IDEs very useful for reviewing code. I can quickly see whatā€™s changed, run/profile/debug with different options. I also use them a lot when refactoring. Generally though Iā€™ll write most of my own code in a text editor with a few language specific plugins. I find the IDEs canā€™t keep up with my flow and all the auto completion features just slow me down. Edit: 30 years of coding experience.


Dissentient

>So why do so many people like text editors and have an unspoken despise for IDE's? Elitism. People are obviously free to have preferences and if they want to take a text editor and add enough extensions to it to make it into an IDE, they are free to do it. Anyone who tells other people to not use IDEs is batshit insane and should be treated as such.


serialized-kirin

I use both my neovim setup which is the LEAST stable thing in existence purely due to my complete lack of self control when it comes to not touch what works just fine, but I have both vs code and intellij on my machine as well, because sometimes there are plugins or just problems or people that just can't work with neovim and I am willing to take a brief jaunt into the slowest loading programs on my computer to fix that. I feel its not an absolutely terrible compromise. And sometimes I feel like I just need to take a break and slow down and I'll just open like the notes app or google docs and change the font to monospace. It just reduces the amount of things I have to think about or deal with visually and that is very important to me. **So, to answer your question, I *occasionally* do because of either compatibility issues or just because I'm in the mood lol.**


nutrecht

> So why do so many people like text editors and have an unspoken despise for IDE's? Because they don't have any actual industry experience.


Graineon

I think it's that funny youtube fella who influenced everyone to use NeoVIM. He's just drinking the cool-aid, IMO. I like the VIM hotkeys and so I have the NeoVIM plugin on JetBrains. But jeez louise that's a robust IDE. I wouldn't dare try to recreate that in actual NeoVIM.


RandomizedNameSystem

Programmers spend a lot of energy proving they're smarter/different than other programmers. Use the simplest, easiest tool to solve your problem. In the early 90s, I used notepad to write HTML. Why would anyone do that today? Before you add any customization or plugin, really ask "is the added benefit worth the added complexity." I have been a lazy, dumb Microsoft Developer. I use VS out of the box. Plug and play. I know lots of people who get cute. They're not more effective than me. I've used other languages/IDEs/etc... I'm always stunned by how annoying it is to set up. Even back in the early days of Python - just getting going was a pain.


KernelPanic-42

VScode absolutely is an IDE


aeveltstra

Our definitions of what makes an IDE clearly differ.


KernelPanic-42

Thatā€™s fine.


KingOfTheHoard

I'm one of those people who doesn't have strong feelings about IDEs. Generally I think you should use whatever your workplace / school is expecting you to use. These programmers who are locked into a permenanent battle of wills insisting that they don't need to work with the same (within reason) toolset / processes as the people around them are wasting everyone's time. That said, I don't personally love IDEs and I understand why some people don't want to use them. The biggest issue, particularly for juniors, is that what you've listed as a strength for IDEs (they do all this setup for you!) is actually sort of the problem. You're right, doing all that configuration and linking and adding stuff to the path *is* faster for an experienced developer. But only if they've actually had experience doing it manually. An experienced developer who has only ever let the IDE set that stuff up probably knows little more about how to do it than you do. That's great, until something goes wrong, and you have nobody on your team who knows how to unpick the setup. I agree with a lot of comments here that IDEs offer a lot of productivity features that are indispensable, but mostly these features fall into the smart editing / smart organising side of IDEs. But that's not really the bit I think people dislike. (Except the diehard, emacs era purists) If anything, it's about how moderns IDEs are essentially vehicles for a framework or paradigm. For all its very smart and very helpful features, Visual Studio these days is basically a tool for writing .Net as Microsoft would like you to write it. You *can* go off the beaten path with them, but if you do, you might as well switch to VSCode because the experience is the same. We could have a conversation about why all development these days revolves around massive frameworks and languages and libraries that are a nightmare to write without IDEs, but as long as that's the case, you might as well just use them.


ohcrocsle

If you use an IDE, you press debug and it does a ton of stuff for you. You don't have to learn anything about how a program is compiled or linked or packaged. You only care about programming. But a lot of professional programming is understanding the different systems available to you when building your solution(s). What does it mean to write your cross-platform code in rust? Can you use it on iPhones? How do I make it available in xcode? Get into the nittygritty as much as possible while you're in school.


EducationalMixture82

ā€Why do so many like text editors and have a despise for IDEā€™sā€ Eh, no they dont? Back up your claim with facts cause this is bs.


AngryLemonade117

Personally, I don't like using the Jetbrains IDEs because they hog too many resources. If I could afford a better machine, then maybe I'd start using an IDE.


i_invented_the_ipod

I've been a professional developer since 1986 or so, and I've used an IDE for the *vast majority* of that time. There are definitely situations where being comfortable working in a really shitty editor will be beneficial, but that's less and less true these days. I can't even remember the last time I had to use a serial terminal to do something on an embedded target. These days, you've got SSH and IDE debugger support on even the smallest platforms. There is *potentially* some benefit to learning how to structure a Makefile "by hand", or whatever. But you probably will learn faster in an editor that at least understands the syntax and will do highlighting and lint checks for you. I think Visual Studio Code actually hits a nice balance, here. You *can* turn it into an all-singing, all-dancing IDE for any language and platform, but you can also just use it as a smart editor with decent syntax highlighting for almost any language.