5 ms·
One of my fav tech talks ever (and I watch a lot of tech talks) is Alan Kay's "Is it really 'complex'? Or, did we just make it 'complicated'?" It addresses you
by corysama 10y ago
One of my fav tech talks ever (and I watch a lot of tech talks) is Alan Kay's "Is it really 'complex'? Or, did we just make it 'complicated'?" It addresses your question directly, but at a very, very high level.
https://m.youtube.com/watch?v=ubaX1Smg6pY https://m.youtube.com/watch?v=ubaX1Smg6pY
Note that the laptop he is presenting on is not running Linux/Windows/OSX and that the presentation software he is using is not OoO/PowerPoint/Keynote. Instead, it is a custom productivity suite called "Frank" developed entirely by his team, running on a custom OS, all compiled using custom languages and compilers. And, the total lines of code for everything, including the OS and compilers, is under 100k LOC.
- fsloth 10y agoI can't understand why people don't refer more often on Mr. Kays message. To be bluntly uncharitable and only half kidding, I do understand why consultants don't buy into it. Simpler systems that are less fragile mean less work.
- cookiecaper 10y agoEmployees and management don't buy into it for the same reason that consultants don't buy into it. It means less work. Less opportunity to sound smart, seize control, and/or ego stroke. Less variety to break up the work-week's monotony.
- brwr 10y agoEgo is one of the larger problems I've seen over the years. This usually shows, as you mention, with someone trying to sound smart. The irony here is that I've consistently found -- both inside and outside the software industry -- that the smartest people in the room are the ones who can speak about complex topics in a simple way.
- cookiecaper 10y agoIt's a dilemma, because "it takes one to know one". While a few smart people in the workplace may be able to appreciate a brilliant dilution of an extremely complex topic into something approachable, most will not understand the starting complexity and just assume it's an approachable topic. This is fine and everything, but it's bad self-promotion. If you want your bosses to give you a raise, you need them to think that you have a unique, difficult-to-acquire skillset and that it's worth going to lengths to keep you happy. Unfortunately, modest behavior rarely results in recognition. Bombast is a very effective tool, and at some level, you always have to compete against someone.
- brwr 10y agoWell, it depends. I personally don't feel the need to self-promote to get a raise. I'll probably lose out on a few raises or promotions because of that, but I make a good amount of money and I'm good at what I do. That's enough for me.
- cookiecaper 10y agoThis is a fine position to take, but it demonstrates one of our pervasive social problems. People with the humility, modesty, and judgment to make good decisions are frequently passed over because they don't feel the need to lead people along or "prove" their value, whereas clowns frequently realize they have nothing except the show and actively work to manipulate human biases in their favor so that they'll continue to climb the ladder. This works very well. The end result is that good people end up hamstrung by incompetent-at-best managers, and they can take down the ship. The dilemma re-emerges as one asks himself whether it is right to sit by and allow the dangerously incompetent to ascend based on mind games. My answer used to be "Yeah, I'll just go to a place where that doesn't happen". I no longer believe such places exist.
- freehunter 10y agoEngineers don't buy into it because it's not cool. Complex systems are cool. It goes back to the phrase "well-oiled machine". Swiss clocks. People standing around a classic car with its hood open. A complex system of things working just perfectly is super cool, and fixing them when they break is a popular pastime.
- cookiecaper 10y agoYeah, this is what I'm getting at with the variety thing. I think that good talent tempers this tinkering impulse when a potential breakage could imperil production. They learn that as fun as complexity can be in the right context, having to lose a weekend staying awake until 5am on Saturday night/Sunday morning trying to fix something stupid cancels it out. Having a lab and doing experimental stuff is great, but choosing to stake your company's products on it should be a much weightier consideration. In practice, we see that this weight is apparently not felt by many.
- GnarfGnarf 10y agoThat is absurd. You can't write an OS in 100KLOC.
- abecedarius 10y agohttp://www.projectoberon.com/ http://www.projectoberon.com/ is released and small enough for a book in the dead-trees format.
- dreish 10y agoIn case you're not joking, MINIX is much smaller than 100KLOCs.
- srpeck 10y agoCheck out stats on the kOS/kparc project: https://news.ycombinator.com/item?id=9316091 https://news.ycombinator.com/item?id=9316091 There is also a more recent example of Arthur Whitney writing a C compiler in <250 lines of C. Remarkable how productive a programmer can be when he chooses not to overcomplicate.
- nickpsecurity 10y agoEverything I saw in the link looks like K, not C. Do you have a link to the C compiler done in C language?
- petra 10y agoI wonder why did he chose to built demo applications, instead of a powerful and useful development tool that has strong value somewhere ?
- corysama 10y agoSeems like the resources he had to work with in the VPRI project were pretty limited. It will be interesting to see what his team comes up with now that they are working with SAP and YC. So far, I know about this: https://harc.ycr.org/project/ https://harc.ycr.org/project/ Hopefully, they're shooting for something like this: https://www.youtube.com/watch?v=gTAghAJcO1o https://www.youtube.com/watch?v=gTAghAJcO1o
- devaroop 10y agoAlan just complicated his own laptop by not using which is proven to work.
- fsloth 10y agoNo, he made a point, which no one would have believed without his example. The whole vertical software stack sitting on top of the hardware of a PC is generally considered a massive towering best with layers of abstractions, and armies of programmers needed to implement and maintain each layer. To say that this does not need to be so, would be taken as theoretical, impractical nonsense without any proof. Which actually would be a valid position, because doing software is so hard that generally you can't guarantee will something work without actually doing it. So, yes, to make that point, and to have it taken seriously, he really needed such an example.
- jon49 10y agoSomething missing from this entire discussion is that developers have a hard time understanding what are truly best practices for their product they are creating/maintaining. It is a bold assertion to say that everyone understands all the different nuances in creating software.