JetBrains Noria
blog.jetbrains.com
blog.jetbrains.com
This is a terrible decision that is going to bite them in the long run. Doing things this way makes it far, far more difficult to implement accessibility, and regulations on this are only going to get stricter.
Implementing accessibility for a framework like that would involve three separate implementations for three separate platforms and the need to interface with D-Bus, COM and Objective C, from Java. I imagine that the latter two would be particularly difficult, considering how bad Java's FFI support is. It's not just calling methods either, you'd actually need to implement your own classes that conform to the relevant COM interfaces / Objective C protocols. There are libraries that can help with this[1], but I don't think they would work particularly well for something as complex as a code editor.
IDEA actually ships its own Swing implementation for decades because the default one from Sun/Oracle is intolerably ugly-looking.
At first I thought you were objecting to the other part of the quoted sentence and saying that relying on AWT/Swing at all, even for creating windows, is a terrible decision.
These libraries are not good at handling windows. Sometimes windows can be seen being created in the wrong place and then moved afterwards, after being displayed. Sometimes focus is somehow moved to the wrong window when switching quickly between windows. And as far as I can tell there is no way to set a maximum size for a window, even though the underlying platform supports it.
Since Fleet has to bundle native libraries anyway, maybe it would be better to reimplement that part as well. That would also (in addition to being less broken) allow removing the whole java.desktop module from the bundled JRE, saving lots of space.
I particularly disliked Fleet. It resembles VsCode in looks, and that’s a very bad thing for me. No sense of hierarchy, of what matters, of what tools I actually want to see and where they should be.
But then I’d say the same for Apple and its software.
At the moment there is no extension/module system so it's not really a replacement for the million little jobs I have vscode open for, but I'm a Jetbrains Full Product license holder and use their main IDEs so I will definitely be happy to replace vscode with Fleet when the time comes.
It's good to enter a directory, type 'code .' and do some quick editing without the Jetbrains process of creating a project around the directory.
And I've grown to like the VSCode terminal, with side markers to help scrolling back to the start of a run and any errors.
Having said that, there are all sorts of things I miss from Idea or Webstorm when using VSCode, like great integrated Git and local history support. You can kinda sorta get close with a collection of VSCode extensions, but it doesn't feel as cohesive or polished to me. And that diff viewer is very Visual Studio, whereas the Idea one seem much more polished to me, like Perforce.
Maybe it's just what you're used to, and I've spent a lot of time in Idea and Webstorm. So for a large codebase, I'd definitely be inclined towards Jetbrains. As others have mentioned, the code discovery, navigation, and refactoring facilities are second to none. Not surprising as it's been continually developed as an IDE (rather than an editor) since 2001.
It's a damn travesty what JetBrains has done to the CloudFormation plugin and by close-sourcing the terraform plugin then basically abandoning it. I'm aware there is a commercial ansible plugin but my experience with it is that it's not worth the money to me when, as you pointed out, the vscode language server for ansible does a fine job for the yaml, but sadly does nothing for the jinja2 snippets therein
"..and it doesn't support the usual IDE editor features such as code completion, or code navigation."
I remembered it's possible to use the Jetbrains Toolbox tool in order to generate shellscripts for command line startup. So 'ws .' when generated will do the same thing for WebStorm as 'code .'
CLion is the best cross platform C++ and Rust IDE there is imho. Everything from target management, to debugging integration and integration with CMake (no having to go back and forth with generated projects) is so head and shoulders above alternatives.
Rider is similarly so well tuned to game development needs. There’s tons of quality of life features in the IDE for Unity and Unreal developers.
PyCharm Pro has great multi language support within a single file which is great for web frameworks, and an integrated database inspector too.
But I’d go back to the : “why would I want to use X over Y?”
I use both. VS Code for small projects and quick edits. Jetbrains for larger projects where I need the better tooling like inspection and refactoring. They’re complementary.
That said, I don’t think I’d be anywhere near as efficient a dev if I didn’t have my Jetbrains stuff on hand. I could replace VS Code with any number of smart text editors like sublime or fleet instead.
Things like proper analysis of code in branches of the select macro matter a lot to me.
I mostly don't get the all chips in a single IDE people. None of them are perfect for everything. Be glad there are options and use what works best for you for the task at hand!
With graphical UIs (hi Xcode) I mostly don't see big benefits of getting that much of depth as productivity gains can be swiped off by software updates - or alternatively, by switching projects with different technologies.
That said: Language support - specifically Java and Kotlin are absolutely top tier. CLion is easily the best Rust IDE also. Automated refactorings. Really really fast code search - caveat, indexing takes a while but it's worth it.
- VSCode plugins don't seem to work as well or feel as cohesive for the languages I typically use, Go, Python, Typescript.
- Jetbrains debugging is much better
- I like the look of Jetbrains IDEs much better
- One IDE custom fit to each language
- Great git integration
I pop in to VSCode from time to time and I always seem to return.
With webstorm I don't have these problems. People will mock the indexing shenanigans of jetbrains IDEs but they get results. WebStorm can reliably refactor where I get anxious in VSC because it often misses some template references and webstorm's symbol search is reliable and fast.
Come on Jetbrains, you’re targeting the developer market, get this right!
I wonder if they took cues from Jane Street's Incremental (https://opensource.janestreet.com/incremental/) which they built specifically to address this very issue in UIs that needed to be very performant.
I’m eager to find a good Sublime Text competitor, so I’ll be rooting for them, but so far this project has been disappointing.
1. Make it work,
2. Make it right, and
3. Make it fast
In that order. I have to assume JetBrains is quite a ways away from any significant performance optimizations on this project.
I’m not concerned about that yet.
I tried to use Fleet. I applied when it was still on private beta. Only those invited could test it. I found it snappy and really liked it. But the dealbreaker was that it couldn't replace Sublime Text for me 'cos it does not allow for plugins then (don't know about now). I do not need a bazilion plugins on my text editor but I must have vim keybinding if it's gonna be a daily driver.
It did not have it... so ¯\_(ツ)_/¯
Noria reminds me greatly of SwiftUI in paradigms and I think it’s a really great direction for UIs to take this hybrid approach
On the one hand, it seems like a significant waste of resources to duplicate efforts between the two projects. On the other, I wonder if Noria has any desktop-centric advantages over the mobile-oriented legacy of Compose.
Personally, having worked with multiplatform Compose, I very much appreciate it over the plain "widget objects with callbacks" approach.
Yeah in the short term it's not great to have two similar homegrown frameworks. In the long term though maybe it gives their apps more options to choose from, or at least different pros and cons they can try to merge together later. Either way, it's a great step forward than having to rely on Java or Oracle directly.
Of course the web dev in me wishes they built a similar stack from Typescript instead (to compete with Electron and React Native) but I don't blame them for not doing that.
There is probably some xkcd cartoon that says no, you can't have such a GUI. Human compute is not meant to be a pleasure.
Excited to see what they come up with here though, love Jetbrains products and Kotlin is a solid JVM language