Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Makes me nostalgic of desktop software. I hate that everything today is a website and requires a ridiculously fast internet connection. And what seems to be in fashion for "desktop software" today is to ship a website together with a whole browser and pretend it's not a website.

I wonder how the licensing works: do people pay for newer versions? Or do people just buy one version but more people get married every year, bringing new customers? I guess it is not a subscription model, right?



You buy a perpetual licence for version N. You can then optionally upgrade to version N+1 later at a 60% discount.


The best business model.


I am also ok with one like Jetbrains where you subscribe and after a year you can keep the last version you paid for. They do a lot of updates, so the money is going into the product but one isn't forced to stay in order to use it.


Confusing IMO because they use years as the major version. If I subscribe May 24 - May 25 and they don’t release 2025.1 until just after my sub ends…which version do I get?

That said I’m a jetbrains fan and like their recent move to include all features in community editions (need licensing for commercial use obviously)



Sounds like the fallback license is for the version available on the date the 12 mo subscription started


It's not actually that different from the subscription model; the interval is just longer. At some point, you'll upgrade your computer and find the old version of the app no longer works, and you'll be forced to upgrade. Depending on how quickly the app evolves, you might prefer the subscription model so you can follow new how-tos, and it can be more reliable since developers are only supporting a few versions out in the wild.

I'm not saying you need to be on the bleeding edge, but if any part of your personal tech stack is older than ~4 years, it'll start to have problems, and you're going to be left behind.


Microsoft is very good at backward compatibility. So 10+ year old versions of PerfectTablePlan probably work on Windows 11.

Apple is much less good at backward compatibility. It is a bit of a two edged sword. Customers have to upgrade, you also have to keep updating libraries and releasing new versions to keep up.


I believe it is in this interview from 1996 where I saw Bill Gates saying the same thing about Microsoft products, he saw them as subscriptions. It’s a long but interesting interview. https://www.youtube.com/watch?v=VFFlO7yBIBM


>At some point, you'll upgrade your computer and find the old version of the app no longer works, and you'll be forced to upgrade.

It comes down to the developers to make sure the older versions are regularly updated and make sure they run on newer operating systems and architectures.


This is why the model doesn't work. You can't support shrinkwrap software indefinitely.


Really? I'm still using sublime 2 from 10 years ago and it still works great across Mac and windows.


I especially like this if the 60% multiplier becomes 60%² at N+2, 60%³ at N+3, and so on. Feels like you're getting rewarded for hopping on early.


Too complicated. I charge the same for v5 -> v7 and v6 -> v7.


You mentioned you have been developing Indie products since 2005 in your about section. Can I read about this somewhere?


Pretty much the entire https://www.successfulsoftware.net blog is about that. Maybe start with:

https://successfulsoftware.net/starting-a-microisv/


Didn't realise you were OP!


Well, I like it anyway.


Do you have a lot of people buying upgrades? Still wondering if this market is not full of people who buy it one time for their wedding :-).


Probably wedding planners are the biggest customers.


I don't know:

* I have been to quite a few weddings. I have never been to a wedding organised by wedding planners.

* The author wrote the first version for themselves and weren't wedding planners.


>I hate that everything today is a website and requires a ridiculously fast internet connection. And what seems to be in fashion for "desktop software" today is to ship a website together with a whole browser and pretend it's not a website.

Earlier this week I cobbled together a tiny, totally self-contained pocket dictionary between Finnish and English [1]. It's a TUI, but I tested it on Mac and Windows and the program works perfectly fine there -- double clicking on it just pops open a little terminal for tsk to do its thing in.

The first bit of advice I got when posting it online to my usual places was "Why not make it a normal GUI program, or better yet, use React?" While I did briefly consider it, it really seemed like overkill for the very simple problem I was trying to solve here, and it might balloon the ~30 MB exe to >100. To be fair, I have negative interest in monetizing this kind of thing.

[1]: https://github.com/hiAndrewQuinn/tsk


> it really seemed like overkill for the very simple problem I was trying to solve here

Usually people throw heavy frameworks at simple problems just because it's easier, not because it's needed.

I like a lightweight TUI a lot better than a huge ElectronJS app.


Yes and most engineers building GUIs professionally use those frameworks day in and day out so they’re just very comfortable with using them

Independent of the implementation, people build GUIs to make the functionality accessible to a LOT more users


> Independent of the implementation, people build GUIs to make the functionality accessible to a LOT more users

