Live data from Hacker News

“I wrote FAT on an airplane, for heaven's sake”

blogs.msdn.com

101–110 of 119 posts

Re: “I wrote FAT on an airplane, for heaven's sake”

#101
You can read it a couple of ways, you can take it as Gates showing off that he did something hard quickly, which is certainly valid, or you can take it as Gates saying 'stop fiddling whilst Rome burns and get it done'. You can hammer out complex ideas quickly and lose your life twiddling the details, or just do it and move on.

Or more likely he was being a bit of a jerk.

Re: “I wrote FAT on an airplane, for heaven's sake”

#102

I had a manager that would repeatedly use this type of remark. We had this particular application that on one could touch without breaking something. It was always a mess. He would often remark "I wrote the whole thing over a weekend, why can't you guys make a tiny little change without breaking it?" One day I finally got fed up with him and replied "Because it's the quality of work you'd expect from an entire applic…

On the opposite site of the coin, I was a professional developer 25 years ago (and still keep my hand in as a hobby), and do regularly struggle to understand why things take as long as they do these days. We were quoted a day for something that I said could be written in about half an hour - their quote included nothing more than coding and unit testing it.

So I was challenged to prove it. Which I did (or rather I did it in 10 minutes). When their code came back, a day later, it didn't actually work. When we pointed that out to them, they came back another day later with code that looked almost identical to the one I'd written in 10 minutes.

tl;dr. Sometimes managers don't realise the complexity of modern software, but sometimes modern developers are actually just plain slow.

Re: “I wrote FAT on an airplane, for heaven's sake”

#104
post #19

Gates is one of those rare people who is at a time a good developer, good manager and a cunning businessman. I started to appreciate him after watching Triumph of the Nerds documentary series. I literally loled for 5 minutes after watching Gates in an event parodying IBM which was organised by Jobs http://youtu.be/riyAe4BKAng?t=20m1s .

Wow, Larry Ellison predicts mobile web at 47:00.

More Chromebook than Mobile Web.

Re: “I wrote FAT on an airplane, for heaven's sake”

#105

Earlier quoted context omitted.

But too young to know writing code and speccing data structures on paper (and/or napkins...) was quite common before airplane-friendly computers were available? (And for a long time after, really; ubiquitous ownership of laptops is a quite recent thing).

From this Woz quote it was pretty common: "I wrote all my code on paper in hexadecimal. I couldn't afford an assembler to translate my programs into hexadecimal bytes, I did it myself. Even my BASIC interpreter is all hand written. I'd type 4K into the Apple I and ][ in about an hour. I, and many others too I think, could sit down and start typing hexadecimal in for a SMALL program to solve something that occured or…

Possibly stupid question : Why did he not write the assembler himself ?

Re: “I wrote FAT on an airplane, for heaven's sake”

#106

I had a manager that would repeatedly use this type of remark. We had this particular application that on one could touch without breaking something. It was always a mess. He would often remark "I wrote the whole thing over a weekend, why can't you guys make a tiny little change without breaking it?" One day I finally got fed up with him and replied "Because it's the quality of work you'd expect from an entire applic…

On the opposite site of the coin, I was a professional developer 25 years ago (and still keep my hand in as a hobby), and do regularly struggle to understand why things take as long as they do these days. We were quoted a day for something that I said could be written in about half an hour - their quote included nothing more than coding and unit testing it. So I was challenged to prove it. Which I did (or rather I di…

I have been developing software for 20 years and I am currently replacing some applications that were written in the last five years. They use OOP, patterns and the latest tools. Often I wade through dozens of lines of codes trying to find the meat of what they are trying to do. I usually find easier and shorter ways to implement the same thing just by better design and avoiding repetition. I don't think programming is just about the tools, I think it is about structure and organization.

Every pattern, layer, feature or tool that you introduce in a project, makes it more complex, so you really have to use good judgment when you decide what to add.

Re: “I wrote FAT on an airplane, for heaven's sake”

#107

I had a manager that would repeatedly use this type of remark. We had this particular application that on one could touch without breaking something. It was always a mess. He would often remark "I wrote the whole thing over a weekend, why can't you guys make a tiny little change without breaking it?" One day I finally got fed up with him and replied "Because it's the quality of work you'd expect from an entire applic…

On the opposite site of the coin, I was a professional developer 25 years ago (and still keep my hand in as a hobby), and do regularly struggle to understand why things take as long as they do these days. We were quoted a day for something that I said could be written in about half an hour - their quote included nothing more than coding and unit testing it. So I was challenged to prove it. Which I did (or rather I di…

Times have changed considerably. When I started in the industry 20+ years ago our tools were a compiler, debugger, and editor. Any library not provided by the compiler we wrote simply because purchasing libraries was very expensive. We also weren't afraid to code a solution specific to the problem and not be overly concerned with abstracting every library for potential use with any future application. Most work went into the server code, which housed the application logic and coordinated with the database; graphic UI's were a luxury.

Nowadays a web application, for example, is tiered more. Different frameworks are encouraged for the different tiers: Bootstrap, Spring, Hibernate, etc. Each one is its own ecosystem and is built on top of other libraries. It's very common to make web service calls outside your WAN. Quickly you find out that "standards" have different interpretations by different library authors.

UI's are no longer an afterthought. They affect how successful your application is. (My observation is that a well-designed UI can cut down on user errors and training by two thirds over a merely functional UI.)

I'm keeping the example simple by not mentioning necessary middle-tier components that we didn't use 20+ years ago. We also didn't worry about clustered environments, asynchronicity, or concurrency.

Not knowing the application you needed or how the analysis was done by the coding team, it's hard to say if some of their "slowness" was getting to know the problem AND coming to understand how extensible, performant, and reliable you wanted it. My own approach is usually to solve the "happy path" first and then start surrounding it with "what if's" - e.g. what if a null is passed into the function, etc. Over time I refactor and build in reliability and extensibility. The coding team you referred to may have used a different approach in which they tried abstracting use-cases and building an error handling model before solving the "happy path".

Your "tl;dr" is spot on. But I'd like to raise a cautionary flag about judging modern development through a 25 yo lens. The game has changed.

Re: “I wrote FAT on an airplane, for heaven's sake”

#108

Earlier quoted context omitted.

From this Woz quote it was pretty common: "I wrote all my code on paper in hexadecimal. I couldn't afford an assembler to translate my programs into hexadecimal bytes, I did it myself. Even my BASIC interpreter is all hand written. I'd type 4K into the Apple I and ][ in about an hour. I, and many others too I think, could sit down and start typing hexadecimal in for a SMALL program to solve something that occured or…

Possibly stupid question : Why did he not write the assembler himself ?

I'd guess because of memory limitations. Some more info on those days:

http://www.landsnail.com/apple/local/applewoz.htm

http://www.gamasutra.com/blogs/JohnSzczepaniak/20130507/1918...

Re: “I wrote FAT on an airplane, for heaven's sake”

#109
About "optimization", Gates likely had a point. That problem of assigning code blocks (subroutines/functions) to memory segments does suggest a significant role for optimization.

What is optimization? For a very sparse description, for the set R of real numbers, positive integers m and n, functions f: R^n --> R and g: R^n --> R^m, find x in R^n to solve

minimize f(x)

subject to

g(x) >= 0

So, set up a mathematical description of the problem based mostly just on the 'cost' function f, that is, what want to minimize, and 'constraints' g that keep the solution 'feasible', that is, realistic for the real problem. Then look for a solution x. Yes, easily enough such problems can be in NP-complete and still difficult otherwise.

Likely what Gates wanted was function f to be the execution time and function g to force honoring the 64KB limit per segment, etc.

Then a big question would be, assuming what software to have its segments assigned?

So, for an answer, just take some Windows and/or Office code and get the total execution time on a typical workload.

Might also want to be sure that on any of several workloads, the optimal solution was no worse than some factor p in R of the best solution just for that workload. Then keep lowering p until the f(x) starts to rise significantly and come up with a curve of f(x) as a function of p. Present the curve to Gates and have him pick a point.

Gee, should we rule out having the same subroutine/function in more than one segment? Hmm ....

Just where Gates learned about optimization would be a question, but he had a point.

Post reply on HN