Some of the best tools I’ve used felt like they started as someone’s private playground that only later got hardened into “serious” software. Letting yourself park Boo, go build a language, and come back when it’s fun again is probably how we get more Rio/Boo-style experiments instead of yet another VS Code skin with a growth deck attached.
We don't always have to solve problems with technology. Sometimes you can just tell people things.
I like the idea of crafting tools that allow the user to accomplish something that would ideally not need software.
Even better if the most prominent feature of a necessarily complex software solution, is the behavior to the user as if it is absent completely.
I wish they'd allow making issues and pull requests sponsor only. Could enable a business model.
AI often doesn't do things your way, but if your doing something for yourself you usually care more about the goal than the technicalities. Also AI working on a hobby code base is less prone to overcomplication since it basically copies what you've wrote yourself.
In terms of productivity it's having something of a mixed effect. It gives me very clear ideas and direction but at the same time everything just feels done afterwards. All that's left is actually executing the tasks which is... Boring.
I'm not sure I trust ChatGPT to do it for me like an agent. The examples it gives me are never quite right. It's probably a lot better at generating frontend javascript code than programming language interpreter code.
Is this some sort of unwritten agreement? When I was setting up my sponsor page, I explored the sponsor pages of other users for ideas. I don't think there were many sponsorship tiers with special features. Some people offered advertising space on the README, others offered access to an exclusive Discord channel, most just thanked the sponsor.
I'm still new at this so I wouldn't know. I only ever had one sponsor. Happened organically after my work was independently posted here on HN once.
Edit: https://pocketbase.io/faq/
Look at the bottom, just an example how sponsors/donors may affect you.
I think you can disable issues but not pull requests, as far as I know.
It might be helpful to allow to disable pull requests too, and possibly to hide how many stars/watchers there are and hide the list of forks (people could still star, watch, and/or fork the repository, but they would not be listed on that repository if the display of those features are disabled).
Whether or not GitHub accepts these ideas, it can be an idea that other services (e.g. Codeberg) can consider adding such options if they want to do (as well as other things).
And if the README explicitly says the project isn’t open to contributors nor feature requests, then you’re even less likely to see that (and have a very valid reason to politely close any issues on the unlikely scenario that someone might create one).
The vast majority of stuff on GitHub goes unnoticed by the vast majority of people. And only a very small minority of people ever interact with the few projects they do pull from GH.
This is not my personal experience nor the experience of a number of folks that I know personally. I think it's pretty hard to generalize about this.
> The vast majority of stuff on GitHub goes unnoticed by the vast majority of people. And only a very small minority of people ever interact with the few projects they do pull from GH.
So what? It's probably not going to impact you, so it's okay and we just have to deal with it? I reject that logic entirely.
I think it’s pretty easy to generalise because public repositories are public, so the data is available.
The vast majority of repositories on GH has between 0 and 10 stars and no issues raised by other people.
Even people (like myself) who have repos with thousands of stars and other GH members “following” them, will have other repos with in GH with zero interaction.
> So what? It's probably not going to impact you, so it's okay and we just have to deal with it? I reject that logic entirely.
That’s a really uncharitable interpretation of my comment.
A more charitable way of reading it would be:
“Worrying about a minor problem that is easily remediated and likely wouldn’t happen anyway isn’t a strong reason to miss out.”
If we were talking about something high stakes, where one’s career, family or life would be affected; then I’d understand. But the worst outcome here is an assumption gets proven true and they delete the repo.
Please don’t take this as a persuasive argument that someone should do something they don’t want to do. If people don’t want to share their code then that’s their choice.
Instead this is responding to the comment that your friend DID want to share but was scared of a theoretical but low risk and unlikely scenario. That nervousness isn’t irrational, but it’s also not a good reason by itself to miss out on doing something you said they did want to do.
If however, that was really just an excuse and they actually had no real desire to share their code, then they should just be honest and say that. There’s no obligation that people need to open source their pet projects so they don’t need to justify it with arguments about GHs lack controls. They can just said “I don’t want my code public” and that’s a good enough reason itself.
"No one can make you [merge PRs] without your consent." - Eleanor Roosevelt, probably
I think its worse then that. It seems the narrative is everything needs to be enterprise-scale by default. Those who value small languages and tools, experimentation, self-hosting, and the do-it-yourself mindset are the counterculture.
(Emacs)
This is how many artists have worked. They make something for themself, and one day they show it to someone else ... or they just get the urge to share it more widely, often without the hope that anyone will really be interested. Or they keep it for themself.
I think Tolkien is in that group, for example. But don't get the wrong idea from an extreme outlier: much of the time, others aren't interested, or not many are. Sometimes, nobody is interested until after you've forgotten about it or passed away. Who cares? That's one reason you need to make it for yourself. Also, I think that otherwise it provides much less expression and insight into another person, which is at the core of art. There is a fundamental human need to 'externalize the imagination'.
That model depended on personal wealth or (more often) patronage. Because the supply of wealthy patrons was limited, it meant that you had fewer artists pursuing their visions. Everyone else needed to find menial jobs.
Now, we democratized access to patronage, but it means that to support yourself, you need to deliver what gets you the most clicks, not what your soul craves.
I sort of wish we still had both models, but I think that wealthy patrons have gone out of fashion in favor of spending money on crypto and AI.
"They make something for themself, .."
For the vast majority of people this means doing it on the side, in addition to their day-job. I've known a lot of artists in my time and we all have day jobs. You do art for yourself because you love to create, not expecting to make any significant money on it.
Today, more people have the opportunity to dabble in art than ever before.
> Everyone else needed to find menial jobs.
That doesn't mean you can't create art. Anthony Trollope worked for the post office. Einstein, who externalized imagination in somewhat different way and attributed much to art, was a patent clerk. New York and LA are filled with waitstaff-artists. A friend hired a moving company that almost exclusively hired artists as movers (I know - they weren't too skinny?).
Art, like anything else, lines up somewhere between a hobby and a career. Similar to athletes, somehow the cream just rises to the top.
You never hear about “starving athletes” I guess is what I mean.
It’s a life of constant travel, crazy hours and very little money.
Go to the 'hood and see the one returning pro ball player interacting with forty no-money kids trying their hardest to make it.
All of the kids would be better off pursuing a higher-probability-of-success career (including unionized manual labor), but that's not what's happening.
Those are some starving athletes.
> Art, like anything else, lines up somewhere between a hobby and a career.
Says who? Are you an artist? Many artists say - and I'm know nothing to doubt them - that they can give up art like you can give up food.
> Similar to athletes, somehow the cream just rises to the top.
No idea where you get that about art. Many complain that a lot of shlock rises to the 'top'. And how do we know about the cream that didn't rise? Many artists aren't discovered until they're old or dead - Van Gogh being the over-repeated example. But even Van Gogh!
It's easier in sports - you can win on the field; there's frequent, objective evidence. But that applies to clearly superior elite, who have access to training. With access Messi would probably be on top regardless, but the number of Messis is a statistical error. People who are professional-level but lower down the pyramid, whose names you don't recognize but who make up the overwhelming majority of athletes, often say it depends mostly on relationships. There are plenty of people like them, and if they get a job depends on their relationships with coaches, agents, etc. You hear about athletes that seem perfectly capable, some even good or very good, but getting no calls.
You know, the kind of recognition that can only come when good fortune also smiles on such a dedicated worker.
I guess not all that many can relate unless they are doing creative work themselves.
But that's always been the first thing that comes to mind when I hear "starving" artist.
I mean, just because this isn't a trope doesn't mean it doesn't exist. If you know anything about trying to get into pro sports of literally any type, you'll know that it's a lot of sacrifice for a long time. Most athletes who aren't literally the best in the world aren't paid a huge amount, and have to travel a lot to attend events to make that money.
The library's on GitHub and I could spam a link to it here, but it's much more exciting to spam a link to a poem that finally gets to use it - https://rikverse2020.rikweb.org.uk/poem/flaw
If you make it for others but no one else likes it, it is of value to nobody at all.
A certain one-eared Dutchman comes to mind...
I [sort of] remember a movie, once, that had a kid basically doing a "Don Quixote" on the world, where his vision of everything was kind of wondrous.
Don't remember it well enough to recall its name, though...
For elucidation: https://en.wikipedia.org/wiki/Vincent_van_Gogh
He died a pauper, but his work is some of the most valuable in history.
Yes, sometimes I can't even guess why. Drunk and missed the target? Those little arrows are poor GUI.
I have a number of Commissioner Dreyfus-level haters. One pops up, from time to time, screeches, and throws poo. It’s kind of cute, actually.
I cry myself to sleep, every night, over it.
Imagine a comment with a string of poo comments beneath it. It would get their point across and the silliness would save bad feelings and flamewars. @dang should try it on April 1st or something. I'm serious - it would lighten things up a bit around here and, as I said, dispel a lot of white lies and manipulative posts.
If you post poo, that's the only character allowed in that comment, and maybe your only response allowed in that subthread. Also, you can't downvote the parent, and nobody can respond to or vote on a poo post. The UI would just be knowing how to manually enter the correct Unicode codepoint. New and recent accounts can't poop - bathrooms for regular customers only!
(I've now revised this comment about five times as I've refined my idea.)
It could happen.
For about the last year, about the only time I log in is to upvote somebody, and usually a while after I read their message. It can bug me for some time when it's one where I just can't settle for them being downvoted, or alternatively some upvotes are never enough.
Once logged in the sky can be the limit on my own comments sometimes, as I've mentioned before I guess all I have ever done is now known as responding to prompts.
Avoiding to spend time with your family shouldn’t be something you enjoy.
Like sure you love your wife and kids, but being with them every second of every day is probably too much for most sane people. Especially if you have hobbies that demand a lot of focus time.
I feel like with the part you highlighted and this quote here that we are reading a blog post from an alternate dimension or something.
Unless you're working on something with a lot of breadth, of course. A great example is yt-dlp which works on a huge number of sites. The wow-factor is high because it feels like it just works everywhere. That's only possible through a huge number of data parsers, many of which are not terribly different from one another
At the former, I started right after school and was baffled no one I worked with ever used our product. I found it super demoralizing to build something so heavily used but unpopular, and eventually I quit out of frustration. I tried to change the product, and improve features, and frequently met with our product and UX people to no avail. We existed, of course, because sometimes popular free products need to serve business goals (thankfully not ads at least).
At the latter, we just had the challenge of building a complicated product, and with millions of users, you'll always get complaints. I had coworkers who would check reddit every morning and share all the complaints people had and really took it to heart. Of course, we could never properly debug or do anything for these random users, and "at scale" a 0.00001% error rate still meant a lot of disappointed people. It was still pretty demoralizing after a while but at least we could say people found us useful, even if it wasn't "fun".
Especially given that the teams client doesn't allow disabling or editing keyboard shortcut.
Microsoft employees may be lazy but unlike Facebook employees (I refuse to call it meta), I don't think they are evil.
Bonus if its like Sony BMG copy protection rootkit [1].
[1]: https://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootk...
Too many software projects treat programmers as factory workers, where their primary value is measured in amount of storypoints or Jira tickets finished. Don't get me wrong, you can be a craftsperson and use an issue tracker ofcourse, but if quantity is the only thing management cares about instead of quality, the craft gets lost in the process. Quantity is easy to measure, quality is not.
At the same time treating software like an art is probably not very useful. That code is (typically) not written to be looked at, but to make the computer do something useful.
It's a shame artisinal software sounds so weird, because that precisely describes the level of caring I'd like to see applied to the software I use.
FWIW you can argue the same for woodworking, a chair is typically not made to be looked at but for people to sit on. I tired to think what inherently makes writing software treated less than a craft than woodworking, but couldn’t think of any.
> Craft software that makes people feel something
Meta, Google, and all of FAANG already did that. They crafted software that made people feel hate, anger, depression, but sometimes joy. It's nice to get those cute animal posts when doom scrolling. It's a nice break from "you're all going to die", "everyone is dumb except you", and "you're powerless".Joking aside, I do very much agree with the OP. But I also wanted to note how things can get perverted. Few people are actually evil and most evil people get there slowly. What's that old cliché that everyone forgets? "The road to hell is paved with good intentions". The point is to constantly check that you're on the right path and realize that most evil is caused in the pursuit of good because good is difficult to do.
But also I wanted to share a Knuth quote
| In fact what I would like to see is thousands of computer scientists let loose to do whatever they want. That’s what really advances the field
- Donald Knuth
I am fully with him on this. It is the same reason Bell Labs had so much success. How do you manage a bunch of geniuses?[0]. You don't.
You let experts explore. They already know the best ways forward. Many will fail, but that's okay. In CS one of the biggest problems we have is that we try to optimize everything, but we're also really bad at math. If you want to optimize search over a large solution space with a highly parallelized processor you create a distribution. It's good to have that mean but you need the tails too and that's what we lose. You tighten the distribution when you need focus on a specific direction but then relax it to go back to exploration. But what we do, is we like railroads. We like to try to carry all the groceries from the car in one trip. We like to go fast, but don't really care where. We love to misquote Knuth about premature optimization to justify our laziness and ignore his quotes about being detail oriented and refining solutions.I think progress has slowed down. And I think it's because we stopped exploring. We're afraid to do anything radical, and that's a shame
[0] Knuth has another quote about programmers not being geniuses lol
That can require so much experience most people could never imagine it could be accomplished at all.
But if so, you could then herd geniuses, as long as they were also cats :)
When you single-handedly have to cover a lot of bases, you do what you have to do.
This is a habit I picked up from two people I respect greatly as programmers; Casey Muratori and Jonathan Blow.
Those guys both built their own little lands; Jon went as far as building a new language, a 3D game engine in that language, and has multiple game titles in-flight in the engine.
I have a handful of projects that are similar in spirit. I'm largely the only, and target, user of these projects. It's joyful to work in an environment you control completely. No deadlines, no feature requests, no support tickets, no garbage collector, no language runtime .. just me and the OS having a party.
In particular I've written a CLI framework and a few apps with it. The apps' requirements stretched the framework's capabilities, so I've rewritten large parts of it over the years.
It's incredibly satisfying to feel myself get better as a developer as I write and consume and improve my libraries.
Do you mean they created their own fictional geographic worlds (or parts of worlds)? That's amazing. Many - including Tolkien, I think - have started that way. Sometimes, the world finds out about it. Robert Louis Stevenson started with a map.
I think if he ships a game and a programming language in any of those timeframes I will be very impressed. I also think it is likely.
Casey's done both Handmade Hero, and Performance Aware Programming. Some of the best programming educational content available, in my opinion.
Also .. so what?
The mouse trail made me feel something else.
Did the author chloroform them?
Also, anything electron induces a strong sense of "where did we go wrong?"
Also, mobile-ish interfaces on desktops. Ugh!
Before the iPhone came out, mobile used to handle desktop websites better than desktops handle lots of modern sites now.
The business plan seems to often be one of fomenting rage with plenty of people not feeling like it is happening at all.
I can relate because of 2 things; 1. I also played a lot of legos during my childhood & loved it. 2. I have a similar "preference" on configurations & shell-profile. (ie. overall setup)
At work, I am the only person who has a personal configuration & automation package (ie. dotfiles) at my director's level organization. (Maybe there is another one or two at most)
Not only that, I also have a nearly complete automation to provision a new machine, virtual or otherwise using the same code. (usually maintained by make && make install)
I update things regularly. It has bunch of "utility" scripts. As it being a $FAANG company, once in a while, here and there, people stumble on scripts/solutions/docs (also markdown). There were even occasional CRs (code-reviews / pull-requests) I received.
"When programming becomes repetitive, the odds of you creating something that makes people go “wow” are reduced quite a bit. It isn’t a rule, of course. You need to be inspired to make inspiring software."
The purpose of software for other people is not to make them go 'wow'; it's to help them with their jobs to be done. That's it. The software is always in service to the job the user wants to get done. Can that make them go 'wow'? Sure, but you can't..aim for 'wow'. That's the wrong goal.
As far as 'inspiration' goes, I'm with Stephen King: "Amateurs sit and wait for inspiration, the rest of us just get up and go to work."
For those that might disagree (hey, it's HN), I would ask: how do you know when 'wow' occurs? Here's a clue: 'wow' can only happen when something else occurs first. That 'something else' is described above.
> The purpose of software for other people is not to make them go 'wow' ... The software is always in service to the job the user wants to get done. Can that make them go 'wow'? Sure, but you can't..aim for 'wow'. That's the wrong goal.
Did he say in his post that he's talking about software for other people? Is the only purpose of writing software to do so for others?
Aside from where you've only duplicated something that already exists (in which case why bother?), what kind of software would you be able to create to help me do my job that wouldn't also make me go 'wow'?
Any part of my job that I lack tools to help me with are the parts that seem impossible to have the tools for, so when you defy that understanding, 'wow' is inevitable.
If we had stopped reiterating on the wheel our cars would drive on wooden logs.
But if you release a wheel today, same as any other wheel you can already buy, don't expect much fanfare.
Also if I'd dive into how F1 wheels are made, I'd expect I learn stuff that is fascinating and far from boring.
I think straight duplication is quite unlikely. You even say it's inevitable. Which is also confusing. Most code written is probably quite unremarkable, yet useful. Usefulness is a dominating factor, wow has a lot of depends.
Is it? There are many different people selling wheels that are all pretty much indistinguishable from one another. The first one no doubt brought the 'wow'. But when the second person showed up with the same thing, what 'wow' would there be?
Our entire system of trade assumes that duplication occurs as an intrinsic piece, with the only defining difference in that duplication is the effort to make the same thing for cheaper. Otherwise known as competition. Are you suggesting that doesn't happen?
That's fair. But if you aren't offering a perfect clone, then you're offering something novel that will 'wow' your customers, no? The market will never take interest in what you are selling if there is no 'wow' factor.
> Which I think is unusual.
You make a fair point that unreasonable terms on intellectual property laws has made it much more unusual than it should be, but isn't unusual historically, and shouldn't be unusual given our system of trade that assumes that clones will be produced. It's the only way most people can participate in the economy (and why they currently feel left out; but that's another topic for another day).
It does not cost you anything to put your code on the internet; you don't need to use something like GitHub. You can just publicize a tarball. Its about sharing and giving, which is fundamentally not about you.
When people ask you to open source, they most likely want to learn and build on it.
I tend to do things the same way. I write software that I want to use.
I do tend to go "all the way," though. Making it ship-Quality, releasing it on the App Store, providing supporting Web documentation, etc.
Makes me feel good to do it.
I always used to say "My dream is to work for free."
Livin' the dream...
i can’t explain what, it wasn’t just the colour scheme
atom was objectively worse on performance and a few other things i forget, but it felt so good to use
The more "sentimental" or "egotistical" a piece of software is in itself, the less I like it. Taken to the limit, the title of the article commands us to generate Skinner boxes to maximize user engagement etc.
You can easily induce rage by shipping it full of bugs :)
When quartz watches came up the makers of mechanical watches struggled. Quartz watches are cheaper, more accurate in many cases and servicing is usually restricted to replacing a battery. However some people appreciate a good mechanical watch (and the status symbol aspect of course) and nowadays the mechanical watch market is flourishing. Something similar happened with artificial fabrics (polyester, acrylic) and cheap made clothes, there’s a market for handmade clothes that use natural fabrics.
Nobody (well, barring a few HN readers) will ever care if the software was written by people or a bot, as long as it works.
That's how it works for me. I'm currently turning a lot of raw data into a map of Berlin rents. I spend less time figuring out the map API, and more time polishing the interesting parts.
I don't care if a craftsman used hand tools or a CNC to build beautiful furniture. I pay for taste, not toil.
Emphasis mine:
> there won’t be a niche
"Mechanical watches" also aren't exploding at all. When people cite this, they're citing the overall watch market growing, because the market for million dollar watches is being driven by a very small group of collectors. Its also not sustainable, and will die down in ~10-20 years when these old guys finish dying. The average not rich person could not give less of a damn about mechanical watches. There's no great comeback on the horizon
That is probably true. But all evidence to date is that if the software is written by a bot, it won't work. That is why people will care.
> more accurate in many cases
It's laughable that LLMs can be considered more accurate than human operators at the macro level. Sure, if I ask a search bot the date Notre Dame was built, it'll get it right more often than me, but if I ask it to write even a simple heap memory allocator, it's going to vomit all over itself.
> Nobody [...] will ever care if the software was written by people or a bot, as long as it works
Yeah.. wake me up when LLMs can produce even nominally complex pieces software that are on-par with human quality. For anything outside of basic web apps, we're a long way off.
With both of you doing research in your own ways, you'll get it right more often (I hope).
In the comparison I was making with respect to accuracy was that the bot is much more likely to accurately answer fact-based queries, and much less likely to succeed at any tasks that require actual 'thinking'. Especially when that task is not particularly common in the training set, such as writing a memory allocator. I can write and debug a simple allocator in half an hour, no worries. I'd be surprised if any of the current LLMs could.
If you look up the factual question in a quality source, you'll be more accurate than the bot which looked at many sources. That's all I meant.
Good luck for your new project!
No, not like that.
That was a look into a world we steered away from.
That's great, but then what's the point of this article?
The author is seemingly offering advice about why and how software should be built, but then claims to not follow anyone else's advice. Cool.
Just do whatever makes you happy. If you want to work on proprietary editors and programming languages, go ahead. I would argue that doing that in the open would both improve the projects and make the world a better place, far more than blogging about them does, but this doesn't matter if you're optimizing for personal happiness.
We have Microsoft, Google, Apple. This is enough pain. We don't need more.
Fun tidbit: Just to make sure I got it right, I quickly googled the phrase. Gemini's elaboration on the topic truly made me feel something. Gemini's answer:
A "Chinese curse" often refers to the phrase "May you live in interesting times," though it's not actually Chinese but a misinterpreted English saying, while actual Chinese curses involve direct insults like "Cào nǐ mā" (Fuck your mother(sic!))