[–]▶ No.987182>>987271 >>987363 >>987492 >>987784 >>987829 >>994654 [Watch Thread][Show All Posts]
What's your favorite GUI API and why?
Gtk+? Qt? Fltk? Tk?
▶ No.987184>>987185 >>987627
▶ No.987185>>987186
>>987184
Because I'm a 1337 h4x0r and do everything in the terminal
▶ No.987186
>>987185
Me too but sometimes I need more graphix and pixels than a 24x80 terminal can afford.
▶ No.987193
>>987183
For when you want a GUI but at really really shit resolution. Ncurses is just for larping.
▶ No.987269
>>987183
>he doesn't exclusively use linemode
ed is underrated tbh
▶ No.987271>>987292
>>987182 (OP)
Standard Input because shit thread
▶ No.987277
▶ No.987279
I use ECMA-48 with libraries I wrote myself, because everything else is too damn complicated.
I never even gave Ncurses more than a short glance. There's too many strange quirks there as well. I don't need support for terminals that no longer exist.
The only unfortunate aspect is testing programs across many terminals to make certain they all support the subset of ECMA-48 you use.
▶ No.987292>>987322 >>987323
>>987271
I don't understand. stdin is not an API. It's a read-only FILE* wrapper around file descriptor 0. Being read-only there's no way to do output using only standard input.
▶ No.987322
>>987292
obv he also means stderr stdout faggot
▶ No.987323
>>987292
exec <>file, faggot
▶ No.987340
DRM-KMS framebuffer. all those "widget tooklits" are fuckin aids. everything should be rewritten
▶ No.987363
>>987182 (OP)
Electron
datamine thread
▶ No.987480
The Borland TUI is my favorite, but not very well supported in modern OS. There's a couple old related projects on sourceforge, but no idea if they even build anymore.
https://sourceforge.net/projects/tvision/
http://sourceforge.net/projects/twin/
http://sourceforge.net/projects/vwm/
▶ No.987483>>987517
python3 with tk feels bloated in terms of how much ram is required to run a simple GUI. Anyone know if it is python3 or the tk modules/library sponging up the ram?
Would reprogramming the gui process in C & Qt be the easiest on ram usage? Or maybe some other combination?
C & Gtk maybe? Not enough personal experience to know which language & GUI API will request in a minimal process using tiny ram and low cpu.
Advice appreciated.
▶ No.987492>>987517
>>987182 (OP)
GTK+3. Qt and KDE are bloats.
▶ No.987517>>987559
>>987483
Not knowing what your program is doing I can't say.
If you go C then Gtk+ is about your only option.
If you're using C++ or Python then either is about the same and mostly depends on preference and licensing. I have trouble picking between them myself usually. I'd suggest gtkmm over Gtk+ if you're using C++.
If all you need is a simple light functional GUI in C++ then maybe FLTK. It can look like butt sometimes but it's not as bad as tk imo.
I'd say that FLTK is the lighter and easiest to learn. fliud (the UI designer) is well made and spurts out regular C++. glade and designer generate xml that has to be processed at runtime but it's portable to whatever language you're using.
>>987492
I used to think that too, but then I started writing Qt when GTK+3 came out and it later started doing things that annoy me.
I'll agree that KDE is just bloaty garbage but so is GNOME (every version). But Qt != KDE && Gtk+ != GNOME.
I still write Gtk mostly though but that may change.
▶ No.987519
▶ No.987541
▶ No.987559>>987782
>>987517
GTK is Gnome. QT is bloated as fuck you need like 2GB of space to install it.
▶ No.987627>>987662
>>987184
Because it's as much GUI as can be needed, and no more. Anything more is therefore pure bloat, and even curses can be bloat for many applications.
▶ No.987662
>>987627
It's always hilarious when dilettantes claim that ncurses is minimal. Eat a shoe nigger.
▶ No.987672>>987693 >>987695
I have written a library in C and I want a GUI that's just a thin wrapper around the library. The library does all the heavy lifting, the new code would just be writing the GUI and hooking it up to the library.
What is my best choice for a GUI framework. I want something that supports drag&dropping a file into the GUI to get its file path, and dragging&dropping a file out of the gui onto the desktop or into a file manager.
▶ No.987693
>>987672
your going to get fucked into using Gtk, just get used to it
also enjoy rewriting all your code from C to GTK/C
▶ No.987695>>987703
>>987672
in reality though use gtk but keep your library completely seperate from anything that is infected with gtk
if you want to test with valgrind/memcheck or whatever you'll have fun with gtk
https://wiki.gnome.org/Valgrind
gtk throws constant memory leak errors and gnome's response is just suppress the errors, but the suppression garbage they give you only suppresses 25% so have fun digging through a sea of gnome memory leak errors to find yours.
▶ No.987703>>987707
>>987695
TBH because of shit like this QT is the only viable native GUI API around these days. And that's only because they have commercial licenses bringing in a shit ton of money.
▶ No.987707>>987709 >>987710 >>987782
>>987703
Qt is 10x as much bloat as Gtk is (and Gtk loves the bloat) and it's only C++, you can't use it from C.
▶ No.987708
Is ncurses still the best for text interface programming?
▶ No.987709>>987819
>>987707
If by bloat you mean works then yes it does. Don't mix the 350 pound body builder for the 350 pound land whale. You faggots think byte count is what bloat is.
▶ No.987710>>987716 >>987782
>>987707
It's not even standard C++. A precompilation step is required.
▶ No.987716
>>987710
>using a shit ton of macro hacks to generate c is okay
>using another program to do it for c++ is not
okay bud
▶ No.987782
>>987710
If you're going to compare evils I'd say C macro abuse is way more evil than machine generated code.
>>987559
>Gtk is Gnome
That's like saying NSPR is Firefox.
>QT is bloated as fuck you need like 2GB of space to install it.
Where are you getting that number. I'm seeing nothing close to that.
>>987707
>you can't use it from C
Sure you can. I've called C++/Qt from Go using C wrappers as a go-between. I mostly wanted to see what would be involved
▶ No.987784>>987793
>>987182 (OP)
bootstrap and jquery
the future is web everywhere
"native" apps can just be web apps in wrappers like electron
I unironically like web frontend development over boomer shit like Qt or GTK+ because it's much easier to make what you want
the only issue is performance
▶ No.987793>>987795
>>987784
>the only issue is performance
That's a pretty big fucking issue
▶ No.987795>>987798 >>988160
>>987793
some things require really high performance (games, 3D graphics, video rendering, etc)
some things do not, because they aren't very computationally-intensive to begin with, so slight performance degradation doesn't matter that much, especially when processors continue to get faster
at this point, it's important to save developer time, not just CPU time
▶ No.987798>>987800
>>987795
You are a cancer. You are the reason why everything is slowing down. 1 hour of developer time "saved" could mean months of user time wasted, directly or indirectly.
▶ No.987800
>>987798
Users don't give a fuck. Developer time is expensive as hell. If users actually cared they would use non bloated shit (that has no features).
▶ No.987819>>987820
>>987709
By bloat I mean feature bloat. Qt is more than GUI, it's fucking everything. Look at retroshare, and look at retroshare's shitty performance and memory leaks.
It's because they went balls deep into Qt.
I mean look at this shit
https://doc.qt.io/qt-5/qtmodules.html
networking, 3d, bluetooth, dbus, gamepad, nfc, javascript, webengine, SQL, threads
I guess it's cool to just use one mega library that does everything you could ever need ever, but i doubt it's the most efficient thing.
retroshare does this and it runs like shit.
▶ No.987820
>>987819
>one piece of shit written by slavs is bad so this means it's QTs fault
▶ No.987825>>987826 >>987834 >>987840 >>988160
nuklear
Pure ANSI C. Just one header file. Beautiful results.
QT, wxWidgets and all the others can go suck a big fat dick.
▶ No.987826>>987833
>>987825
>public domain
glorious it looks perfect, now if only a single program used it
▶ No.987829
>>987182 (OP)
BGI, only I can program it at the company. Everyone has to come to me for help and nobody has really much documentation for it because I stole it all early on and keep it all at home.
▶ No.987833>>987834 >>987837
>>987826
>now if only a single program used it
<go make one
But in all honesty:
imGUI and to some extent nuklear is used in a TON of ingame guis. Famously Blizzard dumped a ton of money into imGUI.
On the Desktop side I've some stray smaller apps use it.
Also I work in the medical field, on propriety software though.
▶ No.987834>>987835
>>987825
looks awesome thanks for the suggestion
https://github.com/vurtun/nuklear
>>987833
>if only a single program used it
the screenshot's they are presenting seem to suggest some call of duty game used it for the menu (3rd pic)
▶ No.987835
>>987834
Have only good experiences with it.
>some call of duty game used it for the menu
Stop tripping. That's a demo screenshot to show how UI customizing might mimic games, it didn't get used by any call of duty.
▶ No.987837>>987838
>>987833
>imGUI
>c++
>"bloat free"
lol dropped
▶ No.987838
>>987837
The reason I'm not using imGUI,
nuklear is pure ANSI C
▶ No.987839>>988308
I'm on the JVM for a lot of things and use Swing for a ton of stuff. It's rather annoying that it can never quite look consistent on different platforms, even when you tweak it like crazy. I'll be trying JavaFX in future projects.
▶ No.987840>>987841 >>987842 >>987843
>>987825
I was going to use Nuklear and as I was inspecting it I learned it doesn't do any actual drawing. It's just a useless event manager.
▶ No.987841
>>987840
>It's just a useless event manager.
IT DOES draw things for you. You just have to give it a way to push the triangles to your screen. This makes it generic over many different rendering frameworks. It's like rendering to a jpg and then displaying rendering.
▶ No.987842>>987844
>>987840
In the demofiles is a .h file for many backends.
You can let opengl render you desktop app, directx, GDI or whatever.
▶ No.987843
>>987840
That's the point. it doesn't lock you into a way to render.
You can use many different backends, which are all included
▶ No.987844>>987845 >>989670
>>987842
>all included
i'm looking through these
https://github.com/vurtun/nuklear/tree/master/demo
none of these seem to be unified at all. it's like your doing it all from scratch
it's cool that it's all included but it's definitely not "just pick a renderer" and include a header. you need to know what your doing with all of these different renderers
look at
https://github.com/vurtun/nuklear/blob/master/demo/x11_rawfb/main.c
and then look at
https://github.com/vurtun/nuklear/blob/master/demo/sdl_opengl2/main.c
▶ No.987845
>>987844
i guess once you get one going it's not that big of a deal. it's not like you need to be able to switch between all of these.
▶ No.987866
▶ No.988160>>988180
>>987795
>+100MB RAM, +100MB HDD, for a hello world app
>does not deduplicate for multiple apps, each one requires +100MB HDD at all times, and will eat up an additional +100MB for each app launched
>this is because it literally includes an entire copy of Chromium with every app, and launches another copy for every instance of every app
>sarcastic hack written in an afternoon, Electrino, reduced RAM/HDD overhead to kilobytes by using os's native browser library
I realize that was probably bait, but just in case. There are legitimate arguments for and against desktop-ifying web apps, but Electron is a pre-alpha-quality jokeware.
>>987825
>no native widgets
Please consider suicide
▶ No.988180
>>988160
I never heard of that toolkit he's talking about, but X doesn't even have any native widgets unless you count Athena. Everything else is an add-on, and frankly I don't like most of them, and especially not the bloated Gtk/Qt shits that got shoved everywhere by desktop environment shits.
▶ No.988308
▶ No.989670
>>987844
If the choise scares you, there is nuklear+ (spoken as nuklear cross),
that's a simple wrapper to get the same code running on *nix, macos or windows.
That abstracts all the boilerplate away
▶ No.994609>>994610 >>994614 >>994648
We ever going to see a resurgence of non-rectangular guis?
▶ No.994610
>>994609
blobby GUIs were a thing as a novelty to show off a sort of sense of artistic liberty with regards to window design "look guys we're not just for boring office guys anymore!"
Now it just looks dated because the novelty wore off after a decade.
▶ No.994614>>994621
>>994609
>3rd image
So what happens when the guy who set his bios splash screen to furry porn gives away his old computer to a relative and forgot about that customization feature?
▶ No.994621
>>994614
Why would anybody even set their splash screen to anything other than default? What a useless feature
▶ No.994648
>>994609
>We ever going to see a resurgence of non-rectangular guis?
only on non-rectangular screens, such as smart watches
▶ No.994654