446 points | by hermitcrab20 hours ago
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?
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.
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.
Independent of the implementation, people build GUIs to make the functionality accessible to a LOT more users
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)
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.
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.
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 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.
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...
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.
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.
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.
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).
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.
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.
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.
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.
yeah! shipsters
/s
ugh
Like all the 'audio plugins' people that essentially write .so's that go into the big desktop audio workstations, doing anything and everything with sound, while also experimenting with various UI/UX paradigms, unrestricted by what's possible in the DOM/CSS, integrating hardware into it all etc. (I imagine similar in the video/rendering industry, but I'm not too familiar with that side)
i'd add as a caveat that your users probably will not be able to tell the difference and it will break your heart if you care about these things too much.
Man, this sounds way too familiar!
> A mock-up of PerfectTablePlan, including icons I did myself, was used without our permission by Sony in their ‘Big day’ TV comedy series. I threated them with legal action. Years later, I am still awaiting a reply.
Jonathan Coulton released a cover of "Baby Got Back" with a melody he composed himself. The entire song, melody and lyrics, was appropriated without permission by Fox and performed on an episode of Glee by the cast. (I say "lyrics" because even the change of "Mix-a-Lot's in trouble" to "Jonny C's in trouble", referring to Coulton himself, was preserved in the Glee version.) When Coulton wrote a letter demanding at least acknowledgement of the original elements he contributed to the cover song, Fox insisted that their asses were covered because they paid the ASCAP fees and did not have to seek permission for, nor acknowledge, the use of a cover of a song they licensed.
If you understand laws as weapons with which the rich protect themselves from the poor, a whole lot of shit starts making sense...
In this case, it refers to the literal letters written in the signature of a letter, which presumably indicate that whoever wrote it studied a bunch to get into school, paid a bunch to go to school, graduated with that degree, and should be respected, because they may have the knowledge, willingness, and resources to take the words in the letter further, if they want to, given that they have already somewhat attached themselves to the cause in the form of the letter.
[0] https://law.stanford.edu/office-of-student-affairs/the-docto...
If you are looking for articles about starting a software business, see: https://successfulsoftware.net/starting-a-microisv/
Having multiple people in a company does not guarantee that it will stick around. People saying "but it's a one-person business, I can't trust it in the long term" are wrong.
The problem is: people aren’t immortal. That one person could be dead tomorrow. So, you can’t trust any one person business in the long term, by definition.
On the other hand, someone selling a stable piece of desktop software doesn’t even require a tremendous amount of trust. Just the trust not to ship malware or massive security holes. Even if they fully retire and delete the source code, your software will keep working. That’s more than I can say for Google reader, or the Humane AI Pin.
A saas product will die when the credit card bounces a couple of months later.
Thanks for that cheery thought.
see: our incredible journey
side note: after I typed "our incredible j", and then in this very text box, mind you, not even in Google, the full word "journey" popped up as a choice for me to select.
shows ...
https://www.gyford.com/phil/writing/2013/02/27/our-incredibl...
https://ourincrediblejourney.tumblr.com/post/89180616013/wha...
Since I cannot ask you your actual ARR, can you answer if you believe it's feasible to reach high 7 figures/low 8 figures in ARR as a solopreneur over a long period of time? I don't mean 1 year $10M ARR AI trendy apps, but a consistent $10M ARR business year after year >20 years.
The more sales you make the more admin/sales/support overhead there is. Eventually you reach a point where your sales plateau or you take on staff to keep growing.
I think >$1M ARR is hard, you need an exceptional niche (high margin, low support load, easy marketing) and luck.
I can't see a >$10M ARR happening for a solo-founder business. At least not for my business niche.
Bear in mind that growing a SaaS takes time and it's a multi-year project.
Unlike startups they are solo operated and usually won't hire people unless they can really afford it an need it.
By the way, some engineers are dream with working at FAANG, others to create a million dollars startup. My dreams was always something like this: work on a niche piece of software that solves a problem for a subset of people. Give them a something that avoids a headache for them, deliver value, and get paid. You aren't going tonbe millionaire, but it's going to be a nice ride.
So, jobs of this kind are rather scarce.
Also, in a tiny business, the founder will usually be super-efficient and productive. Most employees are not. There is an impedance mismatch: a hired programmer will talk about the latest and greatest JavaScript framework and the need to rewrite everything in YaddaOfYadda, because that's what the World is doing these days, while the founder will think about the benefit for the users (usually none) and the immense costs (in terms of money, bugs, and time wasted).
Because of all this, it's not very probable that you'll find a job at a niche company like this.
I tried to create some modernized software at that company with a License Plate Inventory application product using C#, VB .Net, SQL Server, SQLCE (for Windows XP Embedded) and ActiveSync. We sold a hundred copies of it.
Pick an interest that young white men have. You'll probably find loads of software that caters to it. Pick an interest that an equal number of retired women have. You will almost certainly find a lot less software that caters to it. It is simply because people write software for markets they understand. Most programmers (in my experience) are young white men. A lot less retired women have the skills or motivation to write software.
https://www.reddit.com/r/vintagecomputing/comments/8nzz23/pe...
El camino es mejor que la posada.
This is weird to me on several levels.
- Why would it require "working through the night" to blacklist a key? In large enterprise software, sure. But in a one-person project?
- If past versions still work with the leaked license key, what does this solve? If someone wanted to steal your software, they'd find a key anyway, no?
[Edit]: But a very cool project and a nice writeup! I enjoyed! Good luck!
All that stuff you read about piracy having no commercial impact is bullshit used to make people feel better about what they are doing.
I built a few things while working for startups but nothing stuck. Now I build lots of software in a nice secure corporate environment. I mostly get to do what I want and how I want it but ultimately it's not mine.
Some of the things I've built could be entire businesses on their own and it feels like a lot of missed opportunities.
It is very hard to know what will succeed and what won't.
I think most people never get to work with such software as we need to launch $NEXT_PROJECT
You are living the dream!
Don't know why there wasn't a perfect table plan 6-foot edition.
I remember going to an event where someone took out one of those segmented collapsing ruler things to put people a minimum distance apart.
"It has seated royalty, celebrities and heads of state"
Reminded me that there really are more potential attack vectors in software than one would think. Not immediately sure what a bad actor could do with manipulating or stealing seating charts but I'm sure thre's something.
Someone will develop for the web. But perhaps you don't want to make it easier to clone.
Building a business to sell for your retirement funds would need much more work and would get more money if SaaS for Planners? Unless you sell your engine to a wedding planner software specialist.
The browser as a platform is daunting (touch support, small screen support, CSS, HTML, DOM, connections, browser versions, frameworks).
> Javascript. Ugh.
I personally never found JavaScript to be the problem - I think a single developer can good engineering workarounds. Avoid the bad parts.
I developed for the browser using JavaScript: without using frameworks because my engineering was better than what was available. I personally would still avoid a frameworks unless I needed accessibility (which is crazy hard to support).
> Also PerfectTablePlan is quite compute intensive, using a genetic algorithm to generate an automated seating plan and I felt it was better running this on the customer’s local computers than my server. And some of my customers consider their seating plans to be confidential
Sounds like a price point: standalone should be more expensive. However likely difficult to hit that enterprise sale point (re patio11?)? Ideally you want to charge expensive wedding planners much more. Low end planners could still use your web version.
I assume you've had competitors that have sunk because you are best value for money?
Loved the writeup.
I'm guessing I've written a bunch of ignorant stuff - I'm just practicing my thinking by writing... Most important, I presume you're looking forward to finishing up and not doing more work. I was.
A number of web based alternatives to PerfectTablePlan have appeared over the years.
Can we please retire this term? It’s a business. Moreover, it’s a real business, with profit and risk and product and customers, which is a lot more than many investor-funded businesses can say.
The fact that it’s flexible and even enjoyable? Wunderbar. And it doesn’t even require foosball tables or free snacks or an in-house masseuse or an on-site gym.
I think it is hilarious that investors sometimes use it as an insult.
I started selling software licenses this year, and I would be very happy if I were able to write a post like this about the same software 20 years from now!
Looks like an impressive bit of software and not some flash in the plan disruption nonsense.
Huge respect for maintaining such a large codebase.
Time is money so I'd suggest finding somewhere/someone and giving them the money for their expertise, but it doesn't takes much time, you could do it yourself. Create a Google AdWords account and buy AdWords for "wedding planning seating chart" or other combination, and see how many hits you get for that, and judge for yourself if it's worth it. A competitor (zola.com) already has the first result for that, but that should be enough to for you started. My email's in my bio if you want to chat more.
https://successfulsoftware.net/category/adwords/
PPC used to be very lucrative, but the bid prices have inflated to the point that it is increasingly borderline. I'm currently turning PPC on and off alternate weeks to try and see if the ROI is positive. This is an off week.
I found out that CDs are edible
PSA: CDs are not, in fact, edible, nor are DVDs or Blu-ray media. Sure, if you click through, you'll see that the CD was not actually damaged and that it was only the printed license key that got mauled, but still: CDs are mostly polycarbonates, and not, in any way shape or form, part of a healthy diet, no matter what your local party liaison tells you.[0] https://www.smithsonianmag.com/smart-news/the-human-brain-ma...
Disclaimer: don’t