Live data from Hacker News

Development Environments

phaazon.net

71–80 of 145 posts

Re: Development Environments

#71

Earlier quoted context omitted.

A lot of my friends used emacs back at Sun. Modern IDEs really improved since then and I haven't seen a feature that emacs can do that they can't. Yes a JetBrains IDEs will take longer to build the AST model in RAM but once you have it they do amazing things with it. E.g semantic search and replace, etc. The debugger capabilities are spectacular, they literally show the values of variables on the side of the line you…

> Yes a JetBrains IDEs will take longer to build the AST model in RAM but once you have it they do amazing things with it. E.g semantic search and replace, etc. The debugger capabilities are spectacular, they literally show the values of variables on the side of the line you stepped over. Another cool thing, inferred types just show next to the variable definition, parameter names appear in the method call, etc. Thes…

Curious, does it have some of the more advanced capabilities discussed here: https://www.youtube.com/playlist?list=PLVuaPU1nEcV_bslGd23_4...

Are things highlighted directly in the editor as you step over the lines.

Re: Development Environments

#72
post #9

Earlier quoted context omitted.

It seems like Java is in a pretty unique place in terms of the quality of the tools and the frequent need to use complex tools to get even a vague idea what's going on.

The only reason Java can even have the most powerful tools is because it is easy to see what is going on. Also, JetBrains does really well with all languages, generally more than any other IDE.

I haven't encountered features in other languages that are pervasively used and work by leaving meaningless markers in the code which some other (typically undocumented, typically in another repository) code will eventually use to do codegen, AST rewriting, and so on. But other than this feature that's like way more difficult than macros in Lisp or C, which makes up like 20% of non-whitespace lines in Java code I have encountered in the last few years, I agree.

Re: Development Environments

#73

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…

I worked on the mess of make file and C dependencies created on Emacs in Sun Microsystems back in the day. You can make a mess with any tooling. It was impossible to navigate and I spent most of my time constructing complex regexes for grep just to follow the flow. In an IDE I can right click an element to find usages/dependencies, etc. Some of them are just highlighted.

As a point in support of this comment, I recently perused the xxhash sources looking for the actual implementation of the hash functions, but it's difficult because there are like 20kloc of mostly preprocessor macros. This probably was not created using an IDE, and if it was, the IDE is not the cause of these issues...

Re: Development Environments

#74

Earlier quoted context omitted.

> Yes a JetBrains IDEs will take longer to build the AST model in RAM but once you have it they do amazing things with it. E.g semantic search and replace, etc. The debugger capabilities are spectacular, they literally show the values of variables on the side of the line you stepped over. Another cool thing, inferred types just show next to the variable definition, parameter names appear in the method call, etc. Thes…

Curious, does it have some of the more advanced capabilities discussed here: https://www.youtube.com/playlist?list=PLVuaPU1nEcV_bslGd23_4... Are things highlighted directly in the editor as you step over the lines.

Things are highlighted as you go through, the buffers showing various values in scope is updated all the time, you can add certain variables/objects to be watched. GUD (built in) supports pretty much anything GDB can do (and also supports JDB afaik and a some others), check the manual for full feature set https://www.gnu.org/software/emacs/manual/html_node/emacs/De.... DAP (plugin/extension) is a bit more flashy and "modern", I haven't used it too much though, but it looks interesting https://emacs-lsp.github.io/dap-mode/page/features/. A nice video showcasing some of it can be seen here: https://www.youtube.com/watch?v=0bilcQVSlbM.

Re: Development Environments

#75
post #31

Earlier quoted context omitted.

Calling IntelliJ and Java junk is probably an indication that you are inhibiting your professional growth.

Ah yes Java and IntelliJ are clearly enterprise professional, the rest is amateur hippy toys.

No, Java good doesn’t mean everything else is bad. Why would I ever limit myself in such silly ways :)

Re: Development Environments

#76
post #31

Earlier quoted context omitted.

Calling IntelliJ and Java junk is probably an indication that you are inhibiting your professional growth.

I was calling ide features in general junk but sure, project away.

Apologies if I misunderstood. It seemed like the ide features and why they were required only for Java was pointing at something. Probably not.

Re: Development Environments

#77

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…

> 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 source files, comments included.

If your terminal editor does that, then you've partially transformed it into an IDE.

Re: Development Environments

#78
post #63

Earlier quoted context omitted.

> Most of the big features require keeping a full AST model of the project in RAM. That would make emacs/vi really slow. That's what LSP does, and emacs supports LSP. Heck, it even has two packages implementing support for LSP. For that matter, I don't see any reason why Emacs would be any worse at keeping a full AST in RAM that is an IDE. Emacs Lisp is not the most efficient runtime out there, but it's acceptable. >…

I haven't written LSP so I'll reserve the opinion at that. What I understood about emacs is that it doesn't have a concept of a project so I don't see how it can form dependencies that are more sophisticated. But maybe I don't understand something about that. I can totally write these sort of plugins for any IDE I worked with. Notice that all of these capabilities are symbols of a bygone time where you stuck everythi…

> What I understood about emacs is that it doesn't have a concept of a project

Not built-in, but there are packages available for that.

Re: Development Environments

#79

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…

IMO this has 2 issues.

#1 If you need an IDE to handle simple things like you list I think the language's development model is designed with IDEs in mind (eg. Java). Better language support and tooling makes all these things trivial without an IDE.

#2 There are no good Free Software IDEs and I will not make ethical compromises with my maker tooling.

Re: Development Environments

#80
post #25

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…

Same here, heck even James Gosling, the author of XEmacs and many UNIX utilities, says he would rather use an IDE nowadays.

Makes sense as XEmacs was an attempt to make Emacs more IDE like.
Post reply on HN