Going “Write-Only”
begriffs.com
begriffs.com
> The etching, and even the pressing and collating of pages were difficult processes but somehow the artists outdid us, we who can so easily create, modify and distribute images. Goodbye cartoonish web images, let me be immersed in nature and see uninhibited art instead.
The author should be careful not to confuse a desire for focus and on the lasting rather than the ephemeral with a fetishisation of the past, of the "authentic", and of the "natural". It is all too tempting to step from use of survivorship bias as a tool, as a filter, into a false belief in the superiority of things past.
> the (false?) feeling of connectedness through a glowing rectangle
This particularly gets to me. I know people who would not be here on this earth today if not for the ability to connect with others through the internet. If you feel like disconnecting makes your life more fulfilling, great! But don't project that onto others by saying that what makes their life meaningful is false. (At least he had the self-awareness to throw in a question-mark.)
When we look at new sources of communication we often judge them based on their average use case, but this ignores the fact that the majority of nearly any form of communication is dominated by the routine and banal. When we judge literature we judge it based on its greatest successes and ignore the mountain of mediocrity underneath the pinnacle, we would be wise to do the same elsewhere. It's easy to denigrate little glowing rectangles, but it's easy to denigrate scribbles on sheets of pressed wood pulp too. But both can serve as the foundation for meaningful connections between individuals, both can provide windows into the transcendent and the numinous, and both can have profoundly transformative impacts on emotions, lives, cognition, values, perspective, everything.
I'm sure there's an 18th century biological treatise establishing that.
As a programmer, I want to believe I'm a writer, a poet, a sculptor.
But the truth is programmers are dancers, mimes, ventriloquists. We're performance artists, and the systems we program really only have meaning as long as we keep programming them (or, if we're really lucky, someone else takes up the dance when we grow tired of it). Once we take our final bows, the programs will fade away and die and all that will be left is a memory of the performance.
Even a complete, self-contained system—one which never sees any changes at any level from software to hardware—will still require periodic hardware maintenance.
Most long-lasting stone structures are in constant decay. Without being weather sealed and maintained, they will decay and fail. Even if they are in moisture and vegetation free environment like the pyramids, they are still subject to that most basic human trait - theft.
Very few houses become or have the pretension to be monuments. Most of them only have a mundane function: they are shelters. The same happens with software.
Very few architects are visionary enough to project an house in a different way and point a new direction. Most of them just follow the existent trends. The same happens with software.
Most houses become monuments because of historical reasons, not because they are the best ones. The same happens with software.
But the truth is programmers are dancers, mimes, ventriloquists. We're performance artists, and the systems we program really only have meaning as long as we keep programming them (or, if we're really lucky, someone else takes up the dance when we grow tired of it). Once we take our final bows, the programs will fade away and die and all that will be left is a memory of the performance.
Nah, it doesn't have to be that way, although it often is.
We're like artists or architects, but most of what we build isn't lasting because there's little demand for that, just as many architects will never get paid to work on anything that might last. The Sistene Chapel lasted; the slums of Rome from almost any era haven't. For every artist whose work makes it into a museum, there are thousands hawking cheap prints on the streets of Paris.
Programmers can build software that will last for a long time. I know people whose programs are still running, untouched, after 30 years. We can solve problems and keep them solved. It doesn't have to be just code; papers and new algorithms can advance the state of the field. Since we're a progressive sort who really believe in the ability of our "magic power" to blow away drudgery, we love when we're able to do that: to solve a problem and keep it solved. If this is applied to code, you can get exponential growth in codebase or library or ecosystem value for a long time.
Here's the problem, though: no one is willing to pay for code that lasts. Just as most architects are building clapboard houses in the suburbs, most of us get stuck writing throwaway code because The Business won't pay for good code by giving us the autonomy and timeframes that'd enable it to exist. Of course, bad code and failed software projeects are far more costly in the long term, but executives are not a tribe known for thinking long term; most corporate climbers have the political skill to get promoted away from their externalized costs before anything can be linked to them.
That's a hard question. Until recently, people relied on institutions to set visions, take on big projects, and think to the future. Whatever you think of governments, churches, and universities, they had long-term plans and that prevented them from being too greedy or focused on the short term.
These days, individuals have more long-term vision than the corporations that they work for. Programmers can expect a fight if they want 30-40 year careers. It can be done, but you have to "steal time" at most companies to keep abreast of changes, contribute to open source, etc.
Companies are now in next-quarter mode, because it's a way to hide the fact that most companies are being looted by their executives. If you create a sense of short-term desperation and mandatory immediate focus, then people are distracted from the hands in the corporate coffers. You basically don't see people thinking further ahead than three months in most companies.
So now we rely on individuals to set the long-term course, but individuals are (coincidence of words not intended) individually effective but rarely as coherent as a well-run institution. We rely on individuals for long-term orientation because organizations no longer make themselves adequate.
The flip side of that coin is that organizations are only as good as their leadership. Being able to select good leadership generation after generation has been something that has eluded mankind since the inception of civilization. There hasn't been an organization invented that doesn't eventually fall to corruption.
So, how do we create institutions that will last? It's a problem that appeals to the ego. The solution would have a much larger impact than just on tech.
The OpenBSD Foundation: http://www.openbsdfoundation.org/index.html
Programming for the on-line world is more like managing a clothing brand - everything is constantly changing around you, things go out of fashion every other month and you need to keep up or else your brand will die and get quickly forgotten.
Like an ecosystem? ;)
Ecosystems have a variety of niches which change at varying paces. A shark isn't better than a finch because it is more stable on the evolutionary timescale, it is well-adapted to a stable niche. More stable niches are not better or worse than transient, quickly-changing niches, they're just more stable.
I think it is important to recognize that the stability of a niche is independent of its value or the care that should be taken filling it. A feed processor must be written carefully even though most often they only live a couple of years before the underlying need for it goes away. A compiler is of great value but without constant maintenance it will be worthless within a few years, as compiler techniques evolve, languages are restandardized, and machine architectures shift. Software written as part of scientific inquiry is frequently worthless and uninteresting after the questions being examined have been answered.
When underlying shared libraries and OS gets update because of security updates, your code ages a bit. In a while it won't behave as you expect, and after long enough it simply won't work.
And let's face it - I would bet less than 1% of the people in this forum write code they would expect to reside in an unconnected box. As soon as you connect it, security updates are required/happen.
The article contains some thought that disagrees:
> To program any more was pointless. My programs would never live as long
> as [Kafka’s] The Trial. A computer will never live as long as The Trial.
> … What if Amerika was only written for 32-bit Power PC? Can an unfinished
> program be reconstructed? Can I write a program and go, “Ah, well, you
> get the gist of it.” … But no. It wasn’t written for 32-bit Power PC. It
> was written for eyes.
See, The Trial was written on a platform that's been around quite a while: German. And it was ported to other, fairly stable platforms, like English.However, if you write some code from the 32-bit PPC architecture, the vast majority of 'readers' possible for your code is very, very small. And dwindling by the day. Nothing you can do! Other than keep working on the code, porting it to the latest version of the OS, architecture, platform, API version, or whatever.
If you wrote some C code that ran on Mac OS 9, for example, you'd eventually be forced to upgrade, because eventually, there are no computers running OS 9 anymore.
Effectively, imagine that a compiler, put in static-compilation mode, would link everything required to run a piece of code (the relevant windowing toolkit, all the system libraries, copies of any OS binaries the code spawns, copies of any OS binaries the code sends messages to over an IPC bus, etc.) into something resembling a Docker container, or a Unikernel VM image. Imagine, additionally, that all this then gets translated into some standard bytecode for a high-level abstract platform target that has things like graphics and networking primitives—say, asm.js. Now everything can live as long as something still executes that bytecode.
[1] https://www.destroyallsoftware.com/talks/the-birth-and-death...
(and funny enough, when I saw him give this talk, the above quoted situation is exactly what I thought of...)
I mean, yes, this is fuzzy. It's hard to even nail down what "English" _is_, for things like what you're saying.
The broader point is that computer languages have a much smaller period of time where their particular language is spoken than human languages. We'll see if that changes in the future, but I doubt it.
It's too soon to adopt a philosophical position on what it means to write code. We don't do it well enough to claim to be experts at it.
We write code that lasts all the time. We call it "embedded code." Satellites, nuclear power plants, microwaves, pacemakers, cars—they all run code that lasts.
Most code doesn't last, because most code doesn't need to last. It's not part of the profit-function of the business producing the code, so something else gets optimized for: ease and speed of production, say.
We can code well when there's any sort of incentive to that outweighs other incentives. It's not even a matter of individual programmer skill, only of systems engineering: having checks and cross-checks, QA reviews and burn-in testing, tolerances, etc.
Those things can happen "in the small" at the level of how individual lines of code get written, too. Maybe "we" don't know how to do that. But that's ignorance, not inability. We've never tried.
Comparing microwave code to the code I'm talking about is like comparing medieval accounting records to Hamlet. One is far more impressive than the other.
On my world software engineer is a synonym for what is known as CS degree.
So I can only expect it to be comparable, if gardening would be one as well.
I found it a touch ironic considering that Kafka, on his deathbed, asked his friend Max Brod to destroy all of Kafka's unpublished work, including The Trial.
> BORGES: "In the case of Kafka, we know very little. We only know that he was very dissatisfied with his own work. Of course, when he told his friend Max Brod that he wanted his manuscripts to be burned, as Virgil did, I suppose he knew that his friend wouldn't do that. If a man wants to destroy his own work, he throws it into a fire, and there it goes. When he tells a close friend of his, “I want all the manuscripts to be destroyed,” he knows that the friend will never do that, and the friend knows that he knows and that he knows that the other knows that he knows and so on and so forth."
I think Kafka did truly want to burn his work, but also feel Max Brod was right to save what he could.
[1] http://www.nytimes.com/2010/09/26/magazine/26kafka-t.html?_r...
People still care about "Super Mario Bros" (a computer program) today, over 30 years after it's original release. Is it really going to be forgotten in the next 10 years? 20? 30? I think not. Will all emulators be abandoned?
Maybe appreciation for old computer programs is a niche interest, but let's face it, Kafka is not exactly popular among the masses either.
Most software may be forgotten, but most books will be too.
The emulators of the game consoles of the past exist today because some hacker got curious and interested. Complexity certainly isn't stopping emulator devs. The Wii was more complex than the Gamecube, which was more complex than the N64, which was more complex than the SNES, which was more complex than the NES. And yet there are emulators available for all of those systems.
What is different today that would prevent an enterprising hacker tomorrow from making emulators of today's consoles?
Not a sliver of hope of access to the server-side runtime of cloud-assisted† games?
† not full-scale MMOs but Diablo III, Starcraft II, Destiny, even Guild Wars...
In many some though, they will be replaced with full conversions that gets even more popular than the original.
Perhaps the myopia of computer culture is a result of our lack of evangelism for classic systems, but, outside of games, most of software deviates from literature or music in that it's a tool. If I write a better word processor, why would I go back to use a two-decades-old word processor? I wouldn't.
Same for graphics software, or IDEs, or web browsers, accounting tools, what have you. For the most part, these things go to obsolescence and there isn't a use case for dusting them off once that happens. With a book, a story is still a story whether the setting or events are modern or not. A song is still a song, whether played on harpsichord or synth tracks on a macbook.
But a piece of software is a hammer or a handsaw or an impact driver. When you have a better one, you put the crappier one away and it doesn't see the light of day again until your kids are cleaning out your garage when they move you into a retirement home.
Old software programs can be useful. For example, consider the diehard following of older programs like Deluxe Paint, Impulse Tracker, etc.
I also don't think it's fair to compare utility the kind of utility programs that you are talking about to the works of Kafka. A novel is something designed to provide entertainment, insight, or some other benefit beyond the basic utility of a tool. I think the game is the best type of computer program to compare to a novel, in that they have the same aims.
A better comparison for the type of program you are talking about would be something like a lost pet flyer, or a personal ad, a "Caution: Wet Paint" sign, the terms and conditions for a website or even a technical manual. These are also works of writing, but probably are not going to provide much value out of their specific situation and context, save for historical interest.
So I guess the take-away is that if you want to create something that will be remembered for a long time, you have to more than just provide utility for your own specific time and situation. I think software programs are more than capable of doing that, the programmer just has to have the right focus in developing (so maybe a game, or a software art program, or a demo like the demoscene), or give the program some personality.
On the other hand utility programs and utility writing are still useful and necessary in the short term, and there's nothing wrong with that.
So if you got into programming because you wanted to create something lasting, I think you are destined to be disappointed. But then again, all human endeavor, and indeed everything in our human experience, even the seas and the mountains and the stars are all ephemeral on some time scale. As the Buddhists say, the temporary nature of things is unavoidable and neutral, it's ones desire for permanence that causes a problem.
I think this is the same as software.
I mean consider the blog post "I am going write only" which loosely translates to what I produce is worth your time to read, but what you produce is not worth my time to read. No thank you.
One warning I will throw out for those considering entertainment/distraction deprivation: you will need something to spend your time on. Instead of just taking away, use the same opportunity to try to cultivate a productive habit (hey, you're going to be suffering anyway -- might as well).
Also, you need to think about whether this really addresses the issues that cause you to be "mediocre"/lazy/unproductive. It's easy to blame external factors like the Internet for providing easy entertainment, but it's also important to look inward and see if you have mental roadblocks that are inhibiting you -- perhaps you are mentally exhausted from work, or maybe you just aren't interested. Also, I've started to think that some people are just flat out less productive than others. Or to put it another way, some people are abnormally productive. After all, productivity is really more of a means than an end. If you're not sure where you are going, it doesn't matter how fast you get there. And if you do have a goal, abstract ideas like quality or productivity are quickly redefined in more concrete terms to fit your new intention.
Anyone can take quotations out of context and use them to sound well-read; what about adding more of your thoughts to the mix?
What he needs right now is to acknowledge that he's just another ordinary human
OP is on an experiment to put his ordinariness as a human being to the test. I'm grateful for a view from the sidelines.
"A man is called selfish not for pursuing his own good but for neglecting his neighbor's." -- Whately
And a man is called arrogant not for how much he strives to better himself but for how he belittles his neighbor.
Sorry that you feel belittled.
Human language is a longer scale of change, no doubt, but in Neo-Sanfransokyo in the year 2599, will English even resemble itself now?
Could you repost it in Australian English?
'And whan this goode man saugh that it was so, / As he that wys was and obedient / To kepe his foreward by his free assent, / He seyde, "Syn I shal bigynne the game, / What, welcome be the cut, a goddes name! / Now lat us ryde, and herkneth what I seye." / And with that word we ryden forth oure weye, / And he bigan with right a myrie cheere / His tale anon, and seyde as ye may heere...'
By posting your article to HN? I appreciated the article and found it interesting, but it seems odd that you're the one posting it given the sentiment behind the article.
The whole exercise seems very conceited.
Yeah, turns out he was just going full hipster. Which is just as bad in its own way.
Balance. In all things, balance. Not very profound to say. You can't make a manifesto out of it, because duh. But yeah. It's what works, I think.
This line kind of got me, and made me think about the transience of my own work. I build educational software, and I entered this field because I was inspired by the educational games I played as a kid. Most of those games, developed for a specific operating system, can still be run today on a VM or an emulator of an older Windows machine. But the apps I work on are web applications - we're constantly racing to update and maintain them in a sea of ever-changing devices and standards. The odds of somebody being able to run my work, even a just few years from now, and have it work without issue is unfortunately kind of small (the introduction of iOS 8 already wreaked havoc on some of our layouts). And that makes me kind of sad.
The inspiration for the idea was SCUMM, and how we're able to play SCUMM games now with SCUMMVM.
I think you'll do better if you find ways to make your clarifying restrictions be imposed upon you, rather than attaining them through willpower.
I do find 2-3 day email and internet fasts useful from time to time, but the internet is also a source of much inspiration.
A lot of improvements to software development are too new to be time tested and encoded into book form. For example, Node scales a lot better than Rails, and maybe there are books about that now and not just everyone hearing about companies that switched, but beginner Node programmers are going to get stuck in massive ugly callback pyramids unless they learn mitigation techniques like Promises.
There's simply too many things a good coder should know that are picked up by reading other people's code. What if you didn't know about A* path finding and had a bunch of buggy, slow, piles of loops and if statements? Then you are doing shoddy work and you are charging your clients more for reinventing and debugging the wheel when you should have just looked up the algorithm.
The other problem I see is that he wants to live in the city, unlike the people he cited who moved to cheaper less busy places like Walden Pond, but he is focusing more on art than work, so it will be tougher for him to make rent. Maybe Loop/Recur is paying him enough he has time for that, though, who knows. Many people in big, expensive cities like NYC have to struggle with multiple jobs.
"Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration. I try to learn certain areas of computer science exhaustively; then I try to digest that knowledge into a form that is accessible to people who don't have time for such study. "
- above excerpt from Knuth is taken from http://www-cs-faculty.stanford.edu/~uno/email.html
The survivorship bias is a logical fallacy, not a prescription for choosing what to read!
Why disable images in your browser, when many concepts are best expressed with a diagram or photograph?
It's important to consciously limit your content consumption, but this is not the way to do it.
Who says he's participating in any particular community?
> The survivorship bias is a logical fallacy, not a prescription for choosing what to read!
So you suggest reading works that didn't survive? How would you go about finding content that is by definition dead?
> Why disable images in your browser, when many concepts are best expressed with a diagram or photograph?
Yeah, you've got me there. I understand his viewpoint on this, but the execution is problematic. I'd wager the vast majority of images on websites have nothing to do with the content you're reading. Even images that are technically a part of the article you're reading frequently add nothing to the text. How do you filter the useful from the superfluous?
The flip-side of permanence is path-dependency. So many programs get written for a certain architecture of chip and instruction set, for instance, that to change it to something more efficient would break too many things.
To make something that lasts because it is good, that lasts on its own virtues, would be a wonderful thing. Nonetheless, the next generation ought to be able to surpass us - and if they are not able to do so, we have done something wrong. Blanket approval of past solutions simply because they have lasted seems likely to lead one wrong.
I agree that limiting your input might help improve your output. It could also harm your output as you are having less ideas being inputted to feed inspiration.
Best of luck when you read this on Monday. ;)
You can do broadcasting if your Linus Torvalds, if not you might need to check your email a little more frequently.
It really strikes me as another variation on the Carefully Curated Instagram Feed that contains a million pictures of some hustler douche skydiving or touring Africa, or something. Building engagement with the Personal Brand, etc. I mean, everybody kind of does it, but it's a new level of narcissism to write a blog post about how “I’m going to focus on #1 right now, which is me, and the fact that I am the only one who has anything worthwhile to say.”
If you really want to focus on knowing yourself and being reflective, that's great! But don't “broadcast”. Just be silent for God's sake.
But when he says:
>The simple test of time does yield false negatives.
I wonder what makes him so sure it doesn't yield false positives. My own view on aesthetics is that they're highly personal - something "timeless" might not appeal to you at all. Timeless works are the ones which happen, overall, to appeal to the most people - it doesn't mean they necessarily are higher "quality." It also has to do with how accessible they are, how ubiquitous (/ marketed), etc.
(Sidenote, but his arguments against startup aesthetics could also apply to modernism and many other movements. It's about distilling something to it's essence, removing superfluous details in favor of clarity. For all the faults "flat" design has, I think it is a noble cause even if it takes some missteps.)
There is a lot of contemporary work (programming, music, art, etc) that I find compelling, and personally I want to embrace it. Understanding the contemporary helps you understand the current moment of time, and where things are going. It lets you see larger trends and where you might want to fit in. I'm not very afraid of embracing something that turns out to be a false start - at least, at the moment, I was doing what I thought was best. Maybe this is a fallacy of youth.
I'm all for embracing the classics, the tried and true. But I think applying lessons learned from them to the unproven ideas is where things get interesting.
Of course, just because something's not going to happen doesn't mean we shouldn't strive for it anyway. But I am unsure that posting less frequently on Github will get the author any closer to that achievement. To me this attitude of needing one's work to survive signals an uneasiness with death that will permeate the rest of one's life, but then that would be quite a leap to make on the basis of a blog post.
I look at it slightly differently. It signals an acceptance of death being the end and that you should make what you do now really count.
So then, if six or seven billion people learn, and then go on to create something that lasts, compounded across mutliple generations, each with a delta of several billion, we're left with pollution.
If you wrote Cobol it might live just as long.
On more serious note your code might live in billion devices and do useful stuff. Don't dismiss stuff that doesn't run on meatware. People might get obsolete faster than some of your code.
Much of my programming is a (hopefully great) meal that I make and eat myself.
For example: this classic paper on compression http://web.stanford.edu/class/ee398a/handouts/papers/WittenA...
was published with a C, Unix-based implementation (I put it here http://brenocon.com/WittenNealCleary-ArithmeticEncodin-cacm-...)
which compiles and runs fine (just lots of compiler warnings) on modern Linux and OS X, 18 years later.
Err, but aren't I reading this on a Computer? Did he not read inspiring things online, watch videos on how to code or cook?
Consumption of others output is not an intrinsically bad thing. It is balancing it with creation that matters. Very similarly to the academics closed door, if You create without ever consuming you may be productive but eventually will be working on the wrong problem.
It just seems artificially constructed as a framework for doing... something, like this guy is waving his arms about, trying to find some deliberate way of being like Thoreau or Emerson.
It just reminds me a bit of when Sarah Silverman talked about hecklers -- how once, a woman simply shouted out, "I exist!", because that's what hecklers are trying to do -- show people they exist.
This guy just seems like he's trying to let other people know he exists.
I'd be disturbed if something better didn't eventually replace what we are currently are doing. Evolution. The progressive succession of organisms. Unless you are a horseshoe crab your species is probably just a flash in the pan and a rung on a ladder.
I consider myself less an architect and more a cook. The nutrition is provided and the meal enjoyed, but then people go on their way. The meal is gone, but the effects provided echo in time forever.
In the end, it forced me to be more creative and social, but didn't produce any lasting change. I need to keep forcing myself to turn off internet etc to be able to get creative stuff done during evenings and weekends. Sad but true.
Seriously, as an extrovert I've found that "shut down all external stimuli" is a recipe for disaster.
And if he needs human contact, he's not moving out to the middle of nowhere. He can go outside. Turn on the TV or get a paper for news. Go to a restaurant. Hook up with a friend for an evening. He's just turning off all the little social drip-feeds that live in the computer.
I've never done that for a month, but I've done it for a week or two now and then. It changed the way I think to not have Twitter to distract me on a bus ride or walk through the park or whatever.
That's interesting observation. But I feel not only distractions work that way. Programming is to repetitive activity that occasionally, unpredictably gives you pleasant surprise that makes you keep coming back to it. Learning too.
I feel that algorithms, especially as presented in concise research papers, will survive, and continue to show beauty in the centuries to come, just as the first-principles of mathematics and physics do. :-)
The Trial had it been written today wouldn't have survived long either. It's a function of much less competition rather than quality IMHO.
No, despite how much you'd like to be and see it happening, it is not and will not be.
Being a programmer is not going to get you there if thats what you need.
I dont really understand the mindset, I think that is because I am an engineer. Meaning by training, schooling, and occupation i did industrial and civil engineering for 10 years. I tend to take the software engineering literally, well more literally than most...
Its kind of the antithesis of being an artist to me. Still beauty in it.
as they say, beauty is in the eye of the beholder but software development is an engineering discipline and won't be considered as an artistic medium not now not ever.
I can understand the philosophical dimension of software engineering but I am not even interested to entertain even for a second the concept of the art of writing software because it's just insane.