Live data from Hacker News

How We Went from 30 Servers to 2: Go

blog.iron.io

431–440 of 511 posts

Re: How We Went from 30 Servers to 2: Go

#431

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

Is that a parody?

Re: How We Went from 30 Servers to 2: Go

#432
post #335

Earlier 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.

Righto, he could be here to make himself feel good by using words he doesn't usually get to.

Re: How We Went from 30 Servers to 2: Go

#433
post #314
post #206

Earlier 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.

There is talk about frames and maps for a while. I noticed there is an upcoming Erlang factory talk from Ericsson about this feature. I suspect those might end up used in place of records in some cases.

Re: How We Went from 30 Servers to 2: Go

#434

There'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.

Go is good at keeping all the cores on the machine pumping. Maybe they switched to machines with more cores.

Re: How We Went from 30 Servers to 2: Go

#435
post #30

> "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.

If only the morons that hire could figure this out. I almost NEVER use Java, but obviously I have and CAN use Java. Yet interview after interview demands that I use Java day to day in my current job to be considered. And this is for data transformation/analysis jobs, in which my use of Python makes me dramatically faster and more productive than my Java using colleagues.

Re: How We Went from 30 Servers to 2: Go

#436
post #430

Earlier 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.

> But that is on purpose.

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…

It took me 1 week each to go from 0 to being productive in javascript & ruby and it took roughly the same time for some other developers in my team. I think it's more about knowing where to start, knowing various paradigms, etc than the language itself.

Re: How We Went from 30 Servers to 2: Go

#438
post #322

Earlier 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…

>> "After x years of using Go, Erlang and Scala, here is our comparison on what works well and what doesn't and how each one of them perform under different conditions"

I WANT TO WORK AT THIS COMPANY!

Re: How We Went from 30 Servers to 2: Go

#439
post #287

Earlier 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.

Ada. Not an acronym.

Re: How We Went from 30 Servers to 2: Go

#440

I 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…

Do you also used the default net/http support libraries?
Post reply on HN