News for hackers. Stuff that matters.
Re:Not invented here, revisited by yen223 on Friday July 27, 2018 @08:25PM (#17630676)
Is there a name for the opposite of NIH syndrome, where programmers only use external libraries and frameworks, and are totally allergic to the notion of writing in-house code?
Re:Not invented here, revisited by Tade0 on Friday July 27, 2018 @09:33PM (#17630958)
If you say "leftpadding" then I'm sure that at least the front-end community will understand.

Or perhaps not, because there's a chance people already forgot about the left-pad incident.

Re:Not invented here, revisited by jimjimjim on Saturday July 28, 2018 @03:17AM (#17632033)
leftpadding. i like it. it sums up the trash heap that is node_modules.
Re:Not invented here, revisited by olooney on Friday July 27, 2018 @10:05PM (#17631079)
“Slave is an Ephebian word. In Om we have no word for slave,” said Vorbis. “So I understand,” said the Tyrant. “I imagine that fish have no word for water.”

Terry Pratchett

Re:Not invented here, revisited by tylerhou on Saturday July 28, 2018 @01:02AM (#17631637)
I understand the point you’re getting at, but humans have a word for air? If fish really did have language, they would at least have a word for air, which would mean that they would also probably have a word for not-air: i.e water.
Re:Not invented here, revisited by andrepd on Friday July 27, 2018 @10:11PM (#17631094)
From Wikipedia

>The opposite predisposition is sometimes called "proudly found elsewhere" (PFE) or "invented elsewhere".

Re:Not invented here, revisited by c3534l on Friday July 27, 2018 @10:51PM (#17631238)
I've heard HackerNews call it Never Invented Here.
Re:Not invented here, revisited by dbkaplun on Friday July 27, 2018 @08:58PM (#17630819)
For me, reusing widely used code that's heavily tested is preferable to the liability of handwritten code. If I'm given the opportunity, when possible, I'm going to choose the former.
Re:Not invented here, revisited by yen223 on Friday July 27, 2018 @09:58PM (#17631053)
That's a good default to start with, but that's not the whole story.

Every system has its own sets of constraints, and its own sets of goals. Those constraints and goals don't necessarily align with the assumptions made in the library you're using, because it's rare to have a library that does precisely what you need.

When you can't find a library that meets your needs, you have two choices: 1) roll your own solution, or 2) find a library that does something similar to what you want, and coerce the library into a form that suits your needs.

Neither are pleasant options, but I find #1 tends to give a better outcome in the long run. You know what your system constraints are, so you're in a better position to design around them.

Re:Not invented here, revisited by jamra on Saturday July 28, 2018 @12:13AM (#17631485)
I feel like the problem comes down to people not willing to read the docs. Reading the freaking manual helps understand if your tools are precise enough or configurable to solve your problems. Then reading the source code (if possible).

Then, assuming it’s still not worth extending, inventing it yourself isn’t such a bad idea.

Re:Not invented here, revisited by Risord on Saturday July 28, 2018 @08:59AM (#17632959)
On the other hand time required to read and _understand_ the source can be often very compareable to writing specific solution to your problem. Which all comes down to one biggest bottle neck of our industry: sharing understanding of solutions.
Re:Not invented here, revisited by ng12 on Friday July 27, 2018 @11:24PM (#17631340)
In theory, you're absolutely right. In practice, this is the argument used to defend egregious NIH syndrome.
Re:Not invented here, revisited by sanderjd on Saturday July 28, 2018 @12:07AM (#17631463)
And this is the argument used to defend the opposite. Personally, I've found egregious NIH more pleasant to work with than dogmatic anti-NIH.
Re:Not invented here, revisited by cle on Friday July 27, 2018 @09:35PM (#17630970)
It needs to be a deliberate decision based on use cases. Depending on your business, it may be more valuable not to relinquish control of important functionality to third parties.
Re:Not invented here, revisited by alexandercrohde on Friday July 27, 2018 @09:13PM (#17630865)
I suppose nobody really invents anything in-house in one sense. You reuse the hardware, the OS, the drivers, the network, cloud storage, IDE, source-control, JIRA, a programming language, several libraries, databases, at least one framework, and on top of all that you may have some sprinkles that are "your application."

I think the question is always, how smart an engineer can you be to reuse the maximal amount possible to deliver a good experience quickly.

Re:Not invented here, revisited by gok on Friday July 27, 2018 @09:42PM (#17630996)
I call that dependency-oriented-program-engineering (DOPE)
Re:Not invented here, revisited by fanf2 on Saturday July 28, 2018 @07:23PM (#17635579)
If it’s commercial software, then BTF = bought the farm
Re:Not invented here, revisited by megaman22 on Friday July 27, 2018 @10:30PM (#17631170)
Never Invented Here. Or maybe duct-tape programming.