Live data from Hacker News

Ask HN: What's your unpopular tech, programming opinion

news.ycombinator.com

31–40 of 61 posts

Re: Ask HN: What's your unpopular tech, programming opinion

#31
Spicy take: Despite the amount of attention paid to code quality, it generally does not matter beyond some (extremely low) baseline. By contrast, data quality (consistency and sensibility of the data model, proper migration of old data to new schemas, alerting around anomalous data) is neglected but vitally important. Adding abstraction will usually improve your code quality metrics, but make it harder to tell where data is coming from, how it is being transformed, and where it is going. Copy/paste/modify will do terrible things to your code quality metrics, but frequently does not make your data flow harder to understand.

As such, abstraction for the purpose of avoiding copy/paste/modify is usually bad. You should just copy/paste/modify, and maybe extract out common functionality if the common functionality is obvious and well-contained.

Epistemic status: I don't fully endorse literally the above take, but it gestures in the direction of my actual opinions if you're starting from the viewpoint "Martin Fowler's Clean Code is approximately correct", which seems to be the majority viewpoint in my circles. As always, take into account the rule that you should probably reverse any advice you hear[1] -- if this take resonates with you, it is unusually likely to be bad advice for you in particular.

[1] https://slatestarcodex.com/2014/03/24/should-you-reverse-any...

Re: Ask HN: What's your unpopular tech, programming opinion

#33

Don’t rewrite it. Every time I hear someone wanting to rewrite something without a VERY solid reason is a flag for me. It is hard improving a system that’s already there, but can be super rewarding if you change your mindset. Everyone is eager to go with a blank canvas and greenfield a project but ultimately we’ll end up with the same shit situation in 5-6 years after the original authors have bounced and the newer d…

During the last 15 years or so, I only rewrote large parts of the code from scratch three times, but it was absolutely worth it. Two of these refactorizations are now 12 and 7 years old, respectively, and they have proven themselves very well. They barely need any maintenance, on a level of "a one-liner change every two years or so".

Re: Ask HN: What's your unpopular tech, programming opinion

#34
We hit a local maximum in language design with Common Lisp in the 80's. I mean putting in the hard work to make a language be as powerful as you can imagine.

Today the market moves too fast, priorities have changed, and there seems to less of a willingness to "do the right thing".

Re: Ask HN: What's your unpopular tech, programming opinion

#35
* It (usually) doesn't have to be perfect the first time. Programming is an interative process and your first attempt is going to have bugs, or make faulty assumptions about the problem.

* A design which can be generalised is inherently more complicated, and is often unnecessary (you probably won't make use of that generality, leaving you the burden of maintaining it), so you'll be glad you made a simpler first pass.

* I don't like working with docker/containers personally. It makes me feel so far removed from how services are deployed that it's basically magic.

Re: Ask HN: What's your unpopular tech, programming opinion

#36
post #7

My unpopular opinion is that computing is stuck in a local maximum based on technology from the 1970s. In particular, typing into an 80x25 terminal window with unformatted fixed-width characters should be obsolete; we don't need compatibility with punch cards any more. There was a thread a week ago about displaying graphs in your terminal using ASCII graphics. This shouldn't be necessary! Also, code shouldn't be a se…

Your "unpopular rant" (or one pretty much like it) has 376k views and 12k likes on youtube![1] (Recommended watch, not least for demystifying the origin of vi's navigation keys and the choice of ~/ for /home/you.)

1: https://www.youtube.com/watch?v=8Ab3ArE8W3s&t=1012s (link jumps to 16:52)

Re: Ask HN: What's your unpopular tech, programming opinion

#37
post #7

My unpopular opinion is that computing is stuck in a local maximum based on technology from the 1970s. In particular, typing into an 80x25 terminal window with unformatted fixed-width characters should be obsolete; we don't need compatibility with punch cards any more. There was a thread a week ago about displaying graphs in your terminal using ASCII graphics. This shouldn't be necessary! Also, code shouldn't be a se…

Text files are a meh proxy for ASTs, which is what we actually write when writing programs. I want a programming language in which I can edit ASTs.

Re: Ask HN: What's your unpopular tech, programming opinion

#38

Unpopular opinion: there hasn't been advancements in web app development for the last ~15-20 years. People are creating new tools/frameworks because they can, not because there is an actual need for yet another new shiny thing to build HTML+JS+CSS pages that do CRUD on database rows via HTTP verbs. To put it another way, some people thrive on solving problems that already have solutions with nuanced solutions because…

TRUTH

Re: Ask HN: What's your unpopular tech, programming opinion

#39

A lot of the complexity you see in code, tool or project are Job-Security sub projects. At first you have a bright eyes junior dev who wants to do the right thing, change the world they said. Little by little he realizes that documenting everything, writing easy to follow and bug free code is a great way to be out of a job. Complex code is what gets you promoted because you have fire to put out, bugs to fix, getting…

I imagine there are people who face a decision like this at some point in their career, and maybe it seems like the right one at the time, but it feels like optimizing for a local maximum as opposed to a global one. This may work to keep your current job, but should you need to find another job for any reason, how will you sell yourself to the next company, other than trying to bullshit your way in?

Well, we mostly interview by grilling people about obscure parts of computer science. One of the obvious ways to obfuscate your current code base is to rewrite it with obscure parts of computer science. So with a little ahead of time planning you should be able to practice leetcode and the like on your production codebase.

Re: Ask HN: What's your unpopular tech, programming opinion

#40

The fact that (evidently) you can't have some kind of seamless end-to-end connection between a relational database and "front-end user interface" data display/entry fields, with some kind of uniform/standardized DSL in-between to manipulate & validate, strikes me as totally FUBAR.

Every time that I tried to implement something like this (logic/validation in DB via constraints/fks, postgraphile/postgrest in the backend, react admin/react-json-schema-forms in the frontend) all I got was new enemies.

People adore constructing and writing @get("/users") and users.objects.findById(req.params.id).

I'm tempted to say that many people out there are not programmers, but boilerplate code janitors.

Post reply on HN