335 karma · joined June 14, 2007
How did that make it into the v1 design?
The average base salary seems to be CHF 136,344 (USD 140,000) per year.
You can reduce that if you opt for less choice (e.g. you can only use particular doctors) to around CHF 235/month.
I haven't looked at pipes, but I'm guessing it doesn't all fuse away either.
I do agree that lack of modularity features certainly doesn't help though.
Rust does this well with iterators, for example.
Fitness for purpose is relative to the other options.
Small vs large standard library:
A small standard library with most functionality in independent, community-maintained packages has given us API friction as types, traits (type classes), etc are hard to coordinate across maintainers and separate package release cycles. We ended up with lots of uncomfortable conversions at API boundaries.
Here's a number of examples of problems we currently have:
- Conversions between our 5(!) string types are very common.
- Standard library I/O modules cannot use new, de-facto standard string types (i.e. `Text` and `ByteString`) defined outside it because of dependency cycle.
- Standard library cannot use containers, other than lists, for the same reason.
- No standard traits for containers, like maps and sets, as those are defined outside the standard library. Result is that code is written against one concrete implementation.
- Newtype wrapping to avoid orphan instances. Having traits defined in packages other than the standard library makes it harder to write non-orphan instances.
- It's too difficult to make larger changes as we cannot atomically update all the packages at once. Thus such changes don't happen.
Empirically, languages that have large standard libraries (e.g. Java, Python, Go) seem to do better than their competitors.
Confusing management with leadership is one of the main reasons for politics and empire building. Once managers think they're in charge of figuring out the vision, instead of that being the whole team's responsibility, you're lost in top-down management land.