anderseknert,
@anderseknert@hachyderm.io avatar

> The Go monorepo is the largest codebase at Uber, comprising 90 million lines of code (and growing)

Come again? The #Kubernetes project is 4 MLOC, the #Linux Kernel is 17.5 MLOC. How on earth is a fucking taxi app 22.5 times the size of Kubernetes?

https://www.uber.com/en-SE/blog/nilaway-practical-nil-panic-detection-for-go/

#Uber #Madness #golang

jannem,
@jannem@fosstodon.org avatar

@anderseknert
As a guess it includes all versions - both iOS and Android - as well as earlier apps (didn't they do a complete redesign at one point) and all the dependencies being vendored in. So various versions of react, platform specific comm libraries and so on.

anderseknert,
@anderseknert@hachyderm.io avatar

@jannem Note that this is specifically their Go monorepo, so it's unlikely to contain code for any mobile apps, but their backends only. But yeah, you're right that they could be vendoring every single dependency and include that in the count. Even so..

Paxxi,
@Paxxi@hachyderm.io avatar

@anderseknert @icing "is the largest codebase" meaning they have others repos as well with unknown amounts of code

anderseknert,
@anderseknert@hachyderm.io avatar

@Paxxi @icing yes. Absolute madness.

xchange,
@xchange@chaos.social avatar

@anderseknert hold your horses, its not a single taxi app!

its 4500 different little small taxi apps

https://www.uber.com/en-DE/blog/up-portable-microservices-ready-for-the-cloud/

anderseknert,
@anderseknert@hachyderm.io avatar

@xchange evenly distributed, that’d be 20 KLOC per service — not sure that would count as “little small” at any place I’ve ever worked, but that aside, why would a taxi app need 4500 services? I don’t even.

dermoth,
@dermoth@noc.social avatar

@anderseknert It's a monorepo, i.e. a single git repo with all projects. MS did this for Windows too AFAIK and even wrote a filesystem driver to allow partial access (probably before git implemented partial checkouts).

It's like if you took Linux and all GNU projects and merged them in a single repo, you'd get that sort of monster too!

IMHO, don't do this. Just don't.

anderseknert,
@anderseknert@hachyderm.io avatar

@dermoth yeah, I’m familiar with monorepos. They specifically said this isn’t even all projects though — only the Golang ones. I still cannot fathom why a taxi company would need code 22 times the size of Kube? Definitely agree on the “don’t do this” 😄

anderseknert,
@anderseknert@hachyderm.io avatar

Some guys would rather write 90 MLOC than to call a fucking taxi

jawnsy,
@jawnsy@mastodon.social avatar

@anderseknert And I'd rather pay more when using apps like Uber to avoid calling, too

anderseknert,
@anderseknert@hachyderm.io avatar

@jawnsy yeah, although at least here, pretty much any taxi company has an app now. They just have no pretense of being tech companies, and they definitely don’t boast about having 90 million lines of Golang 😄

erik,

@anderseknert maybe they're counting their own code + all deps? 🙃

anderseknert,
@anderseknert@hachyderm.io avatar

@erik yeah, I mean that’s not how anyone else counts, but it would explain how the number got to be so high.

kevinteljeur,
@kevinteljeur@mastodon.online avatar

@anderseknert But with 90 MLOC, we can build a whole new fucking taxi

s0enke,
@s0enke@awscommunity.social avatar

@anderseknert maybe they vendored Kubernetes and Linux Kernel so they can have their own fork.

anderseknert,
@anderseknert@hachyderm.io avatar

@s0enke Linux wouldn’t be in a Go monorepo, but even if they’d vendored both, that’s still 70 MLOC… to call a cab 😆

luciano,

@anderseknert 22.5x devs of course 🙂

anderseknert,
@anderseknert@hachyderm.io avatar

@luciano Or one 90'000'000x dev!

esg,
@esg@hachyderm.io avatar

@anderseknert microservices!
Why do something with a few lines when you can build an entire infrastructure for it

anderseknert,
@anderseknert@hachyderm.io avatar

@esg While it's true there's some overhead in microservices compared to a monolith, it's nowhere near anything resembling 90 MLOC. I can't honestly fathom what the hell that code could be doing.

esg,
@esg@hachyderm.io avatar

@anderseknert I was being a bit fastitious there
But in a way, the k8s code is probably more concise and focused, while uber probably has a bunch of dead code, experiments, and product attempts

anderseknert,
@anderseknert@hachyderm.io avatar

@esg Sure! But 90 MLOC. 22.5 times the size of Kubernetes — that'd be thousands of man-years of dead code, experiments or whatever the hell it is. I'm dying to know! But even if they showed me, I'm not sure what I'd get out of it, or where to start. I'd be curious to know what kind of tools are used to deal with this, and how they accomplish that.

thejtoken,
@thejtoken@hachyderm.io avatar

deleted_by_author

  • Loading...
  • anderseknert,
    @anderseknert@hachyderm.io avatar

    @thejtoken It's terrible marketing if true 😆 Who the fuck would want to work on a monorepo of 90 MLOC for the purpose of getting people from one place to another by car?

    malveus,
    @malveus@mastodonsweden.se avatar

    @anderseknert wtf? Är detta NilAway ett skämt eller

    anderseknert,
    @anderseknert@hachyderm.io avatar

    @malveus Nej! Testade det verktyget och det kan nog vara användbart, om än väldigt pratigt... men stannade till och fick läsa om den där meningen om och om igen. 90 miljoner rader kod? What the..

    malveus,
    @malveus@mastodonsweden.se avatar

    @anderseknert känns som man har allvarliga problem om man behöver ett sånt verktyg.... eller? Har iofs inte jobbat mkt m golang

    Men ja det låter som mkt kod. Vilket oxå känns som att det är nåt allvarligt problem m hela arkitekturen.

    Nu blev jag nyfiken på hur mycket kod vi har på jpbbet, måste kolla d på måndag

    anderseknert,
    @anderseknert@hachyderm.io avatar

    @malveus Jag har alltid allvarliga problem 😄 Men skämt åsido, det är väl typ en linter bland många andra. Dock visar den ju varenda teoretisk panik från nil-referenser, vilket var det jag menade med pratig. Dom flesta av de jag såg kan inte hända i praktiken.

    Största repot jag jobbar i nu är 3,6 MLOC och det projektet känns massivt och svårjobbat.

    malveus,
    @malveus@mastodonsweden.se avatar

    @anderseknert
    kollade nu! Osäker på hur man ens kollar, körde
    $ git ls-files | xargs cat | wc -l
    ca 100' på det repot. Sen har vi ganska små tjänster, ca 20 st i teamet. Så kanske totalt ca 2 MLOC i teamet

    anderseknert,
    @anderseknert@hachyderm.io avatar

    @malveus låter rimligt! Jag använder https://github.com/hhatto/gocloc

    anderseknert,
    @anderseknert@hachyderm.io avatar

    @malveus för man vill ju inte normalt räkna kommentarer och whitespace. Sen kul att se det uppdelat per språk med förstås!

    parcifal,
    @parcifal@hachyderm.io avatar

    @anderseknert if err != nil {} 👀😂

  • All
  • Subscribed
  • Moderated
  • Favorites
  • Kubernetes
  • DreamBathrooms
  • everett
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • rosin
  • Durango
  • ethstaker
  • Youngstown
  • slotface
  • khanakhh
  • kavyap
  • ngwrru68w68
  • osvaldo12
  • JUstTest
  • tacticalgear
  • cubers
  • cisconetworking
  • anitta
  • provamag3
  • modclub
  • mdbf
  • GTA5RPClips
  • tester
  • megavids
  • normalnudes
  • Leos
  • lostlight
  • All magazines