TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The State of Go

466 pointsby dotmanishover 8 years ago

37 comments

joaodlfover 8 years ago
I don&#x27;t share some of the opinions I see in the comments here.<p>I&#x27;ve recently started programming in Go and I am having a blast. Plus, I am making my systems faster and simpler with Go. I love concurrency in Go. I love the concept of Goroutines, the simple and intuitive use of Select. Channels still present a few mysteries here and there... But I&#x27;ll get it at some point.<p>But the n#1 thing for me in Go is: It&#x27;s written in Go. It&#x27;s refreshing to drill into the language details, I feel like I have learned so much from seeing the Go source code (and having it readily available with a Ctrl+click in VS Code).<p>Maybe it&#x27;s because I don&#x27;t have the &quot;depth&quot; of some of the HN users, but Go feels great to me.
评论 #13573125 未加载
评论 #13573855 未加载
评论 #13572877 未加载
评论 #13572791 未加载
评论 #13573048 未加载
评论 #13573392 未加载
评论 #13572724 未加载
评论 #13573237 未加载
评论 #13573818 未加载
评论 #13573673 未加载
评论 #13572936 未加载
评论 #13574027 未加载
评论 #13572937 未加载
DrBazzaover 8 years ago
Given some of the comments, I&#x27;ll make the same comment I&#x27;ve made before: Stroustrup is right, there are languages that people complain about, and languages that no-one uses. Go is now firmly in the former camp.<p>I&#x27;m a C++ dev, and I really enjoy using Go. If you don&#x27;t like what it does or how it does it, it&#x27;s not for you. Either way, people are out there using it, making systems from it, and generally getting on with it.
评论 #13573574 未加载
评论 #13575304 未加载
didibusover 8 years ago
Go&#x27;s success is attributable to the fact that it is the first compiled language in a long time which is backed by a major company and has managed to deliver a simple and enriched experience compared to the old company backed compiled languages.<p>1. Fast compilation is a killer feature.<p>2. Ease of deployment, as a self contained executable (static linked), is a joy.<p>3. Channels are a revolutionary concept to every programmer who had only touched mainstay languages.<p>4. Type inference is a revolutionary concept to every programmer who had only touched mainstay languages.<p>5. Go&#x27;s syntax is less verbose than all other earlier mainstay languages. Such as how public&#x2F;private is handled through casing, and not having to type public or private.<p>6. Go&#x27;s structural typing is a revolutionary concept to every programmer who had only touched mainstay languages.<p>7. Everything that&#x27;s new in Go to a programmer who had only touched mainstay languages before it is not there in Go as an extra set of features, but the only thing for them to use. This greatly focuses them on learning those new features. Also, non of the features are too radical to throw them off completely.<p>8. All the tools for Go, are built by the team behind Go.<p>9. Go&#x27;s battery included, and has a great selection of modern standard libs.<p>When compared to Java, Go lacks very little, and brings a lot to the table. Generics are probably the biggest omission, but that&#x27;s probably going to make it in the language eventually.
grabcocqueover 8 years ago
The best summary I read recently is that go isn&#x27;t a bad language, nor is it a particularly good one. What fascinates me is the way the Golang community have concretised that essential middle-of-the-roadness as the language&#x27;s prime virtue. That, of course, has long been Java&#x27;s prime virtue as well. (see Blub Paradox)<p>By putting &quot;we&#x27;re okay with being okay&quot; as your Big Thing you&#x27;re clearly pitching for that vast bulk of mid-quality developers that make up the huge middle chunk of corporate devs, the space where Java reigns supreme.
评论 #13573447 未加载
评论 #13572749 未加载
评论 #13572694 未加载
评论 #13573012 未加载
评论 #13573323 未加载
评论 #13573590 未加载
pteroover 8 years ago
IMO the Go goal is to be an enhancement of C. It is not as expressive as some existing languages (i.e., Go programs may be longer), but it is very good for translating clearly thought through logic into efficient machine code.<p>It supports some of the features that original C lacks (networking, parallelism, channels, etc.), which to me is a very good thing. With minimal forethought this allows writing programs that can be massively scaled later without impeding initial checkouts at small data sets.<p>Eventually the success or failure may be determined by the libraries developed by the user community. For example, fortran survived so long not because it was a good language, but because it had freely available, easy to use world class libraries for numerical computation. Many grad students kept using Fortran given the choice of an existing, working, ugly-ish code that they could use for their PhD projects vs redeveloping and retesting the same functionality from scratch.
评论 #13573858 未加载
评论 #13575387 未加载
j2kunover 8 years ago
I&#x27;m concurrently learning Go and Node, which might not be a fair comparison but I&#x27;m going to make the comparison anyway.<p>Node feels like a flesh wound with delicately layered bandaids. The ecosystem is a mess, you have to jerry rig basic packages to work together, the syntax and semantics of closures and context is ridiculous, and despite that callback mania is like this cool-aid that&#x27;s supposed to feel great once you drink it (but hasn&#x27;t yet for me).<p>Go just...works.
评论 #13574689 未加载
greg7mdpover 8 years ago
My impression is that Go is a language that was cobbled together to simplify the coding of some specific applications, such as simple servers. It lacks any kind of purity, is not the best choice for any specific task, but is just good enough for some (many?) tasks. And poor type safety!<p>Frankly, I can&#x27;t help being disappointed by how bland this language is, and I have zero interest in using it. Maybe because I like coding, and the IMHO using Go or Java would totally kill the fun of it.
评论 #13572769 未加载
评论 #13573679 未加载
评论 #13572669 未加载
评论 #13572698 未加载
评论 #13572701 未加载
评论 #13572771 未加载
评论 #13573703 未加载
评论 #13573792 未加载
评论 #13572768 未加载
评论 #13573882 未加载
评论 #13572886 未加载
评论 #13576117 未加载
评论 #13574664 未加载
评论 #13572742 未加载
inblueredgreenover 8 years ago
<a href="https:&#x2F;&#x2F;tip.golang.org&#x2F;pkg&#x2F;sort&#x2F;#Slice" rel="nofollow">https:&#x2F;&#x2F;tip.golang.org&#x2F;pkg&#x2F;sort&#x2F;#Slice</a><p>ouch compile time type safety... even Go maintainers have abandoned it. Go pundits can&#x27;t expect developers not to do the same thing in their own codebase at that point.<p>Can&#x27;t wait for aliases though.
评论 #13572690 未加载
JacksonGarietyover 8 years ago
I&#x27;m in a pretty weird place with Go.<p>On the one hand, I really cannot stop using it. I can build an small web applications in a day or two, I can write them in just slightly more lines than Rails, and the applications I can build are much speedier than Rails applications.<p>On the other hand, I really, really hate using Go. It&#x27;s tremendously boring and I never feel the code is that elegant.<p>I&#x27;ve tried Haskell, but I end up messing around monads too much because there&#x27;s so much IO.<p>Rails is fantastic, but I&#x27;d prefer to experiment. I never grow as a developer when I use Rails.<p>Node.js is great. But if I don&#x27;t need to write a lot of JavaScript on the frontend I end up asking myself: why am I writing JavaScript on the backend?<p>Racket or Chicken Scheme look like good directions for me. Erlang looks interesting. Maybe I should give Clojure another shot?
评论 #13576050 未加载
naaaaakover 8 years ago
Awful to try to read on mobile. Regular page anywhere?
评论 #13573580 未加载
评论 #13572475 未加载
评论 #13573677 未加载
评论 #13572783 未加载
评论 #13572739 未加载
throwaway91111over 8 years ago
Man I really wish they would stop using whatever crappy presentation software this is; it NEVER works well on mobile.
评论 #13573653 未加载
spraakover 8 years ago
I&#x27;m yearning for the Golang of functional programming. That is, excellent std lib, clear documentation, awesome tooling, active community.. and after typing this, maybe that&#x27;s Elixir? Though I do love static typing.
评论 #13574318 未加载
评论 #13576154 未加载
gwover 8 years ago
I&#x27;m at FOSDEM where this talk was just given. Francesc was hilarious.
评论 #13572837 未加载
zirtecover 8 years ago
Definitely the talk I enjoyed the most at FOSDEM today. Both instructive, relevant and pleasant to listen to. Glad to see things like sort.Slice or JSON rendering. When you&#x27;re spoiled with python or groovy, you miss them them badly.
评论 #13603278 未加载
ameliusover 8 years ago
How is Go as a compiler-target? I&#x27;m asking because I&#x27;ve heard that Go has a very good concurrent garbage collector.
zalmoxesover 8 years ago
There&#x27;s a worldwide Go 1.8 Release Party on Feb 16th. If you&#x27;re interested in Go, or want to discuss changes in 1.8, find a meetup near you.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;golang&#x2F;go&#x2F;wiki&#x2F;Go-1.8-Release-Party" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;golang&#x2F;go&#x2F;wiki&#x2F;Go-1.8-Release-Party</a>
rusbusover 8 years ago
I was glad to find they made it much easier to define custom sorts for slices. But! Why on earth does what should really be syntactic sugar make sorting nontrivially slower?<p>It speaks to the lack of expressiveness in golang that you can&#x27;t make sorting less egregiously verbose without adding a performance penalty.
评论 #13572746 未加载
campermanover 8 years ago
I shall be moving my codebase to Go this year. I&#x27;m very impressed at how readable it is, how much thought has gone in to the tooling and support environment and how fast the GC is now. I also must be one of the few people who likes the assembler :)
bokertovover 8 years ago
I&#x27;m on my iPhone and the slides are terrible to navigate on a mobile browser.
评论 #13573804 未加载
YZFover 8 years ago
Most of my work is C++ but I&#x27;ve also used Go a fair bit since Go 1.5. I like Go a lot. The C++ crowd (including myself) keeps trying to make things that are trivial in Go easier in C++ but the best efforts still look like a mess. I think the lightweight&#x2F;green threads model of concurrency wins over others (threads, processes) and is incredibly difficult to get right in C++. Channels are also very useful and difficult to get right in C++. While C++ with some aid from Boost can be a very safe language it ends up being a lot harder to write and read with all sorts of [](){} -&gt; hacked up conventions that are a result of backwards compatibility. I find the test infrastructure in Go to also be very pleasant and easy to use. Stuff you need to go to extremes of C++ to test are just trivial to do in Go.<p>Things I would like to see improved:<p>- Package management. I think &quot;go get&quot; was an interesting idea that is basically a fail for anything except the most trivial of situations. Vendoring is not a great solution either IMO. Perhaps some idea that manages package versions through local git repositories can work better since a git repository is a better representation of the version history of packages.<p>- I didn&#x27;t like the compile speed loss we took when the compiler code base moved to Go. I&#x27;m not quite sure where it stand right now but one of the things that I liked about Go from the beginning is lightning quick builds.<p>- In my usage there seem to a few quirks in the language including the various scoping weirdness and the declare and assign operator := ... I frequently end up with code that re-uses the same variable such that the first instance is := and the next are = which makes refactoring a pain. The compound if statement also suffers from this.<p>The uppercase&#x2F;lowercase public&#x2F;private convention is also odd. You get used to it but it seems like a hacky afterthought.
coldcodeover 8 years ago
I for one will be more interested in using Go when Jetbrains finishes their IDE. Clearly not everyone cares to develop in an IDE but after 33 years of doing it, I prefer the idea. Give Swift (my current work) as many years as Go has had (10 years), and maybe I won&#x27;t find Go that interesting any more.
评论 #13573649 未加载
评论 #13572958 未加载
评论 #13573905 未加载
niftichover 8 years ago
Conversion rules seem like an awfully specific language feature to introduce just to scratch a very particular itch.<p>The rest of the slides are pretty standard-fare, and that&#x27;s a good thing. Would&#x27;ve liked a reference to the lack of monotonic time, though; either an acknowledgment that it&#x27;s a problem (because it&#x27;s now fairly widely known), or a mention that a new proposal to fix it [1] is in the works.<p>[1] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13566110" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13566110</a>
评论 #13573787 未加载
cftover 8 years ago
Go is better for applied tasks. Currently there is no faster way to write or simpler language than Go to write a highly scalable internet server that can handle 100-1000k concurrent clients on the commodity hardware. I suspect this applies to some big data analysis tasks in bioinformatics, that can be parallelized.
评论 #13575086 未加载
wtbobover 8 years ago
This slideshow doesn&#x27;t work on narrow browsers: a narrow browser window clips the text, despite there being more than enough window space to display all the information on the slide.<p>Remember when the Web was automatically adaptive? Remember when we preferred HTML to PDF <i>because</i> it adapted?
knodiover 8 years ago
I think Go is an amazing lang, its simple yet powerful. I have been using it in production for over 3 years.
评论 #13575218 未加载
neonkiwiover 8 years ago
Looks like the video is here, but YouTube is having trouble with it at the moment:<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=pwIOmKZBuVI" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=pwIOmKZBuVI</a>
riprockover 8 years ago
I&#x27;ve never used Go, but would you write your customer facing REST service using Go? Or would it only be used for back-end microservices? What&#x27;s a recommended library for writing a customer facing REST API?
widdmaover 8 years ago
Video here: <a href="http:&#x2F;&#x2F;video.fosdem.org&#x2F;2017&#x2F;H.1302&#x2F;" rel="nofollow">http:&#x2F;&#x2F;video.fosdem.org&#x2F;2017&#x2F;H.1302&#x2F;</a> (go_state.*)
评论 #13581856 未加载
bokertovover 8 years ago
I&#x27;m on my iPhone and the slides don&#x27;t work well.
Hydraulix989over 8 years ago
Why are we getting rid of OSX 10.8 and some of ARM6? Are they _really_ that much extra work to support? I have a hard time believing so.
评论 #13575017 未加载
tehwalrusover 8 years ago
Impossible to read on an iPhone SE. Landscape or portrait, slides cut in half and jumping around when you try to scroll.
Binoover 8 years ago
Is there a youtube view available?
mrcactu5over 8 years ago
i love languages and i am enjoying seeing Go mature as a language. At the moment I do have my hands tied with Elm and Haskell.<p>Originally I am a Python programmer. Any advice for people transitioning for Python? What are some of the advantages of Go?
评论 #13576854 未加载
评论 #13576315 未加载
Keyframeover 8 years ago
One thing I never understood with Go was what&#x27;s the deal with multiple return values in functions? Why would you do this? What was the reasoning?
评论 #13574502 未加载
评论 #13574512 未加载
kmicklasover 8 years ago
And yet no generics still. What a joke.
评论 #13575815 未加载
notforgotover 8 years ago
Question: who is going to remember all these conversion rules? By the second bullet you lost me.<p><i>Simply run the command below:</i><p><pre><code> go tool fix -diff -force=context state-of-go&#x2F;tools&#x2F;gofix.go </code></pre> How is typing 59 characters simple?
评论 #13573722 未加载
评论 #13576717 未加载
评论 #13574666 未加载
fnlover 8 years ago
Golang really seems to have come a long way. But what holds me back from using it are the dangers of deadlocks and segfaults (due to forgotten error handling) that might be introduced even inadvertedly if applied to industrial-scale projects (say, 1M+ LOC, 10+ developers). That is, I see many small (server&#x2F;microservice) projects flourish with Golang, and it seems an excellent replacement for certain types of C projects, but I wonder how Go enthusiasts believe it could scale to compete with Java or C++, due to the way it does error handling, and deadlocking issues with channels.
评论 #13574743 未加载