HN user

jnash

90 karma
Posts4
Comments118
View on HN

Agree. I haven't seen any examples of ChatGPT that might make me want to use it for my job. Yes if you are an inexperienced programmer (or just not very competent) then it might help you get something working I guess?

Jonathan Blow is full of it. Seriously. The amount of time he spends self promoting and telling everybody how to do things is jaw dropping. He is a good puzzle game designer. That doesn't mean that he is good at anything else.

You have to be really arrogant to assume that you know within 5 minutes of looking at somebody else's code that you know how to do it "better".

I am sure you know how to do it differently, and more like how you prefer to do it, but that is not the same thing at all.

Legacy software is successful software. You are never asked to maintain failed software. Only software that is successfully generating $ years after it was originally developed.

So be humble. Show a bit of respect. And don't automatically assume that you are some super genius who knows how to do everything better.

And remember that other equally unenlightened developers will look at your code and go WTF and complain about how crap your code is. Don't be like them.

You can reverse type 2 diabetes. Doctors in Australia, the UK and the US have done that for decades by recommending low carb diets.

Nothing magically makes microservices good or bad. Nothing magically makes monoliths good or bad. It all depends on how good the developers are. However it is objectively a fact that microservides are inherently more complex than monoliths. You basically take a monolith and add encode/decoding, network latency delays, no global commits, potential timing issues, partly-failed system scenarios, new types of distributed error conditions etc. to the mix. So there is zero upside to using microservices IMHO.

Microservices can most definitely be tightly coupled. The same way that most OOP code I have seen is a spiderweb of tight dependencies. I bet that code you think is loosely coupled probably isn't. Most developers have no clue what "loosely coupled" actually means.

Everything you claim is unproven and pure speculation. However what is proven to be true is that thousands of developers all over the world can effectively work on massive monoliths (like Linux and Windows) without using microservices.

Thousands of developers use libraries and not microservices to implement Linux and Windows. If they can do it so can you. So no that is not correct.

Nope. Each team is responsible for a library. The monolith is composed by combining those libraries into a single application. It gives you all the benefits without the disadvantages (no encode/decode/network latency, easy rollback, easy transactions management etc. etc. etc.)

Jane Street using monoliths to manage $bn of trades a day and millions of transactions per second. So nothing you say makes microservices necessary.

Nothing you say can't be accomplished by using libraries instead. The largest software on earth (Linux/Windows/...) is created by composing thousands of libraries into a single system. With thousands of developers contributing from all over the world. It works. It's proven.

There is this much simpler advanced technology that can be used instead that has been around for 50+ years: it's called libraries/modules. It works. Linux is a collection of thousands of libraries. Windows is a collection of thousands of libraries as well. Linux and Windows are way bigger than pretty much any other software out there. So I am sure this advanced technology is good enough to handle whatever you and most other devs are working on.

I have 15+ years of management experience and I have never ever had a problem managing developers at all skill level. You can't solve management issues with technology. You solve it with people skills. I sincerely hope you are not and have never been a manager. There are already enough arrogant and incompetent managers out there.

Yep because it is true. Microservices is just the latest "Silver Bullet" that inexperienced developers think will save themselves from doing bad work. The reality is that microservices is inherently more complex than monoliths. So the more you can discourage developers from making that mistake the better.

Companies like Jane Street use Monoliths to handle millions of transactions per second. How many transactions per second do you have?

That sounds like a "True Scotsman" argument. The fact is that microservices are inherently and objectively more complex than Monoliths. So if you can't build a well engineered Monolith then you are pretty much guaranteed to build an even worse Microservices system (because you now have the added encoding/decoding, network hops, latency and timing issues, no guaranteed data consistency, no global commit guarantees etc. etc. etc.)

100% agree. You can write bad code using both Monoliths and Microservices. However Microservices are inherently more complex and slower than Monoliths (because of the added encoding/decoding and network overhead).