Live data from Hacker News

Write libraries instead of services, where possible

catern.com

161–170 of 328 posts

Re: Write libraries instead of services, where possible

#161
post #44

> A service has constant administration costs which are paid by the service provider. A properly designed library instead moves these costs to the users of the library. I agree with the articles point, but this introduction, right there, is why it's not happening. SaaS turns your startup into a unicorn and yourself into a rich person. Or at least that's what you are hoping/aiming for. A library is not going to make y…

Only on the FOSS world, because it is the only way to force devs to pay. There is another alternative universe where commercial software, including libraries, gets sold.

They certainly exist, but I don't think they are remotely as common. I can think of dozens of paid services that I use at work but one paid library. Maybe 5 if you include things like database SDKs where we paid for the database.

Re: Write libraries instead of services, where possible

#162
post #136

Earlier quoted context omitted.

I think you are talking about different things. I have absolutely decompiled obfuscated third-party Java libraries, fiddled with a few variables or method signatures, and recompiled + used them. JVM security has nothing to do with this.

You're correct that obfuscation of Java libraries has nothing to do with Java stack inspection/JVM security... but the latter is what the article talks about and what is cited above, so not sure why you have just now brought up decompiling obfuscated Java libraries, which is, as you say, totally unrelated...

What it says is

"Java-style stack inspection can restrict user or library code to deny access at runtime to unauthorized methods.",

which doesn't seem true to me, if the user has access to the library binaries. It's very possible for the user to just patch the library and use it however they want. It's possible (although I'm not especially convinced) that you can prevent the user from reflectively doing this at runtime, but that's not the only way to access unauthorized methods.

Re: Write libraries instead of services, where possible

#163
post #44

> A service has constant administration costs which are paid by the service provider. A properly designed library instead moves these costs to the users of the library. I agree with the articles point, but this introduction, right there, is why it's not happening. SaaS turns your startup into a unicorn and yourself into a rich person. Or at least that's what you are hoping/aiming for. A library is not going to make y…

Only on the FOSS world, because it is the only way to force devs to pay. There is another alternative universe where commercial software, including libraries, gets sold.

Why do you think it's limited to the FOSS world? Surely most SaaS companies (and certainly the most profitable) are business-to-business companies, and presumably they're quite a lot more valuable than the average library vendor. I would also hazard a guess that onprem services occupy an intermediate tier both in terms of profitability and in terms of integration model: they're a whole service (as opposed to a lib) but the customer is on the hook for integrating and operating (as opposed to SaaS).

Re: Write libraries instead of services, where possible

#164

Phoenix is practically built with this idea in mind. My startup is built out of a single phoenix monolith. Only external dependency is postgres. Despite this, I've managed to completely avoid all the typical scaling issues of a monolith. Need a service or background worker? I juts make a Genserver or Oban worker and mount it in the supervision tree. The Beam takes care of maintaining the process, pubsub to said servi…

We have a similar philosophy with our Python code base. Redis and Postgres are our only real dependencies. We use celery but it’s basically just Python. Maybe takes a little more work setting it all up, but once done provides similar benefits.

Re: Write libraries instead of services, where possible

#165

Earlier quoted context omitted.

You're right. The fact that people can make outsize rewards from subscription services are the reason that even small single use tools are now 'services'. I have a piece of software that removes the background from my video feed. It's a subscription, and it regularly phones home. I have a piece of software that lets me visually combine, rotate and reorder pdfs. It's a subscription. Even the simplest things, like a 't…

I don't think either of those subscription services are unicorns or making billionaires. If anything I'm happy to see indie developers able to maintain a decent income making useful (but often niche) tools that other people can use. Of all the SaaS services I pay for, it's one like these that I'm the least apprehensive spending money on. Video codecs are hard. PDFs are a labyrinth of a file format with traps everywhe…

Video codecs are hard, but the reason video utils become services is because the best (by a mile) video codec libraries are (L)GPLed. I suspect the same is true for the best PDF libraries that would be integrated into desktop applications (meaning compiled like SumatraPDF's library, since there are plenty of JS/Python permissive licensed libraries).

All the developers I know immediately jump down a level to ffmpeg command line utils or up a level to proper video editing software (often pirated, no less), so there's no incentive to develop a high quality simple video editor.

Re: Write libraries instead of services, where possible

#166

Earlier quoted context omitted.

Unfortunately, normal software cannot afford the marketing budget a service can (particularly a VC-backed service).

There's gotta be a way to crowd source this. Like a subreddit for people interested in apps/software that isn't subscription based.

Like r/selfhosted?

Re: Write libraries instead of services, where possible

#167
post #44

Earlier quoted context omitted.

Only on the FOSS world, because it is the only way to force devs to pay. There is another alternative universe where commercial software, including libraries, gets sold.

They certainly exist, but I don't think they are remotely as common. I can think of dozens of paid services that I use at work but one paid library. Maybe 5 if you include things like database SDKs where we paid for the database.

A lot of stuff in the automotive world has paid libraries. They can't be services because they need to be real-time, but they're not free because implementing a complex IEEE standard as software is not trivial.

Re: Write libraries instead of services, where possible

#168
post #131

Earlier quoted context omitted.

> It's miserable fighting off a million people who want to help me for 'less than the daily price of your coffee'. Is it also miserable "fighting off" a million companies who want to sell you stuff for the daily price of a coffee? Stuff like T-Shirts, books, newspapers, candy, etc? You seem to have a patronizing attitude towards software products/services. You seem to think that they are so simple, that they should b…

It’s not hard to find a T-shirt I can wear over and over again without having to keep paying for it. Nowadays it’s nearly impossible to find software that lets you pay once at a reasonable price. So yeah, it is very frustrating to fight off subscriptions.

[deleted]

Re: Write libraries instead of services, where possible

#169
post #104

Earlier quoted context omitted.

> Even the simplest things, like a 'torch' are ad-supported on android these days. This has a built-in feature on every smartphone for years now. These apps are a scam.

App stores should really prevent these type of no value add apps.

And after that you will say big giant tech companies controlling our businesses.

Re: Write libraries instead of services, where possible

#170

Phoenix is practically built with this idea in mind. My startup is built out of a single phoenix monolith. Only external dependency is postgres. Despite this, I've managed to completely avoid all the typical scaling issues of a monolith. Need a service or background worker? I juts make a Genserver or Oban worker and mount it in the supervision tree. The Beam takes care of maintaining the process, pubsub to said servi…

> Leaves me more time to work on tuning out database to keep up!

As your using postgres have you looked at citus[0] at all?

[0] https://github.com/citusdata/citus

Post reply on HN