83 comments

[ 701 ms ] story [ 3213 ms ] thread
I find it amusing that Sketch and Figma are considered "traditional tools" now. It wasn't so long ago that neither of these existed, and everything was Photoshop.
I remember when slicing means using the slice feature from Photoshop. Now slicing is just writing code and copying bits of css from Figma (or something similar). Ah the good old web where (almost) everything is an image :D
I think you used fireworks for that, wasnt that also from adobe?
Yes, Fireworks was originally made by Macromedia who Adobe acquired in 2005 (mainly for Flash).
My memories might be blurry. But I think it was photoshop, and there was this slice tool where you can define the segments of the design and export it to HTML. But Fireworks might also have the same feature, I personally never used it so I can’t say for sure.

Oh also remember Dreamweaver :)

Fireworks and Photoshop both have a slice feature.
I miss fireworks so much as a middle school student. With it and dreamweaver, I can create website for my class before I learn any programming at all. They are so easy to use!
I think he’s talking about the paradigms as raster and vector editors, which I would still categorize Sketch and Figma as. They’re vector editors with some specialized features for UI/UX. They’re still largely in the mold of what Photoshop and Illustrator have done for over 30 years.

What I always find interesting about these pieces, is they always seem to be saying “they’re old now and need to be replaced” rather than marveling at the durability of original approach, which has been astounding. Same can be said for plain text, Unix shell tools, spreadsheets, NLE editors, the DAW. These should be celebrated for how successful their designs have been, instead of lamenting how many “old tools” we're using.

You make many good points, especially NLEs and DAWs.

For me, the last "killer" Photoshop feature was layers. That was in 1994. I still use it every day, but only because I have almost 30 years of muscle memory. It's getting slower and slower for every release.

Granted, it inherited a bunch of nifty web-savvy features from Adobe ImageReady in the first half of the 2000s, but the whole sh*tshow that went down when ImageReady was killed was internal politics and a sign of crappy things to come.

It's interesting that the same navel-gazing, customer-ignoring attitude that killed QuarkXPress in favour of Adobe InDesign struck Adobe.

(By "killer", I mean a feature that completely changed the way I could work with graphics. Sure, I've saved a bunch of time with Actions, but the feature was not transformative.)

>They’re vector editors with some specialized features for UI/UX

I've used Sketch, Illustrator, and Photoshop pretty heavily in my career.

Your statement is a bit like saying that a motorbike is just a bicycle with a few specialized features for people who want to go fast.

The way component libraries, CSS outputs and Craft plugins work with Sketch make it a totally different workflow to Illustrator, even if the basic features are the same (draw vectors).

I have to admit, I was underwhelmed using Sketch and Figma.

People were touting it like the new hot shit, when it came out, but from a developer point of view it still felt like building with legos.

But yeah, if you say "everything was Photoshop" than Sketch and Figma are orders of magnitude better, haha.

And, I'm still waiting for Sketch killer from Bjango... it's 5 or 6 years now. ;)
I've always wanted the ability to just save my HTML/CSS changes in Chrome Dev Tools to the source files ("Future #3"). Why has that not been done yet? Would save a ton of time.
Firefox can do this for the css files, which I use quite often. Never thought about the HTML side as that is in templates anyway.
A friend recently made this: https://devsync.co/. Not sure if it works with html, but it makes the finicky css a thing of the past.
Is there a reason (or am I wrong about it) that the most common and most liked tools for developers are mostly Open Source, while there are almost no Open Source tools aimed for designers making it big?
Open source projects are run by developers, why would you expect developers to make great tools for any field except development?
That is true, but web-design and web-development are pretty close to each other and I'm pretty sure there is a lot of people out there doing both.

There is also counter-examples: KiCad is an EDA tool which is very, very close to the commercial ones.

But it's a great point, we could look at the counter-examples - good Open Source tools not aimed at developers - to maybe find out why they exist and how to do it.

Browsers come to mind, Android in some regards. But hopefully we can find something else than ad-delivery infrastructure.

Is there only web design and web development in this world? :)
Yet they do...

GIMP? Inkscape? Blender? Libre Office? Firefox?? Chrome??

I'm actually not sure what you're suggesting. There are no great open source projects outside those written for development? That's clearly false.

