4 ms·
Our company uses Go. Most people who join have no experience in Go yet usually they can get comfortable with the language in 1-2 weeks to start contributing. I
by pkaye 8y ago
Our company uses Go. Most people who join have no experience in Go yet usually they can get comfortable with the language in 1-2 weeks to start contributing. I know nothing about Node/JS but I'm sure that takes much longer?
- nostalgeek 8y ago> but I'm sure that takes much longer? Your people can pick up go reflect package or go routines/channels and co in 1-2 weeks and start contributing? impressive... most people can pick up for loops, if,switch statements, variable and function declaration in a week in any language as well... In fact, a lot of non programmers use JS regularly to write scripts in the browser. I imagine your people know how to program before hand... So what do you think takes longer to learn? mastering go threading model or being able to add interactivity to the DOM?
- golangnews 8y agogo reflect is not commonly used, goroutines are pretty simple to pick up. I have used several large codebases with zero use of reflection. The point of go is it restricts you to 25 keywords (the basics that you sneer at above) so senior people can't get fancy and produce an impenetrable mess/marvel that beginners will take months to orient themselves in. It is definitely easier to write well than js IMO, and harder to make a big ball of mud in.
- deleted 8y ago[deleted]
- pkaye 8y ago> So what do you think takes longer to learn? mastering go threading model or being able to add interactivity to the DOM? For me, the go threading model is easier. I just can't stand DOM and web programming in general. Currently working on a problem doing some computation across dozens of cores on multiple servers and go makes it a lot easier to spawn the 1000 goroutines and coordinate between them. I guess everyone has different interests and perhaps it is similar for those we hire.
- nostalgeek 8y ago> For me, the go threading model is easier. I just can't stand DOM and web programming in general. Because you didn't take the time to learn the DOM, that's all. I doubt learning a simple composite API made of dumb nodes is more difficult than writing thread safe programs in Go. I'm not talking about tastes or interests, I'm talking about ease of learning. Go isn't 'easy to pick up'. For loops, if statements and co are basic, and they are in all languages, that's my point. There is nothing particularly easy with Go.
- stcredzero 8y agoMost people who join have no experience in Go yet usually they can get comfortable with the language in 1-2 weeks to start contributing. A lot of what makes anything hard to learn are the non-obvious gotchas. The design philosophy of golang is aimed at avoiding the non-obvious gotchas and the creep-up-on-you-at-scale gotchas.
- solipsism 8y agoExcept channels. If you use channels it's non-obvious gotchas galore.
- stcredzero 8y agoConcurrency is hard. Channels make it somewhat easier. Basically, see if you can do concurrency with only synchronous code.
- solipsism 8y agoConcurrency is hard and channels make it somewhat easier. Agreed. That's not relevant to the fact that the use of channels in Go is full of gotchas.
- stcredzero 8y agoThat's relevant to the fact that concurrency is full of gotchas. I also used Go to write an MMO all by myself. I think channels are great!
- eudoxus 8y agoI think his point was that concurrency is riddled with gotchas regardless, and channels reduce them, but not remove them.
- stcredzero 8y agoPeople completely misread my comment about doing concurrency with only synchronous code. Basically, channels let you do concurrency with only synchronous code as in Node JS, but without using callbacks.
- aphexairlines 8y ago1-2 weeks is standard for all languages though. A week or less is how long it usually takes people at work to pick up Objective C and contribute to iOS development, or pick up Scala and contribute to service development.