Microsoft and Google would like a word with you. /s

(Transient windows you cannot close, no scrollbars, no window borders, no clear delimitation of GUI elements, etc)


That's a really good point about the complexity of native desktop development. I've definitely felt that pain trying to wrangle native APIs for even simple UI elements. It took me a while to figure out how to get smooth animations working in one project.

On the other hand, shipping a whole browser feels so wasteful, especially for smaller apps. I've been experimenting with Tauri recently, which uses the system's webview. It's a nice middle ground, and the performance is noticeably better than Electron from what I've seen.


I am fully aware how much more performant native desktop applications can be compared to the “let’s ship a browser” popular alternative.

That said, do you, or anyone else who often makes this (fair) complaint, have any experience writing native desktop applications? Have you ever tried to implement drag and drop, animations (like accordions), modals, gradients, and custom elements? Not to mention, GPU acceleration.

I can only speak for Windows and Linux, but the native APIs are atrocious. The frameworks for these native APIs are cumbersome and inflexible. Styling is, without a doubt, the most complex part. It’s all so complex that shipping a browser + an api to talk to the host is easier.


  > Have you ever tried to implement drag and drop, animations (like accordions), modals, gradients, and custom elements?
not to sound like a salesperson but its not too hard in (apple) appkit [1] using cocoa and core animation [2]

(and all of this is even easier in swiftui especially animation and styling [3])

[1] https://developer.apple.com/documentation/AppKit/drag-and-dr...

[2] https://developer.apple.com/library/archive/documentation/Co...

[3] https://swiftui-lab.com/custom-styling/


You have to own a MacBook though.


You are right, building a good UI for the desktop has become exceedingly difficult. In my experience new UI toolkits try to mimic the web experience (kivy, QML, Slint, Flutter, etc.) and end up being threadbare with the simplest widgets available. In my opinion, every new UI toolkit since QtWidgets/WinForms/Delphi/WPF/Win32/Gtkmm era has missed the point. The desktop is a power tool and requires powerful widgets. Virtualized lists, data grid with complex interactions, drag and drop, OS integration, modals, background tasks, docking windows, etc. A toolkit that puts a slider, some text and buttons on the screen doesn’t solve the harder problems and the web browser will run circles around that workflow. Easier UX can be built in anything really. Until there’s a desktop app framework that solves the hard problems in desktop UI dev then desktop will languish and hard stuff will continue to be hard.


I'm developer of Slint and I'm glad to see Slint mentioned. I want to clarify that we're not trying to mimic the web. We have a great vision for the desktop integration, but we unfortunately have limited resources. Our team is fairly small and we are mainly working with paying customers to pay the bills, which are mostly in embedded space at the moment. I agree with your points, and while there’s still a lot to do, I hope Slint can become a strong option for building powerful complex desktop applications.


I like Slint, the technical work is extremely impressive. I even contributed to the project! I hope you can realize those goals, you would fill a massive vacuum in the wider ecosystem.


You found the reason why Qt is popular.


Call me a boomer, but I preferred old apps that had a consistent interface instead of all the random wheel inventing.


I don't recall a single time I thought "gosh, I wish this app used an accordion". But custom controls, e.g. the table-and-chair view in TFA seems a sensible thing to have in specific apps.


If you use Qt, like in TFA, then you don't have those issues. You use a markup language for layout if you want, javascript if you want, C++ if you want.


Don't style it, please. I chose my system theme for a reason.


> Not to mention, GPU acceleration.

I mean, a static Save button, clicked one time per hour really benefits from GPU acceleration. /s


The most common model I see these days is a lifetime license and one/two year of free updates with it. Once your free updates are over, you can keep using the last covered version forever, or purchase another year of updates for a discount (20% to 40% off of the original license price).

This has 2 advantages:

- You can buy the additional updates whenever you want in the future so it's leaner than a subscription.

- It also makes sure you get at least 1 year of updates, as opposed to unknown time period of updates when the licenses are tied to a major version.


> Makes me nostalgic of desktop software. I hate that everything today is a website and requires a ridiculously fast internet connection. And what seems to be in fashion for "desktop software" today is to ship a website together with a whole browser and pretend it's not a website.

Funny isn't it? These days developers experienced with building typical desktop software are being asked Leetcode hard puzzles to find the most optimal solution on the first attempt.

