Live data from Hacker News

Go + Services = One Goliath Project

engineering.khanacademy.org

11–20 of 449 posts

Re: Go + Services = One Goliath Project

#11
post #4

I was under the impression that Go was more performant than Kotlin. TMYK :)

Go was written for servers, Kotlin for mobile apps. Seems an obvious choice really.

> Go was written for servers, Kotlin for mobile apps.

Not really. Kotlin was just a better JVM language developed by the JetBrains folks before Google adopted it as a first class Android language, but I don't believe it was specifically developed for mobile initially.

Re: Go + Services = One Goliath Project

#12
post #4

I was under the impression that Go was more performant than Kotlin. TMYK :)

Go was written for servers, Kotlin for mobile apps. Seems an obvious choice really.

I wouldn’t say that Kotlin was written for mobile apps. JetBrains, the company that created Kotlin, doesn’t even have mobile apps AFAIK. It’s just meant to be a more modern JVM language and that means it does anything Java does just better. Servers included.

Re: Go + Services = One Goliath Project

#13

I was under the impression that Go was more performant than Kotlin. TMYK :)

I have found that there can be drastic differences in Go performance in the particular way you structure the program. Writing Go code in a Python-like way is going to be less performant than if you run escape analysis every compile and make deliberate effort to stay on the stack.

Re: Go + Services = One Goliath Project

#14
So, some potential pitfalls:

- The decision seems to be primarily a software architecture one, without much mention of all the other architects whose input will shape how the finished product is run and supported. In a modern software development environment, all the other parts of the org should be consulted on greenfield work to "Shift Left" anything that may need to change down the pike. Design in a silo leads to ineffective products.

- They're going from "hmm we need to upgrade from Python 2 to Python 3", to "we need to redesign everything in a new language with a radically different software architecture". This is definitely the second system effect. It's going to take years to make this thing reliable and sunset the old product.

- They're porting over the logic? Even if this is actually the right move, wouldn't a clean-room implementation potentially give better outcomes?

- Why are they continuing to use App Engine if the writing's on the wall for 2024?

Re: Go + Services = One Goliath Project

#15
post #4

I was under the impression that Go was more performant than Kotlin. TMYK :)

Go was written for servers, Kotlin for mobile apps. Seems an obvious choice really.

I don't think that's true. You're confusing the fact that Kotlin has become the officially supported language for Android development with the idea that it was written for mobile apps.

Re: Go + Services = One Goliath Project

#16
The article says this: "Moving from Python 2 to 3 is not an easy task."

I disagree with this. It's a Python project's dependencies that make it hard to move from 2 to 3, and most libraries have been updated.

Of course, you could argue that it isn't easy to migrate a codebase from one major version of a language (or framework, or database) to another, but when you eliminate easy from your vocabulary it becomes harder to describe different levels of difficulty.

Re: Go + Services = One Goliath Project

#17
Seems like such a waste. Is switching to python 3 really that hard? Is hardware that expensive? If this is indeed the right call it doesn't bode well for traditional scripting languages as the web scales to fewer high traffic apps. We might start to see more jvm, go (apparently) or even rust and c(++), rather than speed of development languages like Python or Ruby. Trend seems to be the reverse though, with python the second and most rapidly growing language.

Re: Go + Services = One Goliath Project

#18
Looking at the case where khanacademy is migrating their server only after about 10 years. I realize more that I don't have to worry that much about being locked into certain technologies (unless it's clearly untransferable, e.g. storing part of customer data in 3rd party server), because after all, we might keep it only for about 10-20 years, and the thing I'm working at almost certainly will only last < 2-3 years.

Re: Go + Services = One Goliath Project

#19

We turned our monolith into a bunch of micro services almost 6 years ago to the day. For a long time I was very happy with the new pattern but over the years the weight of keeping everything updated along with the inevitable corners that fall behind and have...questionable..security due to how long they sit neglected has really left me wondering if I am happy with it after all. I would love hear some thoughts from ot…

I moved back to monolith and am very happy. I think of the monolith now as a collection of modules. The rule is now, one should be able to drag any of the modules to the top-level of our monorepo and create a new microservice pretty easily when the time comes. I think the microservices book (that came from that Uber engineer...?) suggests a rule of 5 engineers per service.

Re: Go + Services = One Goliath Project

#20

The article says this: "Moving from Python 2 to 3 is not an easy task." I disagree with this. It's a Python project's dependencies that make it hard to move from 2 to 3, and most libraries have been updated. Of course, you could argue that it isn't easy to migrate a codebase from one major version of a language (or framework, or database) to another, but when you eliminate easy from your vocabulary it becomes harder…

migrating from python 2 to 3 is such a large task that migrating to any other language is a comparable effort. this is not just a library problem the language itself changed significantly

source: no python services at my company are going to be migrated to python 3; it’s all moving to a JVM

Post reply on HN