Developers should embrace creative coding again
figma.com
figma.com
They just can't stand the idea of employees not being super busy.
The result is everyone optimizing to look super busy.
If you want wait times to be short you have to aim for hair under 60% normal usage.
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!
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.
Oh well.
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.
Nuance also demands we point out at the businessmen who can't discern one programmer from another. Different people thrive in very different environments and this is, 99% of the time, ignored.
> 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.
Engineering (things) is a highly creative activity.
(EDIT: See also the comment https://news.ycombinator.com/item?id=42893523 where drewcoo gives arguments for a similar statement).
Software often seems more like cooking than engineering, where most of the staff of a kitchen is focused more on mastery of patterns and techniques than on innovations, though. A friend liked showing us all the tricky things he learned to do on his way to becoming a chef. My father the engineer liked to show us models of the industrial robots he'd designed and talk about how he overcame difficult design problems.
The solution (if there is one) is for the engineering/creative type to make and run businesses. Easier said than done.
And I'd argue that former nerds turn into predatory CEOs just fine, given enough time and money, too.
Then I think there is also the relatively rare situation of assumed, sociopathy when one realizes that the vast majority of their subordinates (or in general people) are a pretty sorry lot, if one where to peel back the veneer of civility and virtue signaling. I suspect that at least some successful technical founders of large companies fall into the category.
Universe can make its creation rhyme in our mind, but it creates every moment as a unique new distinct performance.
Funny enough, this is exactly like running a server. Once CPU is over ~80%, request latency increases quickly.
If you're on Discord, it's a pretty active community and I'm pathologically online helping newcomers
Less Electron's, more OpenGL's - Less XML and more Swing (just not swing, plz).
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.
> […] pick the one that’s already winning and make it the best we can.
I agree, it can be much better. Tons of incremental improvements have been made, and should continue being made.
I too would like to see browser close the gap completely, supporting everything needed to build real applications, not hacked together applications that accidentally work. We seem so close…
The main problem I think is what you have identified: we need sophisticated composable widgets with practical and sensible defaults, that are also really customizable with scoped CSS, built right into the browser. This alone would be the biggest QOL improvement as far as web development goes, in several generations. I really don't know why this is not the highest priority for the W3C
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]
I can forgive a free and open app running on Electron (hello, Signal), but never a commercial one, full stop.
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.
They absolutely can allocate even 100 in total.
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.
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.
Not to mention that desktop UI development is just unpleasant. I say this as someone who would really prefer that not to be true, it's just that in my search I've been disappointed. You choose between a number of imperfect "cross-platform" frameworks (and deal with their licensing), or maintain native code for several platforms. Creating custom "widgets" often requires you to start at the drawing API level and have a deep understanding of the framework.
I am keeping an eye on Avalonia, though. The tooling wasn't quite there yet when I tried it.
:(
I get it, I work with some multi platform apps and I just don't want 20 layers between me and the damn device and some crazy build process ... I hate it.
But I can't argue that going native everywhere isn't it's own hassle.
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.
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.
It is less so for those of us who would prefer more control over our machines and our data.
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.
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.
This brick/EOL is a different issue but common man benefits from simplicity. Yes, environment is trashed or software obsolescence - but yet - most of them buy a new phone or device every at least 5 years (of course, I am talking within my circles - there may be people at different ends).
I used to buy expensive nexus phones. Then I realised I use only WhatsApp and Banking. Now I buy cheapest Motoroola for $100. Works fine. Become EOL in 2 years as they are bad in updates. Get another one for $100. Latest OS.
Instead if one spends latest pixel flagship for $800 - no benefits.
> Updates aren't something inherently bad but they're being used in evil ways with no resort from users other than leave.
Yes there is no resort but people live in real life. They need banking, recent cool apps etc. Some could live like RMS and not use anything modern or use Terminal but most people don't.
You must be relying on inferior update mechanism. This is a solved problem since long with a central package repository as you will find in most linux distros. On windows you have scoop, chocolathy and winget (from microsoft btw) attempting something similar, on macos there is macports and homebrew.
> Even most opensource tools are hundreds of MB
Even if this was true, and it isnt, I dont think you realize how heavy most web pages are today. Those hundreds of MB is used up fast, while the offline app is still there.
> 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.
Agreed. Noone needs to do that. If you are concerned with security, then you should also learn to understand your attack surface. Otherwise it is just FUD.
Example dont feed ffmpeg with unknown files in a uncontrolled fashion. You should understand that the videos you recorded yourself are safe and wouldnt need the very latest update to be processed.
> Once you enter that then you have only https://www.raptorengineering.com/ and using terminal.
What, no. Using normal offline apps is all it takes.
Why? If you encrypt your data, it doesn't matter where it sits. And if you don't, then there's not much difference between the government getting the data from AWS or them seizing your laptop. And a non-state actor will probably find it much easier to steal your laptop than to get access to your cloud account.
> If you are talking about the browser sandbox, then it helps nothing with keeping your data secure from actors you dont realize are bad.
Of course it does. My tabs from different domains can't steal data from each other or from the rest of my machine. The desktop applications I install can.
At some point applications completely broke my trust, and the OS manufacturers failed to protect us, and now we're all paying for it with inefficient garbage everywhere.
For native apps, I treat non-obvious need for sudo or admin priveleges as a smell. The way everything on Windows needs admin is actually one of the reasons why I don’t use it for anything but games.
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.
And I say this even after the adventure of trying to decipher whatever Microsoft is doing/going with their 4 or 5 competing frameworks and SDKs.
But I still find huge value and love a good web app whenever what you need doesn't really need to be native which was not my case.
There will still be uses for native apps for a long time IMHO.
Sure many people don't update like ever, but Apple's and Microsoft's app stores do updates without asking people anyway (they learned, finally).
Not such a big problem as you make it out to be IMO, even for very casual non-technical users.
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.
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.
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.
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.
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.
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.
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.
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.
Automating jobs is only a problem under capitalism because a minority owns the means of production.
Anyway. Socialism has failed in many/most places mostly because of power, corruption and lies.
What makes you believe your version will succeed?
A transitive verb requires a direct object.
> And it was intended as a rhetorical response to your single word statement.
It’s a perfectly well-formed, complete answer. The haters know what it means, the lovers know what it means. Everybody else can use Google.
People who then ask for a completely general followup (at least as it pertains to this subtopic) instead of a more specialized question most likely aren’t really wondering but just want to fire back with their talking points.
> Anyway. Socialism has failed in many/most places mostly because of power, corruption and lies.
The power of whom? Maybe the US? That invaded Vietnam, that split up Korea and bombed North Korea, that tried to do a coup in Cuba, that intervened in the political process maybe 40 times in Latin America.
Yeah, the power of capitalist imperialism is a huge problem for socialism. Maybe unsurmountable.
I still believe you gloss over the terror all the countries you list have caused to the population.
And it can not all be blamed on imperialism and "other states".
I come from one of the "middle ground" countries (Sweden) but much of the remaining state ownership and planned economy was wiped out in the 90s when we had an economical crisis.
(And if you want to nitpick again, the last paragraph was not a statement only an observation)
> And it can not all be blamed on imperialism and "other states".
Concerns such as these can apparently be set aside with the mere use of scare quotes. But it is perhaps understandable. Even politically high-ranking Swedish individuals that criticize imperialism can get bodily hurt, as history has shown.
[1] Unless one is supposed to do that as a matter of course when advocating a political ideology like capitalism or socialism.
Note. The split was done by the Soviet Union and the US.
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.
Can someone please help me figure out what I'm missing?
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.
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).
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.
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.
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.
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.
Here’s his site: https://piterpasma.nl/
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.
Learn a new framework? How about a new language? Start a side project? Turn my side project into a side business? How about brush up on my AI/LLM knowledge? Let's not forget to leet code in between, to stay fresh and ready. And also, if you're dissatisfied working low level, try high level. If high level, try low level. Aren't you falling behind?
I empathize with the message. I remember when :hover and rounded corners first came to CSS. I would love to enjoy spending hours fretting over those very minor details again, without caring at all if anyone ever sees it. But aren't tech companies and tech culture what is draining the creativity out of us while demanding more and more of it in the first place?
I mean, what's the point of doing anything for fun if you can't turn it into a bonafide side project that becomes a start-up so you can escape your local-or-fired corporate hellhole?
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.
Even with a tool that should foster creativity we often gather around something familiar/known. That makes perfect sense psychologically and I'm not here to say that that's dumb. For example, I love creativity but detest modern architecture as it strays too far from the "known" and becomes meaningless. I need to know where to look to find a bathroom for goodness sake.
I guess my point is that a tool that allows for or even fosters creativity does not by any means actually result in said creativity.
Figma is a ( good ) tool, but immense it reads a bit like Smith & Wesson telling us we need to kill less.
! Pun Mode On !