663 karma · joined October 6, 2016
I'm almost certain MIT has an employee handbook that reasonably covers situations like this. If anything, it's a demonstration of favoritism that he wasn't fired in the past.
The issue is not voicing an opinion in private -- it's voicing it on an institutional mailing list in his capacity as a member of that institution.
There are good reasons that our legal systems favor the accused -- ones that I _fully_ support -- but it is an unreasonably high epistemic standard for us to operate under in our daily lives.
If I don't want to associate with someone because they're an asshole, I'm under no obligation to prove so beyond a reasonable doubt. My freedom of association is more fundamental.
I don't either, but that doesn't mean we need to have an absolutist position on speech. I don't view defending pedophilia or making apologies for the rape of a sex trafficking victim to be merely "controversial."
Say what you will, but you have to respect the grift.
I can understand how value types would help a lot, but it is possible to optimize Java to avoid object headers on the heap at great pain, i.e. avoiding classes and doing index arithmetic on flat arrays of values. Value types coming to the JVM will obviously help here.
Curious to hear about other advantages the CLR has.
Dependency bloat can be a concern, but part of the reason for those dependencies is to reduce bloat in source code via auto-configuration.
Part of this is because many systems are evolving, because business needs have human inputs and are not always "logical." At the edges where this human interaction happens, we expand the domain of programming to that of human psychology. There definitely are empirical claims we can make human-computer interfaces, but it begins to get a bit messy.
To be clear, I am personally interested in becoming more rigorous about empirically justifying claims I make about the code I write. But I’m also interested in code because many of the problems it attempts to solve map the very complexity of the real world. In many ways, abstraction is a properly philosophical exercise, and I think it’s impossible to separate a pure engineering discipline from this broader context.
Programming is multi-disciplinary, and I think that’s a strength.
Previous HN discussion: https://news.ycombinator.com/item?id=13449728
However, generally you don't want to operate on a list of lists and are trying to process each value one by one -- the nesting doesn't add anything. In this case, we use flatMap, which "flattens" or concatenates the interior lists so we can operate on them like it's just a big stream of values.
This is also the case for another type like `Optional`, which represents either a value `T` or the absence of a value. An optional can be "mapped" so that a function is applied only if there is a value `T` present. flatMap works the same way here, where if you want to call another method that also produces an `Optional`, flatMap will "unwrap" the optional since you never really want to work with the type `Optional<Optional<T>>`.
Ah yes, distributed grassroots misogyny. If only the """powers that be""" hadn't reigned back control of this vital, important movement to harass women online.
Hotspot includes an interpreter -- your code may be interpreted until it gets hot and gets compiled.
Still, I don't think it's fair to call Java an interpreted language since the parts that are interpreted are only during warm up or slow enough not to matter.
The ability to swap out basically any component of a framework like Spring simply by including a different dependency or replacing a bean at runtime allows for fine grained tuning that isn't possible in many other frameworks.
But this flexibility and/or modularity is enabled by a heap of pretty magical abstractions that glues everything together.
I'm sure they consider crashes on Linux real bugs, so hopefully it's just a few more years of work to have a rock solid DAW on Linux. Super excited about the future of Bitwig.