this post was submitted on 11 Jan 2024
116 points (96.8% liked)
Technology
57944 readers
2896 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Every big company suffers from "not invented here" syndrome. It's not always just because of arrogance. For example, as an engineer at Google, it can be less hassle to use a first-party library than a third-party one.
Also your list of examples is pretty bad. Guava is one I remember filling a real need when I worked at a small Java shop, and as I recall there was no widely used alternative to Protobuf when it came out. Gradle isn't even from Google at all!
I actually researched my list, most the technologies were used internally for years and either publically released after better public alternatives had been adopted or it seems buzz reached me years after Google's first release. So I am wrong.
Between 2012-2015 I used to consult on Apache Ivy projects (ideally moving them to Maven and purging the insanity people had written). As a result I would get called in when projects had dependency issues.
The biggest culprits were Guava/GSon, projects would often choose to use them (because Google) and then would discover a bug that had been fixed in a later patch release (e.g. they used 2.2.1 and 2.2.2 had the fix). However the reason they used 2.2.1 was because a library they needed did. Bumping up the version usually caused things to break.
The standard solution was to ask'why' they needed Guava/GSon and everytime you would find they are usually some function found in one of the Apache Commons libraries. So I would pull down the commons library rewrite the bit (often they worked identically)
Fun side note in 2016-2017 I got called to consult on a lot of Gradle projects to fix the same kind of convoluted bespoke things people did with Apache Ivy. Ivy knew the Gradle 'feautres' were a massive headache in 2012 and told you to use Maven for those reasons. Ce La vie.
We tried using Protobuf in 2008 and it was worse than the Apache Axis for JSON conversion (which feels too harsh to say), similarly I had been using AMQP or Kafka for years and tried gRPC when it was released (google say 2016 but I am sure we tried in 2014) and it was worse in every metric I still don't understand why it exists.
I was using Vaadin in 2011 and honestly thought GWT was released in 2012. I had to use it in 2014 and the workflow, compile time and look of GWT is just worse than Vaadin.