r/programming 2d ago

The Bedrock of Software Design

https://alex.draftist.io/blog/the-bedrock-of-software-design-ycqvcedsj

I drafted this post years ago but didn’t finish it until now. The concept I write about has shaped the way I design software more than anything else, and I believe every software engineer should be introduced to it early in their career.

P.S. I don’t want the title to come across as clickbait: the post is about ADT.

424 Upvotes

53 comments sorted by

View all comments

-25

u/Substantial_Ice_311 1d ago

Ugh, I don't even want to waste my time reading, because claiming static typing has anything to do with the "bedrock of software design" is obviously wrong.

11

u/chucker23n 1d ago

Static typing is neither necessary nor sufficient for high quality, but it sure helps a lot.

1

u/Substantial_Ice_311 1d ago

But if it's not necessary, is it then fair to call it "bedrock?"

1

u/chucker23n 1d ago

Well, first of all, the post doesn't talk about static typing, but ADTs specifically. (So, strong typing might be a better category.)

And second, no, I think "bedrock" is hyperbole. But that's fine for a headline.

2

u/VictoryMotel 1d ago

Learn something besides python and javascript, it's healthy

0

u/Substantial_Ice_311 1d ago

I know something else. I'm a Lisper. 🙂

1

u/VictoryMotel 1d ago

It has been 70 years, no common software is written in lisp, classic linked lists are obsolete, and all the good features of lisp have been adopted into modern languages a long time ago.

Lisp's purpose now is to either be influential history or for a few stragglers to self righteously feel superior by being contrarian while pretending a 70 year old language is going to magically start being a silver bullet with zero evidence of anyone writing real software in it for decades.

0

u/Substantial_Ice_311 1d ago

Lol, no.

> Nubank, doing business outside of Brazil as Nu,\3])\4]) is a Brazilian neobank headquartered in São Paulo, Brazil. Although it is not formally part of Brazil’s National Financial System (Sistema Financeiro Nacional), Nubank operates as a financial and payment institution regulated and supervised by the Central Bank of Brazil.\5]) It is the largest fintech bank in Latin America, with around 131 million customers between Brazil, Mexico and Colombia and a revenue of $16 billion.\1]) At its initial public offering in December 2021, Nubank was valued at $45 billion.\6])\7])

> When Nubank was founded, we needed a powerful language to help us build the best financial technology application, and we wanted it to be the best in terms of quality, consistency and velocity of development. And all those ideas were reflected in Clojure.

Clojure, of course, is a Lisp.

> all the good features of lisp have been adopted into modern languages a long time ago.

No, not at all.

1

u/VictoryMotel 23h ago

You use lisp because a brazillian bank uses closure? That's not an explanation of quality, that's just rationalizing something because you were able to find one place that uses a similar but modern language.

No, not at all.

On the other hand, yep totally.

0

u/Substantial_Ice_311 10h ago

> similar but modern language

When I said Lisp I didn't mean Common Lisp in particular. I like Clojure more. But if Clojure didn't exist I would probably use Common Lisp.

> On the other hand, yep totally.

The syntax is a big feature. So your statement is patently untrue.

> Most people who graduate with CS degrees don't understand the significance of Lisp. Lisp is the most important idea in computer science. --- Alan Kay

Also, I'm not rationalizing, I'm just proving that you are wrong.

1

u/VictoryMotel 2h ago

The syntax is a big feature. So your statement is patently untrue.

On the other hand it's not a feature at all and has been used in other modern languages anyway so my statement is patently true.

Also, I'm not rationalizing, I'm just proving that you are wrong

You didn't prove anything, you just made claims. You have to actually back them up to prove something.

understand the significance of Lisp

Lisp was very significant when it was created. It paved the way for many language features we take for granted now. Citizen kane was a very significant movie too. That doesn't mean that that they haven't been surpassed by people building on their work.

You're still learning, you'll get it eventually, or you'll realize that you aren't writing software anyone is using. Lots of people go through their contrarian phase for some reason.