I am always amazed at the generosity of some people who use free/open-source software.
It definitely makes me want to try and become more supportive to such efforts myself.
I make a (closed-source but completely free/ad-free) minimal macOS app for Hue, and every other day (sometimes a week goes by) I get a lovely price-of-a-coffee-sized donation from someone in the community. And when I ask for their name to include them in a credits or supporters panel, most don't even want me to mention it or credit them.
One time, I struggled to replicate an issue for which I didn't have the necessary hardware (multiple Hue bridges), and the bug reporter simply offered to buy and send me "a bunch of bridges and lights" to make debugging easier. I couldn't accept it, but it's gestures like that, combined with positive feedback from people wanting the project to keep going and succeed, that are such a tremendous motivational driver for working on "free stuff". I had totally underestimated that (coming from the SaaS side).
Whenever I donate something it’s always on condition of anonymity.
Recently I donated my old top-spec race MTB to a bike club, under the condition it was to be gifted to one of the Ukrainian’s who’ve been displaced and now live in our community. Nobody knew I had the bike. Within a few days I got a message back saying there was a teenager that loved racing bikes back in his home country, and can now look forward to the 2023 season with additional financial/logistical support from the club.
I’ll probably bump into them on the local trails and seeing their beaming (and muddy!) smile is worth a thousand times more than publicly being connected to the donation.
I actually have different experience, I spend all my time on projects but see very few donations :) But thank you to all who donate to open source and other projects.
I once got an unsolicited donation that was larger than my lifetime earnings...
The sender didn't reply to messages.
I really wasn't sure what to do. And without a document saying it was a gift from the sender, I had to give half away as taxes, and then there was no possibility of returning it (I wouldn't be able to reclaim the taxes).
Yeah no such luck here ^_^ [1] But I like doing my projects so much that this is not discouraging me to continue. But it does motivate me more when I get donations.
For some jurisdictions like Germany, accepting "donations" - no matter if cash or in goods - is a nightmare tax-wise. Yes, you can just throw up a PayPal, but if some random troll wishes to cause you pain, all it takes is an e-mail to the tax office and they'll fleece and nail you.
Any of us working in an enterprise can probably relate to this similar thing: If I want to purchase a $500 piece of software, that’s a five minute conversation with my manager.
If I wanted to donate $50 to a single person who has developed a critical bit of open source we as a company gas relied on for ten years, it would be a major hassle.
> We don't donate to OSS software which we use, because we're legally not allowed to.
> I routinely send key projects, particularly smaller projects, a request to quote me a commercial license of their project, with the explanation that I would accept a quote of $1,000 and that the commercial license can be their existing OSS license plus an invoice. My books suggest we've spent $3k on this in 2015. My bookkeeper, accountant, and the IRS/NTA are united on this issue: they don't care whether a software license is OSS or not. A $1k invoice is a $1k invoice; as a software company, I have virtually carte blanche to expense any software I think is reasonably required, and I think our OSS is reasonably required.
> I would do this more often if OSS projects made it easier for me to do so. Getting me to pay $1,000 for software is easy; committing me to doing lots of admin work over the course of a week is less easy. Take a look at what e.g. http://sidekiq.org/ , which is an OSS project with a commercial model, does. Two clicks gets me to a credit card form. If I actually used Sidekiq, Mike would have had my credit card on file the day that form went up.
And then you are on vacation and some asshole in legal sues you because you didn't respond in time when a dev had a small problem they could've solved by looking in the source code for 5 minutes but wanted support instead.
Agreed, this is only an example (but as you grow you can have someone look at your email - this is part of why it's a good idea to offer support contracts)
Sure, but even in German companies if you want to purchase a 500€ piece of software there's a procurement process that you can go through.
There's no process for buying a laptop for an open-source dev who's code the business depends on but who is not an employee, so especially in German companies, you don't do that.
If by "you" you mean "the corporation", then no. A software BU doesn't make donations. It can purchase things, which is the point of the quoted comment, but it can't just give money away.
From a corporate accounting perspective, a "purchase" is "we pay money and we get a thing". Sometimes the thing needs to fit a stereotype; "a hardware", "a service", "a contract", but the dance is the same; request a quote, get a quote, place an order, get an invoice, pay the invoice, get a receipt, get confirmation of delivery.
Iff the transaction fits that mold, then it's generally straightforward. If it doesn't, then you need to find someone with the power to override the organisation; in an organisation resistant to internal tampering ("corruption") that can be quite difficult.
Could you elaborate on that? I am not German but a few months ago I contacted a German company because we use their open source products and want to move to their new SaaS model. Instead of being the typical few clicks automatic experience they start to engage in a personal conversation to define the correct price. From the business perspective I couldn’t understand their approach, it surely kills more sales.
This is really common for b2b sales, it gives you both flexibility to negotiate price and terms, especially for more complex/niche products or services.
If you are taking a company to a Saas solution costing XXXXX euros surely it would be worthwhile to spend a couple of hours investigating how you get the best price?
I think this is why US way of business is unique in terms of business and goes beyond Europe or Germany specifically. US (as a multicultural platform) pushes toward the acquisition of the good, BNPL (Buy Now Pay Later) approach. It should be fast and will be faster. There is a lot of criticism about credit debt but US offers a lot of credit, the problem is more about how education and health were inflated that to credit itself. (IMHO). This is not about nationality but context of business.
Mid-2020, when the ARM transition was announced, Apple had a program where they'd send out developer transition kits (a Mac mini with an A14Z), but you had to request one, and actually qualify.
But yeah, it should be in their best interest to reach out directly to the developers of software like curl, zsh, git, Python... Everything they've been shipping as a part of their OS for 20+ years.
A12Z, and you had to justify it and pay for it. And then return it, for which Apple initially offered a token incentive but later ended up effectively waiving the fee with.
Its not that much of a hassle, many open source folks have donation setups these days and some can send you an invoice for support/maintenance services. In my experience it isn't even hard for a company to hire random maintainers as contractors to add features that are needed by the company.
Most maintainers don't want to offer paid support though. It comes with expectations of support. I just want to hand someone $50 for many hours of work already spent. But that's tricky.
I expect that for a lot of projects/people it wouldn't be hard to send money. Either the project already accepts donations and sends those to maintainers, the person already has donation systems setup, or the person doesn't need the money and ask you to send it to a FOSS charity (like Software Freedom Conservancy) instead, or you send the person and email and they go sure, here is my PayPal/etc account number for transfers. Personally, I'd be very happy with money for paid support though, in my experience its pretty hard to extract money from most open source projects, basically no-one wants to give you cash because the project already meets their needs.
For 20 years they’ve gotten it for free. Why start paying now? Apple is not a friend to the little guy, quite the opposite.
Remember, Steve Jobs was good friends with Larry Ellison who famously said that open source is there to be exploited. These guys all think the same way.
This is missing the point and focusing on the 1st paragraph of the article. 2nd paragraph:
> Yet, there are many curl users on the different Apple platforms and sometimes these users run into issues that are unique to those platforms and are challenging to address without direct access to such.
In other words, it's to Apple's own detriment if the author of curl doesn't have access to Apple hardware.
curl is offered for free, and the consequence of that is the author of curl is under no obligation to support Apple platforms or shell out money for Apple hardware.
First sentence of the article: "A generous member of the wider curl community stepped up and donated an unused Mac mini m1 model to me to be used for curl development."
Why is it a "legitimate" criticism. That's just you opinion. Doesn't make it any more (or less) valid than the question I'm posing; why is the developer entitled to Apple providing hardware for testing? Do people purchase Macs purely for cURL - I doubt it. It's merely a convenient tool that is not encumbered by a GNU license. It sounds to me more like the typical outpourings of the oft-entitled developers. You develop software for MacOS, do you expect a free Mac? The cURL license permits the form of re-distribution that apple are employing, does it not? Are other hardware manufacturers expected to donate hardware? Does the developer have reference machines from Intel or AMD?
Edit - Looking at https://opencollective.com/curl, the project received $64,000 in donations, and the developer is employed, full-time, by a company to work on cURL. You'd have slightly more of a point if this were not the case, however as it stands it looks like a whine about Apple.
> Yet, there are many curl users on the different Apple platforms and sometimes these users run into issues that are unique to those platforms and are challenging to address without direct access to such.
In other words, it's to Apple's own detriment if the author of curl doesn't have access to Apple hardware.
curl is offered for free, and the consequence of that is the author of curl is under no obligation to support Apple platforms or shell out money for Apple hardware.
> You develop software for MacOS, do you expect a free Mac?
This is a straw man. Apple does not ship my software with macOS, unlike curl. Also, I make money selling Mac software, unlike curl.
Same goes for Apache Cordova a framework for building mobile apps for Android and iOS. Apple knows a big chunk of apps in the App Store are using it.
You can only use it for iOS apps if you have Apple hardware. I am one of the maintainers and thankfully I got a Mac Mini donated as well when I lost my company Mac.
IIRC, at least around the time Apple Silicon was introduced, they were running some kind of taskforce to make code contributions to key open source projects to ensure they were compatible.
Did they? They provided pre-M1 mac minis (aka DTK), but I don't know that they actively contributed code. I don't remember seeing code from them for Firefox, at least (I was involved in getting Firefox to work on Apple Silicon)
Hmmm I believe Apple must have datacenter full of m1 powered machines for their CI/CD farm. Sending individual devices to individual developers working for n projects might be complicated, however offering a CI/CD environment to projects with ssh access to test virtual machines shouldn't be too complicated for them provided they were ideologically willing to help and cooperate the open source world.
Assuming they do proper due diligence and third party tracking just search the database for the ten libraries they use in the most places themselves ... and yes, that will need some time to coordinate, for identifying the right people in the open source project. But as they certainly depend on quite a few good relations is also in their interest to deal with security issues.
Curl ships preinstalled on macOS, supporting such preinstalled tools would be a good start (I would hope that Apple has a list somewhere of all the OSS tools they are shipping with macOS).
Yeah my guess is they just don’t have a process for this. Sure, sending a MacBook to the devs of curl probably makes sense and costs virtually nothing. But everyone writing open source is going to want one next so you need some full process to approve requests.
They probably don't want to set up a precedent and that would be against the true spirit of open source - to get people writing software for free, so big corporations can save on R&D and employment costs, while making a ton of money.
Apple has proprietary, in-house solutions for these tasks. If I were an employee working on one of those, I wouldn't like if a different part of the company provided support to or funding for an alternative to the thing I'm working on.
Then they should ship those solutions with their products and provide support for it to end users instead of pawning them off to the curl team for support.
But it's a big company, so presumably some team used curl for some project, leaked that in an error message, and whoever runs the Apple Support social media account apparently didn't know about that after someone contacted them about the error message. Or something like that, it's hard to figure out what was going on without more context.
curl is shipped (by Apple) as a command line tool and libs to link against on stock MacOS (unless Xcode installs it these days, but I don't think so?).
I’d like to post the Apple GitHub account where you can find quite a few repositories Apple is developing open source for not only Apple platforms. They even just announced that the new Swift native Foundation framework will be completely open source. I think that’s pretty significant.
Look, I happily make my living on Apple's platforms, and I like their tech, but their "open source" stuff is a farce. They maintain private forks of pretty much everything for Darwin. Previous discussion here: https://news.ycombinator.com/item?id=29494808
I'm surprised the performance stats weren't more dramatic. Is the compilation not taking advantage of multiple cores? Or for this task is the m1 really do comparable to an Intel 3rd gen cpu?
M1 is particularly spectacular when compared to other chips with similar thermal characteristics. i7-3770K has TDP of 77 W, without a GPU, so it has 7-8 times the power budget of M1 for the CPU.
In raw performance, M1 cannot match workstation-class CPUs. Since Apple was almost exclusively offering only ultra-mobile Intel chips with horribly dated GPUs, M1 was a giant leap in their offering, but in the desktop PC market there are more powerful chips available. And even some old ones can perform quite well.
I don't even think it's as cut and dry as all that.
I have an M2 Macbook air (IE; fanless little thing) but it completely desicrates the memory of its predecessor (Precision 5520 w/ Xeon E3-1505m v6) which has a 45W TDP.. (IE. double and a bit).
In single core it continues to readily beat my Theadripper 3970x workstation which has a 280W TDP... (more than 12x the TDP of the M2, though it definitely beats it in multi-core...)
I think something else is at play here. Be it a terrible filesystem or (as mentioned in another comment: the use of efficiency cores for compilation).
New Ryzen CPUs behave extremely interestingly when you manually apply TDP limits. As I mentioned in a sibling post in this thread, my 7950X is TDP limited to 105 watts (from the 170 watts factory default), and it loses around 8%-10% performance under perfectly multithreaded loads (and nothing if only e.g. half the cores or less are utilised). It is also possible to limit it to 65 watts, at which you lose around 20% or so but that's still very-very fast. At 105 watts it's around as fast as an M1 Ultra, which draws ~ 60 watts if all cores are used. Significant difference, but not something that's a very big problem in workstations. The 7950X is also competitive when limited to 65 watts -- it's barely underperforms the M1 Ultra.
I don't think it's an efficiency core thing. On ~the same machine (I have a smaller SSD, but otherwise identical):
> time make -j
real 0m8.716s
user 0m29.786s
sys 0m15.102s
> time taskpolicy -c background make -j
real 0m42.196s
user 1m13.041s
sys 0m30.957s
(The latter command forces use of the efficiency cores, the former is allowed use everything)
One thing that _is_ notable is that it isn't really managing great parallelism (particularly visible in the efficiency core one).
(Only looking at the actual build, as IME autoconf has remained reassuringly slow for the last 20 years, in defiance of all progress in CPUs, so I'm not at all surprised by that one...)
It’s also a decade older and benchmarks at half the performance.
I’d bet that 90% of the issue is that make, /bin/sh, and autotools all use fork() on macOS instead of posix_spawn() (I think that’s still the case…), and fork is slow on macOS. But not quite slow enough to get all that fixed by default.
In an Apple laptop, the real killer is being able to work for more than 5 minutes without thermal throttling. The i9 in a Macbook pro is plenty fast for 2 minutes, then slows to a crawl because the laptop was designed to be slim, not fast
> M1 is particularly spectacular when compared to other chips with similar thermal characteristics. i7-3770K has TDP of 77 W, without a GPU, so it has 7-8 times the power budget of M1 for the CPU.
Performance doesn't scale linearly with TDP, and that's always been the case. Take any laptop vs desktop CPU, and you'd see the same ratios at play.
Its even less meaningful in this particular case as the M1 has a working temperature of ~100°C, whereas the intel targets ~65°C.
Nonetheless, the M1 will most definitely be drawing much less power, its essentially an Atom processor after all. Its just gonna be hard to really put a number on it - even if you could read out the consumption from the BIOS, as they're doing things differently (integrated GPU and SSD controller for the apple silicone chips etc)
Yes, i'm sure. It would've taken you about 20 seconds to find it out yourself too, as the Intel 3770K has a published spreadsheet which clearly states the working temperature. The M1 doesn't, but there are enough unofficial sources to confirm the 100°C too. Including LTTs own video.
Its a quiet old model, and consumer CPUs of that generation where generally targeting ~60-70°C. Nowadays they're all going for 95-100°C, wherever its Intel, AMD or Apple
Both of your statements are true, but Tjunction isn't the target operating temperature. Tjunction is the maximum operating temperature after which damage of the chip becomes likely.
For macOS there is a `taskpolicy` command to set the usage of efficiency and high performance cores. I'd expect that it's using high performance cores by default but you can force it by running `taskpolicy -c utility <program>`.
You can also force it to be run on efficiency cores by running `taskpolicy -c background <program>`
Without knowing specifics, it's difficult to say... could be different compilers (clang on MacOS, maybe gcc on Linux?), linkers, file system caches could be warm on one, etc.
There could be different code being generated (#ifdefs, etc) per platform and architecture.
Having said that though, as someone who got an M1 MBP (10-core) a few months ago, I also found that CPU-wise (ignoring memory/cache bandwidth, which is much faster on the Mac), it wasn't really any faster than a 2012-era dual-socket 4 core Xeon at 3.3 Ghz for compiling and raytracing (the latter doing lots of FP calculations which I'd expect the M1 to compute OOO really well with how wide it is) when the code was CPU-bound. The power usage is very different though obviously. Hyperthreading also helped the Xeon quite a bit.
Battery life is very impressive though, and haven't really heard the fans yet.
Note that clang's arm64 backend is faster, presumably because it has less optimizations than the x86-64 one. So even comparing clang on an intel mac and clang on arm64 mac would be skewed. You'd want to cross-compile on one of them for a better comparison relevant to CPU performance. There is still value on comparing native compilation, though.
A few years ago my X220t with i7 CPU was finally tortured beyond endurance, so I went around and checked how I could get a decent laptop for compiling stuff. At that point, I was mostly single threaded CPU bound. It turns out that i7 had still a very good performance comparable to most laptops.
E.g. thinkwiki says its an i7-2640M , in an X220T laptop from 2011. Passmark gives it a single threaded rating of 1516. The current best CPU I can see in a thinkpad with a quick lookup is a i7-1185G7, with a single threaded rating of 2843. That's almost double, but we're comparing with a system of 12 years ago.
Laptops have become a lot more power efficient, GPUs, multi core USB and WIFI are better. But the i386 days where you could more than double your CPU performance after 1.5 years are clearly over. That x220, if upgraded with SSD and 16GB ram and a new battery still does quite well today, and I paid about €500 for it over its whole lifetime.
It always depends on the use case. The casual tests I did for my own use case found a M1 Pro with 10 cores to be comparable to a Ryzen 3700X, which is pretty impressive for a machine that basically makes zero noise when it's not under sustained load.
I’ve seen some benchmarks that put the M1 Pro about on par with a desktop 5700X. Probably depends on the task.
That performance level is maintained when the laptop is unplugged too, which is hard to find in a laptop. Most of them will throttle themselves pretty hard the moment you’re no longer tethered to a wall because otherwise they’ll burn through their batteries in a flash.
From what I understand, most of the dramatic performance difference mentionned in benchmarks where comparing laptops/tinyformfactor machines on intel and m1 where throttling is quickly an issue. The intel Macbook pros where known to throttle very quickly.
I understand from the CPU model that the main development machine of the author is desktop with decent ventilation for the hot and power hungry i7 CPU, which makes a huge difference.
I had an M1 and I know my current workstation is faster, but I didn't expect it to be that much faster. I have a 7950X TDP-limited to 105 watts (it hits it only when all cores are utilised), and it's 3-4x faster in curl compilation than what's on the site.
Exactly. You'll note the author didn't test against, say, a modern intel or ryzen system. My guess is that he'd get similarly lackluster results, probably because the makefiles are ass.
If you want your employer to contribute, check your expense policy. Most companies have a threshold below which you don't need a receipt or even explicit approval. At my last company, that was $50 so I convinced Daniel (of curl) to add a $25/month level specifically to take advantage of it. :)
I have no relationship with Apple, but from my experience, the usual way big corp contributes to open source is to have their engineers sending patches, instead of sponsoring money/hardware directly.
Apple gave me a G4 once when I was contributing to Darwin but, that was a long time ago and the culture may have changed. However I suspect if you had an existing relationship with an engineer there, they'd throw some surplus hardware your way.
> Their engineers are prohibited from contributing back to the ecosystem
Things have changed and this is no longer true. A significant number of projects receive frequent contributions from Apple engineers. The majority of active committers on Apache Cassandra are at Apple for example, contributing major features such as a new transactional system[1].
My team actively contributes to Spinnaker, and we're currently hiring someone with a focus on open-source contributions, quoting the second "key qualification" in the job listing[2]: "Interest in developing with open source software and contributing back to the community".
> Interest in developing with open source software and contributing back to the community
That's a bit odd phrasing, that has guilt undertone. Individuals are unlikely using open source for personal financial gain, but somehow this sounds like they actually "owe" something, kind of shifting the blame from corporations that are actually making money with open source software and often not paying contributors anything.
Also hiring someone to contribute to open source, makes that person likely represent interest of the corporation rather than the project they will contribute to and these are not always aligned. It also takes time of maintainers to actually review and gauge value and viability of the contribution rather than actually spending time on development of the project.
I think much better idea to "contribute back" is to actually pay the existing contributors rather than having own pet one.
I didn't write the job listing, but I understand it as being interested in OSS contributions, maybe already being a contributor to some projects.
> hiring someone to contribute to open source, makes that person likely represent interest of the corporation
That's true, and this is why my team is active within the project by having a member on the Technical Oversight Committee and several others in SIGs. The point is not to push our own agenda, we have made a lot of changes that are mainly relevant to our use cases and that don't necessarily make sense to upstream. Whenever we work on features that we know others would benefit from, we engage with the project's relevant committees and make the changes requested in pull request reviews.
To be clear, I don't speak for my employer and this is only my own experience. Not all teams are like this.
> I think much better idea to "contribute back" is to actually pay the existing contributors rather than having own pet one.
Contributing features and supporting existing contributors in other ways are not incompatible. We have a whole team working on this code base full time, and so do other companies. Of course all of these people collaborate. This project is not really run by volunteers but mostly receives contributions from a number of companies (originally created at Netflix, large parts came from Google, etc).
I assume this kind of small donation is usually in return for some favor. Ie. Can you help debug and fix this bug. It looks like about 2 days work, so we'll donate $2000.
Apple contribute a lot to open source, and I think your last statement of them being a negative force is kind of ridiculous given some of the work that heavily depended on their engineering.
Firstly, they have a site that lists some of their work https://opensource.apple.com/ but going further, projects like Chrome wouldn’t exist without Safari having forked KHTML and then massively worked on WebKit. Clang + LLVM would likely not exist in their current form either (clang started at Apple, llvm was earlier but a lot of early push came from them). Which in turn would have changed the landscape today regarding other languages like Rust.
Those are just two of the major ones. There are other major ones like OpenCL that come to mind too, let alone other projects that get code contributions (OBS, Blender, etc…)
They probably don’t contribute as much as they could , in an ideal world, but the foundation of your comment is untrue.
The 10 year old post says they added it shortly after. Plenty of companies small and big forget the Openstreetmap attribution. Apple these days has a full-time team of employees working on improving OSM data, with dedicated public contact person.
They declined to hire the homebrew guy because he sucked at whiteboarding. Apple is terrible for FOSS. I like their phones but I’d never write for them or use/support their machines.
Since the author mentions there are many users of curl on Apple platforms, there should be a pool of engineers from which a volunteer could be found to help out.
The author didn't mention reaching out to Apple for help? My opinion is if Apple documentation call out the use of curl as part of a workflow or enabling step, or actually as part of a product, then there is a moral duty to help out (not a legal or license duty).
I would prefer to see the big tech companies contribute to a foundation who could redistribute funds to key open source groups. A credit for a cloud instance of the machine would be sufficient in most cases. It would also remove undue influence of one vendor over another. Maybe such a thing exists, and I would welcome if someone pointed it out.
> then there is a moral duty to help out (not a legal or license duty).
May I invite you to descend off that hobby horse for a moment ?
Let us perhaps replace the word "Apple" with a variable parameter, say, $VERY_LARGE_CORPORATION
Lets say you turn up at said $VERY_LARGE_CORPORATION and start talking to them about something wishy-washy, intangible and wholly subjective such as a "moral duty".
You will be laughed out of the room.
Once a company grows to a size where employees are measured in the tens or hundreds of thousands then it is simply impossible to get involved in edge-cases and subjective matters. Everything has to be defined and measurable because otherwise the whole caboodle descends into utter chaos very quickly.
If you work somewhere that you feel that talking about a "moral duty" would be laughed out of a room, please take a moment to consider whether you want to continue toiling for that organization.
Look at the page for curl.se: Fastly is a sponsor. Look at sqlite's page: Bloomberg is a sponsor. Look at openssls page: nginx, Shiguredo, Activision, and Microsoft are sponsors.
All of those companies use all of those tools. Where js the indignation over them only supporting one? I posit that there either is no moral duty as supposed, or its been fulfilled by the single sponsorship. In which case Apple's open-source contributions have paid over their debt multiple times over.
> Where js the indignation over them only supporting one
Most of those companies sponsor many projects.
> I posit that there either is no moral duty as supposed, or its been fulfilled by the single sponsorship
Maybe but the issue in OP is that Apple has specific hardware requirements and various OSS developers are struggling to support M1 chips without paying out of pocket to support them. Whether it's moral or not, there is definitely a logistics issue between Apple and the very real and very important OSS communities.
Whilst I have heard of B Corporation, I will admit I don't know a great deal about it/them.
However a brief look round their website suggests to me that what they do is basically structured ESG (Environmental, Social and Governance).
ESG is somewhat different to what we are talking about here. ESG has become a hot-topic in the corporate world, especially for listed companies where investors can now screen for companies based on ESG metrics.
Over-simplified definition of ESG is treating your staff well (working conditions etc), treating your immediate community well (not polluting rivers etc) and contributing to good causes through corporate philanthropy.
The whole point is ESG is about how corporations interact with the humans in their operational environment.
BUT You cannot extrapolate ESG to open-source software, because ultimately, if you look at it through the corporate eye, software is software. And the corporate eye looks at software through the legal (licensing) lens, because that gives them something tangible and measurable to work with, which is the preferred modus-operandi of the corporate mind.
Therefore if a piece of software is openly published with an extremely permissive license then you cannot blame the corporation for taking the path of least resistance (i.e. using it inline with the written terms of the license, which, depending on the license wording, could be little more than ensuring a credit is written in the correct places).
Again, this comes down to the problem with scale. If you have tens of thousands of employees, software licensing is difficult, and if you had to "do deals" for each and every piece of open-source software then it would very quickly become unmanageable.
Equally, a typical corporation with thousands of employees, could easily use thousands of pieces of open-source software. Because there is no price-tag on open-source software, you would then be in a position of having to engage in lengthly discussions that involve multiple departments in order to agree on what to pay each and every open-source developer. It all becomes very messy very quickly.
Don't get me wrong, I see where you are coming from on this.
But to be perfectly honest, OSS developers are not entirely without blame here.
Sitting there, releasing code on an overly permissive license and then wondering why nobody is paying you .... it's sort of a case of dream life meeting harsh reality, really.
OSS developers live in the wishy-washy world of subjective views and "moral duty".
Corporations need standardisation and clarity because otherwise they descend into chaos.
The easiest way to do that is through less-permissive licenses that have a clear requirement for remuneration.
Otherwise, if you start talking about "donations" or anything else, then you start walking into that subjective ground again. And especially in terms of "donations", every man and his dog thinks corporates are "rich" and can afford to donate to their cause. So your request for "donations" will be lumped in the in-box along with everyone else's.
Software is a lot more than software. Here is why open source should be part of the ESG calculations; because a random person from Nebraska maintains a critical dependency of some part of your stack and could get bored or worse.
Well, ignore "moral duty", it's just not a notion expressible in corp-speak.
Take "good PR"; it's readily understandable. Why won't Apple, or any other company that won't mind spending $2k on good PR among the IT crowd, pick up the lead? Any PR department worth their free lattes should.
I agree with your assessment of the current state of things, but we shouldn't just accept that as the only option.
Is it really too much to expect that the most senior engineers in a company could carve off a small portion of the marketing budget for "community good-will" and make small donations of platform credits (which cost close to zero) or cash?
If each of the $100B+ tech companies put just $10M into open source with a bit of care, I wager they would make the money back in developer job satisfaction and evangelism alone.
> I would prefer to see the big tech companies contribute to a foundation who could redistribute funds to key open source groups.
You mean like the Linux Foundation? Or the Cloud Native Computing Foundation? Or the Rust Foundation? Or the Python Software Foundation? Or the Free Software Foundation? Or the Software Freedom Conservancy? Or the Mozilla Corporation?
Why would Apple do anything? They're getting it for free while contributing nothing. It's what you should expect when developing permissively licensed software.
Apple do contribute to some open source projects, by employing developers and also being actively involved. IRRC clang + llvm for example.
There are global enterprises which (internally) explicitly forbid any empolyees to contribute to open source code used to develop their product (tools, IDEs) and even used in their product (The Linux kernel for example).
That said, Apple providing Daniel / the Curl project with a machine should be a no-brainer.
>That said, Apple providing Daniel / the Curl project with a machine should be a no-brainer.
The problem with that is where do you stop ?
How many OSS projects are there ? Where do you draw the line on who gets a free machine ? Then we get into the question of whether it's just the project maintainers or any contributor ? And if the contributors, then how many LoC do they need to contribute before they get a free machine ? If Bob just submits a PR to bump a version number, does he get a free machine ?
Giving a free machine to any Tom, Dick or Harry who has ever published a piece of OSS code is simply not a serious proposition.
Here's a solid proposal. One machine per project. Project defined as a source tarball/repo used when building the OS. So all the stuff that comes from FreeBSD base counts as one project, sorry developer(s) of /usr/bin/cal, you'll have to fight for access with the rest of the FreeBSD team.
Exception policies for shenanigans.
It's not that hard to share a mac among a developer team, so one mac per project is a good start. There's natural downward pressure on the number of upstream projects used, so one for each of those is a good start. If you also make it request based rather than reaching out to send them, the capex won't be too bad; some upstreams won't be interested anyway.
If I were Tim Apple and wanted to donate a machine to particular projects; anonymously through an engineer or lawyer is exactly how I’d do it. Having it be known that Apple is a hardass and gives nothing helps keep the noise down.
> Apple has shipped and used curl in their products for twenty years but they never assist, help or otherwise contribute to the development. They also don’t sponsor us in any way, like with hardware.
Do they have an obligation to? Even a moral one? Honestly I don't think (I hope!) Apple actually uses curl in their products (probably a good thing). It's just provided as a convenience to developers who might be used to it.
I got curious about Apple's use of Curl and Googled it. One of the top hits was another blog post complaining about Apple not donating Macs:
I think you could replace 99% of the uses of Curl (download one file via HTTPS) with like 100 lines of Python or Rust or Go. It's not critical infrastructure in the same way that OpenSSL or LLVM or WebKit are.
I don't think they have a moral obligation to, necessarily. But in exchange for $1000 of hardware (at retail price, mind) they would easily get >>$1000 of value for them and their customers.
It doesn't make sense not to do it, if the corporation is a single rational hive mind. Of course, it isn't. A corporation is a collection of individuals, each operating with different goals and limited information.
Ok maybe "critical" doesn't convey what I mean. What I mean is it's not something that would be difficult to replace.
It's like... you might use your phone's timer app all the time. But if it suddenly started nagging you for donations all the time you aren't going to donate; you'd just switch to a different timer app. It isn't uniquely valuable.
"Fetch files over HTTP/S" is easy to replace, but lib/curl is a lot more than that, both in protocols and in the endless "fun" edge cases that pop up in the wild west that is the internet.
>it's not something that would be difficult to replace
That's very naive. It's just not something that hard to imagine to replicate. Why do you think a 26 year old project exists, if it's something that could be replaced by a 100 lines something? Is the author stupid, or does he just include a lot of cruft and boilerplate? Are Apple and all the other users wrong?
Because it's useful and it works? Also we didn't have as many HTTP implementations available in the past.
How old do you think `cat` is? Does that mean it would be hard to replace?
> Is the author stupid, or does he just include a lot of cruft and boilerplate?
I never suggested that. Curl had it's own HTTP implementation. A replacement would obviously not do that. Also curl supports a gazillion protocols that almost nobody uses.
I think this is one of these "not built here" discussions. It's very easy to underestimate the number of edge-cases to support especially in the case of network transfer. You start implementing your own, then you've got to handle non standard certificates, 300 redirects, temporary failures, backoff strategies, optimizing chunk size, handling proxy calls, etc. Using a standard library makes sense.
It's used for downloading files (and occasionally uploading them) over HTTP(S). It has plenty of other features but that's what it's used for 99% of the time.
Right... and they use it for downloading files over HTTP(S).
Also smart phones, smart watches and TVs generally don't use libcurl for that. Android, iOS and WebOS have their own HTTP stacks. I don't know about cars or consoles.
You seem fixated on "downloading files over HTTP(S)" and are missing the point.
Nearly every videogame for instance use libcurl as their HTTP stack. You know why? Because it's the best HTTP library for C/C++.
If you have a C/C++ application doing HTTP traffic it's likely using cURL. Or, I dunno, you could look at this page to find out: https://curl.se/docs/companies.html
So the Curl Project in GH has 9751 issues closed. You are talking about 100 lines of Python or Rust/Go. That claim is kind of funny given the amount of edge cases HTTP requests come across and Curl having solved them. As a web dev we use frequently Curl for Downloading file, post request, follow redirects, check HTTP status. There are countless other usage of Curl apart from File downloading as you are repeating.
I make a (closed-source but completely free/ad-free) minimal macOS app for Hue, and every other day (sometimes a week goes by) I get a lovely price-of-a-coffee-sized donation from someone in the community. And when I ask for their name to include them in a credits or supporters panel, most don't even want me to mention it or credit them.
One time, I struggled to replicate an issue for which I didn't have the necessary hardware (multiple Hue bridges), and the bug reporter simply offered to buy and send me "a bunch of bridges and lights" to make debugging easier. I couldn't accept it, but it's gestures like that, combined with positive feedback from people wanting the project to keep going and succeed, that are such a tremendous motivational driver for working on "free stuff". I had totally underestimated that (coming from the SaaS side).