![]() ![]() This got really rambley so I’m collapsing it. For these reasons, I much prefer environments with fast compilation speed, live reload and type-safe GUI DSLs in the same language your app is written to any form of GUI designers. Finally, somebody has to work on the GUI designer itself, this time can be better spent elsewhere. You can’t really do the same things from the visual designer you can do from code, so it inevitably feels limited. Bug fixing older versions of the app is also a drag because you have to have a visual designer with older components installed, at the state they were when that older version of the app shipped simply checking out the old code branch is not enough. ![]() You have to have some description language for your GUI (extra thing to know, can’t benefit from static typing). Creating custom components is a drag because of this, you have to compile them, uninstall the previous version of a component from your visual designer and install a new one. You won’t see a preview of a custom component in your designer (only a placeholder at best, possibly a designer error) anyway. You have to have 2 sets of components - new/existing GUI components you are working on in source form and compiled components that are installed in the IDE/visual designer, and you have to keep the latter up to date, so they reflect the state of components actually used by your app. UI components, just like other components, evolve constantly. A visual designer mostly complicates things, IMO. I’ve been working on GUIs for 15 years and can’t corroborate with that. I think category 4 includes a lot of games because they tend to have limited UI needs consistency with the underlying platform is not seen as an issue performance is really important (and historically platform GUI toolkits have interacted poorly with high-performance graphics output) they don’t need to interface much with other applications in the platform and the UI needs of games don’t generally evolve much over the maintenance lifespan of the game. I guess applications also fit into this category if they want Write Once Run Anywhere and a broad feature set without doing a whole lot of work - by reusing an existing solution. A very long time ago all browser engines used actual native form widgets but they all transitioned to reimplementing everything because it was the only way to make things work (even browser engines like Webkit and IE that really only cared about one platform initially!). For example browsers need to implement CSS layout and theming, the DOM event model, the complex CSS rendering model, features like spellcheck, handle absurd numbers of form controls on a page without crashing, etc etc. Lots of undemanding business applications in this category.Īpplications in class 3 include browsers and other applications that need very precise control and customization of UI components. ![]() They generally don’t require customizing UI components in deep ways (difficult to do portably). ![]() the applications OS vendors write for their own platforms.Īpplications in class 2 are generally reasonably simple, or the complex parts can be factored out and handled some other way (e.g. I think applications in class 1 either only target one platform, or have enough resources to write custom UIs for each platform they target and deem it worth doing so to get the very best results. browsers and games) what the characteristics of the applications themselves are which lead to them having different requirements of their UI libraries? Let’s say I’ve classified applications by their requirements.Ĭould you say a bit more (you’ve mentioned a bit w.r.t. In a sense that list isn’t of different kinds of applications, but of different kinds of UI libraries, with the classification of applications being a mapping “the kind of application which needs the X kind of UI library”. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |