4,284 karma · joined December 5, 2012
Also because mutable object state is problematic--it makes a large system harder to reason about and certan types of bugs more likely, and makes thread safety very difficult.
It also happened to me once before--a production system took a dependency on one of my streams in the data lake without my knowledge, and no SLA, then when I made a change to it, they came out of nowhere, blowing me up with e-mails and meeting requests. I told them to go pound sand.
By the way, I also worked in a supply chain management department of about two thousand people for three years and I never heard anyone else mention queueing theory while I was there, so now I really wish at least this blog post were required reading for everyone in that department.
I've worked with a ton of Python code that looks like this:
def foo(bar):
# do stuff
return baz(bar)
What does `foo()` return? I have to go read the body (or docstring if I'm lucky) of `baz()` to know that. And `baz()` might be another level of indirection to `quux()`. If I change what `baz()` returns, now I need to grep my codebase for all call sites of `baz()` and verify that the new return type is acceptable at each of them, and make changes if not. This is super time-consuming and error-prone, especially when a compiler (especially with an IDE refactoring tool) could do take care of it for me in seconds. It's easier if I have a good test suite, but that means I'm just implementing static type checking with runtime tests, which is more code that I have to maintain.Static analysis doesn't solve all your problems, but it solves enough of them to be a very useful technique.
>Change a front-end React prop, then follow static type errors through the statically typed API, into the backend, all the way down into the database where they force a change in the Postgres schema. The system won't even compile unless React can talk all the way down to Postgres.
https://twitter.com/garybernhardt/status/1140695491685933060
(Microsoft employee here, but I don't actively use or work on the PowerApps product myself)
You still don't get this with Java or Go, but you certainly do with ML-like languages (Haskell, SML, OCaml, F# etc.)
A lot of Haskell developers will tell you that writing Haskell feels a lot like a functional Python, and they use Haskell for scripting as well as application development.
No one's saying "assume they are vegans," we're saying "don't assume they eat meat." Big difference.
For real, any corporation employing a significant proportion of Indian people (hell, even non-Indian people too) should be culturally sensitive enough to know that any offer of a morale dinner must feature vegetarian options. This is basic cultural sensitivity and anyone who doesn't understand this has no business managing people.
The ocean freight for Shenzhen to Lagos probably costs 2-3x more than Shenzhen to Los Angeles, but ocean freight alone is still a tiny fraction of the total landed cost of the data center.
Microsoft and others are also testing miniature undersea data centers, and using seawater for cooling could help address air conditioning costs: https://news.microsoft.com/features/under-the-sea-microsoft-...
The time tracking is just for me, I don't share my logs with anyone else. So far I believe it's kept me focused on achieving specific work goals and not getting distracted, leading to more concrete achievements I can cite in my annual performance review.
You could just as easily blame capitalism for making people lonely by concentrating lucrative employment opportunities in just a few cities and encouraging young people to uproot their lives and relocate for work.
[1] https://bebusinessed.com/history/history-nuclear-families/
Meanwhile, I believe younger talent is underpaid across the board in industry. In many cases junior employees make less than half what their more experienced colleagues do, even though the juniors tend to take on more than their fair share of the workload, and they often are relegated to doing the tasks and projects that the seniors don't want.
I think this is mostly based on ingrained beliefs in dues-paying and hazing culture (tendency for existing members of an in-group to exploit the newest members) rather than any empirical measure showing that juniors are that much less valuable from a productivity standpoint.
[1]It's estimated that you need to make north of $200k a year to be able to afford to buy a single-family home in the SF area: https://sf.curbed.com/2019/3/25/18277602/income-buy-home-san...