
Is Programming Less Exciting Today? - viggity
http://blogs.tedneward.com/2012/01/25/Is+Programming+Less+Exciting+Today.aspx
======
Vivtek
Shit, no! Look, I've been programming since 1982 (BASIC on a Hewlett-Packard
with a 3" screen - lap equipment, essentially - then an Apple ][e for
BASIC/assembly, then Turbo Pascal, then real Windows with C++ for my first
couple of professional jobs, moving into Tcl under AOLserver against databases
in the 90's, adding Perl later) and so I think I know whereof I speak, and
I've addressed this point before, but ... it just keeps getting easier to
reach for the stars. Sure, there's a lot of wasted time on boring stuff, but
that was already there back in the day. It's just easier to read about
somebody else doing something than to do something yourself - but nobody's
stopping you from doing hobby work on Z80 in assembler, or implementing your
own language, or whatever - and no matter what you want to do, there are more
tools, more references, more help to get off the ground and going.

You want excitement? Stop reading blogs and just program something.

~~~
Yhippa
Agreed. I think it's less exciting if you're the lone wolf coder sitting in
your room optimizing the hell out of a language. With all the abstractions
available nowadays programmers have gone away from developing their own
frameworks to utilizing several to make something much bigger than they could
have int he past.

I understand that making your own sockets or database interface library might
not be as exciting as rolling your own. However I feel that it's much easier
for nearly anybody to pick stuff off the shelf and make something amazing
which we all benefit from.

~~~
brlewis
The lone wolf coder optimizing a language is excited about advances in garbage
collection, which AFAICT have not slowed down.

I'm in the "old-timer" bucket this essay describes, and I really can't twist
my mind into any perspective that makes today less exciting than 20 years ago.

------
bri3d
Programming is only less exciting if you keep yourself in the CRUD-webapps-
mobile apps space. Technology and miniaturization have resulted in incredible
capability for embedded devices that are at least as (if not more) exciting
for me than discovering programming for the first time in the 1990s was.

If you're bored of programming for the web, try branching out into a field
where there's no debate about NoSQL, people aren't re-discovering binary trees
for the ten thousandth time, and there's no re-invention of JavaScript on the
server - try programming something _real_. For me it's quadcopters and fixed-
wing UAVs. For you it might be something else. Embedded development is
somewhere where real technological advance will _always_ push the field
forward. There's always something new you can build if only your CPU gets
smaller, or draws less power, or some sensor becomes available. Plus, you'll
learn a lot about programming close-to-the-metal, data structures, basic
algorithms, and the industrial control algorithms that run devices in your
daily life - which will both expand your horizons and make you a better web
programmer, to boot.

~~~
shoover
Exactly.

Sure, technology fads are like a carousel, but that matters most if you insist
on staying ON the carousel and make part of your living writing about the
fads. I started in this millennium, but I've done it long enough to know that
learning and using a new piece of tech is only superficially satisfying.
What's exciting is building something that solves a problem. If I lose track
of that and get bored, nothing is more motivating than coming across a coder
who bangs out code using the tech he knows to solve problems. It's amazing to
see what Rich Hickey can do with a pile of Java or Zed Shaw with a pile of C,
to name two examples I've encountered. No need to complain or pontificate (or
at least keep it to a minimum), just build things and solve problems.

~~~
bri3d
Agreed, and I think a lot of the angst amongst CRUD/web-app developers stems
from a rapidly shrinking number of truly new problems to solve in the domain -
hence the focus on yak-shaving, "platforms" to eke out the last few marginal
efficiencies in creating a web-app, and re-inventions of the 1980s.

That's why I love embedded - because the domain contains a lot of problems
which are constrained by hardware (which so far is still holding to Moore's
law), there are always a number of new problems for software to solve.

------
jrabone
Totally agree. Nothing ever really lived up to that early promise of BASIC /
6502 assembler on a BBC micro 30-odd years ago. The elegant simplicity has
vanished under a pile of self-inflicted barely functional complexity. For
example, web frameworks (e.g. Vaadin, not that I want to pick on that one
project) are pouring massive effort into recreating the desktop widgets we had
15 years ago in a web browser. Stale, hugely complicated, laggy, connection-
bound, insecure web apps whose benefits never justified the effort, IMO. Just
write the thick client and move on. In fact, if it can't be done on a 2MHz 8
bit CPU in 64K, it's not worth doing...

