3 ms·
I think those observations get to the crux of the issue: > That is why weird shaped windows are easy to prototype and expensive to polish. > But there is an i
by gyomu 6mo ago
I think those observations get to the crux of the issue:
> That is why weird shaped windows are easy to prototype and expensive to polish.
> But there is an issue with Win32 API programming. And the truth is that custom windows mean doing everything yourself, controlling every Windows message, and that is fragile
Software used to be made by small teams (often of 1). Once released it could be expected to be stable for years.
The priorities have shifted to software that can be built and iterated on quickly, by large teams with high turnover. It’s not uncommon for popular software to get updated weekly, daily.
I suspect this is also why skeuomorphic design lost the evolutionary race - everything needs to be tweaked and aligned and optimized ad hoc. If you want to reorganize the interface, it means potentially recreating a lot of assets. Flat design is interchangeable and modular.
These trends will only get stronger with agentic software engineering - the incentives reward scale and speed.
This is also why we don’t really see large ornate hand carved wooden funiture anymore, it’s all flatpack particleboard now.
- iamcalledrob 6mo ago> But there is an issue with Win32 API programming. And the truth is that custom windows mean doing everything yourself, controlling every Windows message, and that is fragile This isn't actually true though. You can delegate to the default window proc, and only customise what you want. Sure, if your window is now a triangle, you need to think about how resizing is going to work. But you don't need to re-implement everything from scratch -- only the defaults that aren't compatible with your new design.
- sumtechguy 6mo ago> This isn't actually true though. You can delegate to the default window proc, and only customise what you want. Yeah that was my memory of doing this stuff. You basically just added what you wanted to the case statement (or other hooks depending on your framework). Then dump the rest onto the default proc. The default 'wizards' usually made the standard petzold structure for you and you didnt even really have to think much about it. Now if you were doing everything by yourself just make sure you read the docs and make sure you call the default in the right cases.
- iamcalledrob 6mo agoThe docs are great too. Of course absolutely ancient, but once you learn how to read them, they're very comprehensive. And the 3rd party content written about win32 is pretty evergreen. I regularly find articles written in the '90s that are helpful today. The beauty of an incredibly stable API, and documentation written before everyone had the internet. Just like the frontend dev ecosystem. Wait...
- NetMageSCW 6mo agoBut what defaults are there that are going to work with no titlebar, no standard window buttons, no border, no menu, no ribbon?
- Hendrikto 6mo ago> skeuomorphic design While the idea itself may hold water, all of the practical implementations I saw were just too visually busy and… just ugly tbh. I am glad we moved away from that. It could probably be done better, but that would require lots of effort, as you said.
- NetMageSCW 6mo agoThe iPhone 6 was fairly skeuomorphic yet never seemed visually busy or ugly.
- AlexandrB 6mo ago> I suspect this is also why skeuomorphic design lost the evolutionary race - everything needs to be tweaked and aligned and optimized ad hoc. If you want to reorganize the interface, it means potentially recreating a lot of assets. Flat design is interchangeable and modular. Another way to say this is: cost cutting. We gave up superior usability so software could be made more cheaply. See also: replacing buttons and knobs in cars with a big iPad.