He's not the only anti-startup commenter here. I'm curious, have you ever worked at a startup as a programmer, not as a founder? Sometimes, it's easier to see the downside of a system when you're not the one profiting from it.
The part I don't understand is why people generalize their one bad experience to "the whole system is corrupt!"
I've worked for two startups as a programmer. They were both broken, and each was broken in its own way. I don't think that the founders of them were bad people or out to screw me. They were, however, way in over their heads. Startups are hard.
I also founded a startup. It was also broken in its own way, despite trying to avoid all the mistakes that I'd seen my previous bosses make. Startups are hard. Luckily, I didn't take anyone else down with me - it was just me and my cofounder, he soft-landed at business school and I soft-landed at Google.
I now work at Google. It is significantly less broken than any previous startups I've worked at. However, there are still a bunch of things about it that are annoyances.
No place is ever going to be perfect, but if you tar each new employer with the same broad brush that made you leave the last one, then chances are the same broad problems will come up.
For corporations, consistant work is often more desirable than exceptional work. Amassing thousands of lines of code that only exceptional programmers can use, understand and modify is a liability, not an asset, no matter how efficient it is.
Which is a quality of a fundamentally broken organizational system that measures power in (and therefore optimizes for) number of people controlled, as well as the government-directed economy that underwrites it.
tl;dr: there's a reason most startups prefer javascript to smalltalk.
Which is a quality of a fundamentally broken organizational system
No, it's a quality of a robust organizational system. Let's take a program that parses html as an example. What would you think of an html parser that only works well with high quality, strictly structured html and breaks under poorly formatted html? You would call it a fragile, broken system. But a parser that deals equally well with low quality html would be a well thought out, robust system. And here's the key to the point I was making: the robust system could be relied upon to do its job consistently even under less than ideal conditions.
A system that requires exceptional engineers to maintain it is a huge source of risk for any company. If your current exceptional engineer leaves for whatever reason, you have to find another one. If the reason your engineer left is your company is suddenly facing insolvency thanks to a nasty patent dispute, all you may be able to afford to hire is a college grad to maintain what you've already got.
You're speaking from the perspective of someone who has to be responsible for something without understanding it, which is another pathology endemic to that system. By only using black box reasoning, of course you come to the conclusion that you need many such boxen in case one malfunctions in an unforeseeable way.
The thing is, the level of intelligence to maintain the software has to exist somewhere. If it's not vested in a small number of people able to actually understand the system, then the intelligence ends up being an emergent property of the human automatons, Chinese-room style, with the now-important "manager" pretending to control it when in fact nobody does.
You're the only one in this thread talking about human automatons, outsourcing and broken corporate structures. I'm explaining why a healthy corporation would want to use a simpler and easier to understand system over a more complex, harder to understand one. Nothing more, nothing less.
The thing is, the level of intelligence to maintain the software has to exist somewhere.
Yes it does. Nothing I've said suggests otherwise. But, let's say you can lower the amount of intelligence required to actually understand the system. Not much, just from "exceptional" (by which I mean 10x or the top 1% of programmers working in the field) to "average" (by which I mean the median level of intelligence for programmers working in the field). If you can do that, you lower your risk over the long term. If someone leaves, you can easily hire a replacement and get them up to speed.
> let's say you can lower the amount of intelligence required to actually understand the system
Every system has accidental complexity, so a better language can obviously help achieve this. However, Java does not do this. What Java does is lower the intelligence required to make changes without understanding the system, by having few abstractions and effectively making the programmer work in an intermediate language with added redundancy.
And while this approach allows for cheaper unskilled programmers to be used, they take up more time figuring out what to attempt to change and then crossing their fingers hoping the code will compile. A similar amount could have been spent for an intelligent consultant working in a high level language and serving several such clients, but management would rather feel secure by having someone they control.
> I'm explaining why a healthy corporation
Once it's in the territory of hiring more people instead of better people, you have something that prioritizes control over obtaining results, which is not healthy. Unfortunately, it can indeed still pass for a healthy corporation and live many decades, a source of many modern ills.
The average big company grows at about ten percent a year. So if you're running a big company and you do everything the way the average big company does it, you can expect to do as well as the average big company-- that is, to grow about ten percent a year.
The same thing will happen if you're running a startup, of course. If you do everything the way the average startup does it, you should expect average performance. The problem here is, average performance means that you'll go out of business. The survival rate for startups is way less than fifty percent. So if you're running a startup, you had better be doing something odd. If not, you're in trouble.
I couldn't agree with the article more. I should have come up with a different tl;dr for the previous post, considering everything I wrote in this thread has specifically been about corporations and not startups. Sorry about the confusion.
If you're a software engineer, you really ought to be living in the Bay Area. There's no other place like it.
I agree there's no other place like it, but that's not necessarily a good thing. I've been there, done that and won't go back. Then again, I prefer blunt honesty to polite lies and I need my space. Just saying, it's not for everybody, even if you're a software engineer.
Something in between would be ideal for me. A center console with a touch screen for configuring settings when you're not driving, but physical buttons, switches and knobs on the steering wheel for when you're driving.
I think the question the parent is trying to raise is, is HN the right place for gender discussions in the first place? I have a dotjs script that filters out any political or social posts here because the conversations that occur are simply not constructive. That and the hate in those comments can be felt by anybody within a 10 foot radius who can see the expression on my face when I read them. I don't need that kind of poison derailing my day, so I stopped reading them.
However you feel about the original topic, you have to ask yourself: are those comment threads helping or hurting the community here?