Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
readittwice
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
12 ms
·
61.
▲
by
readittwice
8y ago
To be fair Pinker wrote that in a private mail. When you criticize this, then also let's not forget what on the other hand Hinkel wrote in his article published in the Guardian newspaper: > It is madness – and no amount of mansplain
62.
▲
by
readittwice
8y ago
I think that's a great way of interviewing! But don't you fear this only works for smaller companies? Imagine some company like Google or Facebook would do that: I would expect people to just start learning answers by heart..
63.
▲
by
readittwice
8y ago
How many languages use this approach though? This probably also removes one major advantage of RC'ed systems though: deterministic destruction (e.g. close resource as soon as last reference disappears). And suddenly you need some kind
64.
▲
by
readittwice
8y ago
>> - no sharing across threads, otherwise locking is required for refcount updates >That is not true. Most atomic refcount implementations are lockfree (you do need synchronization though). This optimization has nothing to do with
65.
▲
by
readittwice
8y ago
gawker might have been even better ;)
66.
▲
by
readittwice
8y ago
You certainly have a point. But those whiteboard interviews people complain about are usually a bit harder than just solving FizzBuzz.
67.
▲
by
readittwice
8y ago
I know women that have to endure that almost every day, but the police can't do anything about that. The police can't be everywhere and even if they would there is not much they can do if people approach women by saying something
68.
▲
by
readittwice
8y ago
I don't think so: TypeScript/JavaScript-Types are too coarse-grained for optimizations: For example number is a double in JS. For generating good machine code you really need to know whether the number is int or double. The same f
69.
▲
by
readittwice
8y ago
What I mean: As a compiler writer you can't just create GIMPLE-IR and then pass it to GCC. You always need to go through GENERIC, which is actually intended to be the AST of your language. Of course you could argue that you treat GENER
70.
▲
by
readittwice
8y ago
I guess both. GCC is very good for compiling C/C++ to machine code. But if you want to write a new language and reuse an existing compiler pipeline (Rust, Swift,..) or write a new tool based on a C++-parser (clang-format, clang-tiny, c
71.
▲
by
readittwice
8y ago
My answer was in reply to "WASM enables nothing". I argue that WASM is faster than JS, therefore it enables new applications. I didn't make any claims about Java Applets or Flash performance.
72.
▲
by
readittwice
8y ago
Not sure if I agree. I would still say that WASM enables new types of applications. Of course you could have compiled all that new WASM applications to asm.js or even JS as well. But it would've been slower: maybe even unusable slow. T
73.
▲
by
readittwice
8y ago
but incremental builds only take a few seconds when bootstrap is disabled...
74.
▲
by
readittwice
8y ago
No, repolfx didn't. There were some security bugs with WASM, but why shouldn't have that happened with Java Bytecode? Also the JVM isn't immune to security bugs either.
75.
▲
by
readittwice
8y ago
Let me be clear on this: I am NOT saying that Java-Bytecode sucks. I am simply saying that WASM is better for the Web's use case. There is no shame in that, WASM was designed for that and could learn from the experience with many bytec
76.
▲
by
readittwice
8y ago
JVM-bytecode isn't ideal as a compilation target for C++, Rust, etc. And that's okay - it was designed for a different purpose. There are very good technical reasons for WASMs existence. JVM-Bytecode for example is very Java-focus
77.
▲
by
readittwice
8y ago
All of your "serious flaws" are actually fixable. Obviously WASM tooling isn't as mature as other older ecosystems, this will get fixed over time. I don't think JVMs where without any security bugs, since WASM is mainly
78.
▲
by
readittwice
8y ago
> Actually, the CLR supports pointers and the JVM can run arbitrary LLVM bitcode (so C, C++, Rust etc) in a memory safe way with bounds checking and garbage collection these days. Check out Sulong and Safe Sulong: AFAIK there is no Java-
79.
▲
by
readittwice
8y ago
I think you are right, but I can still see why they chose certain trade offs. The most common use case for Go seems to be as servers (right? I am not a Go developer...) where latency is important, non-moving GC allows them to have low laten
80.
▲
by
readittwice
8y ago
Isn't JSC kind of an exception to this? JSC has a generational non-copying GC. It uses bump-pointer allocation for empty blocks (block=memory with objects of same size) and then switches to allocation via free-list if the block is full
81.
▲
by
readittwice
8y ago
Sure, the tmp-var-approach could be slower in some weird edge cases but probably only slightly, while the array-swapping approach could be much slower if the JS-Engine doesn't implement this optimization at all or this code-pattern is
82.
▲
by
readittwice
8y ago
AFAIR GCC bootstrap builds by default with "-g -O2". There are 3 stages: 1) use system compiler to compile GCC's source code, 2) use resulting binary to build same source, 3) use binary from 2) to build source one more time.
83.
▲
by
readittwice
8y ago
European here. After moving I was commuting for about 105 minutes with public transport, about 70 minutes by car. Was using public transport most of the time though, but I couldn't do this more than a few months. There is so much time
84.
▲
by
readittwice
9y ago
AFAIK the ARM license doesn't allow to invent arbitrary extensions to the ISA. So this might not be allowed.
85.
▲
by
readittwice
9y ago
For me the reason is that Google Drive doesn't work on Linux.
86.
▲
by
readittwice
9y ago
AFAIR JRuby creates a Java class for each Ruby method. Classes were part of the Permanent Generation, so sometimes this generation was too small escpecially when using Rails. It was enough to just increase the size of this generation with -
87.
▲
by
readittwice
9y ago
Thanks for the nice writeup!
88.
▲
by
readittwice
9y ago
Yep, that's exactly what I would also like to see. AFAIK there is some work on a GC in Rust, but it doesn't take away the borrow checker like you wished ;) So you will still need to use `.borrow()` and `.borrow_mut()`. A language
89.
▲
by
readittwice
9y ago
Is there a way to "recognize" this? For example why the blue blobs and not the green ones?
90.
▲
by
readittwice
9y ago
> Another promoted benefit of bytecode is compile-once-run-anywhere. However, I think this is a hoax. I was once working on a large project on the JVM: our Fat-JAR was really working on Linux, Mac and Windows. The exact same JAR. And it
More ›