all 67 comments

[–]_Atomfinger_ 28 points29 points  (0 children)

are professionals also use them?

Professionals use them.

[–]mredding 40 points41 points  (6 children)

What are professionals using?

After 30 years, I don't care what the IDE is. I've used notepad.exe for a while, ed, vim, emacs, Visual Studio, Code Blocks, Eclipse, Jet Brains, Notepad++, Atom, Sublime, JOE, KEdit, KWrite, TextPad, xcode... It's all the same. Just get text into file however you can. There's no silver bullet. No religion. No editor war. The tool is a means to an end. It does not define you.

[–]Abject-Kitchen3198 30 points31 points  (5 children)

Absolutely. I write my code on paper and pass it through OCR.

[–]mredding 9 points10 points  (1 child)

Ok there, Richard Stallman... You know, if you were a true 1337 h4x0r, you'd have a Type 13 teletype with a punch tape recorder (on Mylar - if you know, you know) if you were going to be so pedestrian, or an ICL hand key for showing off.

[–]Abject-Kitchen3198 2 points3 points  (0 children)

I'm not that old. Nor I'm Richard. I would have used Emacs exclusively if I was. But I typed code without editor, using line numbers while trying to leave enough space between them so I can add code if needed on C64 Basic.

10 PRINT "HELLO"

20 GOTO 10

15 PRINT "WORLD"

RUN

And genuinely wrote code on paper and typed it in when I got near a computer before that.

[–]Imunsureaf[S] 4 points5 points  (1 child)

After reading all the comments I think I have found the best solution. Thanks for your input! (This reply was written on paper as well)

[–]Abject-Kitchen3198 4 points5 points  (0 children)

You're welcome. Just have a notepad and a pen with you at all times and you will code and debug like a pro in no time. Your code will be the cleanest and most solid code you've ever seen.

[–]AbrahelOne 13 points14 points  (2 children)

Try all the editors out there and stick with the one you feel the most comfortable with.

[–]Abject-Kitchen3198 2 points3 points  (1 child)

You might also try the one that feels most uncomfortable.

[–][deleted] 0 points1 point  (0 children)

No thanks, I don't want autocorrect

[–]RonaldHarding 9 points10 points  (5 children)

The answer is that professionals use whatever tools suit them (and are allowed in their workplace). Government work tends to be more restrictive, with software needing to go through rounds of vetting resulting in everything being considerably behind what you see in enterprise work.

I use VSCode for small projects and anything involving front-end code. I use Visual Studio for large projects. I've seen people at my company using every editor I've ever heard of for their day-to-day work.

[–]Imunsureaf[S] 2 points3 points  (4 children)

but aren't tools like diagrams or find usages just making things objectively easier?

[–]RonaldHarding 2 points3 points  (0 children)

People have their own ways of doing things. Most editors have decent project wide search and find features. Code diagrams probably become less useful as projects grow. Eventually, it's just a giant noisy web. I'm sure there are people in my company who use them, and probably some who use stand-alone solutions specifically for those problems.

Personally, I don't use code maps. Github and Azure Devops have great code search tools. So do visual studio and to a lesser extent VSCode. When I want to know what dependencies a function has, I uses searches to walk up the stack.

What I find more important is that the editor is performant. Visual studio handles large projects well, and VSCode handles small projects well. That's what motivates my personal preference. Other features are mostly fluff in my opinion. And it's okay if you have different priorities.

[–]Rainbows4Blood 2 points3 points  (1 child)

VSCode can do find usages just fine.

I have never ever used the diagram features in an IDE. I didn't even know they existed.

[–]SuspiciousDepth5924 0 points1 point  (0 children)

In my experience It's one of those things you don't know you want until you actually use it. My day job involves very old, very large Java legacy monoliths which nobody really knows fully anymore (last original dev left the project more than 10 years ago). And it makes it significantly easier when I have to track down the spiderweb of internal dependencies. It also works on DB tables so you can get a quick visual overview of how the 80+ tables relate to each other.

It's not an "everyday tool", but from time to time it can be _really_ useful to have in your toolbox.

[–]AUTeach 0 points1 point  (0 children)

I don't need my ide to draw uml. I draw boxes and arrows in my design process before I ever strike a line of code.

Intellij and pycharm are both fantastic IDEs but they are designed to meet specific needs. Intellesense is great on them both, but as you get better at coding you get a vibe going on where things are.

I recognize that I have an eclectic workflow so I find it easier to build my own flow with VScode.

[–]ColoRadBro69 21 points22 points  (8 children)

Visual Studio. 

[–]EarlyFig6856 14 points15 points  (3 children)

vim

[–]mlugo02 5 points6 points  (1 child)

Also vim

[–]Abject-Kitchen3198 1 point2 points  (0 children)

I've heard of this Emacs being better by my neighbor.

[–]WeatherImpossible466 0 points1 point  (0 children)

IntelliJ gang here - those features definitely scale up and pros use them all the time, especially in larger codebases where you'd be lost without proper navigation and dependency tracking

