Skip to main content

Speed kiddies

Speed kiddie:

Someone who learns or uses a low-level (often compiled) language for the constant coefficient performance increase. These people often have no regards for computational complexity and are usually confused by asymptotic notation. They frequently suffer from severe cases of premature optimization and believe that manageability comes second to runtime speed (in all applications). You can often find them trolling around web-forums bragging about their pointer or bit manipulation skills (the code is generally characterized by non-reusable design and a significant lack of readability).

Examples:
  • "What do you mean my algorithm runs at O(n!)? It's twice as fast as yours with this small test set"
  • "How do you write efficient code in Python... It doesn't even have pointers!"
  • "I don't need to write readable code, I'm not going to forget my own code..."
  • "High level languages are for the weak, real men enjoy pain... PAIN!!!"
  • "Lisp doesn't offer anything new to me, C has macros too!"
  • "RAWRRR POOINTERRRZZZ!!!!!!!!!!!!!!!!!!"

Comments

Gabriel said…
we all have been teenagers ^^, I just hope they ARE effectively teenagers...
k3rni said…
Plenty of them in Gentoo-land, it seems. See http://funroll-loops.info/ for some quotes.
kib said…
:)
I like the Lisp vs C macros one !
Paris said…
Where would the programming world be without the performance kiddies? Not to say it ever matters, unless your developing app's for mobile devices or under very strict environments, most of the time the language will handle of the performance tricks within itself and there isn't much you can do besides avoid a never ending loop and horrible queries.
Wybiral said…
"Where would the programming world be without the performance kiddies?"

The real thing that separates speed kiddies from wise programmers is that speed kiddies try to optimize everything, whereas a wise programmer will know how to pick his battles and do lots of profiling first.

The wise programmer knows that premature optimization is the root of all evil, and she refuses to solve any problems that she isn't sure will be a problem.
There are still places where you need that small differential speed gain. I know, I am there. If you need to communicate 200 periodic messages at a 50Hz rate everything counts.

Then again, for any other project, at least memory management is a must have (Java/.NET) not counting on the fact that nowadays VMs can optimize code _after_ the application is already running.
Wybiral said…
"There are still places where you need that small differential speed gain."

Yeah, I agree. My dislike is for those people who don't understand the difference between situations that need it and ones that don't. Obviously in something like systems programming, you're going to need it more often than something like application programming or web development. Coefficient speed increase in those areas isn't as important as algorithmic increase and manageability (not to mention speed to market, you can't compete feature-wise when you're busy pushing unnecessary bits around).

Popular posts from this blog

Procedural music with PyAudio and NumPy

Combining two of my favorite pastimes, programming and music... This is the hacky "reduced to it's basic components" version of a library I've been working on for generating music and dealing with music theory.

Tweaking the harmonics by changing the shape of the harmonic components and ratios can produce some interesting sounds. This one only uses sine waveforms, but a square / saw generator is trivial with numpy.

It takes a second to generate, so don't turn your volume up too loud in anticipation (it may be loud).

import math
import numpy
import pyaudio
import itertools
from scipy import interpolate
from operator import itemgetter


class Note:

NOTES = ['c','c#','d','d#','e','f','f#','g','g#','a','a#','b']

def __init__(self, note, octave=4):
self.octave = octave
if isinstance(note, int):
self.index = note
self.note = Note.NOTES[note]
elif isinstance(note, st…

Build a Feed Reader in Python (Parts 7-9)

Part 07 Adding Jinja2 templates to a flask web application.

 Part 08 Adding static files so we can serve some CSS to style our app.

Part 09 Adding a background task to continuously update the articles while the application is running.

Write a Feed Reader in Python

I just started a new video tutorial series. This time it'll cover the entire process of writing an RSS feed reader in Python from start to finish using the feedparser module, flask, and SQLAlchemy. Expect to see about 3-4 new videos a week until this thing is finished!
Click to watch