It used to be a huge honor for a program you wrote to end up in a computer magazine for millions of people to type in for free. I was published twice in the mid-80's and only got a copy of the magazines, but that was enough.
Back then, it was also common for the magazine to publish your home address and sometimes phone number so people could get in touch with you with questions.
Programming is no longer a community. It's a competition.
Not everyone wants to live an ascetic lifestyle or can afford to be a hobbyist, so expectations have changed.
This is a problem with many hobbies in modern times where everything is a competition with others and less about enjoying it.
Programming just became mainstream and it more accurately represents society as a whole.
Now entire stacks of the internet rely on libraries developed by one or two people who are bus factors, and humans prone to burnout.
Depends on the mission. Plenty of businesses relied on type-in programs for their day-to-day survival.
Today the term "mission critical" is a victim of scope creep and people trying to inflate their positions.
Programming is no longer an engineering job. It's no longer a form of art. It's this race to the bottom where you have to mindlessly glue together as many libraries as it would take to write as little of your own code as possible, treating said libraries as black boxes.
I'm talking about those cases when people pile 5 layers of abstraction just so they don't have to learn something, but get done with the job a little bit quicker. They don't try to understand neither the inner workings of these layers nor the CPU/memory/storage cost. If it means you write fewer code, it goes into your project. Thus you end up with "desktop apps" that are websites, with all the amazements (/s) of the modern web development, packaged with an insanely complex thing that a web browser is — just so the bullshit unrealistic "business requirements" are met. Or laggy, bloated mobile apps that get updated every week with no discernible changes. These just scream that the people behind them have no clue what they're doing.
Or maybe they know exactly what they are doing, but what they are doing isn't what you think they are doing. I'm pretty sure nobody at Slack regrets using electron.
They're fixing bugs in an app that is 10 screens of lists. How does someone who knows what they're doing make this many bugs this subtle in such an app? I have no idea.
> I'm pretty sure nobody at Slack regrets using electron.
I'm pretty sure nobody at Slack cares. They do whatever their managers tell them to.
What they're doing is building a successful product and company. Code quality is probably not very important to this goal.
You have 1 week.
I'm not big on web technology du jour so despite my years of experience not sure I can... but I bet you a random bootcamp graduate who couldn't tell you what a TCP packet is could do it!
And there's the fact they don't know how TCP works and their solution takes 100x the RAM to do a simple task than a native app apparently isn't stopping similar apps from doing X million AAR...
It's hyperbole, but in the opposite way of "it's just 10 lists".
These programs you see don't exist in a vacuum. The requirements you see before your eyes are the tip of the iceberg.
> what if a business need comes across for a desktop, a website, mobile apps, fully responsive, theme-able, animated.
What if someone wants a baby in a month? It doesn't work like that. No matter how hard you try, it takes 9 months. It's the same with quality software. These arbitrary unrealistic deadlines help nothing.
But I'm sorry, that's a thing! People ask for a baby in a month, get a baby in a month, sure the baby is not great, but it gets them pretty far. Not everyone has the luxury to say no and walk away. Honestly I find that kind of weird gatekeeping in our profession kind of sad.
-
The people who "only know how to slap together components" are starting somewhere. I was privileged enough to have access to technology from a young age and tinker to my hearts content so I ended up with a deeper understanding of things. But there are people who started from nothing, didn't have the opportunity to even tinker had they had the access, they were working on moving forward in life.
Now our field has been democratized to the point people don't need to have had those opportunities to do amazing things, we act like that they do is somehow lesser, even though once we swallow our pride, at the end of the day people don't care that much.
People notice their apps crash, people complain things are slow. But when the chips are on the table, they deal with it very well. The web has gotten slower and slower, and it's usage has gone up and up. The apps have gotten buggier and buggier and the amount of utility they provide has never been higher.
-
Also I thought about pointing out the context is for-profit apps here when talking about people rushing to ship hastily slapped together legos but figured anyone having this conversation would realize that.
In that context money is everything. No point in shipping a formally verified native app if a competitor takes the entire market with their 1 month baby and no one uses it. (and yes sure you can point out the academic satisfaction of it... but academic satisfaction isn't going to pay a mortgage or feed your kids)
You could also say the same thing 30 years ago about people using the C standard library instead of implementing their or strncmp in assembly.
I tend to agree with your comment about "it's a competition." It is why I release a lot of things these days under "do with it what you will. I'm just here for the lulz."
I’d personally be satisfied contributing to the world of software so broadly. That’s why you do open source, making the worlds software better for everyone.
Monetizing something called ‘safe buffer’, or even to the point of pushing for a freebie and a thank you card on social media, seems silly to me (which I don't think OP was doing, only in the replies).
If it was some commercial license for a small Node library, which they had every right to choose, it would have probably died in obscurity anyway. And what good does that do the software world.
Meanwhile getting to say your code is used by Nintendo Switch on your resume, or bragging rights to your nephew or whomever, seems more than enough to me. Part of the hacker ethos.
On the other hand pushing it hard so it becomes a 'thing' would leave a bad taste in my mouth. Although rewarding OSS is something every major company should strive for (In Nintendos case specifically I'd be personally be surprised given what I've heard about Japanese corporate culture, but I'm just speculating here).
But it is indeed a good marketing strategy, at least if the HR and marketing teams were even aware of such things (ie, people who have control of sending out freebies). Which is why having technical leadership throughout the company always helps. Ultimately it will come down to an organizational thing.
Sending out free consoles would just be a marketing gimmick, and could just as well backfire as “you can’t eat a console, do Nintendo really think consoles are the way to support open source maintainers?” etc
Just simply supporting OSS directly, as in real money, is more than enough to quiet these "they should give x freebie".
That is all the mob should be calling for as a standard practice. Not sending some random developer who happened to get popular on Twitter a nintendo.
"Oh, hm, well we don't really want to give away free consoles this time around. And if we don't then it will make us look bad because we did last time. So don't use that code."
As a dev, I don't really want to have to check with 50 other divisions in the company before I use some open sourced stuff. And then get denied because of some unrelated PR event is going on.
But, as soon as you start paying, you have: 1.) All the other open source code they're presumably using possibly in more trivial ways and 2.) As soon as money enters the question it can become a matter of "My library probably saved Nintendo tens of thousands of dollars in development costs and all I got is this lousy console. No wonder people say open source development isn't sustainable." (Whether that was the case here or not.) It might have been a nice gesture but it could easily be taken the wrong way.
But then you might think, for some things anyway, Wait a minute, you're recognising the value you get out of it... and you're valuing it at only ~£300 (or whatever).
I think 'just trying to be nice' could back-fire.
Yeah, that's immediately what my mind went to. If my code was used by someone as major as Nintendo, then I wouldn't be making a fuss. But you can bet that I would have 50 different ways to move that into a discussion during a job interview.
Yeah, sure it would be nice if people sent me free things because they're using my code. However, putting restrictions on my code or making a huge stink about it on social media sounds like a good way for people to not use my code.
If I wanted something back for sure in exchange for my code, then I would license it such that I'm going to get something back or setup some other contract. I thought that's how adulthood worked. If you want something in exchange for your work then you need to set it up ahead of time. If you want to give somebody something then you shouldn't expect anything back. You gave it.
There's plenty of personal gain to be found being an OSS developer (especially in a group setting just outletting creatively with other talented people) without directly making the motivation prizes/money the end goal.
No one is against rewarding OSS developers as much as possible. I'm certainly not and think every successful company using OSS software, aka all of them, should have a wing donating to projects. But I am against watering it all down to some narrative of OSS developers somehow being exploited by commercial companies.
Having companies and individuals supporting him: https://feross.org/thanks/
As well as offering actual support contracts: https://feross.org/support/
Great point. In the current market for devs, the expected value of that is probably worth ~$10,000's+.
A switch is ultimately a mid spec Androidish tablet. I'd imagine embedded system manufacturers would really value him
https://github.com/feross/safe-buffer/blob/master/index.js
It’s a tiny API wrapper in JavaScript for older Node versions. While useful for someone on older Node, it doesn’t really say anything about the author’s embedded system chops.
This should have been mentioned in the original post as it gives some much-needed perspective about the scale of the contribution.
As an adult living in a world with other adults, if I want to get paid for my work, then I'm going to setup that interaction ahead of time.
If I wanted to con people, then maybe I would put something of value out for anyone to take. Then once people take it, I would pressure them for something of value in return.
If I give out a gift and it makes someone want to give me a gift in return, then that's nice. But they aren't required to give me a gift. That's the whole point of giving a gift in the first place. It doesn't setup a compulsory need to reciprocate.
Were I to write code for your company, I bet you wouldn't let me release the code to anyone else (I can see it in your little eyes) and you'd definitely demand to control what I write and how quickly. It's externally motivated. The external motivation I choose is money.
If they start making demands for fixes, enhancements, etc., Then sure, by all means provide your $$$ rates, or encourage them to contribute to the project with their own programming time.
https://github.com/feross/safe-buffer/blob/master/index.js
It is 65 lines of Javascript that's mostly boilerplate. I doubt it saved them significantly more than the cost of manufacturing + shipping a Switch, or that they even used it directly. More likely this was just pulled in as an indirect dependency.
When I worked with some security folks and they'd get vulnerabilities and etc recognition was a big deal. The security researches (or hackers, whatever you wanted to call them) who reached out to us loved getting their name in release notes or wherever they could point to.
It made sense as it was legitimate recognition of some seriously helpful work. Cost the company nothing to put it in there and made some folks super happy.
The response that people should "Use GPL" belies the reality that most companies and individuals avoid GPL libraries like the plague. A full GPL program is a different story of course.
It’s not newsworthy, so we don’t talk about. We only see headlines when someone makes waves by trying to claim the deal was something other than giving the code away.
Honestly, it makes my day to get a PR. It means someone is using the thing :)
I, for one, prefer to open-source my libraries under MIT and see it used rather than using some more restrictive license and having it never end up being used anywhere :). So add me to your list of people being happy their code gets used.
https://daniel.haxx.se/blog/2018/09/17/the-worlds-biggest-cu...
It's a deliberate choice. I'm not surprised that his response is more mind-blowing shock rather than anger.
Edit: And this is somehow controversial! Do tell me more!
GPL your shit people.
I agree it's your choice. I will say, however, that we need to band together as a community. This of course depends on your views on the future of OSS but if you want corporations to also participate and maybe have a chance at a completely open source future, we need to collectively insist on GPL. Doing otherwise minimizes the efforts of those who want more OSS participation from corporations.
I think it would still count as a free and open source software license, and it would allow small and independent developers to use the software without worrying much about the license, while requiring big companies to release the source of the derivative work.
[a]: The LGPL allows proprietary usage, but only when the LGPL library is dynamically linked in. The reason being that if it’s a separate binary file (.so, .dll, etc.), the user can replace it with their own version. If you statically link it (embed it in the program binary), the full GPL kicks in (IIRC).
It felt like Qt was (relatively speaking) all over the place when they were owned by Nokia, but have been in a slow decline of mindshare for years. Of course, that's concurrent with the rise of Electron as the cross-platform app wunderkind.
Plus, from my friends who still do Qt, they're trying to turn it into an Electron-like platfom with Qt Quick and QML and the result isn't exactly the dependable platform that we used to know and love.
I think it would still count as a free and open source software license, and it would allow small and independent developers to use the software without worrying much about the license, while requiring big companies to release the source of the derivative work.
It would not count as free or open source
It goes against freedom 0, and criteria 5 and 6 of the open source definition
As it always resolves to an open source license after a set amount of time + is always free in many other ways.
It's GPL plus an additional permission that noncommercial derivative works don't have to share the source code.
Anyway it's probably not actually a good idea.
As long as as developers are willing to develop something 80% as good or a company open sources something that good, the one with the messy license will never get the same traction.
They certainly could mandate that all new contributions are licensed as GPL2+, not the GPL2-only a lot of it is under. Then, after an eternity, when every bit is now GPL2+ (either by relicensing or rewriting), mandate all new commits are GPL3+. Then the only way to use it would be to rip out the GPL3+ parts (if you want GPL2 terms) or to use the GPL3.
Simple!
Except not really...
The theory I guess is that, even absent a contributor license agreement, contributors to the kernel are effectively contributing to a collective work and that the project as a whole could make changes even if individual contributors did not agree.