GTFOH with that. 1-indexed arrays?! You monster.
(Mostly joking… Ok, somewhat joking :P )
How is arrays starting at 1 still a controversial take. Arrays should start at 1 and offsets at 0.
Arrays are address offsets.
Not in languages where you don’t manually handle memory, such as PHP, SQL, Python… Higher-level languages using 0-indexed arrays are letting the abstraction leak.
So what’s 0 do then? I’m okay with wacky indexes (I’ve used something with negative indexes for a end-index shorthand) but 0 has to mean something that’s actually useful. Using the index as the offset into the array seems to be the most useful way to index them.
I’d say the index is actually an offset is a reasoning for explaining why it should start at 1. If index was an index, I’d just start at 1.
I don’t think any one is better than the other, but history chose 0.
That you can choose it in VB is probably the worst option :D
Lua has entered the chat
Writing Lua code that also interacts with C code that uses 0 indexing is an awful experience. Annoys me to this day even though haven’t used it for 2 years
Lua had been banned from the chat
In Lua all arrays are just dictionaries with integer keys, a[0] will work just fine. It’s just that all built-in functions will expect arrays that start with index 1.
Your argument isn’t making me any happier - it just fills me with more rage.
That’s slightly misleading, I think. There are no arrays in Lua, every Lua data structure is a table (sometimes pretending to be something else) and you can have anything as a key as long as it’s not nil. There’s also no integers, Lua only has a single number type which is floating point. This is perfectly valid:
local tbl = {} local f = function() error(":(") end tbl[tbl] = tbl tbl[f] = tbl tbl["tbl"] = tbl print(tbl) -- table: 0x557a907f0f40 print(tbl[tbl], tbl[f], tbl["tbl"]) -- table: 0x557a907f0f40 table: 0x557a907f0f40 table: 0x557a907f0f40 for key,value in pairs(tbl) do print(key, "=", value) end -- tbl = table: 0x557a907f0f40 -- function: 0x557a907edff0 = table: 0x557a907f0f40 -- table: 0x557a907f0f40 = table: 0x557a907f0f40 print(type(1), type(-0.5), type(math.pi), type(math.maxinteger)) -- number number number number
PHP did that same thing. It was a big problem when algorithmic complexity attacks were discovered. It took PHP years to integrate an effective solution that didn’t break everything.
Don’t do my boy Lua dirty like that >:(
I always felt that Lua was a girl
Lua - Portuguese feminine noun for “moon”, coming from the Latin “luna”
Luna - Latin, feminine noun (coincidentally identical to the Italian noun, also feminine)Yup, Lua is a girl.
Luna is also same as the spanish noun, also feminine
Fortran angrily starts typing…
and MATLAB, Visual Basic (with
Option Base 1
), and SQL.
Visual Basic used to let you choose if you wanted to start arrays at 0 or 1. It was an app-wide setting, so that was fun.
I’ve not heard that name in a long time…
It’s how I got into programming, so I’ll always have a soft spot for it. Now it’s over 20 years later and I’m still coding.
didn’t know donny was a forth programmer
He’s got to be in contact with the CEO of my company, this is trade secret theft if not…
I started reading that from the top and got increasingly angry on the way down. That creature is a monster.
Git default branch renamed back from main to master
That shit was INCREDIBLY dumb
It comes from the old records industry.
Also, guys, let me rush to my university to tell them they’re extremely racist to enroll me in a “Master’s” program.in fucking Iran.
That one actually seems plausible, if he ever learns about that whole thing
Would be the most sane thing he’s ever done.
and all the others start with “slave/”
Merge me senpai
(Someone else made it but I can’t find the source)
Haven’t heard of the stack address thing, anyone got a TLDR on the topic?
Pretty sure that it’s something a long the lines of “stack begins high, grows down, while heap behind low grows high” when they meet, it’s a stack overflow
They don’t have to meet, the max stack size is defined at compile time
Dynamic stacks are pretty common in the most popular scripting languages, but considered bad practice from folks who use systems languages
TL;DR: For historical reasons stacks growing down is defined in hardware on some CPUs (notably x86). On other CPUs like some ARM chips for example you (or more likely your compiler’s developer) can technically choose which direction stacks go but not conforming to the historical standard is the choice of a madman.
reverting main back to master
Yeah…this one is sadly on brand
Sadly? Master branch never implied the existence of a slave branch. It was one of the dumbest pieces of woke incursion into tech.
Yes exactly. It’s a reference to the recording industry’s practice of calling the final version of an album the “master” which gets sent for duplication.
That’s just not true. It originally came from Bitkeeper’s terminology, which had a master branch and slave branches.
Not according to pasky, the git contributor who picked the names.
Well, he doesn’t seem so sure about it himself. From the same link:
(But as noted in a separate thread, it is possible it stems from bitkeeper’s master/slave terminology. I hoped to do some historical research but health emergency in my family delayed that.)
He also said:
the impression words form in the reader is more important than their intent
He didn’t intend for the master/slave connotation. He intended for the recording master connotation. Either way, he regrets using the word master and he’s supportive of the change.
In alignment with this, we should not replace the master branch with the main branch, we should replace it with the gold branch.
Every time a PR gets approval and it’s time to merge, I could declare that the code has “gone gold” and I am not doing that right now!
Merged -> gone gold
Deployed -> gone platinum
Gone a week without crashing production -> triple platinum
But why even? There’s no risk to changing it and some risk to keeping it. That’s the reason for the push to change it. Keeping something just because it’s tradition isn’t a good idea outside ceremonies.
It’s the principle of letting uneducated people dictate what words are acceptable to us
What makes you think they’re uneducated?
letting uneducated people
More like overeducated people
overeducated people who can’t see that “master” has multiple meanings.
There is definitely a risk in changing it. Many automation systems that assume there is a master branch needed to be changed. Something that’s trivial yes but changing a perfectly running system is always a potential risk.
Also stuff like tutorials and documentation become outdated.
If they can’t change what’s essentially a variable name without issues then should they be doing the job?
I don’t accept that because everyone’s doing it or “group-think” are valid excuses do jump on a trend. Things like this maybe don’t seem like a big deal for you but for those that hate this culture it’s just one more example of a dumb change being shoved down their throats. This could also be the straw that breaks the camels back.
They have a reason. You just don’t like it.
It was kind of pointless, but at least it made software work with custom default branches.
Yeah agreed. Just another piece of white devs acting like they knew better for everyone.
For this political correctness you get trunk.
NGL, this kind of form of putting the decisions the monkey-in-charge is making in a way experts in a field will understand, is a very good way to showcase the absurdity.
Are there really people capable of understanding this who aren’t capable of understanding, for example, “tariffs increase inflation”?
Am I The only one that sees the tie as yellow in this photo?
NOT AGAIN
I see it as blue
I see sprinkles of orange.
Yes. It’s clearly red.
From this point on, all arrays are reverse-indexed.
♾️-0 ♾️-1 …
Hey now, you know that according to the Bible the biggest number is a million. Anything larger than that including infinity is some of that “woke shit”.
Your array will be 999,999, 999,998, 999,997 …
Halfway to Lua lol
I don’t get why only four of these are jokes
What about stacks grows to higher addresses?
Im unfamiliar with this as well. If you are allocating memory for a stack, why does it matter which direction it populates data? Is this just a convention?
I ask deepseek: Downward-growing stacks** are more common in many architectures (e.g., x86, ARM). This convention originated from early computer architectures and has been carried forward for consistency.
Funny, I can’t remember, , because I did a lot of assembler back in my youth.
Ah thank you so its just a convention.
- Push directly to master, not main
- No command line args, just change the global const and recompile
- No env vars either
- Port numbers only go up to 5280, the number of feet in a mile
- All auth is just a password; tokens are minority developers, not auth, and usernames are identity politics
- No hashes – it’s the gateway drug to fentanyl
- No imports. PROTECT INTERNAL DEVELOPMENT
- Exceptions are now illegal and therefore won’t occur, so no need to check for them
- SOAP/XML APIs only
Exceptions are now illegal and therefore won’t occur, so no need to check for them
Ah, I see you’ve met C++ developers.
No command line args, just change the global const and recompile
Nah, don’t use global variables, magic values everywhere. And don’t use const whatsoever, we need to move fast and break things, we can’t let something immutable stop us
- Port numbers only go up to 5280, the number of feet in a mile
What about internationalization – do the European port numbers go up to the cm or only meter count within a kilometer?
Implying the orange fella has any say in programming language design and general tech conventions
Implying he only makes executive orders about things he has a say in.
You have a point unfortunately.