FLTK is great at being fast and light, that’s about it. It’s kind of cumbersome to use but honestly does what it says on the tin. Highly recommend for smaller use cases but can’t imagine using on a large project. I used the rust bindings which are well maintained.
Yes, we recently posted for an entry/mid level position and we got 1800 applications in a few days. It’s impossible to filter the list, I spent several hours to see how feasible it was and after getting through maybe 150 applications I gave up. We’re a small team, we don’t have the resources to cut through the noise without just blanket rejecting people. There doesn’t need to be a board that vets jobs, there needs to be a board that vets candidates and makes it easier for companies find their ideal candidate.
Have you seen linkedin's AI hiring assistant?
(I've only read about it, but it sounds like it might be the thing)
I noticed with linkedin premium - when you view a job listing it tells you how many other people have applied akready, and what number of them have masters, bachelors, phd, director level, etc.
in this day, it should be a law that all the boards must post this info clearly - just to save us all a lot of time.
The amount of time I have spent putting info together for some job listings and wondered how in the heck they found someone else with the same experience and knowledge.. and to think, there may have been 1500 that applied before hand and literally none of that matters.
How do you vet mid level and entry developers? I know that sounds like a dumb question. But I only expect a mid level developer especially enterprise developers to turn well defined requirements into code. The bar is especially low in the age of AI. One is basically interchangeable for another. I have only interviewed senior level developers - ie people who I expect to operate on a higher level of scope, impact and ambiguity.
Those are easy to filter out via a few behavioral questions.
But if that is the standard, what is the point of the mid level developer in the first place? I have a tool to turn well defined requirements into code and it is $20-200 a month.
Do what everyone is doing (for better or worse): feed those into a CLI LLM, have it give you a csv of the top 20 candidates based on some criteria, manually review those.
If they are actually "exactly the same" and your criteria is a "random" developer then does it matter which you pick? Look for extracurriculars like active github, personal website/blog, open source contributions, vibe coding skills, etc. I bet 75% of the job market right now is being done on referrals anyway. Tap your network.
Surely you will not manage to hire one of the top 20 developers matching any given criterion unless you are paying too 1% compensation. (I made this number up.)
One of the criteria somehow is “will show up for work and not ghost us”.
If you're truly looking this generic, then what is the problem exactly with taking the bottom 20% of the stack since that's what your pay is going to be anyway?
In any second tier city the range for mid range developers is only $10K-$20K. You don’t really need rockstar ninja developers to do your standard CRUD LOB or SaaS app.
No affiliation but they talked with me long time ago. They take upon themselves to perform the first screening… looks like something smaller startups could take advantage of. I am not sure how good they are.
Me, because my work gave me a crappy dell that can barely run the stripe dashboard in the browser. I could put in a request for a Mac or something faster but this is the standard machine everyone gets for the company. It helps me be sympathetic to my users to make sure what I develop is fast enough for them because I definitely am going to make it fast enough for me so I don’t shoot my brains out during development.
Your recent post resonated with me deeply, as someone heavily invested in the Rust GUI I've fallen into this same conundrum. I think ultimately the Rust GUI ecosystem is still not mature and as a consequence we have to make big concessions when picking a framework.
I also came to a similar endpoint when building out a fairy large GUI application using egui. While egui solves the "draw widgets" part of building out the application, inevitably I had to restructure my app entirely with a new architecture to make it maintainable. In many places the "immediate" nature of the GUI mutable editing the state was no longer an advantage. Not to mention that UI code I wrote 6 months ago became difficult to read, especially if there was advanced layout happening.
Ultimately I've boiled my choices down to:
- egui for practicality but you pay the price in architecture + styling
- iced for a nice architecture but you have to roll all your own widgets
- slint maybe one day once they make text rendering a higher priority but even then the architecture side is not solved for you either
- tauri/dioxus/electron if you're not a purist like me
If your main gripe about the Rust GUI ecosystem is that it's not mature then rewinding 20 years and using Qt/WPF/etc sounds like an excellent alternative. Old and mature versus modern and immature.
A teammate evaluated this and the experience was night and day compared to cmake + vcpkg. However, there wasn’t a lot of motivation to cutover our existing large project over because of the unknown unknowns. I think projects like these looking to dethrone the status quo definitely need some case studies or examples of larger projects using it to increase confidence because I’d much rather use xmake over cmake if it can get the job done
I use it for personal projects and I find it substantially easier to mess around with compiling shaders to SPIRV, processing assets, etc... But some of my gripes are, although it _is_ lua, there is some magic fuckery going on. When you specify targets, things for that target need to be close to the definition, and it feels very odd in a lua language to not have `target("name", function (ctx) ... end)`.
Anyways, not going to die on that hill and I'll keep using it because it's simple and works well for my needs. One thing I do like is that I am not having to constantly keep a skeleton CMake project around to copy paste and setup.
SpacetimeDB looks interesting as a concept (the tech behind this server) but I could never sus out how could it would be in actual practice. I’ve always been interested in some post-mortems or reflections on the tech from other companies besides the founders
Personally I think they launched their 1.0 prematurely. The community seems a bit mired in constant rewriting and immature tooling. Because this setup owns your whole stack, when they having a breaking change it ripples through the whole thing and your on the hook for that as a consumer (prob more so if they control your hosting). Someday they might reach a stable state, but for now if you don't want to bleed for them, I’d be weary.
(I think there are technical and marketing reasons to be weary of as well, but the degree to which that matters is application specific. The above is universal and will probably continue to be the case through at least a few more major revisions if I had to guess).
Yes! I love this framing and it’s spot on. The successful projects that I’ve been involved in someone either cares deeply and resolves the details in real time or we figured out the details before we started. I’ve seen it outside software as well, someone says “I want a new kitchen” but unless you know exactly where you want your outlets, counter depths, size of fridge, type of cabinets, location of lighting, etc. ad infinitum your project is going to balloon in time and cost and likely frustration.
Is your kitchen contractor an unthinking robot with no opinions or thoughts of their own that has never used a kitchen? Obviously if you want a specific cabinet to go in a specific place in the room, you're going to have to give the kitchen contractor specifics. But assuming your kitchen contractor isn't an utter moron, they can come up with something reasonable if they know it's supposed to be the kitchen. A sink, a stove, dishwasher, refrigerator. Plumbing and power for the above. Countertops, drawers, cabinets. If you're a control freak (which is your perogative, it's your kitchen after all), that's not going to work for you. Same too for generated code. If you absolutely must touch every line of code, code generation isn't going to suit you. If you just want a login screen with parameters you define, there are so many login pages the AI can crib from that nondeterminism isn't even a problem.
At least in case of the kitchen contractor, you can trust all the electrical equipment, plumbing etc. is going to be connected in such a way that disasters won't happen. And if it is not, at least you can sue the contractor.
The problem with LLMs is that it is not only the "irrelevant details" that are hallucinated. It is also "very relevant details" which either make the whole system inconsistent or full of security vulnerabilities.
The login page example was actually perfect for illustrating this. Meshing polygons? Centering a div? Go ahead and turn the LLM loose. If you miss any bugs you can just fix them when they get reported.
But if it's security critical? You'd better be touching every single line of code and you'd better fully understand what each one does, what could go wrong in the wild, how the approach taken compares to best practices, and how an attacker might go about trying to exploit what you've authored. Anything less is negligence on your part.
You kitchen contractor will never cook in your kitchen. If you leave the decisions to them, you'll get something that's quick and easy to build, but it for sure won't have all the details that make a great kitchen. It will be average.
Which seems like an apt analogy for software. I see people all the time who build systems and they don't care about the details. The results are always mediocre.
I think this is a major point people do not mention enough during these debates on "AI vs Developers": The business/stakeholder side is completely fine with average and mediocre solutions as long as those solutions are delivered quickly and priced competitively. They will gladly use a vibecoded solution if the solution kinda sorta mostly works. They don't care about security, performance or completeness... such things are to be handled when/if they reach the user/customer in significant numbers. So while we (the devs) are thinking back to all the instances we used gpt/grok/claude/.. and not seeing how the business could possibly arrive to our solutions just with AI and wihout us in the loop... the business doesn't know any of the details nor does it care. When it comes to anything IT related, your typical business doesn't know what it doesn't know, which makes it easy to fire employees/contractors for redundancy first (because we have AI now) and ask questions later (uhh... because we have AI now).
That still requires you to evaluate all the details in order to figure out which you care about. And if you haven't built a kitchen before you, won't know what the details even are ahead of time. Which means you need to be involved in the process, constantly evaluating whether what is currently happening and if you need to care about it.
Maybe they have a kitchen without dishwasher. So unless asked they won't include one. Or even make it possible to include one. Seems like a real possibility. Maybe eventually after building many kitchens they learn they should ask about that one.
I think the Rust community is sleeping on the potential of iced for traditional desktop gui. I monitor the gui space in Rust closely and have seen many toolkits come and go. In my opinion a desktop gui library/framework needs to solve two things to be useful: architecture and advanced widgets.
egui has served me well and is eagerly recommended in "what gui should I use" threads since it solves the widget problem well in an easy-to-use package. However, any sufficiently advanced application ends up needing a nice architecture to maintain development speed and enjoyment. I've found whether using egui/slint/fltk/etc. you end up having to roll your own system. When you start needing things like undo/redo you suspiciously start architecting something that smells like the elm architecture.
Iced is the only Rust toolkit that I track that solves the architecture part upfront. The message pattern is hugely powerful but it is hard to appreciate until you've really gotten in the weeds on larger applications. Once iced reaches a point where there is an advanced set of widgets available I suspect its popularity will rise accordingly.
As a comparison, one of the most successful desktop gui toolkit of all times (Qt Widgets) solved the architecture/widget duality long ago with the signal/slot system and advanced widgets like treeviews, datagrid, etc. Since then we must have had hundreds of "desktop" toolkits across all languages that can draw buttons and dropdowns but nobody has toppled the king yet for building advanced desktop GUIs (although there were a few close competitors in C# with WPF and Java with Swing they only solved the widget part in my opinion). I like to think iced can take this mantle one day, best of luck to them and congrats on the 0.14 release.
Alternatively, Flutter desktop with flutter_rust_bridge works great. Sure, not fully Rust, but Flutter has way more packages on the GUI side than, I'd say, all of the Rust GUIs combined, simply due to how much older it is.
It feels a little cringe how Elm and the "Elm way of thinking" is so heavily emphasised, but after using Iced, IMO this is probably one of the best gui models without having to implement signals or message passing or IPCs like Dioxus/Tauri does with frontend/backend. Other key advantages Iced has includes daemon mode, native ability to use multi threading and also multi-window support
That said, for actually building most apps, what's more important is likely ease of learning and using the framework, platform/OS support, publishing support, etc, none of which Iced itself directly address.
> When you start needing things like undo/redo you suspiciously start architecting something that smells like the elm architecture.
Well Iced itself claims to be inspired by the Elm Arch, so that checks out (see the first line under the Overview section of the Readme https://github.com/iced-rs/iced )
reply