I was originally very excited about Go when I first learned about it. But then I got tired and frustrated quickly after having to listen to the other Gophers telling me that I don't need this or that feature because there is a better way to do it in Go. Like. I don't need exceptions because Go function can return multiple values. I don't need a mocking framework like Mockito because Go has interfaces. I don't need an…
It's pretty typical of the Plan9 mentality. See this post on the Acme text editor: http://9fans.net/archive/2008/08/134
How We Went from 30 Servers to 2: Go
431–440 of 511 posts
Re: How We Went from 30 Servers to 2: Go
#432Earlier quoted context omitted.
My only point is that being obtuse is not the best way to get your point across. I assume your goal in expressing your opinion is to convince others, and to do so it helps to be clear, concise, and direct.
That's a very narrow assumption as to why someone would express their opinion. The OP might be sharing their experience (in what was a humorous way) purely to be sociable in this discussion... Not everyone is out to convince others.
Re: How We Went from 30 Servers to 2: Go
#433Earlier quoted context omitted.
> It's just erlang-the-programming-language that has all the Prolog warts that scares people, I think. I must be strange but I actually like Erlang's syntax. Its pattern matching is really hard to beat. Also with Erlang, it is not just about the language unless one just wants to learn academic FP or Actor model concepts -- it is about the framework. Debugging, tracing, distribution all those come as part of the packa…
Another one here... I like Erlang's syntax as well. Of course, we could have some things better (like record syntax), but it's really not bad at all. I think most people have curly braces fetish (we call them "tits" at times where I work). If it doesn't have "tits", no thanks, it's ugly and bad.
Re: How We Went from 30 Servers to 2: Go
#434There's simply no technology that makes you switch from 30 machines to 1 (you say you keep 2 just for reliance). Obviously there must be other architectural changes in play here (I'm guessing RoRs thread-per-request vs some kind of event loop on Go?). Please be more specific.
Re: How We Went from 30 Servers to 2: Go
#435> "We also weren't sure if we would be able hire top talent if we chose Go, but we soon found out that we could get top talent because we chose Go." I feel[1] that a smart/talented C/C++/anything developer can go from someone who has never seen or heard of golang to a proficient and productive Go developer in a matter of a few weeks, maybe even _days_, if not less. That's how long it takes to go through the following…
It's quite strange to me that people would identify as or look for a "[language] programmer". Sure, I happen to write more C++, Python, and C than anything else, but I've dabbled in just about everything and could reach comfortable proficiency in a matter of weeks. Most of programming and all of computer science is universal. Any serious programmer should be a polyglot by default.
Re: How We Went from 30 Servers to 2: Go
#436Earlier quoted context omitted.
> If one process crashes, it won't affect others. Unless they're linking or monitoring one another, an other important property of tolerant and distributed system.
But that is on purpose. Sometimes you do want that. In other words they are explicitly set up to monitor/link each other.
Indeed, but I was pointing it out because it's important to be able to do it.
Re: How We Went from 30 Servers to 2: Go
#437> "We also weren't sure if we would be able hire top talent if we chose Go, but we soon found out that we could get top talent because we chose Go." I feel[1] that a smart/talented C/C++/anything developer can go from someone who has never seen or heard of golang to a proficient and productive Go developer in a matter of a few weeks, maybe even _days_, if not less. That's how long it takes to go through the following…
Re: How We Went from 30 Servers to 2: Go
#438Earlier quoted context omitted.
I got the same feeling from the odd dismissal of Erlang.
Exactly, you know, my advice would be to take these blog posts with a pinch of salt. There is something called as the 'mob' mindset. The mob in general can be easily manipulated to believe in something that is not true. (Remember Julius Caesar?). For example, a year or two ago we saw the whole world of start-ups adopt MongoDB with so much vigor and almost everyone started writing "Why we moved away from MySQL to Mong…
I WANT TO WORK AT THIS COMPANY!
Re: How We Went from 30 Servers to 2: Go
#439Earlier quoted context omitted.
That is somewhat orthogonal. Lisp is better at abstraction than Agda or Coq or Isabelle or any of those ML/Haskell theorem proofers. To maintain the theme: C if you are terrified about performance Lisp if you are terrified about boilerplate Agda if you are terrified about correctness If you are terrified about all of these, then welcome to the world of engineering.
If you are terrified about all these, there is ADA.
Re: How We Went from 30 Servers to 2: Go
#440I rewrote my DNS checking tool ( http://www.dnsinspect.com/ ) in Go and I saw huge differences in resource usage (previously it was implemented with Ruby on Rails + EventMachine), my memory usage went down from 128MB per background worker to a few KB. Now I'm able to run hundreds to thousands of concurrent reports using a small VPS, the Go application is using 36MB of RAM (24MB front end + 12MB for background workers…