Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Is Programming Less Exciting Today? (tedneward.com)
71 points by viggity on Jan 26, 2012 | hide | past | favorite | 79 comments


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.


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.


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.


I think he s talking about something else: having fun programming, not just being productive. The fact of the matter is you don't see many new concepts being introduced (say, garbage collection) but mostly new languages or programming styles, more ways to do the same things. And the proliferation of the web means many people work on client-server systems and interfaces. I guess it's inevitable, software engineering is mature enough nowadays and moves slowly.

Maybe in 10 years it will be the geneticists' turn to complain.


His point is wrong, then. Does he think that in the 70's there weren't COBOL programmers hacking out yet another set of flat-file database systems? So garbage collection is a solved issue - thank God - it just seems like he's quitting his job as patent clerk because everything's been invented already. And that's just not close to true. It's never true.


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.


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.


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.


I've always wanted to get into the DIY drones crowd, but can't find enough motivation to actually start cranking up stuff. Back in college, I took microcontroller classes and programmed them in assembly, but missed the chance to build a cool robot due to financial issues (parts didn't come cheap where I came from).


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...


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.


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.


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.


Exactly. People who think programming is boring these days have completely lost their grip on what is important.


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!


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.


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...


Yeah, but even that Wang calculator was all about snapping pieces together - how much soldering did you have to do to get your quadratic equations to work?


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.


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.


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.


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).


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.


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.


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.


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.


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.


The golden age of everybody's discovery is high school, man. There are plenty of unsolved problems, you just don't have endless afternoons on your parents' dime to force yourself to think about them. Learn to think about them again, and you'll have some more golden experiences.

Also: there are seven billion people out there. It has always been an illusion to think you're the best at anything or even that you're the first - it's just that we can see everybody else more clearly now. But ignore that; simulate, if you will, the absence of the Internet from your emotional point of view. Go where your heart takes you, and you'll find what you want.


I completely disagree with your, and partly for the same reasons you disagree with others. The local maxima you describe is something I hit early on, then got access to the university of Missouri while still in middle school. Being below average to average was a giant wake up call that pushed me more. When they connected to the Internet, the information and people available from that connectivity pushed me more. I'm likely never going to do anything that makes me world famous, but if I can be within a standard deviation of all the brilliant people that are only a sentence away, i'll be ecstatic.


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."


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.


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.


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

Here's my attempt to hone in on what the problem is - programming is less interesting now, because it's easier. It appeals to a larger audience now.

I think, in an analogous way, the same thing has happened to video games. They aren't nearly as difficult as they were in the past. Most allow you to save as much as you want. The puzzles, if any, are made simple enough that everyone can solve them. As a result, it appeals to larger audiences, and that sense of enjoyment is lost to the old schoolers who would like a challenge.

With games, however, it's possible that companies will make games that sell to old schoolers. With programming, we can't do that - any attempt to add challenge to it would get in the way of what programming is actually for - and that's getting things done.

The culmination of what is happening, some day in the future, is that programming will no longer be any challenge at all, to anyone. You will be able to have a conversation with a computer in plain English (or your language of preference) about what you would like it to build for you, and it will get built.


There are tons of local maxima today. They're called niches. Find yours and you can be a hero there.


Have to disagree with you here. Sometimes the process is rewarding in itself. For example, someone who writes and edits on a typewriter is going to have to hone her craft and mental editing to a certain level where writing by typewriter is efficient and rewarding. She might then wonder what is lost when people switch to the powerful word processors we have today...but those people are having the excitement of focusing their mental resources on creating new types (and quantities) of writing rather than fighting against the physical constraints of their machine.

The excitement is still there, it's just at a different phase in the process.


Everything you said ... absolutely and totally. I had a background similar to you. My first programming job was writing assembler for flight recorders and ADCs.

Modern programming is a drudge. Everything encapsulated in increasing layers of abstraction and further away from what is actually happening. If it all disappeared tomorrow no one would know where to start from first principles again as these are no longer taught.

Its a tragedy.


"If it all disappeared tomorrow no one would know where to start from first principles again as these are no longer taught."

Modern Computer Science is a relatively new field... there are still early pioneers of the field who are quite alive.

While I agree with you that today's abstractions make things less fun than they used to be for the average development job let's not get crazy with the hyperbole.


Speaking as I find, no hyperbole intended, I meet CS graduates who have no comprehension of a CLI or anything but the most incomplete notion of how memory or machine code works.

I knew maths (and even history and modern language) students at university who had a complete and full understanding of these things and were also handy with a soldering iron and who could build a functional "computer" in a workshop as part of their degree -- utilising transistor logic. This is something you no longer see at most institutions today. I am sure it must be getting taught somewhere but it seems incredibly rare.

By contrast, it was quite common when I was a student and was being done by people who weren't even doing CS as a subject.

