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

231 pointsby xkarga00over 10 years ago

21 comments

Mithalduover 10 years ago
Edit: This commit was written to the original submission: <a href="https://talks.golang.org/2015/state-of-go.slide#7" rel="nofollow">https:&#x2F;&#x2F;talks.golang.org&#x2F;2015&#x2F;state-of-go.slide#7</a><p>--------------<p>It seems like these people simply don&#x27;t understand Github very well.<p><pre><code> Can only view diffs on a single page (can be very slow). Cannot compare differences between patch sets. Accepting a patch creates a &quot;merge commit&quot; (ugly repo history). </code></pre> Don&#x27;t use the merge button, just add the requester&#x27;s repo as a remote to yours and use your familiar tools. If possible and done, a fast-forward merge + push will also close the PR.<p><pre><code> Comments are sent as they are written; you cannot &quot;draft&quot; comments. </code></pre> How is that different from pull requests via emails? (Also, on the website itself the comments can be edited.)<p><pre><code> To create a patch one must fork the repository publicly (weird and unnecessary). </code></pre> What exactly is weird about that? It makes it possible for the requestor to craft their changes with full control, without requiring upstream to give them write access. This point is just entirely nonsensical.<p><pre><code> In general, pull request culture is not about code review. </code></pre> A strong claim, but one without any justification, and which is, in my experience, as far from the truth as possible.<p>Edit:<p>In light of their complaints about the need to fork, i have to say that their current contribution process can in its entirety be described as weird, unnecessary <i>and</i> baroque:<p><a href="https://golang.org/doc/contribute.html" rel="nofollow">https:&#x2F;&#x2F;golang.org&#x2F;doc&#x2F;contribute.html</a>
评论 #9051220 未加载
评论 #9051302 未加载
评论 #9051401 未加载
评论 #9051177 未加载
评论 #9051350 未加载
评论 #9051224 未加载
评论 #9051831 未加载
评论 #9051389 未加载
评论 #9053883 未加载
评论 #9051719 未加载
Blackthornover 10 years ago
The comments here represent one of the best examples of bikeshedding I&#x27;ve ever seen. The deep details of go are too complex for some people to really have an opinion on but god damn does everyone want to get their voices heard about github!
评论 #9052404 未加载
评论 #9053839 未加载
评论 #9053655 未加载
评论 #9052209 未加载
falcolasover 10 years ago
Personal opinion here, but I much prefer merge commits as opposed to fast forwarded commits. With a merge commit, there&#x27;s one commit to revoke if something breaks, and there&#x27;s one commit per PR to step through with git bisect, and more importantly it maintains history, which to my eyes is more useful than a &quot;pretty&quot; repository.<p>Drafting comments... if you want to draft comments, can&#x27;t you do that in a separate editor? Better than relying on the browser as an editor.<p>I agree, though, the public repository requirement for making a PR is a bit awkward.
评论 #9051323 未加载
评论 #9051309 未加载
评论 #9051456 未加载
评论 #9051395 未加载
评论 #9051451 未加载
评论 #9051731 未加载
nawitusover 10 years ago
What is the better alternative Go is using?<p>&quot;Can only view diffs on a single page&quot;<p>You don&#x27;t need to use GitHub to view diffs.<p>&quot;To create a patch one must fork the repository publicly (weird and unnecessary).&quot;<p>I don&#x27;t think it&#x27;s weird.<p>&quot;Accepting a patch creates a &quot;merge commit&quot; (ugly repo history).&quot;<p>You don&#x27;t need to have a merge commit, although I don&#x27;t think that creates an ugly repo history.<p>&quot;In general, pull request culture is not about code review.&quot;<p>I have no idea what this means.
评论 #9051412 未加载
评论 #9051133 未加载
评论 #9051108 未加载
ak217over 10 years ago
<i>Can only view diffs on a single page (can be very slow).</i><p>I&#x27;ve seen GitHub take five seconds to render a 100K line diff. In my experience all of the other tools I&#x27;ve used, including some of the ones listed, can take longer to render individual file sections of such a diff. It&#x27;s fast enough.<p><i>Comments are sent as they are written; you cannot &quot;draft&quot; comments.</i><p>I&#x27;m a bit puzzled as to why you would need to draft comments inside the PR interface, especially in light of the fact that they can be edited.<p><i>Cannot compare differences between patch sets.</i><p>You most certainly can. Just use branch&#x2F;revision compare.<p><i>To create a patch one must fork the repository publicly (weird and unnecessary).</i><p>Also immaterial.<p><i>Accepting a patch creates a &quot;merge commit&quot; (ugly repo history).</i><p>This comes closest to being a legitimate complaint. Because GitHub emphasizes recognition of contributors, it doesn&#x27;t let you rewrite the commits in the PR as you merge them with the merge button, but there are multiple ways to merge on the command line that avoid the merge commit and play nice with the PR.<p><i>In general, pull request culture is not about code review.</i><p>WTF?<p>Sounds like a strong case of NIH.
评论 #9051393 未加载
justinsbover 10 years ago
&gt; Better bindings for calling Go from Java.<p>If that is available for general Java code (i.e. uses JNI) and not just for Android, that could be really huge for Go. Writing performance-sensitive low-level code in Java is still fairly painful, wheras Go still isn&#x27;t great for writing big programs. I can imagine (for example) Hadoop, Lucene&#x2F;Elasticsearch and PrestoDB all using this.
评论 #9051077 未加载
jrochkind1over 10 years ago
Yeah, I dunno, the github PR &#x27;culture&#x27; I&#x27;ve engaged in has often in fact been about code review. I don&#x27;t see any problems with forking a repo publicaly to make a PR (what is there to hide?), am not really bothered by merge commits (and in some cases they are actually quite useful, some people prefer them, it&#x27;s a point of some contention), and I don&#x27;t really understand what they mean by &#x27;Comments are sent as they are written; you cannot &quot;draft&quot; comment&#x27;<p>But to each their own -- I&#x27;m curious what alternative system (if any) of accepting patches they have. If it&#x27;s emailed git patches on a listserv, then I would definitely find it a barrier to submitting patches, myself, compared to github PR&#x27;s.<p>I think in general, github PR&#x27;s have proven succesful at soliciting code contributions from a wider field, which seems to be the goal of their UI (over command line git itself). Of course, this can seem a downside too, as committers have to spend time dealing with those submissions.
评论 #9051675 未加载
评论 #9051799 未加载
wereHamsterover 10 years ago
&gt; In general, pull request culture is not about code review.<p>This is not true. There are many projects on GitHub which do extensive code reviews on pull requests. It may not be as nice as Gerrit for the type of project like Go (where you often have many iterations or the diffs are large). But for many other projects the UI that GitHub provides is sufficient (and arguably more efficient than Gerrit).
评论 #9051142 未加载
评论 #9051478 未加载
评论 #9051076 未加载
CatDevURandomover 10 years ago
I&#x27;m late to the hate-parade but I did want to chime in to say how much I appreciate all the work the go team has put into the language, and tools. Go is a wonderful tool to get things done with. I recently rewrote a cross platform `enterprise` app from java (25k LOC) to go (8k LOC) and saw improvements in readability, memory footprint, and overall quality. Some notes on my experiences so far:<p>Go binary size is a non-issue for most software. The java-rewrite I mentioned above went from a 80MB or so binary, to a 8MB executable. That said, there&#x27;s been a few occasions when I&#x27;ve really wanted to use go for an embedded project, but couldn&#x27;t due to it&#x27;s size.<p>I read somewhere, someone said of go, &quot;you&#x27;ll come for the concurrency, but you&#x27;ll stay for the interfaces. This is very true for me.<p>Generics. Go&#x27;s red herring. Sure, there&#x27;s been a handful of occasions where generics would have saved me some boiler-plate, but it&#x27;s not been a pain point for me.<p>Tooling, from fmt, vet, to unit testing are all first rate. However, I wish there was a better debugger option for go. I know that gdb works with go (and with a great deal of difficulty if you develop with OSX) but I&#x27;m probably not alone when I say I really dislike GDB.<p>Overall, I&#x27;ve found the community to be friendly both online and in person.<p>As an aside, I&#x27;ve noticed much of the recent vitriol towards Go seems to come from the Rust crowd which I think is too bad. I enjoy both. Languages are not a zero-sum game. Who knows, the hate means Go has finally arrived.
frabcusover 10 years ago
There were some great new tools mentioned on there - like &quot;callgraph&quot; for plotting the callgraph.<p>I can&#x27;t however find any instructions how to download and install them. Anyone able to help me?
评论 #9050998 未加载
inglorover 10 years ago
This presentation looks horrible on the iPhone screen. I wonder if they couldn&#x27;t spend a few minutes to point phone users to a working version or at least not lock the viewport size so mobile users could pinch-zoom out.
评论 #9051298 未加载
评论 #9051315 未加载
jakub_gover 10 years ago
I tried to mitigate some of the pains with GitHub code review UI by writing a helper userscript to track the progress of big code reviews. Some of the items listed in the link can be fixed in this way.<p>The idea is to expand&#x2F;collapse files, store progress of the review and collapse status of the files in local storage of the browser, so you can stop and resume at any time (I also have in mind serializing this stuff into a hash in the URL so you can forward it to the other machine for instance, and recreate the progress there).<p>I work on it every now and then and have a number of items in the backlog. If someone is interested to contribute I&#x27;ll be happy to accept pull requests (sic!) :)<p><a href="https://github.com/jakub-g/gh-code-review-assistant" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jakub-g&#x2F;gh-code-review-assistant</a>
omeid2over 10 years ago
&gt; In general, pull request culture is not about code review.<p>A lot of people seem to here insist that this is somewhat even remotely true. This is not. Look through Docker&#x27;s pull requests on Github, look at their CI hooks.
huevingover 10 years ago
Gerrit still produces merge commits unless they have it configured to cherry-pick onto master, which is insane because you are changing the commit sha at that point.
评论 #9051153 未加载
boulosover 10 years ago
Does GitHub still not support &quot;fast-forward only&quot; commits? The &quot;ugly merge&quot; thing is easily avoided with a rebase before committing.
评论 #9051131 未加载
评论 #9051325 未加载
omniover 10 years ago
Breaking the mouse entirely probably isn&#x27;t the greatest of frontend design patterns.
评论 #9051010 未加载
评论 #9050946 未加载
drigao_ssj3over 10 years ago
<a href="https://www.youtube.com/watch?v=x8wcP-W2pTQ&amp;list=UUysVbKMJEmhmkx_k-CqBWeA" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=x8wcP-W2pTQ&amp;list=UUysVbKMJEm...</a>
zak_mc_krackenover 10 years ago
&gt; To create a patch one must fork the repository publicly (weird and unnecessary).<p>I think it&#x27;s very fair to demand from a contributor to sync and build the entire app before they&#x27;re allowed to submit a patch.<p>Interestingly, I note the Go team says it&#x27;s &quot;unnecessary&quot; but doesn&#x27;t provide their alternative.
评论 #9051771 未加载
arsvover 10 years ago
&gt; Where we&#x27;re at in February 2015<p>Still producing 1.3M hello world executables.<p>I wonder if rewriting the linker from C to Go will be primarily rewriting, or maybe they will start fixing it somehow.
评论 #9051008 未加载
评论 #9051038 未加载
评论 #9051097 未加载
bdcravensover 10 years ago
Most of career has been spent doing web programming, so maybe I&#x27;m ignorant, but if you have to build Go with a Go binary, instead of C, doesn&#x27;t this break OSS&#x27;s value proposition? (obviously I&#x27;d have to start with a C compiler, but that feels a bit purer in my mind, as I can start with a pretty bare-bones OS)
评论 #9051061 未加载
评论 #9051733 未加载
评论 #9051734 未加载
rsarsarsaover 10 years ago
I think go is failed, compare to rust. 1. not memory safe on multi-thread 2. no generic support 3. error handle is full of pain compare to rust&#x27;s Result&lt;T&gt;, Option&lt;T&gt; and try! 4. gc can&#x27;t be disable 5. no RAII support, defer can be forgot light-weight thread (spawn) and channel (thread safe FIFO) already exist in rust that make golang more meanless. If you think still any advantage of go please tell me.
评论 #9052677 未加载
评论 #9052751 未加载
评论 #9052494 未加载