Live data from Hacker News

Finish your stuff

250bpm.com

61–70 of 104 posts

Re: Finish your stuff

#61
I respectfully disagree.

While it's very good to encapsulate functionality, and have stable and well-defined interfaces, there is also a great value to having a unified platform and community that builds interoperable things.

Would you rather assemble your project from 250 different libraries, some of which may be incompatible with other ones? Sure, each may solve a tiny problem, and they may all be orthogonal (best case) but there is a major need for a unifying paradigm above all those components so they can all work together.

Here is a counterpont to solving tiny problems: http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how...

Basically, I prefer to have a growing community working on a growing snowball of components that are all interoperable and can be assembled like lego bricks. I think Wikipedia has such a community. RDF has several such a communities. The Web has such a community. This really creates a lot of value by having an exponentially growing platform where many thing works with many other things.

Re: Finish your stuff

#62
The reason this is an implicit principle of the Unix philosophy is because the Unix philosophy is to be as lazy as possible as the tool-creator and push all complexity onto the tool-user. Thus we get things like Go, regular expressions, and null pointers.

People outside this school of thought don't finish their projects because their projects actually try to solve the underlying problems in computing, which are inevitably hard.

Re: Finish your stuff

#63
post #46

> Imagine the carpenters were like programmers. You bought a chair. You bought it because you've inspected it and found out that it fulfills all your needs. Then, every other day, the carpenter turns up at your place and makes a modification to the chair. 505 Bad Analogy. Carpenters work all the time on new designs and better chairs. When a programmer releases a new version of his program, it's like when the carpente…

> nobody forces software upgrades down your throat Windows 10 does, as does every SaaS web app out there.

But isn't that a bit like sitting on someone else's chair? You can't control things you don't own.

Re: Finish your stuff

#64

What would that look like? Consider an example: You have made a little web app that beeps at certain times of the day to remind me to do something. Is it complete? Oh, you want a calendar integration. That makes sense. You add it. Is it complete? Oh, you say you want to release mobile versions? Okay, now is it complete? Sorry, but the iOS version needs to be updated to remain compatible. Now is it complete? There is…

I think the Unix philosophy would have you pipe those beeps to another program that does your calendar integration.

You'd still need to write the glue code that correctly maps one program's output to the other program's expected input. I don't see how this is materially different.

If by "Unix philosophy" you mean creating modular software, then sure, we're already doing this. If you mean pushing unstructured ASCII data through actual pipe(2)s, then I'm sorry, but this is not a workable solution in 2017.

Re: Finish your stuff

#65
The difficult thing is to divide a big problem into a set of smaller ones that together solve the problem BUT such that those smaller solutions are valuable on their own, not only as part of the bigger solution that is your eventual goal.

So the problem is not so much to solve a problem but to FIND a problem whose solution is useful on its own and perhaps also as a sub-solution to bigger problems.

Re: Finish your stuff

#66
post #63

Earlier quoted context omitted.

> nobody forces software upgrades down your throat Windows 10 does, as does every SaaS web app out there.

But isn't that a bit like sitting on someone else's chair? You can't control things you don't own.

This seems like the kind of question liable to open a whole can of worms about free software and what it means to "own" a program

Re: Finish your stuff

#67

What would that look like? Consider an example: You have made a little web app that beeps at certain times of the day to remind me to do something. Is it complete? Oh, you want a calendar integration. That makes sense. You add it. Is it complete? Oh, you say you want to release mobile versions? Okay, now is it complete? Sorry, but the iOS version needs to be updated to remain compatible. Now is it complete? There is…

You are confusing release with maintenance.

When you ship it it should be the example of "the little web app" and when you have others use it. That is "finishing". When you have something that has a modicum of value.

If you add more features in response to users or sales or whatever metric that is the rest of your comment. Or maybe you don't need any more features in the future maybe its only bug fixes like TeX or the Python Requests library.

Re: Finish your stuff

#69

There is a whole class of rhetorically attractive analogies comparing programming to the building of physical things like furniture, bridges, and buildings. They usually overlook that software requirements vary greatly and can be quite complex, while the physical requirements of a chair are not going to vary much across chair designs. Modification of software requires no physical resources and can be executed at scal…

> They usually overlook that software requirements vary greatly and can be quite complex, while the physical requirements of a chair are not going to vary much across chair designs. I feel as though that's somewhat addressed in the essay: Yes, I hear you claiming that your project is special and cannot be made functionally complete because, you know, circumstances X, Y and Z. And here's the trick: If it can't be made…

> If it can't be made functionally complete it's too big.

Too big for whom? Most people on HN aren't building systems software or embedded software with a strictly-defined purpose; they're building an app business or a service business, where the "purpose" is "to make money" and adding additional features or "checkboxes" are how you attract more customers to make that money.

A program can be done. A product usually can't be, as long as its authors want to continue to rely on it to put food on the table.

Re: Finish your stuff

#70
post #63

Earlier quoted context omitted.

> nobody forces software upgrades down your throat Windows 10 does, as does every SaaS web app out there.

But isn't that a bit like sitting on someone else's chair? You can't control things you don't own.

Yeah, I'd compare that more to living in a hotel, and coming into your room every day to find that the hotel has replaced the chairs. The hotel, here, is the web service, or your OS's package manager

If you have a problem with constantly changing chairs, you're free to find a new hotel that doesn't do that—probably one with "LTS" in the name.

Post reply on HN