CS students today seem to know nothing other than Java and the IDE du jour -- and from lots of different institutions not just one. The best programmers I've met don't even have a CS degree (or even a degree) or they specialised in something utterly non-technical. But having logical, problem solving minds, they turned out to be first class coders -- usually because they had do develop something specific to help them do a certain job and they found the concepts easy. This was true of me, too.


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.


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.


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)


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


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?


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


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.


Pure functional programming (HASKELL) inspires me very much.


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!


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?


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.


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

Well, back then most people didn't use computers at all. These days, many use them as appliances, so maybe the fraction that actually use them to "compute" is about the same.

Personally, as a researcher I do most definitely use them for their ability to compute.


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


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...


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 :-)


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.


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.


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.


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.


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....


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.


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.


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!


Do you also find Legos and physics really boring, except as means to an end?


If by physics you mean the class, then I wouldn't exactly call it exciting. It's been years and I don't find myself doing arbitrary physics experiments just for fun. If you're talking about something else (like physics engines for a game), then you should clarify.

Legos? They didn't have any staying power. It was amusing at times to snap them together, but that was years and years ago when I was a kid. I sure don't own any now. It was fun to help a friend make some pixel art with it a couple of years ago, but all alone it would have been boring.

It seems we may have stumbled across a fundamental difference here.


Not physics the class, just the "how things work" aspect. I guess you could file chemistry under that as well.

I didn't actually find physics in college very interesting, because it seemed more focused on memorization. But I find reading Stephen Hawking books pretty interesting, even though I cannot think of many practical applications of his theories to my daily life, hobbies, or job. I like to understand how things work, and I do find "how things work" to be fun to play with. Materials and chemicals are pretty interesting to play with, as well.

Perhaps it is a fundamental difference. To me, building and understanding things (whether they're computational, mechanical, chemical, whatever) is interesting, but their ends aren't necessarily nearly as exciting, especially if the end is "a business". Business is necessary, sure, and I'd build things for business purposes as a job, but it's not my main interest.

That's probably even my reaction to the average startup on HN; for many, I don't really care about their SaaS or ecommerce solution or whatever, but they often solve interesting problems en route to getting it to work.


Is solving puzzles exciting? People solve crosswords for fun.

Not every programming task is exciting, but some can be fun.


As an example: I was playing Myst, uh, IV? And there was this puzzle that required me to find a short-enough path from one kind of a spot to a different kind of a spot (you had to pick up a soap bubble with a spoon and carry it somewhere, but it would evaporate if you carried it for too long; anyway, the details don't matter).

I was making a map of the level on a piece of paper, and bungled it up (the rooms that were supposed to be adjacent appeared on two completely opposite sides of the paper or something like that). The obvious next step was to write a Python script to take a description of the map (room X: exit north leads to room Y, exit south leads to room Z, etc.) and produce a map (in ASCII art; I didn't want to spend too much time on superfluous graphics).

It was more exciting to write that script and see the map it generated than it was to play the game itself.

I may be weird.


It's not weird at all, at least to me. I still love my solution for a crazy puzzle in Riven (Myst II). You had to select certain stones with animals carved on them. You figured out which ones to select by finding certain objects on the island, and the current screen supposedly contained a shape similar to the object. However it was nearly impossible to figure out which shapes corresponded to which stones partly because the puzzle was spread all over the game, and partly because it was hard to figure out which creature a shape represented. My solution was to use my computer and programming knowledge.

Stage 1 was taking screenshots of the stones and shapes. Stage 2 was outlining the shape screenshots with Paint, and using a simple script to look for the outline color, and other colors would change a background color, so I was left with a simple outline. Stage 3 was using an image display program I created and will be selling soon to create a grid with the shape outlines in the top row and the stones with animals in the other rows. Thus I had all the information needed to figure out the code on a single screen. This was so much more fun than doing it the normal way :)

Oh, and then there was the time I solved the last puzzle in Professor Layton, a sliding block puzzle, by programming it in. I used brute force, which of course didn't work (too slow), but then used memoization techniques and such to speed it up. I not only found a solution, but I found interesting stats, such as the minimum number of moves required. It was even more interesting because it was my first program in Python, so I used it to learn the language. Programming to solve video game puzzles is one of the most fun kinds of programming out there.


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?


Not a troll. I'll go with cooking since you mentioned it, and I do like cooking things.

Making a pizza is boring. Inviting a friend over, teaching her how to make pizza, and then each of us making one and sitting down to watch a movie? That's fun.

Looking forward to a potluck where I'll bring a homemade pizza and homemade apple pie[1] for other people to enjoy? That's when it starts getting exciting. I love sharing that stuff.

[1] Sagan, universe, etc. Yeah, I know.


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.


rachel by the bay. Ahem.


I think there are some people who's interest in programming is correlated with the end result (what the end product is + impact). If the end product is going to be trivial, it doesn't matter what innovative technology you're using - it won't be interesting. I'm one of those people.


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.


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.


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.


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


You have just made my day. Thanks.


(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.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: