Live data from Hacker News

How Netflix uses Java

infoq.com

141–150 of 205 posts

Re: How Netflix uses Java

#141
post #106

Earlier quoted context omitted.

No, just no. Performance and debugging are just plain horrible. The spring team loves to force you into their automagic shit and this bean stuff is so annoying. You almost got no compile time safety in this stack. It's the bane of my existence. I'd like to know that a compiled program will run. That seems virtually impossible with java/spring boot.

This is just... ignorance; your argument is basically, "I don't understand/want to learn how X works; therefore, X must be garbage"

If you read more of my responses you'll see that I've been a Spring user for quite some time and know how it works. I just dislike how it works. Do you have any argumentation or did you just want to call me ignorant?

Re: How Netflix uses Java

#142

Earlier quoted context omitted.

No, just no. Performance and debugging are just plain horrible. The spring team loves to force you into their automagic shit and this bean stuff is so annoying. You almost got no compile time safety in this stack. It's the bane of my existence. I'd like to know that a compiled program will run. That seems virtually impossible with java/spring boot.

[flagged]

> It's plain this person lacks the experience and perspective to appreciate the problems a stack such as Spring solves

lol, having worked in Spring codebases for over a decade at this point, I assure you those of us who dislike Spring know exactly what problems it "solves" (which, btw, it doesn't)

if you can't seriously acknowledge and understand the mountains of criticism that has been leveled against Spring, by experienced and novices alike, you're the one who is arrogant and needs a reality check

but yeah it's typical of Spring fans to portray it as if Spring is The Only Professional Option when in reality there are much, much better, easier and simpler solutions for the same problems out there, including eg DropWizard and Ktor

Re: How Netflix uses Java

#143

Earlier quoted context omitted.

Where are you migrating?

No idea yet. But the first step is to have totally isolated domain logic in plain Kotlin. That's a nice start. Next we'll look into Graalvm, but no high hopes that everything we need is compatible. /edit: it's not meant to replace spring, I know what these things do. It's to remediate some of the performance issues and compile time safety, which using graalvm inevitably brings ...

GraalVM and Spring and Hibernate are all totally different things. You can't replace Spring with GraalVM, that makes no sense.

You could look at Quarkus, Helidon, Micronaut or KTor if you want a Kotlin framework.

Re: How Netflix uses Java

#145
post #115

Early on (15+ years ago) I spent a few weeks there on contract and I noticed they used Java EVERYWHERE, and not always well. They had a CS app named after a key Star Wars character that was in all likelihood a breach of the Geneva Convention. A code atrocity with the performance of a sloth on its 8th bong rip with a UX from hell.

What does CS stand for here? I guess it's not computer science?

Also, that description made me lmao, thanks

Re: How Netflix uses Java

#147
post #115

Early on (15+ years ago) I spent a few weeks there on contract and I noticed they used Java EVERYWHERE, and not always well. They had a CS app named after a key Star Wars character that was in all likelihood a breach of the Geneva Convention. A code atrocity with the performance of a sloth on its 8th bong rip with a UX from hell.

If it helps that CS app was rewritten about 10 years ago (when I worked there, but not on that app) in part due to the complaints you mention. It's totally true that most resources were spent on customer facing apps. Internal apps were definitely not of the same quality, because they didn't need to be.

Re: How Netflix uses Java

#148

Earlier quoted context omitted.

What do you propose as an alternative? Something like Micronaut trades more compile time for stricter checks and faster runtime. Do you use something like that?

I implemented a microservice with micronaut starting 3,5 years back. The fragility of krush/exposed is not very fun tho. we introduce another hurdle because we only use Kotlin. I'm open for ideas though. PS: we replaced/will replace all microservices with Go.

Hah, yeah, we have a number of microservices implemented with golang. As 'clunky' as the language can feel sometimes the tooling is first class.

Re: How Netflix uses Java

#149

Earlier quoted context omitted.

> I'm not sure what "no compile time safety in this stack" even means in the context of a strongly-typed compiled language. Easy: as I said down below, you can actually get wildly different classes because of things like Hibernate proxies. Also, you guessed it, the dependency injection part. I just hate it. Nothing works together. We have so many hacks and weird work-arounds because something doesn't work. (Websocket…

This sounds a bit negative but at the same time not purely related to Spring but rather to the choices of external dependencies. I've worked using Spring for years and it makes me smile reading it. Hibernate looks easy but the abstractions have a cost associated with using and maintaining it. There are a lot of settings you need to get right. There were dedicated DBAs that would optimize it in the past. You could jus…

Yeah, I'm also heavily ranting. My nick is meant as a hint haha. In the end and after quite a few years we're almost at a point where we love to work with our stack, minus the occasional weird funky thing happening because of the ecosystem (which would never happen in something like Go for example!). Hexagonal + Kotlin + Gradle multi-modules is a beast!

> My pain point was usually related to the differences you need to do among Java, Groovy, Kotlin but otherwise it is awesome.

Yup, agreed! We got to run kotlin pretty nice and got to play it together nicely with gradle convention plugins.

Agreed on Python. Was my first properly learned language back in the days and my first backend lang. Absolutely annoying. I also love go, but it lacks something like gradle, especially multi-module support. I love it but don't see it on a scale as our Kotlin codebase.

> engineers are cheaper to hire

I think there's also the benefit of an exotic language. You might only get 10 CVs, but you could probably hire half of them because only passionate people bother to look into exotic things. With java you have a bigger bandwidth ... which causes a lot of work.

Re: How Netflix uses Java

#150
post #115

Early on (15+ years ago) I spent a few weeks there on contract and I noticed they used Java EVERYWHERE, and not always well. They had a CS app named after a key Star Wars character that was in all likelihood a breach of the Geneva Convention. A code atrocity with the performance of a sloth on its 8th bong rip with a UX from hell.

When I was there a decade ago, it started becoming more polyglot friendly (node apps had to use a jvm sidecar to do internal communications originally!)

My team wrote some of the Python libraries for internal services just so we could avoid that Java sidecar! It took 10 times longer to boot the sidecar than the Python app.
Post reply on HN