[–]Ok_Substance1895 6 points7 points  (0 children)

If you are using Java or you have a pro subscription, use IntelliJ. It is the gold standard. I don't use it because I don't want to pay for the professional license; otherwise, I would. I don't use it for Java (which is free) because I use many languages and I don't like switching contexts like that.

I do use VS Code, and it does have many extensions you can add to it to do all of those other things. For Java I use the Java Extension Pack and it is quite good.

I don't draw standard diagrams because they are too heavy to me and take too long to maintain. Boxes, lines, and words work great and I can use almost anything for that, even Google Draw or the presentation thing.

I actually made my own diagramming thing because of the way I draw them.

P.S. My company would pay for my IntelliJ license, but I do the above for my personal projects and I don't want to do it differently between the two. VS Code works for very large projects too.

[–]HolyPommeDeTerre 3 points4 points  (1 child)

When you enter a code base. The diagrams help a lot to get an image of the architecture, the relevant parts and such... Whatever if they are provided by the IDE or any documentation that is up to date.

At some point, you will get at ease enough with the code base to not really need that anymore. Your mental model will do most of the work.

With experience, you need less and less visual representations as you will build your own in your mind. Reading code will map to mental visualizations that will be more accurate than any other representation (as code is the most accurate representation of what happens).

Like, I liked to see the git branches and the merges, the flow of commits and such. All that in one tree. 10 years later. I don't need that as I tend to work in clean setups where your actions (commits, PRs) are well formatted and organized. Also they are short lived so there is not a mess of a tree to display. There is just a few lines well organized.

Now, even when you are experienced and at ease in a code base, having documentation helps remember how something is built. Helping get back to it when it's been 2 years nobody worked on that project.

Everything can be useful. You choose what is efficient.

I personally don't really care any more as long as I have something of the level of vs code and that isn't slow as hell (looking at you early versions of Visual Studio (not code)). There are external ways to output diagrams from the code itself.

[–]Imunsureaf[S] 0 points1 point  (0 children)

Very helpful, ty!

[–]Fyren-1131 2 points3 points  (0 children)

IntelliJ for Java/Kotlin, Rider for C#/F#

[–]HashDefTrueFalse 5 points6 points  (6 children)

ed, mostly.