Firefox is definitely an exception.

Libre Office is simply copying features from MS Office, and is rarely used in commercial settings anyway.

Chrome is open source (well, Chromium, Chrome is not), but it is basically 100% developed by a commercial company which does not generally accept community contributions.

I don't know enough about GIMP, Inkscape and Blender to give an opinion on how well they can be held up as examples of Open Source community tools that can replace commercial tools.

Edit: actually, thinking more about this, Firefox and other browsers are much more a tool for web development than a tool for users directly - the functionality that users use is much smaller in terms of implementation than the functionality that web developers use (the layout and JS engines, and the debuggers, profilers & other development .

Didn't Libre stem from StarOffice, a commercial product?
firefox is (also) a developer tool. Blender is also used by a lot of game developers and thats why it gets a lot of attention. Gimp, inkscape and libreoffice not so much, and it shows.
> GIMP, Blender

Both of which are known to have notoriously unintuitive UI's, especially when compared to their commercial competitors.

> Libre Office

Literally just copy & paste M$ Office UI, and honestly still manages to screw that up putting things in different places.

> Both of which are known to have notoriously unintuitive UI's, especially when compared to their commercial competitors.

This changed lately for both products.

As others have pointed out, web browsers are developer tools. Just because other people also use them for other things doesn’t mean they’re not core to developer's workflows.

GIMP, Inkscape, and LibreOffice aren’t competitive with their commercial alternatives.

Which leaves Blender, which is the exception of a high quality open source tool that’s not for developers. I’ve spent a lot of time thinking about this, and I think they’re two reasons it exists: 1. The comparable commercial tools are very expensive, e.g., thousands of dollars per year, versus a bit over a hundred a year for something like Photoshop. 2. Developers have a particular affinity to 3D modeling, e.g., it’s the biggest gatekeeper to various types of development like games programming and AR/VR.

But I agree 100% that Blender is a fascinating exception, and I’d love to hear more theories about what’s made it so successful.

Blender is the sole exception, but the very vast majority of the CG industry used closed source counterparts because Blender still does not compete with Maya and Houdini, especially the latter. Blender had recently made some massive improvements and that is definitely starting to change, but this is happening alongside CG artists starting to write scripts more and more, slowly becoming developers themselves.

And realize Blender hails from the Netherlands, which maintains a uniquely socially favorable version of capitalism. Projects like Blender would surely have a much harder time being pursued anywhere else.

Blender is also used by a lot of gamedev.
A notable thing for me as a very light amateur user, was that Blender (up until the recent 2.80) felt very foreign when compared to professional tools. It is an incredible accomplishment, but it had a notable learning curve, even if you had experience with other commercial 3d graphics software.
> 1. The comparable commercial tools are very expensive,

This was specially the case when blender was new and AFAIK command line driven. In those days a SGI machine alone was more expensive then the car of the average Blender user.

Except for GIMP, an engineer might easily use these products regularly.

and perhaps not coincidentally, GIMP is infurating trash from a UX perspective.

(comment deleted)
Entirety of ML/sci-python world is not run by "developers", but by those working in the field.

That's usually the driver of quality, even if pure software engineers could easily find stuff to criticise.

There's a huge gap for a good UX design app in the Linux world. I hope Akira[0] can fill it, but I find for web stuff, with the right prototyping setup and frameworks, I can build stuff very rapidly to test out.

[0] https://github.com/akiraux/Akira

I can't speak to the complexity of building an open source Figma. The UI isn't that crazy. But even if it existed, you would need a cloud storage solution. And the file sizes can be quite big. And then there's the ability to share project urls, so you'd need some sort of hosting setup.
Good question!

I think you're right & the open-source issue could be because closer coordination is needed between product & engineering.

And while I'm biased [1] (as the founder of MintData), I think the future is instead:

- The line between Engineer & Designer gets BLURRED -> 0

- The line between Prototype & Software gets BLURRED -> 0

In the end, I think powerful tools that redefine how software is created will win out, but this will take some time*

Hat tip to LightTable, Subform, Figma/Sketch, Framer/X, Visual Basic 6, and all the other tools that have provided us with the right inspiration.

[1] https://mintdata.com

The big players in this space aren't just trying to provide a tool that designers use to create artboards. The big thing is having a compelling story to bring in the other stakeholders, like Product Management and Engineering to participate in the digital product design and handoff. Yes, developers inspecting elements and their attributes is cool, but that's also barely scratching the surface.

Think about integrating a Design System, a developer framework (React, Vue,) creating simulations/prototyping directly with the artboards (like click this button and see it navigate to this other screen).

On top of all that there's cloud access and management for all these designs, and collaborative editing.

All I'm saying is that the big players aren't just trying to build a piece of boxed software. They're going for platforms and a connected suite of services. It's hard to have all that as open source.

I think this is exactly right.

High fidelity collaboration between product, eng, design, and all other stakeholders is EXACTLY what's missing from today's tooling.

Figma has great multiplayer support, and we've worked hard to add it to MintData as well (bias[1]: founder here), and I think this is just the start.

In general, we need better integration of this tooling with CI/CD systems and the human workflows that naturally occur today in any org of > 50 people in technical roles.

[1] https://mintdata.com

Just to clarify, by "high fidelity" I mean way beyond "if I click here, show this Artboard". I think we need much more powerful metaphors to define behavior as we move from prototype -> high fidelity prototype -> final, shipping software in production.
Savvy developers demand open source software. A lot of designers aren't that technical, so there's not a lot of demand.

Plus, designers aren't exactly positioned to just go make their own OSS design tool the same way developers are.

Is the opensource movement prevalent in design? I was under the impression nothing was free in the design world....
Creative Commons is a thing and there is large repositories for CC content.

But it is true, outside of developers, nobody cares at all about Open Source and you mostly get weird looks if you try to explain. We are probably still bad at explaining it.

Why is Framer X not on this list?
Probably because it's from a visual designer's perspective. There is nothing in the article about prototyping. It was focused on layout and developer hand-off. Framer is behind on those fronts, but they have a pretty different paradigm.
Why is Framer X behind on layout? It has a really good layout system based on Flexbox and there is a plugin for handling grids too.

Do you mean to say Framer and not Framer X? Because both are totally different. Framer was mostly geared towards prototyping while Framer X is for creating shared design systems (apart from prototyping ofcourse).

Looks interesting, making a note for when they release a Web/Windows version.
(comment deleted)
There is nothing "crazy" abut "Browsers gobble it up." Along with annotation, this was supposed to be a standard feature of the web, in fact it was built into early versions of Netscape[1]. It just takes the world a long, long, long time to catch up with the bigger background ideas, because there are so many details and so many ways to make money with the immediate.

1. https://en.wikipedia.org/wiki/Netscape_Composer

It wasn't even that long ago that I remember being constantly irritated by accidentally pretty Ctrl-E instead of Ctrl-W in some ancestor of Firefox, and finding myself editing the page. I was actually somewhat glad when this was removed.
I had one of my team members recently introduce me to document.designMode="on"

For the better part of...15 years? I've been using various inspectors and dev tools. Like a chump.

I've never understood why web design doesn't take place in a text editor and browser (with other tools, like Photoshop or Illustrator, for secondary tasks).

The output of web design is, ultimately, HTML and CSS, so what reason could a professional have to work with tools that can only yield an approximation of what they are paid to do? In my view, a designer without full mastery of at least HTML and CSS doesn't really deserve his title.

Going a little farther: with some knowledge of JavaScript, JSON and how to transform it (map, reduce, filter, sort), a designer can ask for some sample data and come up with a functioning prototype that offers truly important insights into the problems his design is supposed to solve. Client-side frameworks like Svelte.js are making all this very easy.

Nothing is more maddening, and a waste of time and money, than a Photoshop mockup using rudimentary, and generally too self-complacent, content.

You're right, everyone should have the same job as us! /s

Design is a different skill set than writing code. For some highly visual/spacial people, design is easy and intuitive, and managing lines of text is very unwieldy. Be like, 1% empathetic dude.

Anyway, if designers wrote the code you'd be out of a job. Design should be a continual conversation between someone with the vision and someone with the skills to implement it.

My comment didn't exactly imply that designers and programmers are the same, simply that web designers should be able to use the tools (and fully understand the constraints) of what constitutes the final output of their job, that is HTML and CSS. Writing CSS and server-side code are obviously two very different things. A designer could be a guy who types CSS in a text editor, among other things.
Might be a tough pill for some, but ultimately I agree it's the way the industry needs to end up. Consider the architect; he doesn't get to blue-sky wild ass concepts for a building. He has to draw within boundaries of local codes and feasibility, often using technical tools such as CAD.
An architect doesn't need to know how to tie rebar, though. That's more what the other commenter is suggesting.
"Designers should be engineers so they know what they're actually doing" is a pretty common feeling among engineers who have to deal with designers--not just in computer fields, but also in hardware, construction, even landscaping sometimes.

The reality is that they are very different disciplines, and the ability to integrate those competencies can be a competitive advantage for a company.

> The output of web design is, ultimately, HTML and CSS

The output of web design is ultimately a rendered, interactive webpage. We approve or reject websites by viewing them in a browser, not by looking at their code.

> a designer without full mastery of at least HTML and CSS doesn't really deserve his title.

Add to this the fact that the vast majority of web developers are very far from having a "mastery" of HTML and CSS. It's a huge API full of hacks and pitfalls.

Teach rudimentary HTML and CSS to a designer and they'll begin to think in that rudimentary interface, forgetting a competent developer with their far greater arsenal of tricks and tools can actually implement any UI they could imagine.

Your argument could apply to a field where the path from idea to end product is more straightforward. For instance, a comic book writer is expected to master the full pipeline from idea to colored page. A Disney concept artist on the other hand, is absolutely not required to know anything about 3d modeling. Web design mostly falls into that later category, we don't want our designers' creativity burdened by our medium's tedium.

> Humans love standards and standardising things so I think whatever the future is, it'll always gravitate towards 1 or 2 main tools.

I need 5 different chat apps on my phone in order to talk to all my friends and colleagues. And that doesn’t even include many of the ones I’ve read about online which are apparently popular elsewhere, like WhatsApp, WeChat, and Telegram. Standardization is great, but the set of tools we end up using is an accidental emergent property.

> This is a crazy idea but hear me out. Inspect Element is amazing. It’s what Hadron is basically utilising in its app. The experience that Chrome and Firefox have created around things like animations and grids is impressive. So why can't Chrome and Firefox add a few extra features, let developers enter “Edit” mode and allows those edits to change the files you are manipulating?

Wasn't it possible to set up Firebug to do this, before it died and was replaced with the built-in tools? (Or am I thinking of a pre-quantum add-on to the current tools?)

I've been working on an IDE and one challenge is to reverse all the compilation of modern frameworks in order to get WYSIWYG editing on the compiled app.
The author's assessment of the "no-code" and "hybrid tools" landscape is either lazy or a joke. Here are a few more:

No-code tools for apps & websites:

  - Webflow
  - Glide
  - SquareSpace
  - Dreamweaver [1]
  - Visly
Hybrid "designer/developer connectors"

  - Hadron
  - Modulz [2]
  - Interplay [3]
  - Haiku [4]
  - Zeplin
  - Zeroheight [5]
  - InVision DSM [5]
Sad to see this blog post on the front page of HN since it's such a poor representation of this landscape. Hopefully this comment helps in a small way :)

  --
[1] yeah it still exists, and yeah it's pretty much still Webflow as a 90's-vintage desktop app.

[2] Modulz' product doesn't exist yet, but they've built hype. Caveat emptor.

[3] Just like Modulz, but from what I've seen there's more execution and less hype.

[4] My company: we pivoted our original "designer/developer connector" into an animation tool — we're launching our new collaboration tool soon.

[5] Sort-of; designer-focus

The remarks about the author detract from Hacker News more than the information in the comment adds to it. Removing those remarks would improve the comment. Adding links to the resources might improve it further but won't make it good Hacker News comment if the remarks remain.
Thanks for the feedback!

"Lazy work" does not mean "lazy person." And "joke" would be better stated as "this article reads suspiciously as astroturfing."

But I see how the blunt call-out of lazy work and tip-toeing around the astroturfing vibes—i.e. the way I worded my comment—could read as a personal attack, and I agree that's not a productive way to approach discourse.

I missed the edit window, but I would amend the first line: s/author/article and s/a joke/intentionally misleading.

The proposed edits don’t assume good faith and don’t contribute to understanding the topic. Instead here we are in the weeds.
The article is misleading. That's either unintentional or intentional.

Per Hanlon's razor, my first hypothesis is the former but we shouldn't rule out the latter. Proactively question good faith but don't proactively doubt it.

Calling out the article as misleading mitigates the damage it causes and thus exactly "contributes to understanding the topic."

Policing remarks detract much more the conversation that a bunch of unlinked resources, which you can google anyway.
The comment only started this conversation about it’s negativity. It created an attractive nuisance. Obviously.
Another article on design for software that is written as if there will never be another non-browser/non-CSS app ever again.
I have a #5 proposal. I believe as the future gets simpler. We’ll be on the lookout for a “Morphing UI”. One that adjusts based on the environment. We’re kind of seeing this paradigm with conversational bots - though not perfect. Perhaps entire spaces built with something like: adaptivecards.io

It can’t replace all of our traditional UI. However, with more A.I. requiring less inputs, there may be a future where data, not UI sets apart services.

(comment deleted)
One of the things I rarely see discussed or even mentioned is the ability for designers to easily provide incremental design improvements to engineers.

Software development now has long established practices to develop and deliver incrementally. Where it is understood that you are delivering value piecemally.

With the disconnect present between design and development, I think design is still lacking in working out how to approach problems incrementally. All too often, you are handed down a design to deliver in one go, when you can't reasonably do that.

Perhaps it's my lack of familiarity with the field, but that's my perception. (To be clear, majority of software devs still struggle with it too, but core principles have been known and applied for 20 years).

Do any of the tools mentioned (or not) specifically focus on that aspect of coordination?

I see teams who are investing in "design systems" approaching this operation model. They're codifying the design language, teaching their applications to consume this language, and then making changes to subsections of the design system iteratively.

The design function (designers, product) can make changes widely, or isolate them to specific components, and test these changes at each step rather than the "all in one go" we're used to.

That is great to hear: do you have any links to less abstract write-ups of how it looks and works in practice, and what (software or otherwise) tools are employed?
Let me do some digging and see if there is anything internal I can share. If not, the airbnb engineering blog has some good articles on this approach: https://airbnb.design/building-a-visual-language/
Lovely: thanks! It'd be great to see if you can do a write up too, I'd love to read it!

However, the article about DSL at AirBnB does not address my concern fully — how does one go from an existing component to a new component, design-wise, is my question? They seem to be mostly concerned with the consistency of the end result, especially in a large and diverse team. I wonder about the consistency of the interim results (which frequently end up being the end result).

For now, those interim steps are usually left to the software developer to decide on, meaning that until the full "migration" is considered complete, the component will be somewhere in between. And as projects are descoped and priorities change, it is a very real risk that components will be in that half-baked state forever.

I know that I have gone through the exercise a number of times, always leaving designers unhappy, because I implemented only parts of what they designed before I was pulled onto another project. And while I try to be cognizant of the design issues, I neither have the time, knowledge nor experience to do a good job of it.

If design instead provided incremental steps that are not necessarily half-baked, but just steps in the right direction, I think it would improve results developers put out, and at the time of "descoping", the component would still be consistent and usable.

It sounds like an entirely different axis to what the tools are providing today — we've gone from bitmap mockups, over vector mockups and state transitions, to interactive and explorable mockups and component libraries, but we are missing that "road" from "now" to "there" (a timeline of mockups with all the phases). I know designers can choose to do this "timeline" together with developers "manually", but it seems like a great thing for a tool to help with.

As a developer, I like being given a "feature" to work on, and I prefer not to break it up before hand — I start on something small that should bring some value and that will give me an idea of what step should come next. Basically, I know how I can develop an interim result that is of as high quality as the end result would have been: it just achieves different or fewer things.

I would expect a tool that has "current state" as the start, and maybe "end state" as the end (though in software engineering, we found out that the expected end state is never the end state), and it would allow a developer and designer to effectively work together to design the first step in a coherent manner that will take them both to the end state. "Coherent" is important here so it's not just a step towards the end state (which is what developers usually resort to, which are commonly artificial improvements which might not be improvements at all).

Surprised Facebook Origami isn’t mentioned to bridge the gap between devs and designers.