The Magpie Developer

Emacs: shiny + old = ftw

I have been programming for about 20 years and the tools I use are just that. The real meat of programming for me was and continues to be writing leaner and maintainable code that causes as few errors as possible.

Tools help a lot. To that extent they are very important. For example, the first few programs I wrote were in Norton Editor and today I can’t imagine writing one without a syntax highlighting one.

The other notable changes occurring during my programming career have been the rise in level of abstraction - from structured programming to OOP, patterns, services, etc. If one was to shy away from learning this stuff, one wouldn’t have a job for long.

Still there are times when one needs to do bit manipulation, write a tight loop, parse an expression, use the right sorting algorithm, create just the right design and so on. The limelight no longer shines upon these skills but that doesn’t mean they don’t matter. The mainstream takes these things for granted, places more demands upon it and causes the elite to bring out better stuff.

What font is this written in? It looks sucky on firefox in XP.

Hey Now Jeff,
I don’t want to be a Magpie dev!
Coding Horror Fan,
Catto

Well said Jeff. Urge to stand out in thr crowd is what comes through in most blogs on technology. May be that writing Software is really a mundane task. May be that we dont need so many great intellects in this field.

Now, if only Microsoft resisted the urge to release a new version of the language/framework every year…

I have to agree with Nobody Real. A good developer should always put aside a reasonable amount of time to explore new (new to you anyway) tools, languages, techniques, etc.

I’ve certainly tried my share of dead-end stuff, but there are quite a few tools in my toolbox that help me immensely that I wouldn’t have if I didn’t try new stuff on a regular basis.

If you are interested in some of the tools that I use regularly, I’ve posted an article on my website that lists them. Many of these tools came from Scott Hanselman’s list (though my list isn’t anywhere near as extensive).

I’ve actually managed to make my J2EE applications a lot meaner and cleaner since learning Ruby on Rails. Even though we don’t use it where I work it was worth learning just to pick up a lot of neat tricks for writing clean web applications.

The issue isn’t that we have too many solutions without problems, its that we have too many problems without (good) solutions.

A man I’ve learned much from, Gerald Weinberg, wrote his first couple of books on the technology of programming. Then he switched, and wrote or coauthored 50 more on the process of programming, and he is most famous for saying “no matter what they tell you, it’s always a people problem.”

http://www.artima.com/weblogs/viewpost.jsp?thread=221622

I liked this post and understand your angle. I was just thinking about this recently…

But… don’t you agree this kind of relates to our obsession with hardware too? Didn’t you recently post about a DLink router? I embarrassingly am a college student (painfully poor) with 2 computers I upgrade/replace every year.

Isn’t this an important part of the toolbox? Old stuff works, but what about the effect on productivity. Customers don’t care about how many developers, hours, and lines of code either (unless it means its going to cost them). If you ask me, considerations into aspects like these determine my tools.

On a completely different note, what is the point of that “Enter the word” test for comments? It seems to always be the same word, so if it is supposed to be a CAPTCHA test its not a very good one…
Nick on January 7, 2008 08:28 AM

http://www.codinghorror.com/blog/archives/000712.html

This is going to sound like hype, but it’s just my $.02 and honest opinion.

Before I found ruby, I kind of hated programming, much of the time. It was just a pain. There were parts that were fun, enjoyable, etc.

But there seemed to be a pattern, which, perhaps might repeat itself w/ RoR for me one day, which was:

  • be excited about learning all the cool whizbang technology of some new language (new for me)
  • actually learn how to do the basic stuff in that technology
  • get bored frequently, because every task seemed to be all about doing the same boilerplate things again, just slightly different each time

Perhaps I wasn’t lucky enough to work on cool, unique projects all the time.

But now, even when doing my Xth social networking site in RoR, it’s still interesting to work on and get down into the internals of the language, pushing the limits of the framework.

… my point is though, I’d probably still be hating life right now at a Java, .Net or PHP company if I hadn’t of taken the time to tinker with Rails one weekend.

Shit, maybe I’ll say the same thing about Scala, Lua, Scheme/Lisp, etc one day… but I’m far from being elite or even sr. junior elite. :slight_smile:

It’s refreshing to hear that there are people who realize that the sheer amount of information overload has negative effects on us mere mortals. I used to read Scott’s blog, but the guy puts up so much information that it just becomes noise and becomes anti-informative.