------
gatlin
Programming is so exciting today! One post here talks about the thrill of
coercing a limited machine into doing something useful - that's one kind of
excitement and it is awesome. On the other side of that, today I can rent a
super computer and write something that stores and computes terabytes of data,
or I can create software that lets 15000 people connect and interact thanks to
ubiquitous connectivity, or I can make something that computes a FFT on a
slice of music and does a spectral comparison of 100000 other songs (Shazam)
in real time because that kind of power is available, and (maybe it's just me)
but functional programming seems more in vogue and declarative programming's
hey-day is just around the corner ("I predict!").

We are just scratching the surface of what is possible. Programming is
_scintillating._

------
AndrewDucker
I've been programming since 1984, and it gets more and more exciting as it
goes along.

I've gone from hacking together moving dots on a BBC Micro to being able to
set up code running on a worldwide collection of servers (Google App Engine)
that reads from multiple places and posts to a blog running on an engine
that's used by millions of people all over the world. And that's in my spare
time.

Think of all the awesome things you can do nowadays - Mobile phone apps, web
pages, amazing games, and so much source code available for free for you to
use in your own programs. It's an amazing time we're living in.

~~~
_delirium
I suppose it's mainly taste, but the things you mention don't seem too
exciting to me technologically, though there are indeed significant increases
in the userbase and business ecosystems, so it's a good time to start a tech
business (a different question). But I have a preference for more DIYability
and less interest in interfacing with APIs and cloud services, which isn't
necessarily the Correct preference, but is one.

Games? Meh, I keep up on recent games in part because it's my job (oddly
enough), but listing my top-10 favorite games, Minecraft is the only post-2000
one I can think of. In general I think they've gotten worse, mostly by
focusing way too much on graphical fidelity. Even MMOs are like MUDs v 2.0,
and I think in many ways haven't recaptured the depth of community and user-
generated content that MUDs/MOOs had, but I admit that you can make a case
either way (and Eve Online's community in particular is arguably something new
in terms of multiplayer dynamics). And mobile and Facebook gaming seems to
consist largely of cloning 80s and 90s games...

And the web is just recently catching up to the level of interactivity we had
on 1980s networked computer systems, which mostly got thrown out in favor of a
pile of hyperlinked documents (plus, later, Flash)... its main advantage is
increasing visibility in business and society, so you can do things like buy
plane tickets on it, which would've been completely _possible_ with 1980s
technology but didn't have the business case for it.

I do find workable crowdsourcing, with Wikipedia as the main successful
example, to be a very interesting para-technological development, probably an
emergent effect of internet connectivity. I guess that ties into whether you
fundamentally find the ability to reach millions of people (as you mentioned)
interesting. I think it is to some extent, but I think it's also become
_harder_ to reach 20-50 people in a meaningful, sustained way; things are much
flatter, and recreating something like a BBS community is quite hard (though
not impossible). Technologically speaking, I don't _really_ find millions of
people necessary; doing interesting things that impresses a few dozen people
who engage with it meaningfully (rather than just clicking through off Reddit
or HN for a few minutes) is satisfying enough.

------
simon
Yes and no. (Hmmm, sound like a Tolkien elf there.)

The opportunities have never been greater today and the barriers to entry have
never been lower or cheaper. There are books and websites galore. If that
doesn't help, there are forums and sites like stackoverflow.com. Never has it
all been more exciting. Things that required large amounts of time on
supercomputers are now doable at home in real-time.

On the other hand, now that I'm in the old and crusty bucket, I'm personally
having less fun as a programmer. I've been programming since 1981 and it was a
blast. But now with a wife and family and pastoral responsibilities and day
jobs and a growing congregation, the available time to just sit down and take
time to learn something new (because it looked fun) just isn't there. And that
takes some of the sparkle off my relationship with technology.

That said, perhaps it isn't all gloom and doom. I do what I can to use
technology in my life to help get things done. I have the church data backed
up with Dropbox. I prepare my sermons using Markdown and Pandoc and preach off
of a Nook. And just this week, I prepared the church charitable giving letters
for the congregation using a combination of CSV data files, AWK and LaTeX. So
I may not be the trendiest programmer in town, but my data is backed up
constantly and I have some of the best typeset documents you've ever seen!

------
geophile
Not the essay I was expecting from the title.

Programming is less exciting today, at least for me. I'm 55, and have been
programming for over 40 years. My first program solved quadratic equations on
an ancient Wang programmable calculator that had 3 (three!) registers. I spent
a long time trying to figure out how to compute the intermediates and final
results while taking the three coefficients as input, in order, once each.
That got me used to being very, very careful about memory. I remember my first
program that ran really slowly for large N, and getting my first glimpse of
algorithm analysis, and then being very, very careful about performance. And I
have spent many hours coding low-level data structures and algorithms. It was
a lot of fun.

Maybe it's my age, or maybe it's seeing all the libraries with the cool data
structures and algorithms already written, but programming is often more about
snapping pieces together than doing difficult new things. Yes, it's better
this way, and yes it's really just a matter of choosing the right problems to
work on. But here's the thing: You get used to working in an area. For me it's
database internals. And more and more of it gets "done" over time, and
available as open source. So there is no point in doing the thing that you
naturally want to do.

What to do about this? I highly recommend working at startups. And not yet
another social media site, (there are probably 15 different scalable NoSQL
systems out there, pick one and move on). I'm at a database startup, and while
we use a lot of open source software, we are building a ton of interesting,
new, low-level stuff too.

~~~
cpr
Funny, I think my first program did exactly the same on the same hardware,
back in, oh, 1969 at Claremont High in San Diego (the campus used for the
movie Fast Times at Ridgemont High). Had entirely forgotten that episode...

------
CWuestefeld
I feel the same way. But as I take a step back and look at the big picture, it
seems to me, anyway, that this isn't just in programming: it's the whole
society.

When I was growing up in the 70's, it appeared to me that we were dreaming
great things, like going to the moon, even despite a backdrop of fear about
the Cold War. Today I don't see such dreams; instead, our thoughts seem to be
centered on just treading water, like combating climate change.

Maybe it's just me getting older, as Neward says (my 45th birthday was last
week). Maybe it's only my own perspective growing jaded. But it sure feels to
me like it's all around, not just in my head.

~~~
wladimir
I personally think society has come to the stage where its clear that problems
are no longer solvable in a technological way, or by more advanced
technology/science. That dream is gone. For me, this makes programming feel
more like a means to make money and survive, than something exciting that
could change the world for good.

Presidential candidates still desperately try to rake up foregone "moon base"
dreams, invoking the nostalgia for yesterday's future, which says enough....

"we" used to think that in the 80's, 90's, that somehow advanced technology
would also advance people, to look at the sky instead of grabbing what they
shortsightedly can. Series like Star Trek are an example of that hope in
culture. But people did not change a bit.

Open source/free culture is still exciting to me, but the "brave new frontier"
that computers and programming seemed to be is gone. It's lost part of its
charm for me.

~~~
prodigal_erik
We do have two related technological problems to solve: we are confined to a
single biosphere one big rock (or maybe runaway greenhouse feedback) away from
extinction, and peak oil will bring peak food (the green revolution hinges on
petroleum). I don't know whether cold fusion researchers need better software
than they have, but if they do we don't seem to have given them the resources
to pay as much as more social mobile gamification of cat pictures. Boredom and
unrest seem to be the problems we take most seriously lately.

~~~
wladimir
Yes. Don't get me wrong, I think there are big challenges ahead for humanity,
and some of those can only be addressed with advanced engineering, which, in
turn, needs programming.

But my paradox is: The biggest of dangers comes from people's use of
technology as a means of control. A creeping surveillance state, soon to be
autonomous killer drones, and that ugly old nuclear threat that keeps rearing
its head. Due to fear of each other, the technological dream is turning into a
nightmare.

And a the hardware and software used there is built by people like you and me.
There's a societal problem to be solved first, or maybe it should solve
itself, and only that will bring responsible and sustainable use of
technology. Or we'll kill each other, in video-game style (yay for
gamification).

------
garethsprice
I started programming C as a pre-teen about 15 years ago, because I wanted to
make games. I spent a lot of time (badly) re-writing routines for stuff that
already existed (sorting, double buffering, file management, resource packing,
etc).

I never really got to the actual gameplay mechanisms as I'd always get stuck
at points like double buffering so my graphics wouldn't flicker, or reading
interrupts from the game port so the joystick would work properly, or how to
read a bitmap image saved out from Deluxe Paint.

Now, chances are I'd be much closer to getting an actual game up and running
as there's plenty of libraries out there to handle all that stuff. I am glad I
learned it and know it, but it doesn't create end results and means a lot of
duplication of effort.

The modern approach where programming is more like plumbing - efficiently
connecting existing libraries (and now, services) - allows creation of quite
fantastic ideas in very little time. I can create things in a day that would
literally have taken years in that low-level age.

This is a good thing and just as fun, albeit in a different way.

------
bwarp
I agree. 21 years elapsed since I started.

I cut my teeth on Z80 assembly at the age of 11 by building my own computer
from stuff I could get my hands on (discarded and broken RM380Z and some
VIC20's for RAM) and books from the library.

I feel there's too much hardware compexity and software abstraction these
days, most of which is impenetrable. The complexity is a result of making the
layers of abstraction fast. It takes the old feel of immediate power away.
Even knocking stuff out in C is just stringing libraries together.

I wish we were closer to the hardware again. I also wish the hardware was
simple enough to fit in my head and was elegant.

------
daleharvey
I have never been that interested by programming

Building things however, I love, and I dont think there has been a more
interesting time in the world to be involved, schoolkids can build social
networks that connect almost a billion people, a small group of people run a
website that categorises and links most of the knowledge the human race ever
had.

------
romaniv
There is lots of exciting stuff going on (DbC and PEX for C#, for example),
but none of it is exactly in the mainstream. My personal peeve is not that
there is too much abstraction, but the fact that people seem to gladly settle
for mediocre solutions that require lots of work to do trivial things. I was
in the situation where implementing SOAP server from scratch was an order of
magnitude easier than figuring how to deploy the existing, standard Java
technologies in that particular environment. That's just plain _wrong_.

------
T-hawk
I'm going to cast a dissenting vote from the other comments here and say yes.

The golden age of my personal programming experiences was around 1993, during
high school. After outgrowing GW-Basic, I was hacking around in x86 assembly
language, figuring out how to program DOS graphical games by manipulating VGA
hardware registers. My tutors were library books on x86 assembler and
instructional text files gleaned from local BBSes. (I still have and treasure
those resources to this day. Michael Abrash was my god.) I was able, by
myself, to produce programs as technically intricate and graphically rich as
industry-leading fare like Commander Keen or Epic Pinball, in pure assembly
language. (I never actually made anything beyond tech demo stages into an
actual marketable game.)

This was _magic_. Not a single other person I'd ever met in my life or even on
local BBSes across my entire area code had that sort of capability. This awed
even non-techies, whose pinnacle of computer experience was somewhere between
Solitaire and Minesweeper. I had a mini-career programming BBS advertisements
for inclusion in zip files, putting out some neat and impressive graphical
effects in 2k or so of assembler code. My favorite trick was to include what
appeared to be a custom font in these tiny executables - done by copying the
BIOS ROM font at runtime and applying some bitmap transformations to each
letter. I even wrote my own mini sound engine for the Adlib FM-synthesis
registers.

Nowadays? Grab a Flash development tutorial and you can do in a week what I
spent most of high school learning and doing. Everything is possible in
programming and everybody knows it and every answer is seconds away. There's
no feeling of exploration and achievement. There's certainly achievement in
building a business or product, but not in the programming itself, which now
serves as the drudgerous means to an end.

The connectivity of the Internet has eliminated local maxima. I was in high
school by an order of magnitude the smartest programmer I'd ever met, but I'm
thoroughly average in the Internet world. I've never been motivated to strike
out building my own cool software or startup since nothing's ever come to me
that could recapture the magic of my early days of DOS VGA assembly discovery
and programming.

All the cool technology and companies now are about _connectivity_ , starting
with Google and its primal concept of page rank and link juice. Facebook and
its world-squared size social graph. Ebay the world-squared size marketplace.
Apple and its million-strong app store. Dropbox and its seamless cloud
connectivity. You can't program anything meaningful and novel in and of
itself; programs are now defined by what they interact with. Some do find
scalability and connectivity exciting, but not me. You can certainly produce
scintillating _results_ with modern resources, but for me it's always been
about the journey not the goal, and the journey of modern programming is, for
me, essentially drudgery.

~~~
elboru
Abstraction should never be something "bad", if today "common" people is able
to develop a basic game in seconds with flash, then why don't you try to
compete with big game companies? try to beat their graphics and their AI.

"Nowadays? Grab a Flash development tutorial and you can do in a week what I
spent most of high school learning and doing."

Is like an electrical engineer complaining about assembler in favor of binary
electrical pulses:

"Nowadays? Grab a programming tutorial and you can do in a week what I spent
most of high school learning and doing."

~~~
T-hawk
Yes, abstractions lead to highly leveraged multipliers of effort, and to
bigger results. For everyone like me whose golden age was DOS VGA programming,
there was a Commodore 64 alumnus lamenting that it's no fun to have a flat
high-color bitmap buffer, that the excitement in programming is to be found in
squeezing impressive effects out of eight sprites and sixteen colors. The
80486 VGA machine can put out Doom, which by any measure is a bigger and more
impressive result than say Choplifter, but it doesn't mean the C64 hacker
would find Doom more fun to write. (He may, or may not.)

My point is that finding excitement in programming can be intensely personal.
I couldn't write Facebook in my DOS assembler, but that doesn't mean I find
exciting the modern platform that can. Your electrical engineer couldn't write
Angry Birds in hardware, but that doesn't mean he'll enjoy Objective-C just
because it can.

Not all programmers are motivated by results. The HN crowd skews that way, but
there are many like me for whom it's not the destination but the journey that
carries the real meaning.

~~~
Craiggybear
Actually, you _could_ write Facebook in x86 assembler but that _would_ be a
drudge!

Oh ... and I do know an electronics engineer who probably could do Angry Birds
in hardware, but almost certainly wouldn't want to. " _What is Angry Birds_ "
I can hear him say.

------
ttcbj
I've been programming since the early 90's. I went through three stages of
excitement:

A. Hardware/OS/experience. At first, I was excited by the experience of
working with computers. When I got access to a special computer lab in college
that had Suns with big monitors, I used to go there and program just to use
the computers. I loved the excitement of learning new commands, playing with
different desktop managers, mastering various editors. All of it was in
service of programming, but it was fun on its own.

B. As that stage faded, I was excited by specific technologies (Java! XML!
Whatever!). During this phase, I would write something in one language, or
using one technology, and then get excited about re-writing it in a different
language or using a different technology.

C. The final, and most lasting, phase for me was getting excited about the
problems I work on. Now, the hardware and the technologies have become tools
for me, but the problems are infinitely interesting. What excites me most is
working on problems that I believe matter.

Of course, I sometimes go back to stage B (MongoDB! AWS!) or maybe even stage
A (general purpose GPU programming!), but mostly its stage C that keeps me
passionate.

------
jroseattle
I disagree with Ted. I believe he's thinking about this too narrowly.

The title of his post should be "Are Programming Languages/Tools/Utilities
Less Exciting Today?"

From that perspective, one may certainly claim to be bored. What goes around
comes around, as those of us who have been around long enough can identify
when the processing pendulum swings from client to server to client to server
over the course of time. Back and forth, side to side, the more things change
the more they stay the same.

But that's the wrong perspective to take. It limits the definition of someone,
as a programmer, with their chosen tools. How many Enterprise-Java-vs-Dot-Net
or PHP-vs-Ruby/Rails debates have ever made a difference in that regard?
Programming languages, server systems, utilities, etc. aren't the path to the
future -- they're the results of the past.

I prefer to think of programming as usage of these tools in solving problems,
creating businesses, or just plain creating mischief. With that, I see wide
open spaces to be addressed (and not enough good engineers to do it.) Hardly
boring, in my opinion.

------
WingedTurtle
I agree with some of the other posters:

What is exciting about programming is how easy it is to realize an idea.

Programming is so accessible that anyone with a good idea can change the
world. (well...okay, there's competition and patents and stuff but you know
what I mean)

Technical programming theory is pretty cool too, but even if there aren't any
huge technical breakthroughs for years, I doubt if we'll be able to fully
harness the potential we have right now. I'm excited whenever I start working
on a fresh new project, despite the fact that I use Python all the time.
(actually, that's pretty exciting too)

------
marknutter
Creating stuff is always exciting. Programming is just a means for doing that.

------
acuozzo
I've experienced feelings similar to what the OP describes in his post.

I'm a systems programmer at heart and I can't think of a meaningful project to
start that doesn't already have a `killer app' in its problem domain. I'm not
looking for notoriety, but what's the point of hacking at something that's
guaranteed to fail? Who's going to contribute to a new kernel?

------
sophacles
I think that there are two things going on that sort of cause this:

1\. Everyone knows that computers make everything faster better and cheaper
[1], so there is a lot more proliferation of jobs that are code factory type
postions, not problem solving in the same way. You have to look harder to find
the exciting stuff.

2\. We are in a part of the research cycle in which the work is not in core
computer science/programming research but in mapping those techniques to other
domains, so a lot of the exciting work is CS and $X rather than pure
programming, so to get the excitement you need to find a domain $X where you
also are excited.

Also, people change over time, so perhaps the author is just getting bored and
should consider looking at new roles or careers, this is not bad, it's just a
natural effect of personal growth.

[1] for properly defined values of everything, better, cheaper and faster

------
jzoidberg
Really? We are in a absolute computing revolution. Never before has small
teams or individuals had access to so much cheap, available computation. We
can spin up vast compute resources in seconds and tackle huge problems. Just a
couple of years ago this was only possible as part of a huge corporate team.

The cloud and dirt cheap embedded and mobile systems will make computers truly
ubiquitous for the first time. It is interesting that we now run the same
platforms and code on tiny embedded devices and the cloud. The web is finally
turning into the broad platform we hoped it would. All of this is truly
empowering.

On the language front we have wonderful new ways to express ourselves.
Functional programming and constructs like Actors, STM and nosql data stores
allow us to scale properly for the first time (See Scala and Akka).

The only limit is our imagination.

------
Unboxed
Pure functional programming (HASKELL) inspires me very much.

~~~
babarock
I've learned programming around 3-4 years ago. I'm 24 and recently graduated.
I discovered it a bit late, but fell rapidly in love with it, until last year
of engineering school was all about Java EE, .NET and Oracle. Add a 6 month
internship in web development with experiences wit Django, Rails, Symfony,
MySQL, PostgreSQL and jQuery, and now I'm at the point where I hate
programming and thinking that maybe I should focus instead on poetry, or
learning German.

Until recently I started going through SICP. It's 30 years old, but it's still
really, REALLY exciting. It's actually completely mind blowing. I'll probably
look into Haskell soon, but the essential thing is: Yes, I agree, functional
programming is very much inspiring!

------
cafard
There is a touch of magic in fooling with assembler. But when I last used it,
I concluded that programming in assembler was like carrying your bicycle--
sometimes useful or even necessary, but reversing a natural relationship.

In any case, if he's writing for old-timers, shouldn't he use larger fonts?

------
agentultra
I cut my teeth on the Commodore 64, Apple IIe, and Amiga 500 in the late 80s
and early 90s.

It _did_ feel a lot different then. The etymology of the word, "compute," was
at least subconsciously watching over your shoulder as you sat down in front
of these machines. Their utility was clear.

They loaded programs. They weren't "apps" back then and lacked that commodity
feel to them. You had to understand in some way what programs were, how they
worked, how your computer loaded them. Their limited resources gave the
distinct impression that these were machines. Any sufficiently advanced game
required at least a little tweaking to get running. Maybe you needed to add
more memory, a hard disk, or needed to set some switch in your operating
systems boot loader to squeeze out the last bit of performance from it. In
many respects the old home computer was very much a tool or machine.

Today programming does feel different. I got into programming partly out of
fascination with computers (which at the time required you to know at least a
little BASIC to load a program) and partly from computer games. I would type
in programs from Byte magazine back issues at the library, modify them, and
have a lot of fun. Eventually I started writing my own games. And when I got
good enough I started thinking, "I could make this," when I was playing other
games. It was easy to see the underlying structures in my head and think about
how you would build this thing.

Today it's not so easy. When I play Skyrim I don't think that there's a chance
in hell that I could sit down at my computer and hash out my own Skyrim.
There's a disconnect between how we use computers and how we understand them
to work; there isn't any requirement to know what memory is or how to tweak
your operating system. We don't even "load programs," anymore -- they're
"apps," with all the commodity feel of going down to the store and picking up
a new gizmo.

We hardly use computers for the ability to "compute," anymore.

Programming them... well most of the problems of implementation are largely
solved for most applications. So it does feel a lot more like stringing
libraries together. Some of this is mostly just an artifact of commercial
software development: process demands re-use, etc. Lots of pressure to relieve
programmers of the hard work of their jobs. The only times I find myself going
beyond libraries is working on "web-scale" server applications and finding
performance bottlenecks in all of these weird little scenarios. Or sometimes,
as you say, writing yet another web framework because the existing APIs of the
current crop are forcing complexity into certain components of my applications
that could be removed if the library was just a little more flexible. It might
also be experience. I certainly don't find things that impress me as much any
more.

However it's still a wonderful profession and I still love it. It still
delights me to open the source to 'grep' or 'cat' and read those old programs.
Sometimes I still write an old-school number guessing game when I fire up the
interpreter or compiler of some new language I'm trying on for size. And I can
still think of applications for technology and programming that are
interesting. And more often now than ever before I'm feeling the impetus to
teach.

There's nothing quite like this craft of programming, even if it can feel a
little long in the tooth sometimes.

~~~
gaius
This is why the Raspberry Pi misses the mark. A FIGnition is much more
interesting <http://sites.google.com/site/libby8dev/fignition>

~~~
lutorm
I was going to say the Arduino. Things would have been really interesting if
we'd gotten our hands on one of those back in 1984...

~~~
gaius
I work on modern systems, but _fun_ is going home and hacking 6502 assembly
language on a BBC Micro. And the occasional game of Elite :-)

------
InclinedPlane
It has never been easier for a programmer to translate an idea into reality
and see their work impacting the lives of others in a short period of time. It
has also never been easier for a programmer to support themselves on projects
of their own choosing.

There is plenty of drudgery in programming. But there is also plenty of
drudgery in rock climbing, being an astronaut, or deep sea diving. If you
choose experiences in any endeavor that are all drudgery and mundanity then of
course you will experience an absence of excitement. It is silly to pretend
that isn't a choice.

------
viggity
I'd have to admit that I've kind of felt the same way as Ted. Perhaps I'm
getting "old", I'll be 30 in 5 months ;) I'm sure the pace of things will pick
back up, I just hope it is sooner rather than later.

------
pnathan
Nah. You're growing up and getting jaded.

I'd suggest for people who are bored with coding to get a good deal more
hardcore:

\- move into academia (why not apply your sweet coding skills to graduate
school - academia needs better coders!)

\- work on seriously harder problems

\- find a position that does more than glue

Me, I don't have a very exciting or glamorous job, and I've put together some
programs - fairly simple ones! - which don't appear to be replicated anywhere
online.

If your idea of excitement is blitting bytes onto a screen, the embedded
systems world is waiting and there are jobs in there.

------
smattiso
Yes. Solving problems yourself is fun. Solving hard problems is even more fun.
And the amount of programming related problems you solve on an average day is
much less than it used to be.

When you had to handroll most of your code and make it work within the limited
constraints of the hardware, you were solving problems all the time.

Sure there are still fun problems to work on, but the average programmer
doesn't get to work on them.

------
aangjie
I have been programming only since the millennium(i.e 11 years) and already
feel really...really...tired...... but that may just be my laziness....

------
jamesu
One problem nowadays is the ballpark is more abstracted. Quite commonly one
has to deal with bizarre API's and bureaucracy.

If for example there is a problem with a library you are using, you can quite
easily spend weeks trying to coordinate with someone to fix it, if they can be
bothered to incorporate your fix in the first place. Sure you could workaround
the problem, but that is not always easy either.

------
joedev
No, it is not less exciting today than 20 years ago. The excitement is not
about technology - for me it never was. It's about being exposed to a very
wide range of people, businesses, fields of study. Building applications
across a broad range of business domains means that programming never becomes
less exciting. I love programming for that reason. It's never the same.

------
rachelbythebay
Wait, programming is supposed to be exciting? I consider it a necessary evil
and a means to an end, but "exciting" never enters the picture.

If there are people who really find this stuff exciting, then the whole
"flavor of the month" thing, be it programming languages, databases, operating
systems or whatever starts making sense. They actually enjoy the churn!

~~~
batista
Is this a troll?

Of course programming is supposed to be exciting. It's problem solving at it's
more basic, and it involves making staff, potentially even stuff with huge
impact on the world.

What the fuck, even cooking and truck driving is exciting, why would
programming not be?

~~~
tmh88j
I think he means the literal processes of typing code. I have fun designing a
system and figuring out how to make things work together. I don't get much
pleasure sitting in front of a computer for hours typing away. Debugging on
the other hand can be more interesting because once again, it's back to
problem solving mode.

~~~
rachelbythebay
_rachel_ by the bay. Ahem.

------
laconian
Yes. Pre-Internet, I was happy reinventing the wheel because I didn't know the
wheel even existed yet.

Now, whenever I have a bright idea for a fun side projects, I do a few
searches and see that it's already been done to death. Then I feel
discouraged.

------
todd3834
Programming is way more exciting today because it is so much easier for anyone
to solve real world problems.

The design of that blog was so borring/unexciting that I couldn't get myself
to read it.

------
AznHisoka
I view programming as a tool. It's more or less neutral. What's exciting is
what you use it for - what problems you solve with it, and how you help
improve someone's life with it.

------
ThaddeusQuay2
Programming is as exciting as ever!

Three years ago, I was kidnapped by monkeys, who appeared to be in a trance.
They took me to the top of the Swayambhunath Buddhist complex, in Kathmandu. I
was told that this was the Monkey Temple. As a monk translated the wishes of
the holy monkeys, I discovered that I was required to rewrite the OS of their
ancient computer, which had failed to reboot, back in 1839. Since then, they
had searched the world for a programmer competent to handle the situation.
They were about to give up, as they stumbled onto me, and realized that I was
the reincarnation of ChiChu Gomptar, the lead programmer for the CS monkey
gang, which had served their monkey king, the creator of this computer. I was
flummoxed by its design, as it was made of smooth stones, uniform beads,
colored sand, and wooden levers inlaid with gold. I told them that I couldn't
remember anything from my past life. They gave me something to smoke, saying
that it would connect me, through the eternal ether, to my previous memories.

It did, and after 25 days of extreme programming, of which I recall no
details, I had completed the monumental task. I stood up, and ceremoniously
dropped the special IPL bead onto the machine, which then awoke from its
170-year slumber with a mighty roar. The holy monkeys were pleased. They
handed over a small golden box, with mysterious carvings. It seemed empty, and
I was told not to open it unless my circumstances had become truly dire. I
thanked them, both for the box, and for the tremendous experience.
Unfortunately, I was not able to sell them continued maintenance for their new
OS, but that was mostly due to their language not having the word
"maintenance". Anyway, I have those memories, and this box to use when things
go really bad, plus the always-present hope of future adventure.

<http://en.wikipedia.org/wiki/Swayambhunath>

<http://en.wikipedia.org/wiki/Initial_Program_Load>

~~~
Craiggybear
You have just made my day. Thanks.

------
batista
_(how many different times are we going to create a new Web framework, guys?)_

As many as it takes.

How many times are we going to build a new house or bridge? How many times are
we going to write a new love poem?

It's not as if we are anywhere near already having made the best web framework
that can be. Not even close (include Rails, Seaside, Lift, whatever...).

 _Where is the WCFs, the WPFs, the Silverlights, the things that would get us
fired up?_

WCF, WPF and Silverlight are things "that would get you fired up"? Seriously,
man?

 _And as much as this is going to probably just throw fat on the fire, all the
excitement around JavaScript as a language reminds me of the excitement about
Ruby as a language. Does nobody remember that Sun did this once already, with
Phobos? Or that Netscape did this with LiveScript? JavaScript on the server
end is not new, folks. It’s just new to the people who’d never seen it
before._

LiveScript was useless and never got any wide adoption, and it's nothing like
Node.js besides both making use of js server side. At the time, javascript was
a joke, fragmented, language and was not used on the front end that much,
except for small pieces of dynamic functionality. There were also no AJAX and
no JSON. so having JS on the server had nowhere near the convinience and code
re-use value that having JS on the server does now.

------
billpatrianakos
Well I'm a young one, started programming in '97 when I was 11 so yeah, maybe
I don't get it but I feel like he's missing something here. There's more to it
than just languages, platforms, and frameworks. To me the most exciting thing
about programming these days is shared knowledge. We've always had a lot of
sharing of source code, techniques, and styles but it feels like now, more
than any other time, programming is now more open and accessible to more
people than ever before. Yes, it's still hard as ever but the resources
available to us like GitHub, sites like Codeacademy, the thousands of free
tools circulating have lowered the barrier to entry for anyone with a deep
enough desire to push through resources and learn it. Before there were far
fewer resources to learn. It was mostly books, classes, and your programmer
friend. The web helped but not as much. It's really exciting to see us all
teaching each other more than ever.

Or maybe I'm wrong and far too green to have an opinion.

