Live data from Hacker News

Development Environments

phaazon.net

111–120 of 145 posts

Re: Development Environments

#111
>We could write a code / text editor that wouldn’t have to be worried about extensions like Git: the Git support would come as a native application (equivalent of the CLI git application) that would open an overlay, for instance. That application wouldn’t even know about the code editor: you would make that connection via the platform. >Applications could communicate between each other to manipulate buffers, get the contents of the buffer and do various kind of operations on them (LSP servers, for instance). >Because the protocol would be completely rendering-agnostic, that would allow people to write an application that would work for any kind of “platform implementations.” Composition would use the low-level protocol to compose applications. You could imagine supporting an interface between applications allowing to filter the contents of the buffer of one by using another application. Applications such as fzf could branch on the buffers of a text editor, for instance. Or you could even open a buffer in the text editor by running a fuzzy finder as another application. All of that would compose in a seamless way. Etc. etc.

Actually this sounds a lot like OLE 2.0 from 1995.

Re: Development Environments

#112
post #99

I've been programming since well before we had IDEs... I love them. Proper modern IDEs provide a level of insight and tooling that the anti-IDE crowd just don't get. A couple of decades ago they were problematic. But today's unified toolchains and improvements made them far better. The one semi legitimate problem people have is performance. I run on an M1 Max with 64gb of RAM and gave a lot of RAM to IntelliJ (Ultima…

If you need an IDE to manage the complexity in large, complex software projects, then you need an IDE for the kernel -- one of the largest, most complex single software projects around. IDEs are written for this purpose -- modern CodeWarrior, for one. The fact that many kernel devs including Linus himself get along fine without one suggests that IDEs are not the universal good you seem to think they are. In particula…

> I tend to see a lot of IDE users alt-tabbing between their IDE, terminals, Postman, DBVisualizer

For what it's worth, IntelliJ use an IDE with an inbuilt terminal, HTTP client, and DB GUI.

Re: Development Environments

#113

I've been programming since well before we had IDEs... I love them. Proper modern IDEs provide a level of insight and tooling that the anti-IDE crowd just don't get. A couple of decades ago they were problematic. But today's unified toolchains and improvements made them far better. The one semi legitimate problem people have is performance. I run on an M1 Max with 64gb of RAM and gave a lot of RAM to IntelliJ (Ultima…

I realise I'm probably alone in this, but this "depth of insight" is exactly one of the curses of IDEs for me. When you write on a terminal, you are encouraged to make good choices so that your code is clean, with a well-thought-out structure and conventions that allow it to be read and processed by a number of tools as painlessly as possible. When you're on the IDE, your code structure invariably reflects whatever w…

This reminds me of when people say that the Visual Studio debugger is much better than gdb, or that Windows developer tooling in general is better than Linux tooling.

I believe the main reason why gdb kinda stinks is that it can be: traditional Unix-like operating systems typically have smaller components with well-defined interfaces, making them much easier to debug. Windows has too many DLLs, too many interfaces between them, and poor definition of layers. Quick, what's the difference between kernel32 and kernelbase? How do I tell which one a program is using?

This is not to say that Unix-like systems have perfect interfaces, merely that they're generally better-factored than interfaces inside Windows and Windows applications. Further comments can be made of the differences between Windows and Mac "applications" and Linux "programs": for example, the difference is not only in GUI or TUI or CLI: Firefox is an "application", but Notepad and Calculator are "programs"; Paint is a "program", but Paint 3D is an "application".

Re: Development Environments

#114
post #91
post #82

Earlier quoted context omitted.

You don't even need a terminal editor to do that; sed will do it fine. If you want to be pedantic about the mechanism by which you achieve the result, you can just use ctags, which even plain vi and emacs support. What really set IDEs apart from text editors was integrated build tools and the ability to directly consume (and act on) build errors and the like. Search-and-replace long predates IDEs, as does 'code compr…

An IDE is aware of the structure/meaning of the code, giving in much more power. sed absolutely cannot rename all the occurrences of something like a class method, since it would require deep dependency graphs to find all the class instances. In an IDE, I can do something like this: # All three classes have a do_thing() method. my_instances = { 1: Class1(), 2: Class2(), 3: Class3(), } my_instances[1].do_thing() my_in…

Does an LSP-enabled editor count as an IDE then?

