I don’t know why it matters to me, but I’ve always been put off by it being ugly and using non-native widgets. That may be the only reason I’ve paid for TablePlus.
I’d probably be fine with a great TUI interface, too. So it’s really this intermediate UI that irritates me.
I find it absolutely baffling how often the prettiness of UI comes up as a HN comment.
If you asked me objectively "do you think it's pretty?" I'd probably say no, but never once has this even occurred me when using it since I'm usually just trying to get work done, which I find it very useful for. It's a productivity tool, not an art piece I'm hanging on my wall.
I think it's less about aesthetics and more about cognitive load.
Nonstandard UIs aren't end of the world, but if possible I don't want the extra cognitive load of interacting with 5, 6, 7, whatever slightly different GUI paradigms.
Like most developers I'm using multiple applications at once. Typically I'm using a terminal, text editor, browser, Slack, email, and maybe a database GUI.
A developer's cognition and cognitive load are limiting factors. Increase my cognitive load by X% and there is going to be a Y% increase in how long it takes me to do something and/or a Z% decrease in the quality of the work. Even if X% is small, it adds up pretty quickly. After all if we are employed full time that is 2,000+ hours per year of work.
Again, not just aesthetics. It's little things like, "does this software support the standard keyboard shortcuts for my system?" If CMD+W closes a window in every app except one that's kind of a pain. Etc.
To be honest i find dbeaver well designed. Even though the interface is cluttered with a ton of functionalities, it has everything I need where I expect it to be! I don't recall googling "who to do X with dbeaver ?".
I'd generally agree with you. DBeaver interface is quite discoverable. I reach out for it whenever I need something more visual than pgcli - esp. things like ERD, inline editing, easy cross table navigation etc.
However, I'd also agree with the GP comment. Its use of SWT ui results in some rather weird oddities. The biggest one is that if we configure gnome to use dark mode in linux, we get this absolutely unusable UI with barely visible text in many places. It becomes very obvious in that case which of the widgets are coming from gtk and which are custom rendered - and the distinction between them is stark.
And there doesn't appear to be a clear way to fix it without actually disabling the dark mode at OS level. I'd be perfectly fine if it used some framework that rendered its own widgets that looked a bit different or even if it ignored the dark mode completely and stayed usable.
Counterpoint, I love DBeaver and have used it frequently. Did go through a scare with the schema viewer though where I thought that I had somehow deleted the entire table schema, after doing a backup of course. But it took some googling to find out that I had not committed the changes to the database, and also that there was an option to "lock" interactions with the database to prevent the kind of scare I had. So as an novice/intermediate SQL user, the clunky interface can be a detriment.
I have a PowerGrep license. It's UI is so cluttered that I almost always find ways to make due with less capable alternatives.
While your point is understandable there are various types of people. An important aspect about user experience is aesthetic and ease of use. Some people care purely about functionality and others have mixed opinions on this. It's not fair to call it petty when you guys are just two different customers and users with different needs.
People sometimes forget the importance of user experience and it's why some amazing software barely gets used.
Personally I care about aesthetic and consistency but willing to sacrifice depending on what I'm doing.
Imo it's not just about being functional so I can get work done. It's also about enjoying what I'm doing and having aesthetic tools is important to me. It's still functionality the most important? Yes. Do I prefer non-ugly tools to ugly tools even if I had to trade a bit of functionality for a lot of prettiness? Yes, every single time (as long as I can still get done what I need to get done, ofc)
Underscoring the "HN comment" part. This is a userbase who are presently interfacing with a wall of text, some tasteful greytext and a coloured bar. This appears to be a crowd with low visual needs.
It's not about pretty so much as simple things like whitespace or other details. I would never release a UI that acted weird in any way. For instance, DB Browser doesn't scale when undocking. I have to close the app and open it up and then load the database again.
Another example is Total Commander. I would buy it if it worked they way I think and had proper whitespace instead of being infinitely configurable and using non-conventional UX defaults (hit R I should jump to the first file staring with R, FFS).
If I have to suffer through this shit then so be it. If I don't have to suffer through it...delete.
I'd argue it's not really about prettiness but about fitting in, so that the UI isn't jarring or distracting. I think the situation would actually be similar if the rest of the system was ugly and one particular app's UI was pretty, rather than the other way around.
Some applications are designed so well, it makes me look for excuses to use them. Other times the good UI makes it faster and easier to get the job done. An ugly UI makes me less likely to want to use an application, and a bad/confusing one makes it harder for me to get the job done, especially if it’s used infrequently.
UI and UX does matter, even when talking about productivity software.
There can also be an element of inspiration and influence. If all my tools are well designed, I’m more likely to set a high bar for whatever I’m building. If I’m using ugly and poorly designed tool. The bar for whatever I’m making will likely drop to the environment I’m around.
At the same time, I find it more pleasant to use other software. DBeaver does everything I need, but it’s hardly ergonomic.
Ugliness is something I found to be quite common in Java based apps. I never understood why, though.
None of major Java/OpenJDK contributors (Oracle, Red Hat, SAP etc) care about desktop GUI Java libs. Jet Brains do care, but they are not major. All Java progress is concentrated on backend cloud services for 10-15 years already. This can explain why Swing is so underdeveloped and JavaFX was thrown away. Basically much more effort is required to make Java GUI look and behave nicely, comparing to Delphi/Lazarus or .NET GUI libs or Qt.
I'm ignorant about this all. Can't you use something like Qt in Java?
There are Qt bindings for Java, but I’m not familiar with them
You can, but anything in java that needs to step down into c/c++ ends up being a major pain in the ass so it's usually implemented half baked at best. Platform ergonomics are hard and you usually find that what works great in some languages / paradigms just don't flourish in others. It'd be nice to see some good language bindings that feel right for java.
Jet Brains care? Do they? In my experience their tools are some of the ugliest out there. Granted, that's highly subjective, but there is "something" off about IntelliJ that I can't really put my finger on. Maybe the lack of whitespace. Maybe the weird tabs.
I meant that Jet Brains do care about GUI support in OpenJDK (mainstream Java), their flagship products depend on this, they employ a number of ex-Oracle GUI devs and contribute fixes upstream. Just there are no new major projects in GUI area in OpenJDK for years, because none of big contributors is interested in it. Compare this to improvements in non-GUI areas like Java 21 Threading and also the whole Graal thing.
Oh I see, I misunderstood what you meant, thanks for clearing that up.
There was a talk [1] at Devoxx 2023 by an Oracle which gave an overview of the current state of the UI ecosystem, and it wasn't too bad, though it seems like it's mainly JavaFX these days. Support for fractional zooming on HiDPI screens on Linux is still shit, unfortunately, which is something that drives me nuts.
[1] https://www.youtube.com/watch?v=Afehjldx4yM
Swing underdeveloped? You have been misinformed. The entire JetBrains suite is built in Swing and is top of the line. Swing is under active development, has a strong third party ecosystem, and is rock solid. You can do anything you want to do in Swing, and it is a joy to develop with (unlike any/all of the web front end nightmares).
What .NET GUI libraries are you referring to because anything other than WPF is tetering on "not a good idea." Have you built anything in Swing, WPF, Winforms, Xamarin Forms, or MAUI? You should give them all a serious test drive and get back to us with some informed comments.
I just had to pick up and build a UI product in java recently and picked up javafx for the first time. With Kotlin, I actually found it while using my the standard you builder to be quite intuitive and sorta dynamic enough to make development snappy. Definitely the best attempt at GUIs for java, but sad that only smaller shops are actually investing any real effort into the space. Oh and java native + javafx is a pain in the ass until I discovered Bellsoft NDK, which made building a binary from source 100% so much easier.
DataGrip does look visually better than Dbeaver, but I've found Dbeaver has much better performance.
+1, except for Jetbrains IDEs that have polished UI
Dbeaver has quite a few Java annoyances. Windows don't resize properly, the tree list often requires multiple clicks and most annoying of all is running out of heap space on Java, especially if one tries to run more than one task at a time.
It is free tool with gobbles of functionality. I use it occasionally and it works great. Whatever set of widgets it uses does not concern me at all. It does what I need and is convenient enough. Maybe it would matter more if I was spending all my work time with it but in reality I use it very occasionally.
So thank to the developers.
I also use another DB admin tool: HeidiSQL. This one is lightning fast. Most likely because it is native application. Written in Delphi btw
Same thanks to the developer
The default DB tool where I work is Heidi and I switched to DBeaver because I found Heidi to be horrendously unstable. Dozens of random exceptions on a daily basis, and because it’s single-threaded a long-running query will just lock up the entire UI to the point where it triggers the “this program is not responding” dialog on Windows.
A free and open source DB management tool is still an impressive feat, but I absolutely would not trust it with anything where blowing up would have consequences.
As already said DB admin tools are not my daily driver. I either did not use Heidi intensively enough to uncover all the problems you mentioned or they've fixed those.
No Heidi is pretty unstable compared to what it used to be. I get 2 or 3 exceptions that require me to restart daily, the good thing is that the exceptions are caught, and you can copy out any SQL you have been working on which means you rarely loose work.
I still prefer it as it is fast and has a nice UI and if they can sort the crashes, I would be a convert.
DBeaver uses SWT toolkit, its widgets are as platform-native as Java can do. Some of them can be much faster with long text editing than default Java Swing widgets.
Yup, SWT is a wrapper for actual native widgets, similar to wxWidgets. Some widgets are custom though, like the horrendously ugly tab widgets, which might be what the other commenter is reacting to. And the spacing and alignment usually doesn't look great in most SWT-based apps I've seen, for some reason.
At least on Apple platforms, I don’t think SWT uses Apple’s layout algorithms and so you end up with Cocoa controls with slightly wrong spacing
Not good at supporting GTK either, its the sole reason I do not use it on gnome
What do you use?
What?
I use it on gnome all the time and never run into an issue.
https://harlequin.sh/ is a nice SQL IDE for you terminal (TUI)
HN post: Harlequin: SQL IDE for Your Terminal (github.com/tconbeer) https://news.ycombinator.com/item?id=38882526
This complaint has been levelled against Java (and small talk earlier than that) since forever and it made no sense back in the 1990s either. Nobody complains about the Wild West of interfaces on web apps.
On a mobile I kind of get it because having apps work in similar ways eases the learning curve (I.e burger menus etc), but all the UI paradigms being used in dbeaver are the same as any other desktop app.
I appreciate the fact that it works identically on Linux as it does Windows (and presumably MacOS). Not even Microsoft maintain consistent use of widgets within their operating system, you still stumble across windows 3.0 looking screens in windows 11.
I say…it’s good that dbeaver eschews native widgets
I tried tableplus, liked it, it just feels right. I reported a minor error in docs, got a friendly message and a year of license. 10/10
I've tested it since you recommend it but it seems it can't do Postgres local connection (via socket-file = the default). Not great UX on linux.
I am in the same position. I used Postico in the past, but unfortunately it doesn't offer support for non-Postgres databases. TablePlus has really good native UI and I wish more apps went that route as you can definitely feel a difference between a native app and something like DBeaver.
Huh, the utilitarian UI is part of why I like it