Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
gf000
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
39 ms
·
961.
▲
by
gf000
1y ago
Doing something a bit vs almost completely can have a significant difference in practice - having a way to maybe avoid nulls doesn't solve the million dollar problem, but making non-nullability the default arguably has (see Rust, Kotli
962.
▲
by
gf000
1y ago
Though it's probably easiest understood in a non-web world. The web makes it quite a bit more involved with a separation of client- and server-side state - plus you have a given frontend "framework" in the shape of DOM, which
963.
▲
by
gf000
1y ago
Especially when I press the volume button, and it shows up rotated 90 degrees at a different side of the screen, or the litany of other iOS bugs.. This experience has stopped being the case for quite some time now. Sure, a 60 USD low-end de
964.
▲
by
gf000
1y ago
Amdahl's law was about the potential speedup from going parallel being limited by parts that must be serial. Nothing controversial here - many tasks can be parallelized just fine. My point is that you often see a simpler algorithm/
965.
▲
by
gf000
1y ago
Indeed! But I am afraid general purpose programming languages almost always need that kind of power (though being Turing complete is not necessary)
966.
▲
by
gf000
1y ago
He did show that every formal axiomatic system will have statements that can't be proven "from within". For these, you are left with doing a runtime check.
967.
▲
by
gf000
1y ago
I mean, since Gödel we pretty much have known that there could never be a system "without holes".
968.
▲
by
gf000
1y ago
Well, software is not like a traditional Turing machine of having an input, buzzing a bit, and returning a response. They are most commonly running continuously, and reacting to different events. You can't do the IO work that depends o
969.
▲
by
gf000
1y ago
Well, there is a whole JVM implementation for hard real-time with a GC, that's used in avionics/military -- hard real time is a completely different story, slowness is not an issue here, you exchange fast execution for a promise o
970.
▲
by
gf000
1y ago
This discussion is absolutely meaningless without specifying what kind of software we are talking about. 4x slowdown may be absolutely irrelevant in case of a software that spends most of its time waiting on IO, which I would wager a good c
971.
▲
by
gf000
1y ago
Then why use C? Take a look at actually perf-sensitive hot loops, and they are predominantly some inline assembly with a bunch of SIMD hacks, which can be 1000x times faster than C...
972.
▲
by
gf000
1y ago
> "Concurrent" doesn't usually mean "bounded in worst-case execution time" Sure, though this is also true for ordinary serial code, with all the intricate interactions between the OS scheduler, different caches,
973.
▲
by
gf000
1y ago
Slightly off topic, but my experience is that they are pretty terrible at using search tools.. They can often reason themselves into some very stupid direction, burning all the tokens for no reason and failing to reply in the end.
974.
▲
by
gf000
1y ago
I don't think there is a singular "should" that fits every use case. E.g. a Bloom filter also doesn't "know" what it knows.
975.
▲
by
gf000
1y ago
Well, you have basically implemented a Java type-system level type checker for SQL. I don't believe there is any type system strong enough to express the whole thing without the escape hatches (casts), besides Lean, Coq and alia.
976.
▲
by
gf000
1y ago
Yeah, and banning cars would also protect people from car crashes. But it comes with the rather large price of a huge limitation to my personal choices.
977.
▲
by
gf000
1y ago
I was thinking that the type system can in certain cases determine that no circular reference is possible for an instance of this type - in that case it could e.g. use an RC (for a region only having that type of objects), and fallback to e
978.
▲
by
gf000
1y ago
I'm looking forward to your experience with this approach! Bit off topic, but is there any particular reason you went with a go-like `ident type` syntax over the more common ones like the C or the ML one?
979.
▲
by
gf000
1y ago
Scala 3 has a compiler flag that makes `null` its separate type, making it completely null-safe. This would e.g. make ``` val a: String | Null = someLegacyJavaCodeReturningNullableString() ``` and explicit null check would only make the non
980.
▲
by
gf000
1y ago
Scala is distinctively a mixed FP and OOP language. There are functional proponents doing full monads and whatnot, but there is just as much follower of a more balanced approach (see Li Haoyi's libs). Though Scala definitely had/h
981.
▲
by
gf000
1y ago
Extraordinary claims require.. at least some kind of evidence. There is very little research comparing PL productivity, because it is very hard to do them properly.
982.
▲
by
gf000
1y ago
The redirect one would funnily be caught in Java. For the simple reason of not having properties, it would have to be a method call, where the author's wrong assumption would no longer apply.
983.
▲
by
gf000
1y ago
> Java falls back to `Object` and runtime casts frequently Is it frequently? Generics are definitely not as nice as they could be, but they are surprisingly "sufficient" for almost any library, e.g. a full on type-safe SQL DS
984.
▲
by
gf000
1y ago
I mean, is that not just [1] type classes? They are not a new concept, they could be grandparents! [1] not trying to take away anything from the designers, getting it right in combination with all the other features is a huge feat!
985.
▲
by
gf000
1y ago
> Sure, but as ModernMech said, the vast majority of Rust's benefits come from having sum types and pattern matching. Doubt. There were lots of languages giving you just that, and they never had this amount of hype. See Scala, OCa
986.
▲
by
gf000
1y ago
I mean, "fearless concurrency", while a hyped-up phrase that is definitely exaggerated, compared to the C-world where you are already blowing off your leg in single-threaded code, let alone thinking of multiple threads Rust is an
987.
▲
by
gf000
1y ago
Arguably hardly even that, as memory layout for many in-built types are target and/or compiler-specific.
988.
▲
by
gf000
1y ago
Also, Rust does implicit dereferencing, so it's not that much of an issue in practice.
989.
▲
by
gf000
1y ago
This is actually mostly related to a language's expressivity, which can simultaneously be used for good and for obscure stuff. (Also, JS having a rough evolution from a badly designed scripting language with hacky injection points to t
990.
▲
by
gf000
1y ago
I just tried to come up with a feasible example - maybe gas pipe installation would have been a better one? But even for cars, it's quite clear that a modify-test cycle there is on the order of months/years (also, has a money burd
More ›