Re: Development Environments

#115
post #26

Earlier quoted context omitted.

Yea but you only need all that junk because you use Java. The rest of us just don't have that many files to refactor when we change things. I don't really hate ide's, I get the appeal, and sometimes it works out useful. It's just that most of the time it comes back to enterprisey software being the source of your problems, not the lack of features in your editor.

Good IDEs precede Java, e.g. Borland products for Turbo Pascal and C++, Common Lisp and Smalltalk environments. The anti-IDE crowd seems to like to pick on Java.

> The anti-IDE crowd seems to like to pick on Java.

It's largely because Java is verbose. Because of that, the java ecosystem continues to produce frameworks and libraries that make it easier for programmers to convolute their code behind functionally opaque interfaces, eg Spring, Lombok, etc. which also happen to provide "solutions" to reducing repetitive or traditionally verbose code.

We have computers to automate processes, primarily. Not using computers to do rote inspection (like argument intellisense or class method discovery), is backward and it helps a great deal until you start using pre-processor annotations which are a series of programs that run before your program is run. 1 step forward, 1 step back.

Ofc there are still people who use handmade nails and leaves for toilet paper and they insist it's better than Java. I'm not sure they are wrong.

Re: Development Environments

#116

Earlier quoted context omitted.

I realise I'm probably alone in this, but this "depth of insight" is exactly one of the curses of IDEs for me. When you write on a terminal, you are encouraged to make good choices so that your code is clean, with a well-thought-out structure and conventions that allow it to be read and processed by a number of tools as painlessly as possible. When you're on the IDE, your code structure invariably reflects whatever w…

> When you write on a terminal, you are encouraged to make good choices so that your code is clean, with a well-thought-out structure and conventions And then you realize you have to refactor 25% of it, or the requirements change, or a newly incorporated library suggests a naming convention change would be wise... IDEs not only show the code, you can pick a function argument, rename it, and get it renamed across all…

I get that functionality with go-guru for Go. Having powerful refactoring and static analysis tools shouldn’t require them to be integrated into a monolithic application.

Re: Development Environments

#117
post #91

Earlier quoted context omitted.

An IDE is aware of the structure/meaning of the code, giving in much more power. sed absolutely cannot rename all the occurrences of something like a class method, since it would require deep dependency graphs to find all the class instances. In an IDE, I can do something like this: # All three classes have a do_thing() method. my_instances = { 1: Class1(), 2: Class2(), 3: Class3(), } my_instances[1].do_thing() my_in…

Does an LSP-enabled editor count as an IDE then?

You need a project view for that since it needs to go into all the files and do the "right thing" all over. It needs to verify external dependencies aren't broken as a result, etc.

Re: Development Environments

#118
post #17

I understand where the author is coming from and I myself sympathize with the idea of sticking to Unix philosophy of composing small focused tools instead of using complicated tools. That said, I have learned to stick to defaults and start from a clean slate every time. I often say that the main problem in software is containing complexity. When you need to deliver a product that works reliably, you want to remove al…

My experience is that IDEs do not really support that sort of clean separation- you're always fighting to get it to support your VM or Dockerfile.

Re: Development Environments

#119
post #94

There are four things which IDEs typically provide which I find invaluable. It's probable that some or maybe even all of them could be wedged into Vim or Emacs, but then you'd have basically an IDE. 1. Quick go to _anything_. In IntelliJ IDEs, it's double-shift, and then start typing some of what you want. Usually you can find the class or module or file you want easily, if not automatically. 2. Interactive debugging…

My neovim does all of this and more. Yes ive blurred the lines of text editor and IDE. I enjoy the portability, speed, and customization it offers. I also like that I have everything I need in the terminal.

Its not for everyone though and it takes a lot of time to customize it perfectly for you.

Re: Development Environments

#120

Earlier quoted context omitted.

I think its more like "what will you do when you need need hiking boots and you've got snow shoes and no budget"

If I have no budget then I'm probably not a professional. Would you expect a contractor to build your house with just a hammer just because he ran out of cash buying the materials? I accept that some people live in poorer countries. I work with a lot of them and spend a great deal of time abroad. Even they have more powerful machines than the median and they get great discounts for those machines. Maybe not a machine…

I think you've just answered your own question.
Post reply on HN