Hacker News new | past | comments | ask | show | jobs | submit login

I never even look at stars. I hardly have any on my work, and that's fine with me. My stuff is of extremely high Quality, because I use it, myself. I'd actually prefer as few others as possible, use it, because then I'm Responsible to ensure that it works for them, and I can't just go in and do whatever I want.

I also use almost no software that has been written by others. I use two or three external dependencies, in my work. Two PHP ones, and one Swift one. All are ones that I could write, myself, if they got hit by a bus, but they do a great job on it, and, as long as they remain bus-free, I'm happy to use their stuff.

The one exception is an app that I just released, using SwiftUI. I needed an admin tool that displays simple bar charts of app usage data. I was going to write my own UIKit bar chart widget, but SwiftUI has a fairly effective library, so I figured I'd use it, and see how SwiftUI is doing, irt shipping apps.

I think that I'll avoid using SwiftUI for a while longer. It's still not ready, but it has come a long way, since my first abortive attempts at using it. The app works, but I did some customization, like pinch-to-zoom, and that's where SwiftUI kicks you in the 'nads. As long as you stay in your lane, things are sick easy, but start driving on the shoulder, and you are in for some misery.

And that's the biggest problem with relying on someone else's code. They usually punish you for any "off-label" use. Apple has always been like that, but they usually let you get away with it. I go "off-label" all the time, because I don't want my apps to look like Apple Settings App panels. SwiftUI doesn't suffer deviance at all. Just adding pinch-to-zoom was a bit of a misery (but I got it going, after several days of banging my head, and it now works fine). Some frameworks and libraries won't let you deviate at all. You can't have any pudding, if you don't eat yer meat.




I'm finding similar results. I used to just write everything myself when a need arose, but in trying to better spend my time I find myself checking what's out there. And inevitably I'll find something that will claim to do exactly what I need.

From there, I find two problems rather often. One, it doesn't actually do what it claims. Googling is fruitless because I must have been the first one to actually try it. Gotta love Googling an error and finding exactly one result - the source code. I sometimes open a bug report depending on how the project seems, and that gets anything from deaf ears to "oh thanks, we'll fix it in the April release" which is of little use to me now.

The other is something you touched on briefly, that the API or contract changes in unexpected ways over time. You can stave this off for a little while by pinning, but then you're missing out on bug fixes and new features. Which, especially for a middleware type thing, is usually a death sentence by bitrot.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: