Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Wait just one minute, Thierry...

Are you telling me that Python helped you create a viable tech-oriented newsfeed and activity stream business, serving 500 companies and more than 200Million "end users"? That sounds like a great incentive for any entrepreneur to get started with Python.

You've gotten this far by using the language you've turned away from! Further, I'm confident you didn't solve every challenge you've had on your own but rather did so with the help of the worldwide community of Pythonistas who answer questions and help to solve problems.

It takes a village to raise a startup. Don't try to burn the village down after you've grown up and can afford to explore other villages.



Hi, Jelte from Stream here. The post was definitely not meant to indicate that people should stop using Python. We still use it happily for the website and I'm still a big fan of it myself.

However, for the API we've outgrown it in performance requirements. That's what the article is about, together with the things we found during the switch that we liked and disliked about Go.


I would love to hear your experience in two years though. I find the go runtime incredibly lacking in terms of introspectability. That's okay if you run google scale operations where you just throw away the environment on deploys and you do not care about the individual processes, but if you are running a reasonably lean operation the ability to see what a process is doing is incredibly helpful. That even affects simple things such as error reporting which is almost useless in Go to debug issues at runtime.


These are good points. Stack traces in Go are a matter of discipline while they're free in Python. That said, I think Go brings a lot to the table even for a lean operation which more than compensate for these weaknesses. Probably the biggest advantages are that Go deploys as a single binary, and one Go process is sufficient to make efficient use of the machine's resources--no need for something like it's uwsgi. At our small Python shop, we probably have two full time positions dedicated to managing our Python installation process. This could conservatively be halved with Go. Beyond that, we have a couple more full time positions for managing the fleet of servers required to run or applications--Go could easily reduce our machine demand to 2 or 3 (including redundancy) which would probably require just one engineer to maintain not to mention the savings on our AWS bill. These are just a couple of obvious benefits to Go, but for us this isn't enough to justify a rewrite.


Hey Jelte, quick question: Did you guys try Numba or Cython? Or did you guys figure that the language simplification that Go provides would be worth it even if the performance considerations were similar?


No, we didn't try those. Mainly because it wasn't only raw performance that we were after. We also wanted more simplicity and better concurrency than what python was providing for us.

Also, the reason we even considered a language switch is that we had performance problems related to our core design. Because of this we decided that we needed to rewrite most of our API code based on a new design. This required rewrite made us consider switching languages. Eventually we chose to rewrite our whole API codebase in Go for all the reasons in the article. (we did a small trial project in go first to evaluate it)


Did you ever consider Elixir?


We did but Go was deemed better in our case. For more details Ctrl+f for Elixir in the blogpost.


Did you guys try PyPy before deciding to switch? If yes, what was the outcome? If not, why not?


It reads like a reasonable rationale for why they switched to Go. Uninteresting maybe, but certainly no village burning. You sound indignant for some reason that isn't related to the content of the article.


Indeed the author even:

1) recommends Django or Rails for CRUD apps 2) mentions a lack of frameworks in Go as a negative

It's a good article and not a rant about which language is "better"


You really hit the nail on the head. If someone is able to build a successful business with an easy to use language, that sounds like the language you want to start with.


facebook, php ∎


and they are now seem invested in Ocaml/Reason (which are a lot less popular compared to Go)

i guess after companies reach a certain size, they can go beyond choosing a programming platform for its ecosystem


Are they using much ocaml on the backend? At facebook's size they have a whole lot of different languages in the stack. I'd be very surprised if a significant portion of new backend development were in OCaml though.


you can check their github account, they have several static analysis tools written in ocaml

and then they have reason, is being used heavily in messenger

https://reasonml.github.io/community/blog/#messengercom-now-...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: