Live data from Hacker News

Minimalism – An undervalued development skill

volument.com

31–40 of 179 posts

Re: Minimalism – An undervalued development skill

#31
"Be minimalist and don't use third party libraries and services. Except for ours. Use ours, because we don't have two decades of cruft under our belt excuse me, we're /minimal/.

The article kinda uses a language of a sentiment I share to an extent (I think most devs are far too eager to pull dependencies — avoiding NIH doesn't mean you have to pull the entire 3rd party dependency, not if you can read a paper and implement it in a dozen lines), but while a completely in-house analytics package could be smaller, there's a reason why commercial packages are big.

Re: Minimalism – An undervalued development skill

#32

I have super mixed feelings on this. Minimalism makes for a clean, easy to understand codebase, that avoids some of the performance pitfalls associated with bigness. But sometimes it’s easy to build 80% of what you need, and then massively difficult to get to 100%, and the ease of getting to 80% can lead you astray. For instance, I can write a pretty fast matrix multiplication algorithm in maybe a few dozen lines of…

The message I took from this article was minimalism in features and not necessarily code. And certainly not about library usage. If you're building a product, focus on building a few key features extremely well.

I suspect that part of the reason for feature bloat is that a when product is assigned dedicated, long-running teams, it tends not to reach an 'end state'. The team would rarely say "okay, now the product is mature, let's place it on maintenance and go on to build something else". Instead, they may (unconsciously) continue to justify their existence by continuing to 'improve' the product.

Re: Minimalism – An undervalued development skill

#33

Web site does not call external domains. Good. Still in the 15th percentile on https://www.websitecarbon.com/website/volument-com-blog-mini... . Can it be improved? Something in the html/CSS prevents displaying the page until it's complete (observed on Firefox on Android). You should investigate, this will provide better impact to visitors. Is the whole web page some kind of advertisement? Overall, I agree. Perhaps y…

Wow. Thanks for pointing out Websitecarbon. We will definitely use it to opitimize our site further. Currently our bottleneck is actually fonts. We tend to emphasize the importance of typography and make it perfect for our own taste at least. I suppose we can tweak the woff2 files and perhaps use a little less of different font-weights.

Re: Minimalism – An undervalued development skill

#34

I like using minimalism as an starting place, but I think it's idealistic in most cases. We use senrty and we rely on many of the features you miss out on by just posting minimal exception information.

I see your point. Sentry is clearly the least bloated service from the three examples mentioned.

Re: Minimalism – An undervalued development skill

#35

.. This would make sense if it worked. There's a fine line between "not-developed-here syndrome" and minimalism-as-you-mention-it. If you can account for all the problems with the basic functionality the original big library tried to solve, this might work. But, if you're rediscovering all the problems again, and trying to solve them again, it's probably not the best use of your time. Further, if something is big eno…

An example of your point is ORMs. I’d much rather work with the bloat of Hibernate than any of the in-house ORMs I’ve seen.

Re: Minimalism – An undervalued development skill

#36
post #21

I agree with the article. There is too much crap today in software. Much of it external crap. When I was young, I used to scoff when old programmers told me not to include external/3rd-party libraries. What did they know, these libs are so convenient! Today, I clearly see the downside of doing that and the slippery slope that it introduces. Rather than do the hard work myself upfront and pay that cost, I let someone…

> old programmers told me not to include external/3rd-party libraries

That's me. I also avoid plug ins in things like our bug tracker and build system. I'm the person that maintains our Redmine and Jenkins machines and over the years I've gotten lots of requests for plug-ins that do pretty neat things. I almost always refuse just because it makes updating such a pain in the ass.

Generally, I do as little custom configuration as I possibly can these days. Twenty-five years ago customizing Enlightenment was how I spent about 30% of my time at the computer.

Re: Minimalism – An undervalued development skill

#37
post #4

At a recent job, people were advocating for ginkgo, a non-standard "reinvents the wheel" type of testing framework in golang. If you don't know golang, it has near perfect tooling out of the box, including a standard test framework. I joined on the brink of this decision i.e. moving to ginkgo. I was the first and only person to ask what does ginkgo do that "go test" does not for us ? Nobody could really answer that.…

I had to go look up Ginkgo... and I'm not sure it's an Apples to Apples comparison. The built-in Go framework for unit testing is great but I don't think I would want to try to write clean BDD tests with it. Part of the value-prop for Ginkgo is that it gives you a standard BDD DSL which if you're doing BDD is half the battle... describing and testing the behavior with a human-friendly programmatic interface. On the o…

Which, IMHO, would behoove the team to learn BDD conceptually, in order to assess its appropriateness as a tool in any situation.

Re: Minimalism – An undervalued development skill

#38

It's very hard to write perfect minimal code from scratch. It takes a lot of foresight and consideration that mortals like myself simply don't possess. I think finding the optimal solution to any problem usually requires delving through a lot of crap, trial and error etc. Maybe this is why I find the trend towards minimalism a little bit condescending, if that's the right word.

Or time to re-evaluate, refactor and rewrite.

Once you've done that, you might gain that foresight. It's also known as experience.

Too bad there are so many places where you're just constantly rushing to add new features on top of old stuff without ever having time to take another look at the design, fix it, and learn from it.

Re: Minimalism – An undervalued development skill

#39

I have super mixed feelings on this. Minimalism makes for a clean, easy to understand codebase, that avoids some of the performance pitfalls associated with bigness. But sometimes it’s easy to build 80% of what you need, and then massively difficult to get to 100%, and the ease of getting to 80% can lead you astray. For instance, I can write a pretty fast matrix multiplication algorithm in maybe a few dozen lines of…

I've also gone the other direction from minimalism in codebases, and consider it a positive change as a developer. As a junior, I always wanted to roll my own: roll my own advanced multi-select autocomplete input, roll my own Modbus communication library, roll my own internal tool for the company to use rather than an existing product, etc. So what happened? Now we have a relatively buggy implementation that we have to support.

Now? I see things differently. I look at the problem and evaluate existing solutions. 90% of the time, there's a battle-tested open-source (or cheap) solution which fits our requirements that I can quickly integrate without burning piles of company cash building and supporting my custom crap. Yes, it's not minimalist. But it's overwhelmingly a better decision most of the time.

(Mind, I suspect one's experience is highly dependent on the developer ecosystem one is in. Just my 2c.)

Re: Minimalism – An undervalued development skill

#40
post #21

I agree with the article. There is too much crap today in software. Much of it external crap. When I was young, I used to scoff when old programmers told me not to include external/3rd-party libraries. What did they know, these libs are so convenient! Today, I clearly see the downside of doing that and the slippery slope that it introduces. Rather than do the hard work myself upfront and pay that cost, I let someone…

I shudder everytime I run npm install on my lab main software project, which downloads hundreds if not thousands of external dependencies and lists more than 400 vulnerabilities.

On the reverse when I own a project, dependencies are kept to the minimum, often code I own too.

Post reply on HN