Hacker News new | ask | show | jobs
by digerata 1664 days ago
You hate Java but are okay with the DOM as an editor…
2 comments

What does "DOM as editor" mean? As in the HTML DOM and manipulating it directly? How is that an editor/IDE? Maybe I'm misunderstanding you.

My only experience with Java is as an user, and it's never been positive. Whether it's the applets of yore or the modern Java apps, there's always performance, memory, JRE issues and terrible, second-rate UIs. Maybe the language itself is beautiful, I wouldn't know, but the user experience is terrible.

Java does trade off memory for better performance (and power saving!), but it is an extremely fast platform with state of the art GCs and JIT compilers and one of the biggest open-source ecosystems. It’s not the best for desktop UIs but even a decade old GUI will work just fine on the latest edition (seriously, I found some random algorithm visualizer in a jar from God knows where and it just ran perfectly). And it’s not like there is one ultimate solution for GUIs unfortunately.
OP refers to VSCode being built on web stack. But AFAIK there is little to none actual DOM manipulations after initial setup since everything is rendered on canvas.
at that point why don't they just use native + skia ? Seems weird to build a web based editor to then just use canvas.
At a guess, they're probably sticking with it because it enables Javascript/Typescript as an interfacing language for plugins which, given the language's popularity and cross-platform nature, is probably part of the reason the plugin catalogue is so large.
I have this dream that eventually VSCode will just be React Native in disguise.
Second rate UI? The IntelliJ UI is pretty great, it's very well optimized and has a billion features. I don't think any new IDE would look significantly different. There are only so many ways to do buttons, scroll bars, trees and editors.
I don't actually mean IntelliJ in particular, but Java having its own UI kit. Nothing looks or feels native on any platform. I've heard something about a graphical widget kit that emulates native on Java, but as far as I can tell IntelliJ (and most Java apps I've seen) don't use it.

Though since you mentioned IntelliJ, I find its UI pretty hectic too, a hodgepodge of 90s-style MDI and modern tabs and split panes. Some of the most common patterns (going between the terminal, code editor, debugger, git, npm, and DB browser) requires navigating between like seven different places in no logical arrangement.

Why is npm a tab bar in the lower left, the actual npm list in a pane above it, git/terminal debugger on the bottom, the code editor in the upper right, the db browser in the upper right sidebar (which isn't even visible by default), the db query itself in a tab mixed with the code editor, the debugger output in the bottom but the button to start it in the top toolbar...

I can never find the features easily because I don't know which pane or tab group it's supposed to be in. In something like VScode, the features are categorized in a hierarchy and arranged in layers in the left sidebar in a sensical drill-down pattern. Xcode is visually cleaner too.

It's not just about the presentation of UI widgets (scroll bars, etc.) but how they're arranged in terms of information architecture, discoverability, cognitive load, diving down, etc. Everything is a "module" of equal value competing for screen real estate and together it is pretty visually overwhelming, especially to new users. More important things like the terminal or debugger shouldn't have the same level of prominence as the less important things (profiler, R jobs). Not all features get used with the same frequency, or in the same contexts, but IntelliJ organizes them all pretty flat.

That's just me, though. It's like a lesser version of the MS Office "toolbars vs ribbon" debate. If Jetbrains actually tried to overhaul their UX, they'd probably see a mass exodus of wizened old beards.

I think the criticisms of layouts are fair. WRT native UI, there's SWT which was used by Jetbrain's primary competitor Eclipse, but obviously users didn't care that the widgets were native because in the end IntelliJ has a much higher market share.

This is probably because not many apps really use native widgets anymore on any platform. It's not even clear what the native UI toolkit on Windows is anymore, due to the numerous aborted attempts to replace Win32 that didn't quite take off.

The Swing widgets IntelliJ uses aren't any worse than native widgets and some are actually much better, for example, any tree view in IntelliJ supports excellent typeahead search, many text inputs are in fact full blown code editors and so on. I don't feel I'm missing anything by them not being Cocoa.

I completely agree with the UI criticisms. I love JetBrains, but brrr. On a fresh install, it's a throwback, and not in a good way.

Thankfully the Material UI extension exists. With this enabled, it's actually one of the best looking pieces of software I use. It still ignores system themes, but the colors are customizable and the UI elements look fresh and slick.

Hey, thanks! That does look a lot better. Still doesn't fix the layout, but at least it looks like Old Android instead of Windows 3.1... a big improvement!
> I can never find the features easily because I don't know which pane or tab group it's supposed to be in.

In an attempt to be helpful, in case you don't know about it, the shortcut ctrl-shift-a brings up a quick search box of every action, pane, or other ui in IntelliJ. You don't have to drill down to get places, you can just jump there directly.

This is my preferred way to navigate too. I was already in the habit from using Sublime Text, and it's actually not too far off from the Spacemacs UI either.
That does help, thank you! I use the search bar all the time (shift shift shift), but didn't realize "Actions" meant IntelliJ commands... thought they were referring to Github-like macros. Damn you, ambiguous technobabble!
> Damn you, ambiguous technobabble!

Well, you are the technobabbler... :-P

I believe they are referring to using vscode, which is based on Electron. Thus, instead of native code, it’s HTML based (although, not necessarily DOM based).
I have both. VSCode is noticeably faster. How do you know jetbrains new editor isn't a "Dom editor"?

I kinda hope JB built it as a native editor and just uses a scripting language for plugins.

Because VSCode is a fancy text editor, not a full-blown IDE like intellij. Even with myriads of extensions, the gap is real between the two.
> How do you know jetbrains new editor isn't a "Dom editor"?

> Because VSCode is a fancy text editor, not a full-blown IDE.

What does that have anything to respond to the question?

I kept seeing people making this claim as if there is a definition of what an IDE is. VSC has project-wide code anyalysis and step debug. It may not be a good IDE in YOUR opinion but tell me what definition of IDE are you using?

In the comments on the article someone from JetBrains said it was coded in Kotlin and Rust.