10 ms·
To be honest UI dev tools just plain suck, making everything move more slowly that it needs to. If I'm on the web it's the HTML + CSS clusterfuck, If I'm in C#
by hacker_9 10y ago
To be honest UI dev tools just plain suck, making everything move more slowly that it needs to. If I'm on the web it's the HTML + CSS clusterfuck, If I'm in C# I'm writing color converters for WPF, if it's Java I have to use the outdated looking Swing, if it's C++ it's QT which I need to doll out cash for. Additionally every smart phone OS has it's own groundbreaking GUI layout concepts and ideas too.
Then you get the layers on top, Xamarin or Eto.Forms or X, that convert down to the native widgets or just create their own entirely. These usually come with a healthy dose of missing functionality, such as mouse drag detection.
And then there are the languages with no UI libraries at all. As if this is even acceptable in 2017.
All in all, whoever decided GUI frameworks were a good idea got it very very wrong indeed. This stuff should have been standardized long ago, stored in some universal data format, and then every programming language could add support for it. They would want to add support for it. Closest to this is HTML of course... but, well, I think everyone would hope for something more elegant.
- pavlov 10y agoSun NeWS should have been that GUI standard, thirty years ago: https://en.wikipedia.org/wiki/NeWS https://en.wikipedia.org/wiki/NeWS There was a simplicity and purity in its approach to front-end interactivity and rendering that completely eludes the HTML+CSS+JS stack we're now stuck with. As the Wikipedia article states... "NeWS was architecturally similar to what is now called AJAX, except that NeWS coherently: used PostScript code instead of JavaScript for programming; used PostScript graphics instead of DHTML and CSS for rendering; used PostScript data instead of XML and JSON for data representation." PostScript is basically a graphics-oriented Forth, so it's kind of a weird language to write directly... But it would have been great as a target for all sorts of interesting compilers and GUI tools.
- TuringTest 10y agoIf you have compilers and GUI tools, how does it matter than the underlying layer is HTML+CSS+JSON? The designer shouldn't see it anyway. Now that we have a web-aware platform (which NeWS was not), nothing stops us to create good UI tools on top - yet it is happening very slowly.
- pjmlp 10y agoYou mean by piling up <div>, <span>, CSS and JavaScript?
- TuringTest 10y agoYes, why not? That's no different than piling objects in a GUI widget library to build a tree structure for the layout of a window; except that it has a human-readable string representation.
- pjmlp 10y agoSure there is, on a GUI toolkit I can always control at some level how those pixels are drawn, while on a browser I need to hope it does the right thing. Also there is big performance impact, where piling up divs with CCS requires the right incantations, some browser version specific, for hardware acceleration to kick in. And in any case, it is impossible to fully replicate the UX of the host platform.
- TuringTest 10y ago> I can always control at some level how those pixels are drawn How well does that work when your GUI must be shown in arbitrary devices, with arbitrary screen sizes and arbitrary resolutions? And how well does it reflow when the user changes the viewport size? In any case, the original post to which I replied was comparing HTML5 to the NeWS platform, which provided a unified UI stack itself, so you wouldn't be able to match the native behavior following that approach either.
- pjmlp 10y agoThat is what layout managers and logical pixels are for. You are missing the fact that NeWS offered this kind of control. "The NeWS Book" - https://archive.org/details/bitsavers_sunNeWSThe_11666863 https://archive.org/details/bitsavers_sunNeWSThe_11666863
- samkellett 10y agoyou either die a hero or...
- lj3 10y agoDidn't NeWS have its own issues? It lost to X11 for a reason... https://www.usenix.org/legacy/event/usenix2000/invitedtalks/gettys_html/img16.htm https://www.usenix.org/legacy/event/usenix2000/invitedtalks/...
- seanmcdirmid 10y agoWhat do UI dev tools have to do with UX design?
- pavlov 10y agoDesigns have to be implemented in something. Currently UX designers are often like chefs who work by drawing pictures of food and writing down conceptual recipes. When they've created a beautiful menu this way, they're surprised to find out that their recipes can't actually be made using the cooking equipment available, and some of the ingredients don't even exist. You're not going to run a Michelin-rated restaurant like that. The industry desperately needs better UI development tools. To continue my (already strained) food analogy... Right now we are still in a "hunter-gatherer" stage where everyone does their own thing, teams are foraging and hunting, and occasionally they stumble on something great. Consistent UX will require an "agricultural revolution", a systematic production innovation that makes the essential pieces more understandable and repeatable in isolation.
- seanmcdirmid 10y agoYou really underestimate the amount of time it takes to practice and do adequate UX design; unless you spend 10,000 hours doing design, you are going to suck at it, and most of the jack of all trades designers devs I met have really been mediocre at both. "Designers should code" is as fallacious as "accountants should be lawyers". Specialization has been the direction of human civilization ever since the neolithic revolution allowed us to have enough food surplus to move into cities. Designers should definitely work with devs, if they are surprised their designs can't be implemented in the end, then that organization is REALLY dysfunctional. We definitely need better UI development tools, but this is orthogonal to UX design, much of which doesn't even involve the aesthetics of the UI anyways.
- dpark 10y agoDesigners must understand the media they work in. Design involves tradeoffs and accommodations for practical limits. A designer who doesn't understand the capabilities of the systems they design for is destined to produce bad designs. You can't understand the limits of CSS unless you can work with it. Imagine if Apple hardware designers depended on their manufacturers to tell them what's achievable with aluminum and glass. Instead Apple has a small manufacturing facility in their design studio so the designers can iterate rapidly and actually understand what is possible.
- kuschku 10y ago> if it's Java I have to use the outdated looking Swing Java has JavaFX now
- kpil 10y agoSwing is themeable, as has always been. With some minimal effort, it's possible to do a nice looking GUI with fonts that not look like vomit, etc. If Sun and Oracle had spent more than 5 minutes on packaging applications - why not in jxe-files for executable jars, as a simple start to avoid torturing your users - and using nice fonts - and why not a discrete and non-whiny non-bundlig autoupdating jre - they could actually have won on the desktop, when it still was relevant.
- flukus 10y agoThe biggest problem was always that everyone hated the native win32 theme, Even MS didn't use it in big products like office.
- hasbot 10y agoI was a Swing developer (and loved it). Distributing Swing applications was never a major issue. The issue was that once the web hit, all my co-workers wanted to do web applications and convinced management web was where it was at.
- pjmlp 10y agoI have been both side of the fence, and when I have the freedom to choose which projects I apply for, projects with native UIs always win my heart. Personally I think it was a good move to go back into native UIs, right about the time people were starting to adopt Angular.
- kpil 10y agoI specifically mean such a simple thing that they have used the .jar file extension both for executable jars and plain archives of files. If they had defined and promoted using .jxe as the file name extension for executable jars, there had been so much less confusion for the end users. (Just like they have done with ear, war, rar, etc) Also, the security considerations for java web start applications where rather strange, with ugly icons warning that you were running a java application etc, and much higher requirements for certificates and signed executable compared to just about everything else that you run on a computer. If they had re-imaged the framework to use a "installation" and providing automatic updates, just like normal applications, they could have lowered the bar a little.
- smokeyj 10y agoI think the react-native style architecture is the way forward. Mainly, thinking of the UI as a state-machine, and managing that state from a cross-platform runtime. The reality is every platform offers it's own encouraged design patterns and to create the best UX you need to maintain builds for each platform. In the next 5 years I don't see JS being replaced as that cross-platform runtime, but maybe a transpiled strongly typed language could become defacto.
- thomastjeffery 10y ago> if it's C++ it's QT which I need to doll out cash for. What? *EDIT: TIL, Qt is GPL, but offers a lesser licence for a price. For some reason, I didn't know that.
- Arizhel 10y agoYeah, either you make your whole project GPL, or you buy a license so you can make your code proprietary/non-GPL.
- thope 10y agoI thought LGPL meant if you link to (Qt) shared libraries, your project does not have to be LGPL ?
- pjmlp 10y agoNot all platforms allow for dynamic linking.
- fnord123 10y agoOut of interest, which platforms that Qt targets, cannot have dynamic linking?
- pjmlp 10y agoEmbedded devices, car infotainment systems, iOS (only dynamic frameworks from Apple are allowed).
- zanny 10y agoIf you are targeting ios you are already paying Apple for a developer account, so paying Qt basically just doubles the license cost. Everything else is fairly exclusively corporate, where Qt licenses are a non-issue.
- hullsean 10y agoUI <> UX
- mack73 10y agoUX = UI + ? UX % UI = ? Is it a feeling or a thing perhaps?
- sweetdreamerit 10y agoUX is about needs and goals of users. Is about research with the users, documentation, and then UI, and usability. UI is a part of UX. The most visible, not the most important.
- amelius 10y agoSo UX is really about product design?
- bbcbasic 10y agoIt is about the experience that the user has when using your product.
- martin-adams 10y agoand service
- radley 10y agobuzzzzzzzz No. Standardization exists. In two ways. Either your brand has a standardization or your platform does. Both work. It's like saying "we only need one coding language" when the reality is quite different. The disconnect is when brand isn't as complete as platform. Granted, platform has really only fallen into place in the last few years for iOS and Android. But does brand really need standardization initially? No. Because new paradigms need to stand out, either for UX or for impression. Otherwise AOL would be Snapchat, and it ain't. I respect that coders don't grok product design fully or in parts. But please understand, a great deal of the fun, the joy of tech, is in UI/UX evolution.
- hacker_9 10y agoI think we're arguing different things here. I fully agree that from a design perspective, things need to look distinctive (MacOS vs Windows vs Android etc). But implementation wise, the only actual difference is the images used and the colour of the gradient brushes. The only shake-up UI-wise in the last 10 years was the introduction of smart phones, which meant the need to design for smaller screens, as well as work with gesture commands. Instead of adding to what we had, we spawned Bootstrap on the Web, Android has it's own custom widgets, as does IOS and so does Windows Mobile. This is the divided state of technology we live in. A smaller screen somehow communicated to people we need four new GUI frameworks. This result stifles design, because if I design for IOS, I have to re-make everything again for android (including any custom controls, themes and so on). This has a cost, I can't support android UI controls if there doesn't exist the same on IOS, or other platforms. So people might choose to layer Xamarin on top, essentially throwing another framework into the mix. Why do we need so much abstraction? Recently I've switched my desktop project from WPF to Eto.Forms, so it can also target Mac and Linux. But the result is I now have no mouse drag functionality, because that isn't implemented yet. These are real limitations I face everyday. What exactly is the problem I wonder? We are literally talking about squares with text/images on here. It is mind boggling.
- zer0tonin 10y ago>if it's Java I have to use the outdated looking Swing Swing has been deprecated in favor of javaFx for a while now.
- on_and_off 10y agoand neither are used on Android
- pjmlp 10y agoThanks Google.
- fspacef 10y agoI get the /s but does anyone know why this is the case? Would make life a lot easier IMO.
- on_and_off 10y agooh, I did not mean to be sarcastic, just to point out that the state of these frameworks don't matter that much when they are not used on the main platform where people write UI in java. As for the lack of Swing/JavaFx on Android, I don't know if there is an official reason. It could be that Google only wanted to take the language and replicate everything else in order to avoid lawsuits. Another option (and they are not exclusive) is that you take a lot of cruft with you when you integrate something like Swing. Also, widgets like RecyclerView are really complex and do some deep optimizations like pre-binding views when the ui thread is idle. Having ownership of this part of the stack in order to make it evolve might have been considered worth the development cost.
- beaconstudios 10y agoI'm working on something much more elegant that takes designers above the focus of "HTML+CSS code" to an abstraction that makes sense. Similar to webflow, but allows you to continue to build out your app without having to drop down into text editing. A solution may be closer than you think ;)
- laktek 10y agoInterested hear more about your approach. I'm also trying to solve it with Pragma - https://www.laktek.com/2016/11/29/introducing-pragma/ https://www.laktek.com/2016/11/29/introducing-pragma/ Here's a little sneak peak: https://twitter.com/laktek/status/845815533450682370 https://twitter.com/laktek/status/845815533450682370
- beaconstudios 10y agowe should definitely have a chat - could you drop me an email? my address is in my profile. Thanks!
- TuringTest 10y agoAlso interested. Do you have anything online to explain your base ideas?
- beaconstudios 10y agohey! I actually don't, but was planning to write up a blog post to explain the core concept behind Basis (the working project title). If you'd like, I can send you some info if you drop me an email :)
- on_and_off 10y agoWeird, I feel that UI tools are evolving very fast on Android. ConstraintLayout is pretty much AutoLayout without the bad parts, Databinding makes declarative style UI easy to write. It is not perfect by any means, but it is definitely improving quite steadily.
- taude 10y agoBut these ideas of declarative frameworks supporting databinding are old, and have been implemented many times in many heterogeneous frameworks and platforms over the past two decades (probably longer, but I don't have context).
- on_and_off 10y agoI don't have the context either, but according to the people behind databinding on Android, the previous databinding frameworks are usually pretty slow. They focused on making it run fast by making it compile to bytecode and make the same minimal calls you would make in java . It is true that it is not a new idea at all though
- sprafa 10y agoAs a designer I can tell you right now = solve this problem and make lots of money as an engineer. If you need help, PM me, I will list you all the clusterfucks Adobe has made trying to solve this problem.
- lj3 10y agoCould you sent that list to me? :) You have no email in your profile, so maybe you could send it to me at the email in my profile?