4 ms·
I think everyone who uses Go for anything is pretty clear about why they like it, and one of the major reasons is simplicity. So why are people then surprised w
by pkulak 11y ago
I think everyone who uses Go for anything is pretty clear about why they like it, and one of the major reasons is simplicity. So why are people then surprised when criticisms over lack of features fall on deaf ears? And to be honest, this whole argument about pitchforks seems like a straw man. If anything, it's currently fashionable to dump on Go at every opportunity. Hell, it's fashionable to dump on everything around here at every opportunity. It's a way to put yourself above something with the least amount of effort.
- x1024 11y agoNo, I've talked to Go people and they really do respond that way. Maybe my opinion is just one data point, but this entire thread seems to agree...
- gbhn 11y agoMy (inexpert) opinion is that the kind of computer language researcher or practitioner interested in exploring how far you can go with type systems is dissatisfied with Go. But there are many types of static analysis which accomplish similar (or more dramatic) goals than what can be down with type analysis, and the simplicity of a language makes those kinds of analyses more reachable. Examples: gofmt and gofix. I think it's amazing what kinds of magic can be encapsulated with the type system, but my experience doing software is that complex types often end up being a hairball which is very change-resistant. Go's emphasis on lifecycle support for large programs may point us to new kinds of tools and methods. Whether those tools and methods end up being able to be encompassed by type theory is an open question, but it looks to me like Go is aimed in a great direction to raise the questions.
- ionforce 11y agoWhat part of types is change resistant?
- gbhn 11y agoTo me, a lot of the more interesting areas of type research basically involve embedding logic into types. So types for sequencing of operations, types that constrain the data in them, etc. Those are awesome in that they enable static analysis to detect more sorts of logic errors in a digestible way, but my impression is that they end up encoding constraints in the type system that are then harder to change as the demands on the system evolve.
- loudmax 11y agoAgreed. I foresee a great future for Rust, and also a great future for HN posts in the form: "I know I'll get downvoted for this, but Rust is a terrible language because it lacks the following features..."
- nine_k 11y agoNot likely. Rust, while lacking in various aspects as any v.1 release would, already has means of extension. A library can mostly replace a lacking feature while playing nice with the rest of the ecosystem by use of the type system and the macro system. Roughly the same kind of extensibility is possible in Python (some later language features first appeared as approximations in third-party libraries) and even Java (where a kind of code post-processing is possible via annotations). Unfortunately, it's unreasonably hard in Go. All you got so far is un-hygienic macros, slightly better than C #defines. This is sad because a number of other ideas in Go are right and well-implemented.
- sanderjd 11y agoIn the medium to long run, I suspect criticism of Rust will be more along the lines of criticism of C++ – too ambitious, too many features, too hard to do simple things, too easy to do unsafe low level things – rather than along the lines of "lacks these features".
- koffiezet 11y agoWhile Rust in it's own little world is promising, it's issue is that it tries to solve problems C++ programmers were facing 10 years ago, but 'good practices' and C++ devs limiting themselves to a subset of features "solved" most of these problems for most C++ developers. And that's Rust's main target audience. Go's target audience are 2 groups: people previously writing stuff in C/C++ because they didn't have much choice unless they wanted to bring a shitton of dependencies, but in reality didn't want the complexity this brings, and people coming from scripting languages like Python and Ruby. And for these things, go is pretty damn good. It has it's downsides - like any language, but it works. It's strongest point however is it's standard library with 'modern features' and transparency. For me it was the first language where diving into the source code of libraries - even the stdlib - was so effortless and has become a completely normal thing to do. In C/C++, the most you do is dive into the headers, and in the latter case, this is not always a good idea if you want to keep your sanity (hello Boost). Rust could gain traction the moment it finds a market, and few high profile projects written in Rust that are widely used. But right now, I'm not aware of any.
- parenthephobia 11y ago> I think everyone who uses Go for anything is pretty clear about why they like it, and one of the major reasons is simplicity. Nope. I like Go because: * Interfaces * A sane, fast, build system * Concise syntax, mostly * Garbage collection * Excellent concurrency support * A (for the most part) well-designed standard library * Optional semicolons * Compile-time type-checking * Static binaries I like Go because of the features it has, not because of the features it doesn't have. On balance, although Go sucks, it sucks less than any other language for the sorts of problems I use it for. > And to be honest, this whole argument about pitchforks seems like a straw man If you don't notice that criticism of Go is immediately and vigorously argued against... Well, you can't be following the comments very closely.
- Merovius 11y ago> If you don't notice that criticism of Go is immediately and vigorously argued against... Well, you can't be following the comments very closely. Huh? Have you ever argued against anything on the internet and not been countered immediately? Do you think if I'd publish criticism like this about, say, emacs, haskell, firefox, twitter or puppies, I wouldn't get comments immediately telling me that I am wrong and fundamentally misunderstanding what an editor, programming language, browser, social networking platform or adorable animal photo is all about?
- parenthephobia 11y agoI'm confused. Your tone suggests you're disagreeing with me, but the words mean the opposite. Do you think I said that "only criticism of Go is argued against"? Because I didn't.