Monthly Archives: September 2010

Dynamic Programming Languages are a net negative on engineering productivity

For the purposes of this discussion I will use the term application and system interchangeably to describe a piece of software with more than 300k lines of code and with more than 5 developers.

Dynamic programming languages allow you to make the Faustian bargain of ease of prototyping at the expense of maintainability. They let you prototype your system quickly without having to think too deeply about the core abstractions. In an application space where the core abstractions are hard to determine because the business is so new, this is a good thing. No point in thinking through the abstractions when you are building something radically new.

However, at some point, software becomes more permanent as the business it supports becomes more permanent. At that point in time abstractions become necessary to get engineering leverage. And then the Devil turns on you. Because the lack of abstractions early on make it hard to define them later. Worse, because of the dynamic nature of the language, it becomes hard to impose rules on the abstractions on the programmers. And as the team scales it becomes increasingly harder.

Over time you get a large piece of software for which reasoning about becomes increasingly more difficult.

And then you try and make the dynamic language more structured with more well defined abstractions and rules that the compiler and language and tools do nothing to help you with.

So the choice is always yours, pick a dynamic language and have no support when your business scales, or pick a structured language and struggled with the type-safety.

At the end of the day, you either believe types and abstractions make for productivity or you don’t. If you do, then you agree with me. If you don’t then you don’t. But 30+ years of programming language design has taught us that types do matter.

Baby’s First Cubicle

http://www.littletikes.com/toys/young-explorer.aspx

In this age of technology we think it is essential that children learn about computers as early as possible. This technology can enhance critical and cognitive thinking skills, problem-solving abilities and analytical thinking. Having child-appropriate computers and software in your facility shows parents that you understand the important role technology plays in providing an enriched learning environment for their child’s growth. It’s a hallmark way to set you apart from other childcare facilities.

  • Furniture features:
    • Flat desk area
    • Left and Right built-in mouse pads
    • Bench seat that fits two children and offers storage inside for supplies
    • Two locking cabinet doors
    • Computer wiring stores safely inside ventilated cabinet.
    • Locking castors keep unit from rolling during use.

So poor Nick. Life in the cubicle begins very soon after sentience. What ever happened to schools showing off their playing fields and talking about their sports clubs? Whatever happened to debate teams? In this day and age we prep them young to go from

Young Explorer™

To

The Worst Customer Experience Ever at Fry’s Electronics

Fry’s Electronics is a Bay Area institution. Fry’s has notoriously poor customer service paired with excellent selection and an amazingly great no questions asked return policy.

How bad is the customer service?

When Best Buy set up shop here, they ran a sequence of ads asking local Bay Area residents what they thought of Fry’s customer service. Let’s be clear, they said that their pimply faced sales reps knew more about the products they were selling than the other guys sales reps. They were saying the other guy had set the bar so low, that they could vault over it …

Fry’s Sales Reps Mislead

Many years ago I learned that a Fry’s Electronics rep would mislead you. The sales rep in 1998 sold me a VCR that he said could skip over ads. Stupid Kostadis, what the sales rep meant was that there was a 30 second skip button on my VCR.

Two years ago, I relearned that lesson when I tried to buy a portable AC. The sales rep tried to sell me the product he was tasked with selling even though it was the wrong product for my needs.

Fry’s as a warehouse

The last two years I have used Fry’s as a warehouse. I show up with a piece of paper that describes the precise product I want. I avoid every single sales rep in the store, pick up the product, and then leave. If I have any questions I use my cell phone to look the information up. If a sales rep approaches me I growl at them: Go away. If they try and offer help: I say no, I don’t need it.

That approach mostly worked. Until today.

The all-time low

I wanted to buy some memory for my new 10” netbook. So I write down the specifications, and I march into Fry’s expecting to find the part and leave.

Unfortunately I could not just pick up the memory module from an aisle. A sales rep had to enter the specifications and then fetch me the part. I was ready to turn around and leave but figured that the simple task of entering some data into a computer and fetching the memory should preclude the usual set of Fry’s shenanigans.

But no.

The sales rep enters the information I carefully wrote down, tells me the price and I say okay. But before I sign and she gets her commission, she asks me a question. The question made it clear to both of us that she didn’t have the part I wanted. Instead of admitting that she could not fulfill my order,  the Fry’s shenanigans began.

First she says that:

The memory module does not exist. That the memory module whose specifications I recorded from a memory module being sold on Amazon did not exist.

When I look at her with disbelief and say, no I want this specific part, she turns around and  says that

To get the memory module I wanted, I had to buy 4 GB.

And when I refuse to do that, she starts mumbling stuff. Frustrated, and concerned that her inability to speak English was causing a misunderstanding,  I ask if she could just get me the part so I could read the packaging for myself and determine if I wanted to buy it. Her response was:

No

Okay, so I can’t get the part I want, I can’t look at the part I before I buy it, but there is an excellent return policy.

Wait, I know of a website that lets me get the part I want, doesn’t let me touch the part before I buy it, and has an excellent return policy …

Hmm…

And so 15 years later my sordid affair with Fry’s is over. I will never buy anything from that store as long as there is the option to buy it from Best Buy or Amazon. And if it only exists at Fry’s, I will live without the product.