Hacker News new | ask | show | jobs
by danielvaughn 1106 days ago
Totally reasonable response, and thanks for taking the criticism well - I hope it didn't come off as too harsh. I mostly agree with everything you wrote, just one thing I'd say:

Designers may be used to visual tools, but IMO it's a hangup. It's like someone telling you that they find it easier to click File > Copy > File > Paste because they're not used to typing "ctrl c > ctrl v". I get the psychology of it, but it's objectively wrong - a keyboard shortcut will always be more efficient and everyone who learns them is better off for it. Code is like that but on steroids. If there's an efficiency gap then it's an issue with dev tooling (which IMO is 100% true in lots of cases), not inherently with code.

2 comments

Here again you show lack of nuance.

Pro webflow developers use keyboard a lot. In fact with Webstudio we took the keyboard accessibility very seriously, still A LOT to improve.

Visual development is a mixture of mouse and keyboard. Some things are faster with the mouse, some with the keyboard.

The reason some people prefer mouse is not just that they are used to, even though it is true. Its because they know how to be efficient with it very well.

"code is like that but on steroids" - again it can be true in certain use cases, but there is a massive amount of use cases where this is not actually true.

Most of them are around layouts, styling and configuring components. Visual development is basically declarative programming - its configuring things.

We are actually thinking deeply about the gap between typing and visually manipulating stuff at Webstudio and the plan is to allow a lot of the same UX patterns that you have with text-based coding: copy/pasting things like styles, box shadows, gradients, instances of components etc.

Ability to paste gradients is already there, box shadows comes soon. Writing component code inline will most likely come at some point as well. Linked CSS editor - similar to chrome dev tools for css is also planned.

As you can see there are ways to close the gap and when needed write code.

The most frustrating thing with code is the build tools, compilers etc. These days nobody writes just simple html and css, things are complex. So the benefits of writing code are often completely destroyed by the amount of complexity to deploy the site.

Ha, I was back-and-forth on editing a response to my own comment with a caveat - there are indeed times when I've found UI editing to be more efficient. There are probably a lot of factors that go into it, but the main one I've noticed is when there are a lot of concrete values that are both numerous and difficult to know ahead of time.

An extreme example is a squiggly line in SVG. Click on a canvas and drag, super easy. Or try typing it out and discover your inner masochist.

So, I definitely see your perspective, thanks for sharing your thoughts!

I really enjoyed this back-and-forth -- so much that I agreed with all of the comments on both sides, as I read them! (Not an intellectually consistent position, I admit.)
Glad you enjoyed it - it's two people who are very passionate about the same topic. I didn't mention it beforehand but I've been working on my own solution to this problem - I've been going back and forth between drawing board and prototype for years and it's become an obsession for me. I love this problem.
Developing better HCI and UX is not a "hangup". Accessibility (in the broader sense) is incredibly lacking in technical spaces.

Also, your example is a poor one, because in your example, both a visual method and a quicker keyboard method exist. Very often, the visual method doesn't even exist. In your analogy, its more like there is no way to move text from one app to another except for ctrl-c / ctrl+v, so the guy trying to do this just gives up and can't do it because they only know how to use file - paste. It's not even about shaving off .5 seconds, its about not even accomplishing the thing they want to do.

Finally, no, there's no such thing as one method being "objectively" wrong. You're making the mistake to think that efficiency between navigating screens and work is all about being fast. It's not. There's a lot of people (actually the majority) who don't give a shit about being faster at keyboard shortcuts and shaving 2 seconds off whatever. If you're a copy-writer, you might copy-paste once or twice and then the rest literally never leave a word editor and email.

This attitude is one of the biggest problems in HCI and development today. The tinkerers and developers like ourselves who love doing this stuff are unable to understand how actual users and clients work with systems, and when told that our designs suck and are inaccessible we scoff and say "lol just learn linux".

Finally, I have no idea whether or not there's an audience for this, but I will actually say that I'm probably one of the audiences for it. HTML, CSS and even JS isn't actually all that complex. But guess what. The real annoying shit that I have no interest in dealing with is the insanity of web development these days which involve build/compile and webpacks and frameworks and blah blah blah.

If I had a platform that let me dip into CSS/HTML/JS but had security guardrails, deployment fully setup and had some basic capability to whip up a docs page, or a simple website that still looked good, I would absolutely use it in a heartbeat.

In fact, I'm currently using a dinky-ass no-code app builder (lmao, in ESRI's ArcGIS Enterprise no less) to make a simple CRUD app. Why am I using it? Because none of the shit is documented at my workplace for deployment, I'm not interested in learning to use kubernetes just for a simple-ass website, and I have zero interest in figuring out how to configure HTTPS and deal with JWT tokens and whatever. I'm a data analyst who works in jupyter notebooks, python and SQL.

"Should" I be making this god awful no-code app? Hell no. Do I want to? Hell no. But do I need it? Yes, very much so. Otherwise, the people I rely on to populate a referential / look-up table update their reference documents in word and the table only gets updated manually when someone bugs the DBAs to manually update it, so these tables are always out of date. I could go with a straight-face to our over-worked web devs and ask them to stop working on their enterprise-wide/big-client project, but they would either hate me forever (fair) or ignore me because they're doing way more important things. Or I could go to the policy people who update these tables who can stare at me with a blank face when I explain that even if they just make an Excel table instead of a Word table then it would improve so many things, but to them its "whats the difference? im putting text in one table or another."

Instead, we have this dumb thing that's a drag-n-drop Bootstrap page maker, and with it comes built in auth, login and even exposes a simple REST API.

If I narrowly focused down on whether or not making this app with a drag-n-drop tool vs just writing an SSG, ofcourse the latter would be easier and faster. But, just writing the code for an SSG is not the hard part here. It's everything else that web devs live and breath so they forget how stupid of a workflow it actually is to make a React-Nuxt-Next-Babel-Webpack-Vite-tailwindCSS-whatever monstrosity, when 90% of people's needs could be served with the equivalent of a web-deployed version of Excel with some neat animations.

It's the same reason why UX designers and shit like figma exist. We let developers be in charge of designing an app, and they built unironic versions of userinyerface[1] and when told their shit sucks, they shrug and say whatever, "it'd be faster if they wrote X in markdown anyways."

[1] https://userinyerface.com/

I love thoughtful pushback as well as a good rant, so thank you (really). I completely empathize with the use cases you listed. Only thing I'll point out is that I'm only quibbling about the mode of interaction (UI vs text), I'm definitely not advocating that designers or non-devs should know or care about react/webpack/tailwind/blah/blah. Agreed that a nicely integrated design tool would hide all incidental complexity.
Thats fair, sorry I sort of looped in your point about UI vs text unfairly into the designer vs non-dev bit. Thanks for the kind response :)