

and not an exponential speed-up (O(2^n) to O(n): exponential to linear)
Note that you can also have an exponential speed-up when going from O(n) (or O(n^2) or other polynomial complexities) to O(log n). Of course that didn’t happen in this case.
and not an exponential speed-up (O(2^n) to O(n): exponential to linear)
Note that you can also have an exponential speed-up when going from O(n) (or O(n^2) or other polynomial complexities) to O(log n). Of course that didn’t happen in this case.
Just because it is technically cross platform doesn’t make something efficient.
If you want performance you’ll surely won’t go with cross platform. The more general something is the less efficient it is.
Even in english this isn’t true, for example dots can appear inside a sentence for multiple reasons (a decimal number, an abbreviation, a quotation, three dots, etc, etc), which would make you split it into more than one piece.
Well, but then you’re basically just pushing the mutability onto the container
That’s the point, when programming with immutable structures you always pass the mutability onto the enclosing structure.
It’s a good strategy at times though. Like say you’re working in a language where strings are immutable and you want a string you can change. You can wrap it in a list along the lines
s=['foo']
and pass references to the list around instead. Then if you gos[0]='bar'
at some point, all the references will now see['bar']
instead.
A list is an antipattern here IMO. Just wrap it in some dedicated object (see e.g. Java’s StringBuilder
).
What you need here is not the stability in memory (i.e. of pointers, which you lose when you recreate an object) but instead just the stability of an identifier (e.g. the index into a list).
FYI there is an open source reimplementation of Flash from scratch called Ruffle that should solve all the security issues that Flash had. It runs on WASM so it’s compatible with modern browsers. The New York Times is using it to bring back some old interactive/animated pages that relied on Flash.
50 years ago people thought everyone would be able to program using BASIC, now you think everyone will be able to program using AI. It seems nothing has changed in 50 years.
High or low level doesn’t matter. Mathematically it just makes more sense to use 0-based indexing https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html
It’s also extremely unlikely that you’d be running a bat script with untrusted arguments on Windows.
It happens in yt-dl, which is where this was first reported https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-hjq6-52gw-2g7p
My laptop has an italian layout keyboard because it was a pain to find a good priced one with the US layout. On windows there’s no way to do the ` and ~ symbols without using Alt combinations and on linux you need to use a weird compose key. Also square brackets require you to press Shift and curly brackets require both Shift and Alt.
TBF everyone in school learn to start counting at 1, then they unlearn that in programming. There are also some objective reasons to use 0-based indexing https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html
If you live in the USA you don’t suffer from the problem it solves because you have ~5 IP v4 addresses per capita (totaling to 41% of all the IP v4 addresses), and likewise many european countries have ~2 per capita (although there are expeptions like Italy and Spain which are a bit under 1 per capita). However many other countries don’t have such luxury, for example in india there’s one for every 36 people, which is obviously not enough and thus they have to either use NAT everywhere or switch to IPv6.
An “exponential drop” would be a drop that follow an exponential curve, but this doesn’t. What you mean is a “drop in the exponent”, which however doesn’t sound as nice.