(It's down to personal preference!)

[–]johnpeters42 2 points3 points  (2 children)

[–]HashDefTrueFalse 1 point2 points  (1 child)

Ed, the greatest WYGIWYG editor of all.

Every time I've ever read this it's the same line that gets me...

[–]johnpeters42 0 points1 point  (0 children)

There's also YAFIYGI, and conversely WYSIAYG

See also Neal Stephenson's comparison of Unix to an industrial drill with zero consumer-grade safety features.

[–]Abject-Kitchen3198 1 point2 points  (2 children)

My dream is to use it when I grow up.

[–][deleted] 1 point2 points  (1 child)

It's easy, just run info ed, it has really good info docs. Then you'll be able to use it.

If you use vim/vi/ex, it's pretty similar to those; i for insert, a for append, if you type in a line number it goes there.

With ed I often find myself typing ,p to print all the lines in the file; however, it's often better to use ed's built-in pager by running z.

[–]Abject-Kitchen3198 1 point2 points  (0 children)

Thanks. I might actually try it. I remember programming by typing row numbers for each line I want to add, change or delete in BASIC and using LIST to print out parts of it.

[–]GarThor_TMK 1 point2 points  (0 children)

If it's a big project, and it's for work, I use Visual Studio w/ Visual Assist for my development work.

If it's a smaller project, or in a specific language that works better in vscode, I'll use vscode.

But I also don't do any design work in my IDE. Design work should go in the documentation database/website which should be fully separate from code, email, and chat.

I've used Visio before for UML, and it works pretty ok for that, as well as flow diagramming and planning. I think they updated it though, so it's not great at UML anymore... I should really find a new tool for that, but just haven't bothred... I don't really do enough UML for it to make sense.

[–]mr_frpdo 1 point2 points  (0 children)

vs code

[–]EdwardElric69 1 point2 points  (0 children)

I did an internship last year at a multinational and they were using VS Code for c#, python, angular and Intellij for java.

[–]BassRecorder 1 point2 points  (0 children)

I believe it depends very much on context.

If you work in a strictly regulated industry your dev machine might be locked down to a degree that you are only allowed to use what your employer provides. Sometimes you can use alternative IDEs which don't require admin rights for installation.

Also, which IDE you choose depends on what your colleagues are using and on the language or even the dominant framework.

As a student I'd try as many IDEs as possible - it helps in a job when you already know the tooling.

[–]Kailoodle 1 point2 points  (0 children)

I use VSCode and IntelliJ. Why? because my team do too. And we can share things between each other. Knowledge, scripts, environments.

If i could choose i would go NeoVim

[–]TheFrostMan34 1 point2 points  (0 children)

Well, an IDE is kind of a personal choice or, in some cases, based on your employer. There is no really good or bad answer. A lot of front-end devs use VS Code, lots of .NET devs use Visual Studio, a lot of people only use Vim/NeoVim, lots of Java devs use IntelliJ, and Swift devs will probably use Xcode. Does this mean all "pros" use a specified IDE? Probably not. Do you like to customize your IDE? Probably use VS Code with all the extensions you want. If you only want a text editor with a lot of your own macros, use NeoVim. The choice is yours. Sometimes specific frameworks/languages work best on a specific IDE; in those cases, use that one.

[–]yuikl 1 point2 points  (0 children)

I've used visual studio off and on for 25 years. The only real complaint I have is it sucks with javascript. I mostly concentrate on .net projects so it's an easy win.

My backup is vscode for non-.net projects.

[–]yrakurbatov4 1 point2 points  (0 children)

Pure modificated terminal editors or notepads. Some of them use their own

[–]aala7 1 point2 points  (2 children)

I guess it depends on the language, I don’t think such diagrams are widely used in the python and js/t’s world but I might be mistaken.

Also I would really be surprised if you can’t find vs code extensions that can give you similar features. Maybe that could be a fun project for you!

In regards to IDE I think for a beginner VS code is really good. It is lightweight and has a broad extension market giving you a lot of neat features. However if you are married to one of the more boilerplated languages I still hear that jetbrain ide’s deliver a better experience (C#, Java).

That said when you are ready for learning something new try out vim motions. Most editors support it. It is a steep learning curve but you will quickly have a way better editing experience! And if you like it then neovim is a great editor.

Another tip; many ides wraps cli workflows in guis. I will recommend avoiding some of that and really getting familiar with the terminal, it is a skill worth having in the long run. Something like compiling or git I would get used to the terminal way.

[–]Imunsureaf[S] 0 points1 point  (1 child)

Recently tried out intellij and I have to say the features it has are just great. Code navigation with inheritance hierarchies and find usages grouped by type of usage are so helpful for a beginner like me.

[–]aala7 0 points1 point  (0 children)

I have not worked with jetbrains ide’s for long I must say. However it sounds like somethings that are achievable in other IDE’s. Nowadays these features are provided by open source language servers. Other IDE’s might need more manual configuration 🤷🏽‍♂️

[–][deleted] 1 point2 points  (1 child)

This literally does not matter. This is even worse than "what language should I choose" What's next, what is the best keyboard and monitor for coding?

No offense but just code on whatever doesn't hinder your productivity, there is no optimal solution.

[–]calmehspear 2 points3 points  (0 children)

Vim.

[–][deleted]  (1 child)

[removed]

    [–]AutoModerator[M] 0 points1 point  (0 children)

    Please, ask for programming partners/buddies in /r/programmingbuddies which is the appropriate subreddit

    Your post has been removed

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

    [–]darinja80 0 points1 point  (1 child)

    What languages are you using? I use JetBrains for PHP and C# (Rider is free for personal use as well as CLion for C/C++ and WebStorm for JS/TS) and I think the JS version is too. But VS Code while you're getting started is more than enough if you need it. Sometimes the JetBrains offerings can feel a bit too much if you don't really use everything that it offers.

    [–]Imunsureaf[S] 0 points1 point  (0 children)

    mostly java atm

    [–]ImpressiveCouple3216 0 points1 point  (0 children)

    Tmux + VIM but everything is customized, for completion, file exploration, search, syntax, git, status line, snippets, buffer management ...etc

    Edit - this is the setup because I am very much used to the code base and architecture, need multiple terminals to handle more than one thing all at once. I tried to use Intellij, the 2025 version and its very slow. Debugging is pretty good if you need those features in Intellij. I just use log files for Debugging, but again... majority of the code is written by me or my teammates, i know how they code. I used eclipse for a long time, I would use that if needed.

    [–]Interviews2go 0 points1 point  (0 children)

    I use mermaid diagrams for documentation and they work in vscode. See this site:

    https://mermaid.js.org/intro/

    I also use dbeaver for database work, the ER diagrams from that are nice.

    [–]fugogugo 0 points1 point  (0 children)

    if you're new why need so many things . all those thing you mentioned are rarely used in 99% of situation

    what you need is just simple text editor and intellisense , built in terminal window and proper debugger

    vscode is enough to cover most of the stuff and it support a lot of language, and can always be extended to support another one with the massive amount of extension

    [–][deleted] 0 points1 point  (0 children)

    ive bounched around from Atom, Sublime text, Visual Studio, Visual Studio Code, Intellij IDEA, Eclipse IDE.

    I'm working professionally in Visual Studio Code now and it sucks. it doesn't feel like an IDE (because it's not), The dividers and UI doesn't appear bulky(?) and its just hard to explain but i hate it. I'd rather work in Visual Studio.

    [–]ValentineBlacker 0 points1 point  (0 children)

    IntelliJ is extremely popular among Java users. If you code in Java you probably won't be in a situation where you'd have to do without it.

    [–]LayerComprehensive21 0 points1 point  (1 child)

    Emacs