I think that the wave of new languages owes something to the ubiquitousness of the internet. In the past, new languages tended to fester and percolate in research labs and academia for years. The good stuff would eventually gain commercial traction and the lesser stuff would become geek trivia questions.

Now, everything new gets thrown at the wall to see what “sticks” as soon as someone can upload it. You don’t know what has legs or what’s better left on the drawing board.

a href="http://www.artima.com/weblogs/viewpost.jsp?thread=221622"http://www.artima.com/weblogs/viewpost.jsp?thread=221622/a
Summary
In November, I gave the commencement address for Neumont University, a school in Salt Lake City dedicated to teaching computer science where my coauthor lectures. This is that speech.

How odd…
Part of my living comes from tutoring students at that college on subjects the teachers don’t know or just happen to get horribly wrong.

It’s easy to confuse “the search for newer shinier” with the “search for a better way”.

At some point, the sub-elite and the regular programmers just get snowed by their awe of the “elite”. They jump on the next bandwagon and waste tons of time making shiny new apps rather than solving problems more efficiently. But it’s a human problem as much as anything else. We want “new tech”, not “better solutions”. The latter reeks of “productivity gains” and so much corporate speak; the former smells of new car leather.

Here’s a good one. We’re on VS 2008, 3rd iteration (or is that 3.5th iteration?) 2005 finally stopped f*ing around with our HTML syntax and 2008 has bunch of shiny features. Now don’t get me wrong, DLINQ and Extensions will definitely provide me with some increased productivity, but they’re very “back-end-centric”. But you know what else small devs waste a ton of time on? UIs!

So now we get WPF, but MS still hasn’t cooked up a good ASP “input control” for all of the standard types. What do I mean? I mean that every input on a standard front page to a DB is actually like 3-4 controls (sometimes more). You have your label control, then your textbox/calendar/drop-down list, then your validation control (with or w/o AJAX?). Sometimes you even have multiple text-boxes or validation controls. But at the end of the day, you’re always doing the same things: standar text input, phone input, credit card # input, postal/zip code input, “must-be-a-number” input that inevitably fails when someone types “-1” into the box, date range inputs, etc.

I have wasted so much time in the last year alone in both building these UIs and testing/rejecting the stuff that’s submitted. Goodness knows that if MS just included a good library for this type of pre-cut “input control”, then VS would simply pay for itself.

Instead, we get lots of “shiny” and a dose of “better”. I think it’s a human flaw as much as anything else. sigh

There’s an interesting article from awhile back in the science studies literature about comparative jet design in the USA and the USSR during the Cold War. The USA favored “shiny” technology – top of the line, state of the art, caring more about raw performance of the machine than they did the cultures that made the machine or how much it cost. By contrast, the USSR had a different model of what constituted the “best” technology: they wanted versatile technology that could be used in many different theaters, at a good price, with interchangeable parts that could be serviced by anyone who knew how to repair a tractor. They had entirely different modes of production but ended up with a fleet of powerful jets that didn’t have all of the frills of the US ones but cost a great deal less, could be more easily repaired and serviced, and could be easily produced in larger numbers. I always thought that was an interesting contrast in terms of technological cultures – there is no one way to judge which is the “best” technical solution, it really depends on what your priorities are.

(The citation, if anyone cares, is Leon Trilling, “Styles of Military Technical Development: Soviet and U.S. Jet Fighters - 1945-1960,” in E. Mendelsohn, et al, eds., Science, Technology and the MIlitary, Springer 1989.)

…getting old means you’ve already learned a lot, and learning becomes tiring after x number of iterations.

Actually getting old in this business means that you’ve already learned the same thing 5 different ways and it’s getting harder and harder to see how learning to read a text file a 6th way is going to benefit anybody.

I think it all ties back to the “Real Artists Ship” or Getting things done mentality. Accomplishing a goal, no matter what the technology, is more important than all the shiny new things (or dull things) you used to build it.

Shmork: What you fail to mention (and which, coincidentally, has been mentioned on this blog before) is that the whiz-bang hydraulic flight controls on Sabres actually wound up making a huge difference in their combat performance against the MiG-15.

http://www.codinghorror.com/blog/archives/000788.html

By definition, aren’t windows developers always trapped working on the shiniest thing around? Waste time re-writing working programs because MS re-invented a new shinier OS?