Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ootachi
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
by
ootachi
14y ago
I apologize for the above comment. I am being extremely uncharitable to Go and I retract what I have said. In particular I apologize for bringing this up in every Go discussion.
2.
▲
by
ootachi
14y ago
Java avoids casts in most cases with generics, it supports inheritance, and it has a simple type system. Ditto with C#. (I also haven't heard people complain about the complexity of F#'s type system, so I'd point to it, but I don't know F#
3.
▲
by
ootachi
14y ago
How do you have greater control over whether your code generates garbage in Go? The only difference between Java's memory model and Go's memory model is that, in Go, you can put structs inside other structs (and unsafe code I guess, and not
4.
▲
by
ootachi
14y ago
I think your warnings about complexity in the type system are prudent, but your comment about casting is off. Casting (with the exception of primitive types) is a very blunt hammer to bash your way out of a type system. The MLs have a simpl
5.
▲
by
ootachi
14y ago
Why not just use Java? Java was designed as a reaction to the complexity of C++. Scala was, in turn, designed as a reaction to the simplistic nature of Java. It sounds like you prefer minimalism, and in that sense Java is a better choice fo
6.
▲
by
ootachi
14y ago
Go has C++-style classes. Anonymous fields are just C++ multiple inheritance with a different name (and without virtual functions or downcasts).
7.
▲
by
ootachi
14y ago
Now you've moved the goal posts. You can write free lists manually in Java as well. Doing so is incredibly awkward in Java or Go, compared to C++ where placement new makes it fairly straightforward (and moreover, you can use reference count
8.
▲
by
ootachi
14y ago
I'm quoting the numbers that Vitess observed.
9.
▲
by
ootachi
14y ago
Er... you want expressiveness, so you ditch JavaScript and use Java ?
10.
▲
by
ootachi
14y ago
What choice did they have? Either break compatibility, or use type erasure.
11.
▲
by
ootachi
14y ago
Why would you move from Haskell to Go? There's a night-and-day difference between them. I don't understand why you'd switch to a language because of the features it's lacking, unless you think those features are a bad thing (and I have yet
12.
▲
by
ootachi
14y ago
Nonsense. You would hate Android written in Go, because of the GC pauses. Dalvik has a concurrent garbage collector; Go has a stop-the-world one.
13.
▲
by
ootachi
14y ago
Up until the point you want to return an object from your container, sure. Then you have to return a Comparable and the user has to downcast it into the right object. Plus, you pay the overhead of boxing.
14.
▲
by
ootachi
14y ago
Chrome could not be written in Go, due to the stop-the-world GC. 200ms GC pauses are completely unacceptable for a web browser.
15.
▲
by
ootachi
14y ago
I bet most people get the "protected" one wrong, because it's actually strictly less restrictive than package access in Java. That is, protected members can be accessed by anyone within your same package. Do you reject people for not knowin
16.
▲
by
ootachi
14y ago
Everyone already has Skype. That hurdle was overcome a long, long time ago. Skype is an application that is just as ubiquitous as the web browser these days.
17.
▲
by
ootachi
14y ago
People don't use Web browsers for video chat. They use Skype. Getting people to change will be hard, especially since the browser offers no real benefits over Skype. I'm not saying we shouldn't try to get people to change, only that it will
18.
▲
by
ootachi
14y ago
Odd that you say that, because the language that's most similar to Go here is Java, with its checked exceptions. The same reasoning that led to Go's error codes (that you should always handle your errors) led to checked exceptions. The fact
19.
▲
by
ootachi
14y ago
This doesn't seem to have anything to do with type erasure, does it? It's needed for type-safe generics. Even without type erasure, you still need type safety. If your generics are always covariant (like Dart's are), you break type safety.
20.
▲
by
ootachi
14y ago
I have a feeling you're going to get a bunch of type theorists instead of programmers who get things done if you ask about Java's syntax for use-site contravariance.
21.
▲
by
ootachi
14y ago
What do you do then? If the answer is "panic", note that exceptions are superior here, since exceptions let you "panic" without having to litter your code with those calls. If the answer is some form of "log an error message", exceptions ar
22.
▲
by
ootachi
14y ago
Because panic/recover are bad exceptions (recover can't specify the types of the exceptions it wants to recover from), and the libraries don't use them. Having to check errors is annoying since most of the time you want to bubble the error
23.
▲
by
ootachi
14y ago
Go has exceptions. They are called panic/recover. This has been explained to you time and time again. You keep posting this exact same comment, complete with the "COME FROM" analogy. Then it gets explained to you that panic/recover are an e
24.
▲
by
ootachi
14y ago
Java solves garbage collection well, better than any other language I know of.
25.
▲
by
ootachi
14y ago
For that to be true, the Go developers would have to be open to adding research ideas to the language. Java is (for example, generics). Right now Go's developers are not open to this. As a result, Go is not publishable.
26.
▲
by
ootachi
14y ago
Guilty as charged. I do want a functional language like Scala, because I believe that school represents a better design . That school of language design saves me the headache of null pointers; it helps me write unit tests with QuickCheck;
27.
▲
by
ootachi
14y ago
There's active marketing and there's passive marketing (brand association). Go is popular because of its association with the brand of Google and the brand of Pike and Thompson. A lot of people like the language on its merits (although I di
28.
▲
by
ootachi
14y ago
BitC was started when Shapiro was at a research university. No research institution would fund Go, because Go is not a research language. BitC was, however, designed as a research language.
29.
▲
by
ootachi
14y ago
Go, sadly.
30.
▲
by
ootachi
14y ago
And they both had to spend a lot of effort to get concurrent GC to work efficiently. The biggest downside of concurrent GC is that you need read barriers, not just write barriers as in single-threaded incremental garbage collection.
More ›