Skip to content(if available)orjump to list(if available)

Developers should embrace creative coding again

arcbyte

To be creative you need less utilization. Business have been so focused on reducing utilization they have inadvertently removed creativity (which they probably don't care much about). However, as dev utilization is high, service times become elevated as well. As things take longer and longer to turn around, we'll see utilization come back down.

nradov

I think you meant that businesses have focused on maximizing utilization. It turns out that this is the wrong thing to focus on. Even if you don't care about creativity or innovation, from a purely economic standpoint it's more important to minimize process step queue length instead of maximizing resource utilization.

http://celeritaspublishing.com/books/

hinkley

Queuing theory also says it’s wrong. That’s why the lines everywhere get so long. They’ve optimized for somewhere on the bell curve of usual activity levels and any time tasks come in faster than that, wait times grow extravagantly.

If you want wait times to be short you have to aim for hair under 60% normal usage.

from-nibly

See also "The goal" by Eli Goldratt

codr7

I agree, once of the biggest mistakes almost all companies make these days.

They just can't stand the idea of employees not being super busy.

The result is everyone optimizing to look super busy.

arijo

In my experience most businesses come from the assumption that there are creative roles(e.g UI/UX) and engineering roles.

Engineering is there to implement the creative vision - not a creative endeavour in itself.

They are aware that creativity takes time - but that engineering resources need to be efficiently allocated and optimised.

pdimitar

It seems that this cycle of civilization will end and businesses will still not grasp the very simple fact that often times programming is both engineering and creativity.

Oh well.

adregan

Let’s not all point a finger at the “business” boogeyman who doesn’t understand coding is creative without acknowledging that many programmers today are right there with them.

The current state of interviews tells me that a lot of programmers prefer to think of it as software “engineering” rather than as a craft or trade. If creativity meant something to them, I wouldn’t spend all my time bored silly trying to memorize algorithms.

robertlagrant

UI/UX staff are also generally pretty good at establishing and defending a creative beachhead in organisations.

null

[deleted]

tuan

I think it's the lack of trust in employees that companies want to increase utilization as much as possible. It's like if employees are not working on assigned work, they would not do things that benefit the company in any way.

dehrmann

> However, as dev utilization is high, service times become elevated as well. As things take longer and longer to turn around

Funny enough, this is exactly like running a server. Once CPU is over ~80%, request latency increases quickly.

nyrikki

It has also reduced quality and the incremental improvements intended to happen during 'slack' time.

Pretty much why people hate Agile, what most people got is a poor mixture of Taylorism and modern organization design.

But hey, the Tableau viz looks good in the meeting!

nradov

The major enterprise agile methodologies such as Large Scale Scrum (LeSS) or Scaled Agile Framework (SaFE) explicitly state not to do that. I've seen agile done well, but of course many organizations with incompetent management fail to implement the documented best practices.

https://less.works/less/principles/queueing_theory

sirjaz

I wish we would see more developers embrace desktop native apps again. We have such powerful machines, only to use them as glorified dumb terminals

robenkleene

It's fascinating to see so many folks out there supporting web apps, because I personally don't like using them. They're fine for tasks I don't care about being pleasant, like, say, quickly buying something online.

But for anything I consider work, that takes toil, like writing, editing media, or programming. I'll avoid using web apps, these tasks are hard enough on their own, I don't want to make them harder by using software that, to me, lacks joy (due to it not hitting my bottom line in performance, reliability, or even beauty). I just hope enough folks out there continue to appreciate native apps, because I think my continued joy at being in tech depends on it.

prmph

Native apps don't offer deep liking and bookmarking. You can't easily open multiple instances of the app in multiple tabs. Your data is usually tied to the specific devices you are using. Unless carefully designed, desktop apps might not be responsive or adaptive to various viewport sizes.

I know native apps are likely faster and use the full capabilities of he device, but the advantages of web apps are too many. Also, web app failing to inspire joy is a indictment of developers who don't care, not of the medium itself.

cosmic_cheese

All these depend a lot on the app in question.

Native mac apps for example get a whole tabbing system for free so long as they support multiple windows (and most apps that one might want tabs in do). Deep linking is not difficult to implement in native apps and in fact some do.

As far as tying data to devices goes, with the exception of apps built around databases this is usually trivially changed by placing the data in question in a folder synced with SyncThing/iCloud/OneDrive/etc and most importantly gives you the choice, whereas many web apps will happily keep you pent up in their cloud with little or no capability to export full-fidelity data.

xyzzy_plugh

> Native apps don't offer deep liking and bookmarking. You can't easily open multiple instances of the app in multiple tabs.

Sure they do, and sure you can. It's up to developers to support, but it's certainly doable.

I think you hit the nail on the head in the subsequent sentence: native apps need to be carefully designed to compete with web apps. No one cares enough to do that.

robenkleene

> Native apps don't offer deep linking and bookmarking.

Sharing files is trivial, and just putting files in a folder is the file-native to find something again (i.e., bookmark). Personal preference whether one of these systems is better or worse than the other, personally I'd just call them different.

But I would specifically callout collaboration on a single document as a strong suit of web apps. E.g., two people editing the same document (like a Google Doc) is pretty much the only task that I'd prefer a web app for. Also referencing a single specific line in a document. Again I use web apps for doing that (e.g., find the exact line number of some code on GitHub to share), but I can't say I enjoy the process.

> You can't easily open multiple instances of the app in multiple tabs.

I'm mainly talking about desktop apps, which today almost always support multiple windows and/or tabs.

Might be missing what you're getting at here, are you talking about mobile apps? I'm pretty sure iOS also supports multiple instances of apps, but I don't need this functionality often enough myself to care. Again, maybe I'm missing what you mean here?

> Your data is usually tied to the specific devices you are using.

I don't think this has been problem since the first release of Dropbox in 2007? Again I might be missing something, but native apps are either file-based in which you can easily sync the file, or are a front-end for a database, in which most apps have a way to sync across devices? Syncing is kind of table-stakes for apps these days.

> Unless carefully designed, desktop apps might not be responsive or adaptive to various viewport sizes.

I'd argue this is more of a problem on the web than desktop, a well-designed desktop app will enforce a sensical minimum window size, whereas in my experience most web apps absolutely fall apart when you shrink them too small.

> Also, web app failing to inspire joy is a indictment of developers who don't care, not of the medium itself.

I don't agree with this type of reasoning, i.e., I don't look at a technology and say "there's nothing stopping it from making great software!" Instead I look at how great software is being made, and then prefer that technology. At the end of the day the only real proof that great software can be made using a technology is the great software itself.

mikedelfino

Does Visual Studio Code qualify as a desktop app?

robenkleene

Visual Studio Code is an interesting case study. I don't know how I'd categorize it.

In the past I've noted how absolutely glacial it is with some tasks, and it's baffling to me how this stuff doesn't drive folks insane (much like the enjoyment of web apps is baffling to me), I guess people just care about different things:

1. It takes nine times as long as Vim to open a minified JavaScript file, and then format it with Prettier: https://twitter.com/robenkleene/status/1285631026648276993

2. It takes 14 times as long to open an empty text file than BBEdit: https://twitter.com/robenkleene/status/1257724392458661889

(Note those time trials are years old, this may be different now.)

But even though VS Code is objectively slow for some tasks, I would still categorize it as extremely high-quality software. So at the end of the day, I don't know. VS Code isn't for me, but I'm not confounded by it having fans the same way I'm confounded by web apps in general having fans.

crazygringo

I don't. I hate installing, and I hate both apps and data that are tied to a single device.

I like the security model of browsers, and I like using browser tabs to organize my apps like Gmail, Docs, etc.

And webapps can use your CPU and GPU just fine. We have such powerful machines, but checking your email isn't going to use that power regardless of whether it's a desktop app or a webapp.

bdhcuidbebe

> I like the security model of browsers

What security model?

Relying on a third party cloud provider for your secrets is the opposite of a security model.

If you are talking about the browser sandbox, then it helps nothing with keeping your data secure from actors you dont realize are bad.

faust201

1. Easier to keep one program update. i.e browser. use firefox (or its nerfed clones) if you hate Google or Apple

2. For any decent software it needs update. Even most opensource tools are hundreds of MB. For example, a school teacher in Zambia does not need to download digikam or okular or notepad++ or ffmpeg every week to get security updates.

> it helps nothing with keeping your data secure from actors you dont realize are bad

Once you enter that then you have only https://www.raptorengineering.com/ and using terminal.

marssaxman

Fortunately for you, the world as it currently exists is well suited to your preference!

It is less so for those of us who would prefer more control over our machines and our data.

closeparen

I understand why scrappy startups like Electron, but it's astounding that companies as large Spotify and Slack won't shell out for a couple of Windows/MacOS native developers.

mojuba

God how I hate Electron apps (nothing against Electron itself though)... People don't appreciate how much it means for example, for Mac users not seeing the rubber band effect on scrollers, let alone everything else feeling just unnatural and sloppy. You are immediately transferred back to the 1990s. Why should I care that some big fat corporation wants to save pennies on native app developers?

I can forgive a free and open app running on Electron (hello, Signal), but never a commercial one, full stop.

barbazoo

What difference would it make? The macOS app is fine as far as I can tell.

sgt

That's only after a tremendous amount of effort, with high CPU and mem utilization to add to it. The potential with native (at least on Mac) would be much higher.

esafak

Slack is slow and bulky. It gives Teams a run for its money which, not surprisingly, is even worse.

pdimitar

Please define "fine"? There is always a very detectable lag when switching between channels and/or DMs. Always. Not a single exception.

There's zero technical and human reason for allowing that to continue. The visible-on-the-screen messages are cached and you can, you know, just get on with it by painting the whole thing on the screen right away.

It's "fine", he says. "Fine"...

[grumbles under his nose, annoyed, and ventures into the far distance]

null

[deleted]

acureau

Electron can be done well when treated as any other Desktop UI framework. VSCode is probably one of the only examples of that. I think the bad reputation comes from lazy wrappers pushed out to tick the "Desktop app" box, which are the unfortunate majority in my experience.

pdimitar

Well you kind of debunked your own first point: while we theoretically can have very fast and responsive Electron apps, the fact of life is that we don't; they are a vanishing minority.

What "can" be done is kind of irrelevant. What's much more important is what metrics would the default (or lazy as you called it) way of doing things with framework X or Y net. If the defaults are a slow and laggy app then that's what 95% or more of the using apps will be.

samspot

I'd say they would need at least 30 people each to support windows & mac native apps. Especially considering all the extra overhead having multiple codebases introduces. Maybe more than that.

Edit: Just to clarify "need" is in the context of working in a big company on a complex product. These products are a lot bigger than they appear.

closeparen

According to the latest public information, Slack has 2,545 employees and Spotify has 9,123.

pdimitar

They have thousands of devs and I am pretty sure a good chunk of them are only resting and vesting.

They absolutely can allocate even 100 in total.

bdhcuidbebe

Tangent but the original spotify gui was about 1mb download and blazing fast. In no small part because of the original author of µTorrent (and ScummVM) had a central role. [1]

Spotify the company only moved to a electron remake later, I can only guess because it was hard to find more quality devs.

People might not remember this, but µTorrent used to be amazingly snappy too before it got bought and shovelwared.

1: https://en.m.wikipedia.org/wiki/Ludvig_Strigeus

andoma

At work I've introduced various in-house tooling based on Dear Imgui and people are just blown away by how fast everything is. "I didn't know computers could be this fast and responsive". I say, well just think about the fact that the machine at your fingertips can do billions of calculations per second and it shouldn't be that much of a surprise really.

taraindara

I’d argue that desktop native is also the most likely to introduce system breaking bugs, viruses, and malware. A web app is much safer from these types of issues.

The result is people can use more efficient terminals to do most of what they need. And the powerful native machine is available when that extra power is justified.

skydhash

That's because the web browser is a sandbox. We have sandboxing technology for native apps.

spacemanspiff01

What is a cross platform sandboxing technology for native apps?

sorenjan

Telegrams desktop client[0] is native (C++ with Qt) and it's a joy to use. I don't want an Electron chat app.

[0] https://github.com/telegramdesktop/tdesktop

reactordev

If I had a dime for every web framework... We need better desktop api's. It's hard enough having to abstract nuances of linux/unix vs osx and the like. A better, more robust, desktop framework is needed (and no, not just another web framework on top of it because UI is hard).

Less Electron's, more OpenGL's - Less XML and more Swing (just not swing, plz).

corytheboyd

Sure, but learn from why the Electrons of the world are winning. It’s because browsers are already what you would get after reinventing the wheel all the way to its logical conclusion— a highly customizable, generic application runner. Let’s not throw that away and make an Nth new thing. HTML/CSS/JS are good enough abstractions with great implementations, and it’s easy to build applications against this. Portability is already solved too. Yes, we can do better than shipping each application with an embedded web browser executable, there are huge jumps being made all the time with native web view frameworks. Personally, I think the ship has sailed on making the “perfect” framework, let’s pick the one that’s already winning and make it the best we can.

cosmic_cheese

Electron/web still has the glaring issue of its primitives being, well, too primitive. They’re great for documents and lighter “web 2.0” apps but have a long way to go for the purposes of replacing full fat desktop UI frameworks.

This is actually a big factor in why web apps have the perception of being bloated. Basic widgets being missing means that everybody and their dog has their own custom implementations, nearly all of which are somewhat slapdash in nature due to speed of implementation being prioritized over quality. They never meaningfully improve either since there’s little sharing of efforts, with everybody instead preferring to reinvent wheels for themselves.

If the platform provided a more robust set of widgets, much of these problems would go away since devs would be using those instead either as-is or with light cosmetic customizations. Over time the browser implementations would get better and all users would benefit with more performant, less buggy apps.

emursebrian

Browser based apps are better than ever. As a developer who has delivered applications on CD-ROM and downloadable installers, I do not have a strong desire to return to these times.

Browser-based word-processing and spreadsheets pretty great. I love VS Code. The multimedia capabilities of browsers are pretty good and up to the tasks I need them for.

pdimitar

OK, I still want instant switch between separate chats in Slack though, not this 1970s-like 1.5s laggy slow transition on a machine that can scan ~300K files in the same 1.5 seconds.

kouru225

I know no one here wants to talk about NFTs and crypto, but the generative art NFT space has been home to some really awesome creative coding. Specifically the Tezos chain. Fxhash.xyz verse.works Feralfile.com Artblocks.io Objkt.com Highlight.xyz

These are all spaces where creative coding took off in 2019-2022. The scene has died down a little, but that also means that the people who are still active aren’t just hopping in on a fad. A lot of the artists are people you might already know by name: Kim Asendorf, who created pixel sorting. Casey Reas, who was part of the original team that created processing. Karsten Schmidt, who made the wonderful open source library thi.ng. There are a lot more names and things to say about this but IMO the only reason people feel like creative coding is dead is cause it started using NFTs and crypto, and they all promptly ignored all the great output these artists had.

Bjorkbat

I'm personally kind of anti-NFT myself, but I have to admit I do like the generative art NFT scene, especially back when Hic Et Nunc was around and people were selling fun little things they made for the equivalent of $5 of TEZ.

To me the thing I hated most about NFTs was the unbridled greed and opportunism, people trying to get rich quick by making bad pixel art or stealing other people's art as their own, so it was really refreshing to see a community of people making things fun things and selling them for dirt cheap, and seeing other people buy said things simply because it was kind of fun.

kouru225

HEN was popping. Those were the fun days lol

relaxing

> it started using NFTs and crypto, and they all promptly ignored all the great output these artists had.

I know I did. The whole mess really opened my eyes to how vapid much of it really was — how little “art” there was present in the creative output.

As an aside, I’m hoping to one day see an exhibition of actual code (not output) that can be read as art. I only know of a few examples, but maybe some day.

scop

To creatively code one must first in fact code. I went deep down the IDE->AI rabbit hole. They are amazing tools. However, I have settled into a bare-bones Sublime Text editing flow, wherein I pop into IDEs/AI as needed for one-off items. I am really enjoying it. Oh, I hit a snag? Well, let me think about it for a moment and then if I'm really stumped or need a second opinion I'll pop open Cursor.

Creativity is odd in that it is somewhat revelatory: it seemingly comes from outside of you. At least for me I need to minimize input (e.g. reading docs, AI chat, etc) in order for this revelation to "manifest" in my mind. I don't have the self control to "pause" in Cursor or other IDEs, so I use Sublime to truly read and wrestle with code.

N.B. this isn't some fanatically held rule...I'll do a whole session in Cursor if I know the task is appropriate for it (e.g. something that is mindless).

Bjorkbat

This is in line with my perspective that writing as a form of self-reflection and thinking out loud is underrated. Likewise, programming as a form of thinking out loud is also underrated.

For complex problems, I find that it doesn't matter how much planning I put into the task, I always find shortcomings in my initial logic and imagination once I get into the details and get involved in countless micro-decisions. Personally, I'd prefer thinking out loud through a programming language vs countless back-and-forth with an AI.

Bjorkbat

I'm not going to say that this isn't creative coding, since that sounds elitist. What I will say is that this is a very shallow interpretation of creative coding.

With very little learning and modest effort you can make very fun 2D art pieces with p5js. If 3D is more your jam, there's three.js. If you hate web dev, there's countless other creative coding libraries and frameworks for whatever language is more your speed, such as Processing for Java, or openFrameworks for C++, etc etc.

But they're not talking about that. Instead they're talking about new browser features like OKLCH and container queries.

Which to be fair they've given some very cool examples of people using browser features creatively, but otherwise these features (or lack thereof) were never the bottleneck for my creativity. The real unlock for me was learning a lot of math, things like simple linear algebra so I can do otherwise complex transformations across a scene, or learning the underlying mathematics of bezier curves.

Like, this is a sanitized, corporate perspective on creative coding, but then again I'm not sure what to expect. This is a Figma blog post about career advice more than anything else.

mtkd

One of the reasons Rails happened in the way it did was due to many non-coders embracing it early and questioning why programming for web had to be done the way it was ... you would meet people at early Ruby events with background in arts and such ... many of which went on to succeed massively and ended up having to retrospectively get deep into classical CS theory to deal with performance challenges

arijo

I fail to understand what new idea is the author trying to convey.

Can someone please help me figure out what I'm missing?

striking

It's a reaction to how so many new websites are just Wix or Squarespace templates despite all of the new capabilities our browsers have gained; they appreciate how much more accessible web development has become while bemoaning the cost to creativity and expression that came with it.

The article links to examples like https://lynnandtonic.com/archive/2019/ or https://optical.toys/ (I personally am quite fond of https://acko.net/) which, though their site content could be expressed with templates someone else built, it's conveyed in a more interesting or more useful way because of the thought and care put into effectuating the intended design as an interactive work.

I think one weakness of the article is that it doesn't draw upon the rich history of how creative coding has enriched everyone's coding experience. Cracktros turned into demos, demos turned into the demoscene and also into the early video game industry. Early Ruby and Arduino communities, flush with artists, became testbeds for all manner of intersection between art and software while also pushing the boundaries of what the tools were capable of. But ultimately, they're right. A handcrafted site making full use of browser features is just not something you see very much anymore.

Of course, it's not everyone's cup of tea. I'm not surprised about the dismissals elsewhere in this thread. Some folks just want to get their work done, and that's fine too.

graemep

Basically people should do more digital art that involves "coding" where coding means "using HTML, CSS, SVG animation etc" rather than necessarily software development.

arijo

I was expecting something more grandiose but your explanation is good enough.

mostlysimilar

> Developer Advocate, Figma

If this person wants to advocate for developers they should stop giving their labor to an organization that wants to replace us all with robots.

scelerat

Things just havent been the same since Jacquard's loom

janice1999

If a mill worker encouraged fellow labourers to work for free for the factory owner who was actively replacing them with machines and a handful of low skilled, powerless and badly paid workers, that worker would be considered insane.

null

[deleted]

Larrikin

Is it possible to be a developer without doing some form of that?

kokanee

Coming from Figma this article feels like a poorly veiled plea for customers, disguised as thought leadership.

mock-possum

I don’t get the reference, is this about LLMs?

bilbo0s

Self awareness is a virtue.

A super majority of developers are engaged in labor meant to replace non-developers with robots. We shouldn't really complain when the reaper comes for us.

keybored

Famously: first they came for X... and then when they came for me I didn’t complain because that would be cringe and hypocritical.

fifilura

What is your proposed remedy?

bilbo0s

It's more like:

first they came for X, and I helped them disappear X because they gave me a share of the money X was making and it was good money for me! ... and then when they came for me I didn’t complain because that would be cringe and hypocritical.

jt2190

I believe the author also means “unconstrained” and “personal” when he calls for more “creative” coding. How else can we play with these technologies and push the limits if we also have to fulfill a business case and ship by EOD? I agree there’s a lack of “let’s see what this crazy browser thing can do” projects out there.

null

[deleted]

knallfrosch

Does the article really talk about creative coding or just more unique design?

In any case, creating creative websites is nice as the creator. But visitors have a need that they want fulfilled. They don't marvel at websites, they just use Amazon.com because it has everything, not because it had colour gradients.

foo42

counterpoint: when you visit a site, do you want to be surprised and delighted, or do you want something predictable you already know how to navigate? Or perhaps I lack the flare to spot that as a false dichotomy

ambewas

I was thinking the same. The author makes a great point when it comes to a portfolio, but most of the work I do is for corporate clients for example. They value efficiency and ease of use (I.e. predictability) of a ui/ux solution over any creative outlet. I don't think I should start doing more of that.. I'll be out of a job pretty fast