4 ms·
Apologies for the semi-off topic question and it’s not directed towards your project specifically, but why do Go projects always emphasise that they are Go proj
by pwm 8y ago
Apologies for the semi-off topic question and it’s not directed towards your project specifically, but why do Go projects always emphasise that they are Go projects? I never see announcements like “Foo, a C# library to do Bar”. That fact that it’s C# (or anythig else) will become apparent to anyone who cares to look at the source. With Go projects it’s always emphasized that they are written in it. Am I the only one who noticed this trend?
- GonzaloQuero 8y agoI think it's the best way to do it, to be honest. If I'm searching for a library in my preferred language to do X, wouldn't it be better if the website is really explicit about what it does and in which language?
- nizmow 8y agoPerhaps it's simply that there's still a little insecurity around writing an application in Go, and authors feel the need to justify it. I think it's unwarranted, though.
- deweller 8y agoGo is popular among open source developers, so announcing up front that the project is written in Go will attract more eyeballs and potential contributors. If I'm going to contribute to an open source project in my free time, I'm more likely to contribute to a project if it is written in a language I enjoy working with.
- Herbert2 8y agoFor me, an emphasis on Go indicates that I won't have problems with cross compilation and that I'll have a static binary to run. I'm more inclined to give a tool a try when I don't have to deal with language sandboxes.
- phkahler 8y agoFor me it raises the question of weather it works with programs written in anything other than GO. My first thoughts were - hey I'm learning Rust and Flutter looks neat, will this allow me to use Flutter as a GUI for my rust apps? They say it's written in GO, so that must be relevant right? And it probably means it's meant for apps written in GO right? It's an interesting line. I like the notion of apps I use being written in one of the more modern languages (GO or Rust) but it's not a core feature to a user. This means I can appreciate the language being mentioned but in a much less prominent way. If language isn't critical to a user or developer (of other things) IMO it shouldn't be so prominently mentioned.
- wilonth 8y agoIts usage in fact has nothing to do with Go or any other languages, Flutter is a framework for Dart and Dart only.
- bobwaycott 8y agoI see it in the vast majority of languages I’ve used, use, or consider using—Go, Elixir, Python, Ruby, you name it. I don’t think it’s much of a trend. It seems a practical thing to do to ensure your project can be found by others—it helps when you want your <thing> to be found when someone searches for “<language> library for <thing>” or “do <thing> in <language>”. For Go specifically, it often may be mentioned alongside “cross-platform”, a signifier that you can use it for such work and, I think, also to help when people search for that term when looking to do <thing>.
- randomdata 8y agoHaving wasted far too many hours of my life dealing with complicated installation procedures, particularly with projects written in C and C++, and a few interpreted languages, knowing what language a project is written in is a huge selling feature for me. While this is a feature not strictly limited to Go, Go applications on the whole have been very easy to install, so it piques my interest when I can have some confidence that using it is just a simple command away.
- abtinf 8y agoA few reasons off the top of my head... Go has very simple dependency management. A library written in Go generally needs very little environment management and will often integrate easily with a Go codebase. This is further enhanced with Go’s implicit inheritance model. Go compiles to a static linked binary. A library written in Go usually can be static linked as well with no system dependencies. Go has excellent cross platform support. Unless a library makes system calls (and sometimes even then), it will also be cross platform. Go has a clean, simple, style. The lack of features like generics, operator overloading, and constructors means you can look at the code and instantly understand what it does. There is no spooky action at a distance because a variable declaration turns out to be a complex function call. This makes it much easier to understand the overall system impact of using libraries written in Go. Applications and libraries written in Go build very quickly. My experience with other languages is that trying a substantial new package is a go-make-a-sandwich level of inconvenience. Go libraries usually are ready to use as soon as git clone finishes.
- pjmlp 8y ago> Go compiles to a static linked binary. By default. Go has supported dynamic linking for a while now.
- jerf 8y agoNew or niche languages always have their projects advertising their implementation language as a point of interest, basically as marketing for that language. You'll rarely see "In C" or "In Python" because those are just known-popular choices. (Not never of course, but rarely.) By contrast, I bet we're going to see a lot of "In Nim" in the next year. Go's actually on the tail end of that right now; I've seen a number of things posted to HN that are just implemented in Go without saying so. Of course if you don't click through and look, you won't notice. :) But at this point, if I click through to a GitHub of some project and it's in Go, it's only mild surprise at best; it is most of the way to being just one of the default choices. There's an even earlier version of this phase, which is when all the projects include the language in the name of the project, i.e., "gosql", "gobrowser", "punwithgo", etc. Go's been out of that one for long enough that I think it's kinda off when a new library has "go" in it unless there's a really good reason (for instance, development tools that really are about Go specifically and not just implemented in Go).
- triodan 8y agoFor the same reasons as Rust, both are in the middle of their growth phase and mass adoption stages.