Hello everyone. I was just wondering if anyone els...
# present-company
b
Hello everyone. I was just wondering if anyone else has been struggling with things. I have some ideas and experiments that I want to accomplish and play with in a sort of visual programming proving ground, but I've been slowed by the existing tools and their fantastic limitations and heartaches. I searched and searched last year, and decided to go all-in on Racket's GUI Toolkit. I ended up eventually bailing because it quickly became where I simply need to use the
pasteboard
editor and do basically everything from scratch. It became like wading through mud, so I said, fine, I'll just build my own GUI toolkit in another language, which I am currently working on. Things have gone slow due to a new job and move this year (though luckily in the same area). But now I'm slowpoking my way. I hope I am at the bottom of the rabbit hole. I simply don't possess enough technical knowledge to dig any lower than I am right now (GLFW + Skia). This is just a lament, so thanks for reading. πŸ™‡β€β™‚οΈ I just wonder how others deal with this dilemma of trying to build something new with such a disheartening landscape of poor tools.
☝️ 2
πŸ«‚ 6
❀️ 8
t
Hi, I feel very annoyed that UX generally takes about 50% of the energy of any project. My fasted development is now using observable and I have a hierarchical system that helps me. Maybe it is interesting to you? I like Observable because there is zero environment and the cell model is simpler than the full DOM model. My method for speeding up UI development on Observable makes use of reusing other people's GUI libraries as much as possible with the escape hatch of writing your own. Having d3 inbuilt means you can basically do anything and you can walk up and down the ladder of abstractions easy. Cons: is JS. https://observablehq.com/@tomlarkworthy/ui-development
πŸ‘ 1
d
This resonates ... my latest frustrations have been with nurses, cgo and wide character support. Am now looking at modern alternatives to curses
c
Yeah, this definitely hits home. It's one of the many reasons why I still haven't been able to pull myself away from a web-based front end: despite how terrible APIs like Canvas and contentEditable are, they're still the best we've got in terms of a consistent, platform-agnostic set of construction primitives.
a
The shaving line for oxen is a long one
🀣 2
b
@Tom Larkworthy Thank you for the article! I'll give it a read. I am mainly interested in cross-platform, desktop-only GUI development (and yes, a language other than JavaScript πŸ˜†), but I think there's some things to be learned from what's happening in the web world.
@Jack Rusher
I just spent a week trying everything in this space only to discover that it’s all still absolutely terrible…
Indeed. None of it even does what it purports to do well, much less something it wasn't intended to do. Almost all of it is so poorly documented, bug ridden, and also spread thin due to try to merge web + mobile +desktop, it's just hopeless.
πŸ’― 2
I'm glad people responded in kind. I was worried about it's just me. Lol. So thanks for the support.
@abeyer If only the yahoos who shaved things the first time did it right πŸ€¦β€β™‚οΈ And yea, it's a slippery slope. I'm at GLFW and Skia right now, and even though those claim to be cross-platform, you immediately it upon cross-platform differences and bugs when just trying to draw a circle on a single window. It's infuriating.
This blog article on a UI framework for Clojure is interesting. It aligns pretty well with what I'm trying to do. I want a cross-platform (Windows, macOS, and reasonable distributions of Linux), desktop-only GUI framework in a sane language. However, as pointed out, even basing something upon bricks like GLFW and Skia immediately greets you with cross-platform bugs and inconsistencies, when just trying to draw a window and a single shape. 😭
d
message has been deleted
πŸ˜‚ 2
c
@bmitc, do you spend enough time in design mode? Building all this stuff kinda sounds like it's fun and helps with fleshing out ideas, but it's not great if you want to get to an MVP. I try to draw up the UI enough times with enough permutations that I can explain it to someone else (shout out to #C018Q3T30LW!). Once I've gone through iterations of design (10-30 hours spread out over multiple months), I then commit to building it.
πŸ’‘ 3
b
Hi @Cole! Thank you for the thoughts. Regarding building this UI stuff, I actually find it not fun at all. 😞 To be honest, it's the last thing I want to be doing. The problem is I want cross-platform, desktop GUIs. No platform supports this in a way that's anywhere remotely sane. It's just all so ridiculously complicated. Last year, I settled on using Racket's GUI toolkit to build out some prototypes, but I just couldn't get things to work, was discovering bugs in the toolkit, lack of documentation, etc. And in the end, what I needed from the toolkit wasn't well supported and was basically leaving me to manually draw and code UI elements, which is not that much more than simply relying on Skia and going from there. You are right regarding design though. I could spend some more time on that. I have been learning pieces of Figma as a design tool. Although, I have a pretty good idea of what I want to build, and that's pretty quickly going to require some actual prototyping to get a feel for how to do it, as there are some technical challenges that I know will be there. I've considered just giving up for now and using something like Flutter. My bare minimal GLFW window plus Skia drawing to the canvas works on Windows but crashes on macOS (but worked before the last macOS update). 😒
One downside on Flutter (besides Dart πŸ˜›) was that desktop support has been in beta for years. I just checked back up on it, and it looks like they just officially released Flutter for Windows only a few days ago. https://flutter.dev/events/flutter-update-windows https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed
πŸ’― 1
Just Dart vs F# or Elixir or Clojure is 😞
n
I've resigned to using Canvas for graphics. It's one of the simplest available libraries: you're just drawing vectors. There are no other "features" that can cause you headaches. I've tried libraries based on HTML and CSS, but they're all 10x more convoluted and 100x more buggy.