Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
gf000
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
17 ms
·
241.
▲
by
gf000
4mo ago
Disagree. Types are both for the compiler, as well as for the developer. Maybe types are implicit documentation telling the developer that it is meaningful in the application that this field can have a None state. That's a huge code sm
242.
▲
by
gf000
4mo ago
I mean, type inference goes decades before Dlang.
243.
▲
by
gf000
4mo ago
Mistyped, it's sealed interface. > So you can always have `Maybe<T> x = null`, or even `Some<T> x = null`. Yeah and? Practically every type system have escape hatches, like Haskell can also do side effects without the IO
244.
▲
by
gf000
4mo ago
You can have a null int, it's called Integer. What was taken away is the other, identity-having functionality of Integer and similar (e.g. no synchronization).
245.
▲
by
gf000
4mo ago
"Funnily", having nullable types be practically `T | Null` gives you union types, not sum types (the latter is, importantly are a disjunct union!) The main difference is that (T | Null) | Null = T | Null, while Maybe<Maybe<T
246.
▲
by
gf000
4mo ago
Actually, Java only has pass-by-value, even for reference types. (The same way as C does). People really misuse/misunderstand this term: Java objects are passed by their pointers ("references") being copied. The alternative i
247.
▲
by
gf000
4mo ago
> If Java was a child, imagine it being brought up by loving parents for the first few years (Sun) then it was thrown in a garage with some other children and neglected by its evil guardian (Oracle) Whether you like oracle or not, this i
248.
▲
by
gf000
4mo ago
Sealed classes/interfaces and records are proper sum and product types. The stdlib's Option type predates this language update by a long shot, so it doesn't use sealed classes, but it is now possible to have the usual FP &quo
249.
▲
by
gf000
4mo ago
Correct me if I'm wrong, but Rust editions are a source code-level feature. So given you have the source code of newer and older rust code, you can compile them together. That's materially distinct from Java's model of basica
250.
▲
by
gf000
4mo ago
I think that's mostly a semantic difference - Java avoided the problem of strange lifetimes, captures, tearing by fixing the semantics as immutable value objects, while C# has to deal with these issues. But under the hood it can (and w
251.
▲
by
gf000
4mo ago
> Is all the effort only gunna help lil toy ColorRGB examples Arguably flattening mostly makes sense for these only. And yeah, you are right that allocations happen on something called a thread local allocation buffer, which is basically
252.
▲
by
gf000
4mo ago
> The stewardship of Java seems rather lacking In what way? If anything Java's main developers (employed by Oracle for the most part, working on the completely open source and free OpenJDK) are extremely knowledgeable and are respon
253.
▲
by
gf000
4mo ago
> genuine breakthrough Well, it is - because they had to make it with almost perfect backwards compatibility for one of the most popular languages with trillions of lines of code produced over decades. Sure, adding it to a new language
254.
▲
by
gf000
4mo ago
> Its not only that. The fact that software is expected to be mostly installed and updated from trusted, vetted and signed repositories instead of google or root not being used willy nilly by all applications. Both of these basic usage d
255.
▲
by
gf000
4mo ago
What about Fedora? Good security is about allowing everything you might want to do, but limiting what you don't want happening. Of course it's easier to just put up our hands and don't care about it, but I think we should str
256.
▲
by
gf000
4mo ago
Maybe it was temporarily needed, but the assumptions around it has changed and now it's unneeded. Then people built on top of that not understanding that they could simplify the whole system, and only later was that option discovered.
257.
▲
by
gf000
4mo ago
You can, but maybe don't make it an easy to accidentally invoke default. Like even `rm` added a flag to not do that without explicitly asking. Also, there are plenty of immutable OSs now among Linux distros, are they also limiting your
258.
▲
by
gf000
4mo ago
Freedom to get a stroke from an incomplete toy OS? Snark aside, desktop Linux userspace (or gnu Linux, call it how you want) is nowhere near production ready. And even for the more general point, giving out root willy-nilly is not more free
259.
▲
by
gf000
4mo ago
Yeah, there are endless holes unfortunately with IPC. It has been hardened by more recent android versions https://developer.android.com/guide/topics/manifest/queries-... but even something like "share v
260.
▲
by
gf000
4mo ago
Good point and thanks for the heads up. Mostly asking it as a question, given that graphene runs Google play services (optionally) as a normal, sandboxed service with no special permissions might help a bit, but I guess unless you disable n
261.
▲
by
gf000
4mo ago
They host a relay server that is available to everyone, but you are expected/recommended to use your own for most use cases, so you will have only depend on open-source code and your own infra.
262.
▲
by
gf000
4mo ago
Dennard scaling has stopped (performance/clock speed increasing), Moore's law means mostly transistor count or density. The former is still going strong, the latter is slowing down.
263.
▲
by
gf000
4mo ago
Unless you are doing something very specific where rust is truly the best choice, I have to disagree. Rust has overly strict locking (otherwise it couldn't determine safety) that makes certain concurrent algorithms harder to implement,
264.
▲
by
gf000
4mo ago
Java is basically the "greenest" managed language out there, so not sure putting it into the same list for energy efficiency is warranted. Though of course energy efficiency is fundamentally linked to memory usage, not destructing
265.
▲
by
gf000
4mo ago
No one said that one should add "hindrance" to the movement itself. But just because your hand slowly decelerated at the end, causing the mouse as well to stop slowly, maybe the endpoint of the movement should reflect the vector o
266.
▲
by
gf000
4mo ago
As another example, with the "new" navigation gestures switching to the last app and back is just a finger swipe away, following your thumb's speed.
267.
▲
by
gf000
4mo ago
Hand tools have mass and momentum, they are most definitely "animated". You need force to accelerate them up to speed, they don't change state "in binary", or in a blink. Good UI is when you don't even consciou
268.
▲
by
gf000
4mo ago
Real life has everything "animated". Nothing happens in an instant, there is force required to accelerate mass, etc. Short, well-done animations make for better UIs.
269.
▲
by
gf000
4mo ago
I don't see how this comment is relevant to parent's point. Sure, cloud is proprietary. But it is Linux for the vast majority.
270.
▲
by
gf000
4mo ago
You just listed concrete hardware (with the exception of Android). That's a category error, of course a fixed hardware with specialized software will have less inconsistencies.
More ›