Yet when they are hired most of them choose what I see as the most inefficient (in both memory, disk space and runtime), suboptimal and very low quality software as the "solution". When I mean "the most" it really is the worst solution possible, which is all these Electron based "desktop apps" which is an entire browser rebranded as a "desktop app".

It is even laughable that those who believe using a faster language when using Electron would make it more performant. This has never been more further from the truth as the worst-case performance still applies as long as you are using Electron.

SWEs not being able to build (native) desktop apps or apps that don't use a browser is a skill issue.


> SWEs not being able to build (native) desktop apps or apps that don't use a browser is a skill issue.

It's a runtime issue. If developing a native app requires an expensive SDK, complex distribution agreement or multiplatform codebase, any rational software engineer will choose to ship once and run anywhere. Anything else is a waste of time and money unless management dictates otherwise.

Electron will be king until shipping native interfaces is as equally accessible as web development.


> Anything else is a waste of time and money unless management dictates otherwise.

Management won't say otherwise because management relies on what software engineers tell them, as it's the job of the engineer to consider quality, reliability and operational efficiency, and advise management on the tradeoffs involved. An engineer can choose to not pick the cheapest possible option.

Your "rational software engineer" instead sounds more like someone that's happy to go with substandard solution that's bad for the user and bad for the entire field of software engineering (the more it's used, the more it's normalized), and then hide behind greedy management and penny-pinching beancounters.

People sometimes wonder if software wouldn't get better (boy technologically and socially) if software engineering was a licensed profession. Well, we don't deserve to be licensed professionals, because we've abandoned respect and loyalty to our field, and became just "professionals" in the cultural sense of doing cheapest stuff the fastest and dumping all externalities on customers (on third parties).


> Your "rational software engineer" instead sounds more like someone that's happy to go with substandard solution

A grizzled software engineer was telling me about how we were just moments away from AI that would pretty much do almost all the coding for us, leaving software engineers to make only the highest level decisions. My response touched on the low quality of such software and of the tendency of engineers who use AI assistance to develop "skill issues" to the point that they cannot function without the AI tool.

"Yes," he told me, "but what I care about is my PAYCHECK. And AI helps me ship much faster."

A rational software engineer cares about their paycheck. A rational software company cares about revenues vs. expenses. If you can get a lot of revenue out of very little effort investment by using solution X, you use solution X. Period. End of statement.


> People sometimes wonder if software wouldn't get better (boy technologically and socially) if software engineering was a licensed profession.

In some countries such as Canada, it is a licensed profession and if you refer yourself as an engineer without holding a PEng you can have legal action taken against you.

However, all this has done is make it such that nobody actually holds a software PEng. The only software PEng I know works at the university nearby and I've never met a colleague with designation. Everyone gets a SEng degree but knows no PEng to do a mentorship under so never gets designated. Lack of participation is likely a contributor to being an underdeveloped field. General public confusion from positions in the USA that wildly throw around the title "software engineer" for non-PEng doesn't help.


Conflating fewer native interfaces with the loss of respect software engineers have is like saying plumbers all went soft at the invention of the plunger. Native apps are a waste of time if you want to sell a successful product. It really just is that simple, I'm sorry all the success stories like Slack don't use the native interface on your OS but that doesn't justify attacking the field as a whole.

It's true; this is and will be an OEM issue until the end of software engineering itself. Manufacturers will either align their incentives or get thrown to the wayside by everyone that makes money today.


This. And I live in hope that WASM runtimes can address some or all of this one day.


So then we can ship a binary on top of JavaScript in a browser engine on top of the native platform! ;)


Yeah!!!

Time for Greenspun's eleventh rule: ;)

https://en.m.wikipedia.org/wiki/Greenspun%27s_tenth_rule


We really need morw abstraction layers. /s


Native apps don't require an expensive SDK, it's free on all the main desktop platforms.

They also don't require a distribution agreement (as long as you aren't putting them in an App Store).

It's really not that hard, Fork is a great example of a cross platform app with a rich UI developed by just two people.

https://git-fork.com


Wow, it's just like gitg except it costs an arm and a leg instead of being free and open source!


$59.99 = "arm and a leg"?


For a git interface with multiple open source alternatives? Yeah, this is a tax for people too stupid to figure out commit -am.


I work for a company that mostly sells complex desktop software (with complex backends) using a subscription model.


>And what seems to be in fashion for "desktop software" today is to ship a website together with a whole browser and pretend it's not a website.

yeah! shipsters

/s

ugh




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

Search: