
The Little Printf - gmcabrita
http://ferd.ca/the-little-printf.html
======
andars
Wow. I'm a college student, but I still feel like a kid. This seems to pretty
much sum up every reason I decided not to study computer science and make a
career as a developer. I love computing, but I have just gotten tired of the
billions of js frameworks and wars about how everything anyone tries to do is
wrong. Little printf strikes too close to home. This is a fantastic piece of
writing.

~~~
0942v8653
> the billions of js frameworks and wars about how everything anyone tries to
> do is wrong

IMO...

This isn't universal. HN is one of the places where it is the worst. I
probably wouldn't be fighting with Go right now if it weren't for HN; I'd
probably be using Java. Staying up to date isn't really as important as it
appears. There are people having successful careers with COBOL right now, and
while that may not be where you want to go, switching between JS frameworks
does not sound any better. And you can basically ignore the JS frameworks.
They don't matter.

Because of HN I switched from TextMate to Sublime Text to Emacs to Vim. What
did I get out of it? Not a thing. Maybe I can type a little faster when I am
in vim. But mostly I just get annoyed when the rest of the OS doesn't support
the shortcuts that I am now used to. I switched from Mac to Linux to Mac. I
got nothing out of it, except that now I get more annoyed when I can't do
something on my Mac that I was able to do on Linux. Don't do what I did.

I think it's completely possible to be a developer without all this, as long
as you can recognize when you are wasting your time.

~~~
opsforgotmypass
> Don't do what I did.

I try. I don't think going from a GUI editor to Emacs was a complete waste of
my time and I still like it a lot BUT whenever you make that kind of switch
you gotta stay out of the "this is the best thing ever" mentality. Instead of
seeing $EDITOR as the Holy Grail that cannot be eclipsed by anything (which is
false) I see it as my favorite tool in a toolbox. I like it but I also
recognize it's just one of many tools and it's not always the one I should use
and getting frustrated at the differences is pointless.

That last bit took a while for me to realize. I think what helped was seeing
other people code without my favorite editor with an IDE or something.
Watching Notch coding an FPS using an IDE caused quite a few of us in the HN
thread that followed to just kinda take a step back.

I'm still relatively new to programming so hey thanks for the advice.

~~~
davidw
I started using Emacs 20 years ago and have happily stuck with it.

------
zubspace
Quote of a friend of mine: we developers keep solving problems we would not
have without developers.

I really like this quote, because I believe that it's nearly impossible to
stay motivated fixing stuff over and over again in similar ways, year after
year.

At some point you need to realize, that the systems we created can not give
you complete fulfillment. There's always something better, faster, nicer. "The
grass is greener over there" kind of thing.

I found my peace by being part of a family with 2 kids, doing fun game
projects after hour when everyone's asleep and getting into drawing and music.
Programming can be fun, but it's not the end of it all.

~~~
dbpokorny
> we developers keep solving problems we would not have without developers

I genuinely don't understand. Do you not consider the organizational problems
of society to be worth solving?

~~~
zubspace
There was a time, when not every household had a computer. A time where kids
were playing without stuff supported or made by computers. Not everything was
better back then, but the world did not collapse due to unoptimized processes.
In contrary, I believe that alot of things were more 'personal' in the past,
but this is highly subjective.

Technology made alot of stuff possible which would not be possible without
technology. But the tradeof is, that we must live with systems which increase
in complexity each year we use them. And there's no end in sight.

We developers in some way are trying to get out of the hole we dug ourselves
into. Think about this the next time a framework comes along which solves all
problems of the previous one. At some point you'd wish back the former days,
when everything was simpler...

~~~
TeMPOraL
From my perspective - there was a time, when not every household had a
computer. I lived in that time. And compared to today, I'd absolutely hate it
to get back.

But I also hate how the world is different from what it could be if we as a
whole cared about actually solving real problems instead of making money. The
world could be optimized more. It's not. We've created lots of cruft and
triviality. Even our tools of social interaction are designed to be barely
working, the minimum amount of value that will still make people use it so
that they can be monetized.

We've created really powerful technologies. And we're using them to like 5% of
their capabilities for actually making the world better.

------
jongraehl
Nice characterizations but the conclusion was only empty "human face"
platitudes for me. I'll take the reminder that we should believe in the end
result we're accomplishing and not only obsess about making the tools we're
working with or system we're working on better as an end in itself.

~~~
MichaelGG
And it also doesn't seem to recognize that for some (many?) that tech can be
an end by itself. If your goal is business or to ship an app, this might not
be true. But there should be no shame, no regret, in only being interested in
tech for its intrinsic merits, independent of "results".

~~~
TeMPOraL
Hell, this is the reason a lot of programmers begin programming. Personally,
this is the reason I started programming and sadly 90% of jobs that are in the
industry _feel_ like utter bullshit to me - I simply can't be passionate about
that new sports webapp (I hate sports) or inventory management something
something. Especially webdev, of which I did most commercially, feels utterly
awful to me. Of course those projects are important to someone, they may be
passions of many people - just not of me personally. This creates a lot of
tension and unease for me as an employee, especially now that us geek
programmers are outnumbered by 'professionals', who came here to do jobs for
money.

------
RKoutnik
Fantastic little parable. Saw a part of myself in quite a few of those.

One I'd like to add is the developer who's so enmeshed in maintaining FOSS
software that all they can do is label & triage tickets but never quite find
time to start fixing them. I've found myself caught in that lately and am
trying to figure out how to chip away at the ever-growing Issue Monster I've
let form.

~~~
dmethvin
This is where a junior developer can really help, even if it's junior in the
sense that they are not as familiar with the project as you are. There is no
better way to become familiar with the true problems and priorities of a
project than to triage bug reports from the people actually using the
software. You may be too deep into it to see that.

Don't prioritize based on what is the "fun technical challenge" but instead
figure out how you can get users to be happier with what you are building.
Also remember that sometimes the answer is code, and quite often it is
documentation or a code sample showing the "right" way to do it.

------
agentgt
I would say the observations that little printf brings up have happened to me
in various points of my life.

And those nasty habits (ie trying lots of new crap.. complaining about
existing crap) typically surface when I don't have a real problem to solve.

And that is the problem... my business is doing well but I just don't have any
serious problems that are interesting to solve other than sales/marketing. I'm
just not creative enough to find/create a problem worthy to solve that are not
completely a mismatch to my current predicament (like I could leave my
discipline and maybe do something else but I have obligations).

I really wish I had more creativity.

~~~
ThomPete
You don't need creativity you just need to find a problem to solve.

[https://news.ycombinator.com/item?id=9799007](https://news.ycombinator.com/item?id=9799007)

------
cmaggard
Some of these characters are hitting a little too close to home.

What a great read.

------
tyh
Did anybody read this and just feel sort of sad?

~~~
jerguismi
Isn't it the same with little prince? I remember how sad I was when I read
that as a kid. Now I'm adult programmer and felt sad as well when I read this.

------
Profan
The Dunning Kruger one was so on point, this is amazing.

------
zigo3
parallels with 'The Little Prince':

draw me a system ~ draw me a sheep

proud senior engineer ~ the king

rails -> nodejs -> meteor guy ~ the accountant counting stars

anyone have more?

~~~
anoother
"..based out of the Little Prince, because as in true software fashion,
nothing is truly original.."

[https://youtu.be/EWdqtMdcNkE?t=23s](https://youtu.be/EWdqtMdcNkE?t=23s)

------
cicero
This is a good story. After being a developer for 22 years, I got involved in
education, and now I'm blessed to be in a great job at a great school. I still
think software development is a good career with a lot of advantages over the
alternatives, but I think this story is correct in that you should make sure
to serve other people with your work rather than only your own interests and
self-advancement.

------
troutwine
I had the great pleasure of seeing this read in person. It was brilliant.

~~~
raphaelss
[https://www.youtube.com/watch?v=EWdqtMdcNkE](https://www.youtube.com/watch?v=EWdqtMdcNkE)

------
hyperion2010
Pick your tool and go build things with it. Don't get stuck in the hardware
store quibbling over what kind of hammer you need. If the things you build
turn out to have been good ideas then when you need to go back to the hardware
store to find a hammer that is a better fit you might actually know something
about which one you need.

------
xacaxulu
This reminds me of reading _why's stuff back in the day. Bravo.

------
falcolas
This just makes me a bit sad. The woman stuck in a job she hates fighting
fires constantly... And the most the parable can offer is "sucks that you're
unlucky"?

The best we can hope for, if we want to develop software for a living, is to
live within our delusions and hope we're never unlucky then?

~~~
mononcqc
I would say it's a cautionary tale against making it so people get used to you
accomplishing small miracles, or making sure everyone is aware you wouldn't
tolerate only doing the tasks you hate forever.

------
jbaba
Just one word "Mind Blowing". Complicated feelings of programmers and why we
do what we do is explained in simple words.

------
bulte-rs
Why I'm leaving software engineering... :(

------
octatoan
This is beautiful.

------
draw_down
Hmm! I don't get it.

~~~
paxcoder
It's an apathetic exposé/critique of various roles in, approaches to and/or
views of software development. "In the end though, it is only when you solve
problems with a human face that you can feel truly right; What is essential is
invisible to the computer."

~~~
draw_down
I see. Personally I prefer to just be a developer, not worry about how other
people are doing it wrong... though like anyone I have plenty of opinions on
such matters.

------
vemv
I think the software architect role is outdated by now?

I've yet to meet even a CTO that doesn't get his hands dirty with code from
time to time.

~~~
lhnz
Not in government and large corporations.

------
Adaptive
The little printf interjected: No, that's not what I mean, and he then added I
mean it's funny that tools are meant to solve problems for us, but for you,
the tools themselves have become a problem.

HN homework should be to re-read that section a couple of times.

~~~
jonjacky
"The chief cause of problems is solutions." \- Eric Sevareid

------
simlevesque
Loved the story :) it was nice to learn that ferd has studied in the same
program as I did! I could relate a lot.

------
vampure
The feels. 10/10 will read again.

------
aldanor
On a side note, love the font

------
robotjosh
The link times out but based on the title, I like what they are saying.

~~~
mononcqc
There's a PDF version on S3, if that helps: [https://s3.amazonaws.com/ferd-
ca/printf.pdf](https://s3.amazonaws.com/ferd-ca/printf.pdf)

------
marcoperaza
What a wonderful story. Thank you for lightening up my day.

------
acqq
Regarding the printf (pre)history see my old comment:

[https://news.ycombinator.com/item?id=3964475](https://news.ycombinator.com/item?id=3964475)

printf is based on the idea implemented as early as 1956, next year it will be
60 years since!

    
    
       1956: Fortran I:
                PRINT 1, X
             1  FORMAT (F10.2)
    

Fortran was invented by John Backus and there was already a finished compiler
in 1956.

I/O in the first Fortran, I believe including the FN.M syntax, was implemented
by Roy Nutt, also one obvious genius:

[http://www.cap-lore.com/stories/Assembler.html](http://www.cap-
lore.com/stories/Assembler.html)

"There were a few pages of description of a new assembler format for the IBM
704 that differed considerably from the NYAP that we were using." (That) "704
assembler, originally called SAP, was written in its own language by Roy
Nutt."

~~~
muaddirac
That's very interesting, but other than in name not related to the article.

If you didn't read it I would recommend you do - it's possibly one of the most
interesting and reflective things I've ever read about programming as a
profession.

~~~
acqq
Consider it an addition to the type of the programmer: the one who stays by
the original meanings of the names. Who still links to the Fortran libraries,
writes mostly C and fondly remembers APL.

