Live data from Hacker News

Write libraries instead of services, where possible

catern.com

81–90 of 328 posts

Re: Write libraries instead of services, where possible

#81

> 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…

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 'torch' are ad-supported on android these days.

It's miserable fighting off a million people who want to help me for 'less than the daily price of your coffee'.

And that's ignoring the fact that so many of these subscriptions are really quite expensive - they adopt the standard cloud pricing of 9.99 per month, even when the service they're offering is not much difference than what a $5 piece of shareware would have provided in the distant past.

Re: Write libraries instead of services, where possible

#82

Earlier quoted context omitted.

Is SaaS really the only viable (or "unicorn") business model? Do people not sell software licenses anymore? (In theory nothing prevents you from making your license require recurring payment as well)

Recurring revenue is much more stable than license purchases and also less prone to piracy. Adobe's incredibly successful transition (from a share price perspective) is a testament to the value ascribed to recurring revenue models. In fact, companies that sell services with a recurring revenue component are generally seen as higher margin and more stable across industries. For instance, Aerospace & Defense companies…

In general I agree with you.

However:

> For instance, Aerospace & Defense companies that have a strong "Aftermarket" presence (which really means maintenance, spares, repairs, etc.) generally command higher valuations.

Not sure whether that's a good example, because that might just be exploiting some weirdness in how government projects get funding approval, and might not be relevant to the wider (and software) world?

Re: Write libraries instead of services, where possible

#83
post #54

I was agreeing until I got to this nonsense: An object in a type-safe language can contain capabilities for resources which it uses to implement its methods, without those capabilities being available to the code calling those methods. Java-style stack inspection can restrict user or library code to deny access at runtime to unauthorized methods. Capability-safe architectures such as CHERI prevent code from accessing…

However, if your user agrees to be limited (because it prevents them from making mistakes), we have fairly reliable methods.

But yes, they require the user of your library to cooperate.

Re: Write libraries instead of services, where possible

#84
post #82

Earlier quoted context omitted.

Recurring revenue is much more stable than license purchases and also less prone to piracy. Adobe's incredibly successful transition (from a share price perspective) is a testament to the value ascribed to recurring revenue models. In fact, companies that sell services with a recurring revenue component are generally seen as higher margin and more stable across industries. For instance, Aerospace & Defense companies…

In general I agree with you. However: > For instance, Aerospace & Defense companies that have a strong "Aftermarket" presence (which really means maintenance, spares, repairs, etc.) generally command higher valuations. Not sure whether that's a good example, because that might just be exploiting some weirdness in how government projects get funding approval, and might not be relevant to the wider (and software) world…

A&D encompasses Commercial aerospace like OEMs and their suppliers which are unrelated to Defense spending.

Another example are Automotive companies like heavy-duty vehicle parts manufacturers, which also benefit from higher Aftermarket exposure

Re: Write libraries instead of services, where possible

#85
I think context is really important here. Multiple comments in this thread jump to the concern that it is much harder to monetize a library -- but in an era where many developers are enthusiastic about service oriented architecture, it's also worth considering the decision between services and libraries for functionality which will only be exposed inside of an organization.

One other dimension not discussed in the article is how the scale of use varies over time. A service operator needs to ensure the service scales to support its use. But some use cases are extremely spiky (e.g. when something is invoked by a batch job processing many TB of data among many workers). Even if the service is able to dynamically scale based on load, that's not frictionless or without cost to the team operating the service, and can cause a degradation of service provided to other users. By contrast, if one provides a library, any given use case can be responsible for providing the capacity to support themselves.

A last dimension of libraries vs services within an organization is attributing value and cost. This is a double-edged sword. When providing a service, the team that operates the service may have some clear costs to continue to run it. Just providing the service can make you look like a cost center. If you do the extra work to make sure use cases are distinguished and trackable (e.g. use cases have separate credentials used in calling the service), then perhaps these costs (and "value" in the form of request volume) can be tied to callers. When providing a library, the team that provides it both doesn't appear as a cost center, but also it may not have a straight forward way of knowing how intensively their library is being used and therefore how much value it has provided to the org.

Re: Write libraries instead of services, where possible

#87
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.

I'm very happy that alternate universe doesn't exist. Libraries outnumber SaaS products 100 to 1 and I remember wrangling with software licenses on library implementations in the early 2000s. It sucked.

Distribution (the internet) and open source disrupted that business out of existence.

I think we need something like that for the cloud. Pay an interchangeable cloud provider a monthly pittance, and they host your choice of services as turnkey solutions. No more centralization of data, and no more paying $5/mo for a service wrapper around some FOSS CLI tool.

Re: Write libraries instead of services, where possible

#88
Services allow you to interop with all languages, they let you avoid worrying about threading models of the program your operating within, and they don't have access to all of they sandbox the code being run allowing you to avoid worrying about the code doing something nefarious with access it gets from running inside your process. On top of this, people just seem to be fat more okay with not having source access to a service than they do using proprietary libraries (which from a security perspective makes sense to me).

If there was a standard threading model, language agnostic interop with clear evolutionary properties (perhaps a channel based one), and a generic mechanism for sandboxing libraries folks could use then maybe they would consider providing libraries more. Some sort of hybrid between COM, wasm, and optimized in process grpc is more or less what I'm trying to describe. This doesn't exist, however, and moving your library out of process solves this issue neatly so it's not a surprise that's what's happening.

Re: Write libraries instead of services, where possible

#89
post #38
post #14

Earlier quoted context omitted.

by switching from a competitive money driven world to a cooperative one.

Communism doesn't work.

Maybe, if we could finally get out of the cold war mindset, we might realize that there are more than two black/white options to run a society.

Re: Write libraries instead of services, where possible

#90

Earlier quoted context omitted.

Does everything have to be about money? This is "Hacker" News, not "Monetize Everything" News.

I think you’re reading too far. The comment doesn’t imply that everything it’s about money. It’s only a question about monetizing a library.

What I was alluding to is that one of the first comments on this thread was "how do I make money out of this?" That indicates the priorities of the commenter, if nothing else.
Post reply on HN