> The issue isn’t what can be done in PHP, it's what PHP encourages by default:
Lets break this done.
> global state,
PHP is stateless.
> poor encapsulation,
Encapsulation in PHP is mostly consistent with Java.
> inconsistent APIs,
PHP is written in C and an original design decision by those C programmers was to make the APIs consistent with libc.
> and difficult-to-enforce discipline.
Its very easy to enforce. All modern projects would run tools like Pint, Phpcs & Phpcbf to enforce their code standards and preferred style in their CI Pipeline.
> PHP is written in C and an original design decision by those C programmers was to make the APIs consistent with libc.
Old PHP did have some pretty inconsistent naming conventions (or lack of). Which is what I think the GP was referring to.
I’ve not written any PHP in quite a few years but I’ve read that there’s been a concerted effort to address those inconsistencies and the old complaint is now just a relic of a bygone era.
One thing I have learned over the several decades that I’ve been writing software is that literally every language could have a book written about its problems. People often seem to forget that language design is a constant battle of tradeoffs. And because their preferred languages naturally align with their tradeoff preferences, they don’t even realise that their own preferences are deeply flawed for a great many type of scenarios too.
So it really disappoints me when people subscribe to language tribes like it’s their religion.
> literally every language could have a book written about its problems
OK, Elixir's been out for quite a few years now and is used by thousands of people at this point. Find me the "elixir sucks" webpage, which is super easy to find for Go, Python, PHP, Node, Java, and all the rest. And while I'm not a parentheses guy, find the the "Racket Sucks" page while you're at it... The only one I can find, https://www.brinckerhoff.org/blog/2016/04/25/racket-sucks-do..., is a satirical page implying that it will ruin all other languages for you lol. (Hmmm, maybe I should give it another go!)
In short, it is NOT true that all languages are created equal... otherwise everyone would be coding in Assembly, or its close cousin, Brainfuck. ;)
You’re making a strawman argument from a pretty high proverbial horse there ;)
First off: I never said all languages are made equal. Literally the opposite: I said all languages make trade offs.
The fact that languages make trade offs means they’re not equal but rather they’re targeting different requirements.
You referenced Assembly but actually some problems are easier to solve in assembly. In those instances you’ll sprinkle your ASM inside your higher level language like C, Rust, Go, whatever rather than trying to hit everything with the same hammer.
In fact inlining foreign code is a common design pattern in most general purpose languages, eg Python supports CFFI (calling C FFI) for when you reach the limits of what can be done effectively in native Python.
As for Brainfuck, the point of that language is to create an esoteric Turing complete language with the fewest tokens. Readability was very deliberately a tradeoff. So BF is another example of my point.
More generally speaking: a lot of this stuff does just boil down to personal productivity and preferences. Because different people’s brains are wired differently and different people need to solve different types of problems.
You accidentally proved this point when you said “I’m not a parentheses guy” before commenting on Racket.
This is the real crux of language debates. Where you say “PHP sucks” what you actually mean is “I prefer other languages because I solve different problems that aren’t as well suited to PHP”
But being rational like this is hard because bro-programmers love to mock people who aren’t part of their tribe. (This dumb tribalism is probably my biggest pet peeve in tech. People really need to learn to grow the fuck up).
GitLab, Gitea, and Forgejo are applications that can be easily self-hosted. One of those also has a corporation associated with it, but that has minimal effect in this case.
1. When you say 'Our Partners' invest the money - who are they? Are they US entities and/or how often are you and your partners audited? Will you and your partners make those audits public? I think that would be a selling point over the other stable coins.
2. You say that I can _always_ redeem my $1 Glo Dollar for $1 USD again. But if you're buying US Treasuries - only a few can redeem it when they want no? Others will have to wait for the bond to mature to get their money out. What percentage of reserves are kept in cash vs assets?
3. You don't mention how much basic income my $1 USD in your example above will generate. How much _good_ can I expect to generate with my $1?
4. Swapping $1 USD for a unit share of some US Treasuries seems like a simple transaction that would get played out millions of times everyday. Where does the crypto play fit into this?
> Brale initially retains 100% of the earnings on the first $2M of assets backing the Glo Dollar.
While trying to find these answers I noticed this statement at the bottom of your website. That's quite murky and I think you should mention that up front.
Thanks for the great questions! Find answers below, let me know if you have any further questions :-)
1. Our issuing partner is Brale.xyz, a US regulated stablecoin company by Ben Milne, the founder of Dwolla. Brale works with partners on their end to invest in US Treasuries. More info here: https://www.glodollar.org/articles/brale-and-the-glo-foundat...
On audits: we're working with a big 4 auditor on audit readiness. Our goal is to publish audits regularly and be fully transparent in both our operations and treasury holdings. Brale will publish monthly attestations of the assets backing Glo Dollar, and we will have audit rights over those assets on a periodical basis as well.
2. While US Treasuries indeed have a maturity date, treasuries with a maturity date of up to 3 months are considered a "cash equivalent" because their market is so liquid. Because of this, they can easily be exchanged for cash in the event a lot of people want their cash back at once.
3. Glo's per-dollar impact is low at first. As adoption grows, it ramps up. At scale, we expect to lift 1 person out of extreme poverty per $20,000 of Glo Dollar market cap by generating approximately $480 in interest that we can donate to GiveDirectly. We're not there yet, as we need to ramp up market cap beyond $2m first. More info here: https://www.glodollar.org/articles/from-bootstrap-to-high-im...
4. Stablecoins provide actual utility to crypto traders (hence why there are $125B of them in circulation). So our thinking is that we can drive adoption by meeting traders where they are. We also think that Glo Dollar’s philanthropic mission will give it an edge for IRL stablecoin adoption. More on that here: https://www.glodollar.org/articles/vision-and-growth-strateg...
Installing a battery in South Australia did not lead to to a quadrupling of national energy prices. The cost of energy globally has shot up since 2020, and Australia's spot prices are based on the global market.
Energy independence in the form of renewables is now more advantageous than ever. Tethering your economy to global price hikes like this is a vulnerable position to be in.
Australia's spot prices aren't based on the global market.
They are based on the (Australian) national energy market (NEM) which sets price based on supply and demand across South Eastern Australia (WA and NT aren't in the NEM)
It means Binance is running low on USD reserves and is buying more by preventing large USD outflows while continuing to allow USD inflows.
It's worth noting that Binance operates BUSD, a stable coin pegged to USD which according to their website saw a 25% reduction in net asset reserves between Nov 2022 to Dec 2022 (https://www.binance.com/en/busd) - if that trend has continued that may be why they need a short-term supply of USD.
Lets break this done.
> global state,
PHP is stateless.
> poor encapsulation,
Encapsulation in PHP is mostly consistent with Java.
> inconsistent APIs,
PHP is written in C and an original design decision by those C programmers was to make the APIs consistent with libc.
> and difficult-to-enforce discipline.
Its very easy to enforce. All modern projects would run tools like Pint, Phpcs & Phpcbf to enforce their code standards and preferred style in their CI Pipeline.