Unpopular opinion: i64, int64_t, Int64 and similar types should be named according to their actual meaning, Ring64.
Even better, all programming languages should have a Ring[N] type that provides unit, zero addition and multiplication over a domain of N-bit strings, with the compiler applying proper optimizations when available (and requested).
It IS a ring on most implementations, but there were good flexibility (and portability) reasons behind all behaviours left undefined in C.
Yet this is a good objection... for standard C.
Never trust non-GPL code... 🤣
You are technically right, but i think they SHOULD be rings (and named accordingly). So that programmers would learn from the beginning to live with the clear semantics of rings, always aware of the risk of overflow.
Actually the problem with #GPL and #AGPL is that they are not strong enough to protect and reserve the knowledge that free software expresses to the commons.
Full access to software sources and full right to hack it, just like writings and any other human expression, is the most fundamental human right.
Preventing such right to any human is preventing them to be human, a specie that defines itself as *homo sapiens sapiens*.
It's somewhat funny, but very incorrect.
Even MIT and BSD impose obligations on people builing on licensed code, just fewer than a #copyleft.
Actually, such swallow depiction of free software licenses is quite similar to calling int64_t as "integer". 😅
As for an even stronger copyleft, I wrote the #HackingLicense: http://www.tesio.it/documents/HACK.txt
I must admit that I'm not yet happy with its formulation, but it can give an idea of what I hate in weaker copylefts like the #AGPLv3.
I'm going to remove the "organizations" thing. Making it shorter would be nice but apparently I can't without opening to corporate abuse one way or another.
In any case, if you want to give it a read and show me a way it could advantage big corps, I'll promise I'll study a fix for that.
BUT Google does not use or extend AGPL software. Why?
I'd argue that a strong copyleft is better than a permissive license against steer manpower.
And that against such big corporations not even keeping the software closed source provide an effective protection.
The Hacking License, instead, gives the original authors full (non exclusive) copyright and patent grants on any derived work.
Fine... but why?
I mean, is this a philosophical hate against common good and the commons or something you consider pragmatic, apolitical... such as profit in a capitalist world or something like that?
Even if we do not agree on this matter (mostly because we do not agree), I'd really like to learn your perspective.
Mozart's music is common good.
So is Bethoven's or Vivaldi.
Shakespeare poems are common goods. And Montale's too.
Actually most of human knowledge is common good.
A huge amount of software is common good. I'd argue that most global cpu cycles at any given time this year are running free software that IS common good.
This does not means, in any way, that you shouldn't be paid for creating it if you want to.
So I deduce your is a fundamental mistrust in society, in the communities around you that could benefit from your work if it was available.
To be fair, you might be right on this. There is a huge risk we evolve back to egocentric apes unable to collaborate if not under the rule of few... owners.
As for me, I choose to still hope for the better from our specie.
Anyway... thank for sharing!
I don't.
On the contrary I expect most people to NOT subscribe my ideas, just because I've seen this happen so many times.
I'm really interested in your perspective, mostly because I do not understand it.
Being slaves of a common master (or few common master) is not enough to collaborate.
But in an individualist and materialist perspective, I see it's the best one can hope.
In a way, it's the curse of dimensionality at work.
I'm not sure I understand what you describe as a risk for the smaller company in your example.
Suppose that they actually release their super cool software (not algorithm) as AGPL and a competitor includes it in his own codebase: then they are violating the small company copyright for profit, from a legal perspective a criminal act that would lead them to jail.
As for Google, I know why they don't want to use AGPL code... which to my eyes is a great advantage of such license.
The objection about Vivaldi dying in poverty is a good one, but easily dismissed: the problem is NOT the fact his art is common good, but the fact he lived in an unjust system.
And this is actually a huge problem today too.
BUT people living in an unjust system can fight such system... or not.
I do.
@newt you accept the reign of proprietary software, the culture and the industry it established, and then try to come up with excuses for it. Copyleft rejects it and wants to displace it. The small company shouldn't compete with the large to establish it's own little international monopoly on it's own little obscure product, then whine about how copyleft doesn't help them. It should directly serve the local population like electricians, mechanics or plumbers do. It should create infrastructure and dictate quality standards. Nobody want to do this hard work, it's just easier accept the narrative that copyleft was tried and didn't work, which remains the last line of defense for the established culture. We don't know what a true competition is, in true competition most of us would be yer average plumbers, and none of us wants it.
@Ted @Shamar @duponin
@newt The reason microsoft does not own the world today is copyleft, the fact that its the competitors embraced the same culture instead of rejecting it is the problem, not copyleft. Copyleft will eventually displace them too. Your "I don't give a damn" attitude only helps them.
@Ted @Shamar @duponin
@newt I meant the software world. I'm talking about the industry not some grandiose, all encompassing ideology. The reason microsoft doesn't own the entire industry is GCC. GPL != copyleft, GPL is a tool, that can work or not work. Copyleft is a cultrue. The only thing google owns that is in the realm of unjust abuse of copyright and where licenses matter at all is a couple of platform. If a couple key projects, that only existed thanks to GPL2, embraced the culture and upgraded their tools to GPL3 or AGPL (instead of admitting that they had no clue what GPL2 is even about) this would not have happened. WEB and all of it's standards is a pathology that formed to escape microsoft's ownership of desktop market, and it will eventually implode, when desktop market is reclaimed. I don't know what linux propaganda you talk about, but the only one I'm aware of is "as long as my project is successful I don't give a damn that it's in snake oil industry".
I'm not imposing anything on you, I simply joined the discussion to present my point of view. Your implication that I'm imposing on a public discussion is equivalent of asking me to simply stfu, which I must admit is commonly considered a very strong argument.
@newt every competing operating system for the longest time was built with GCC. How competing could they be if they had to license microsoft's proprietary toolchain? Many hardware designers/manufacturers were lifted of the curse of "but will the software monopolist port their software for my new arch??".
Now of course everyone's favorite llvm came along, with exactly the same ideas of "copyleft doesn't work", "permissive means more freedom" (including freedom to exploit users), and in all this years of claiming technical superiority, the fact that it hasn't driven gcc out of the market is making it more and more clear, that the real reason for its existence is the proprietary forks galore, by nvidia, apple, and others, and if push come to shove with android, google surely as well, as it has already preemptively dropping support for gcc, when the replacement was designed to be almost identical, and not in any way incompatible.
@newt what are you even arguing with? Where did I say GCC took over the desktop market? GCC allowed competing operating systems and architectures to take over alternate markets, embedded, servers, mobile. Whatever competition exist (barely) in desktop market as well owes its existence to GCC. Software product is a fallacy, selling it is exploitation. Only thing you can reasonably sell in our industry is technical service and warranty. Yes the current snake oil industry hinges on marketing, that is not a good thing, or something to strive for.
Sure thing LLVM is in every way technically superior and that is why GCC is still going toe to toe with it after a decade of competition. And omg It's so modular that every language worth a dime has to fork it.
GCC on the other hand apparently is not modular enough where you want it to be, and too modular where you don't want it be. And of course it is impossible to fork GCC to eliminate those glaring flaws that RMS personally demands, cause you know, that's how GPL works. I don't care about the mythology and politics around any of these celebrities, saying that they are preventing anything for GCC is a non-argument. Competition is not about being nice and wonderful and always agreeing with everything, if you think your ideas are better, fork it, if you can't fork it, than you abstract musings are irrelevant.
Reinventing wheels is common in R&D. But marketing R&D before it's ready, trying to influence the public through buzzwords and drama, and deliberately avoiding any sorts of guarantees are characteristics of a snake oil industry.
Let's deconstruct your claim. First, despite GCC having been available since forever, somehow Microsoft has been dominating the desktop OS market since basically its invention. Linux has been around all this time, but somehow it is still as irrelevant as it was always. How did this happen? Well, repeat after me. SOFTWARE IS NOT THE END USER PRODUCT. It's just a small part. To create a product for a user to buy, you need quite a lot of other stuff. This is why we only have two competing desktop operating systems. And I'm using Linux for the most part, so don't think I'm biased.
Now, about LLVM. The main reason for LLVM to have been developed in the first place wasn't the license. A more permissive license is a nice thing, but nevertheless not the most important thing here. The biggest reason was that GCC devs were a bunch of douchebags, RMS included. There was a huge demand for more tight integration of compiler with other tools, but RMS et al were specifically opposed to this. Because then evil corporations would use GCC with their pesky IDEs. Oh well... I mean, it even ended up in GCC-XML becoming a thing.
Another reason was, GCC had (and still has!) its parts tightly intertwined. Frontend somehow pokes into backend and vice versa. LLVM is much more modular in this regard. You can implement your own language on top of LLVM just by compiling it into llvm-ir, and LLVM will do the rest for you. This is still impossible in GCC. Same goes for adding new platform support to backend.
GCC basically made the same error many other projects (and vendors) had, that is they assumed their dominance was gonna last forever. And then BHAM OOPS.