That’s because you use English, a language where ordinals traditionally begin at one.
That’s because you use English, a language where ordinals traditionally begin at one.
My argument is purely pedantic. Pedantry is the lifeblood of programmer “humour”.
I’m not arguing that we should adopt zero-based numberingin real-life human applications. I am arguing that in zero-based numbering, the label “zeroth” refers to the same ordinal as “first” in one-based numbering. I am poking fun at the conversion between human one-based numbering and computers’ zero-based numbering. That is why I am saying it should be called zeroth()
; because human language should adapt to match the zero-based numbering their tools use. Whether I actually mean what I say—well, I leave that up to you.
It does not matter why indexes start from zero in computing. The memory offset argument is only salient if you are using it as an argument for why computers should use zero-based numbering. It is not an argument against the properties of zero-based numbering itself.
Zero-based indexing redefines the meaning of the labels “first”, “second”, “third”, and so on. It adds a new label, “zeroth”, which has the same ordinal value as “first” in one-based indexing. The word “first” does not mean “the element with the lowest index” in zero-based indexing.
If you are using a zero-based numbering system, you would absolutely say that array[2]
is the final element in the array, that element having the ordinal label “second”, and yet the length of the array is 3 (cardinal). There is no fundamental connection between the ordinal labels “zeroth”, “first”, “second”, and “third” and the cardinal numbers 0, 1, 2, and 3. The similarities are purely an artefact of human language, which is arbitrary anyway. You can make an equally mathematically valid ordinal numbering system that assigns “third” to the element with the smallest index, “fourth” to the next-smallest, and so on. That ordinal numbering system is mathematically coherent and valid, but you’re just causing trouble for yourself when it comes time to convert those ordinals (such as array indexes) into cardinals (such as memory locations or lengths of fencing to buy).
You can make an argument for why one-based numbering is more convenient and easier to use, but you cannot use the notion that zero-based numbering doesn’t make sense given the assumed context of one-based numbering as an argument for why zero-based numbering is invalid.
I encourage you read up what is meant by “zero based numbering” because you and everyone else who has replied to me has tried to use “but that’s not how it works in one-based numbering” as an explanation for why I’m wrong. This is as nonsensical of an argument as trying to say i (the imaginary unit) is not a number because it’s not on the number line. It’s only not a number in the domain of the real numbers. Similarly, zero-based numbering is only nonsensical in the context of one-based indexing.
It does not matter why indexes start from zero. The memory offset argument is only salient if you are using it as an argument for why computers should use zero-based numbering.
Okay, I will admit, you got me there. I did confuse indexing with numbering. From now on I will use the term “numbering” instead.
It is entirely how ordinal numbers work in zero-based numbering. There is no “right way” for ordinal numbers to work. You can create a valid ordinal numbering system starting from any integer, or just some other ordered list. You cannot assume one-based numbering is “correct” and use it as an argument against numbering beginning from any other number.
I encourage you read up what is meant by “zero based numbering” because you and everyone else who has replied to me has tried to use “but that’s not how it works in one-based numbering” as an explanation for why I’m wrong. This is as nonsensical of an argument as trying to say i (the imaginary unit) is not a number because it’s not on the number line. It’s only not a number in the domain of the real numbers. Similarly, zero-based numbering is only nonsensical in the context of one-based indexing.
Zero-based numbering would number “foo” as the zeroth element, “bar” as the first element, and “baz” as the second element. “zeroth”, “first”, and “second” are labels representing ordinals. Your list has a length of 3 (which is a cardinal quantity unrelated to ordinals).
Although, I would like to point out, it is perfectly valid to construct an ordinal labelling system that assigns “fifth” to the element with the lowest index, “sixth” to the next, and so on. That system is mathematically coherent but it is just troublesome to when it comes time to convert ordinal numbers (such as the index of the last fence-post) to cardinal numbers (such as the length of fence to buy).
But this is now getting into the weeds of pure mathematics and most people here are engineers.
That’s because the word “first” in first()
uses one-based indexing. In true programmer fashion it would have been called zeroth()
but that is wholly unintuitive to most humans.
I maintain that the element with the lowest index is called the “zeroth” element in zero-based indexing and “first” in one-based indexing. The element with index N is the Nth element.
Bullshit.
Every programmer knows that 'A'
in ['A', 'B', 'C', 'D']
would be the 0th item; the first item is 'B'
Rulers measure cardinal quantities and not ordinal ones. There is no cardinal numbering scheme that starts at 1, all of them “start” at 0. For ordinal numbering schemes, the symbols are arbitrary anyway and you can start with whatever you want. It’s equally valid to start with 1, 0, -1, A, or “aardvark”. The only benefit to picking 1 as the start is to make it easier to count with your fingers while picking 0 lets you easily convert an ordinal quantity to a cardinal one.
Ubuntu Server, Debian, or Rocky Linux will save you a lot of headaches.
Most software is designed with these major distros in mind and using something more obscure will just cause problems later on when you realise that there are no guides written for it by the software vendor. Fixing broken software gets old really fast especially when it causes your stuff to break when you’re actually trying to use it.
I have a script running that uses the Namecheap API to automatically get wildcard certs from Let’s Encrypt. I didn’t pay a dime for this. Did something change?
Nothing wrong with Boost Mobile, or any other discount telecom provider either. It’s not like the phone signals taste different lmao
It’s just a hallmark of “I bought the cheapest domain name TLD available”.
That’s not necessarily bad if all you need is something to get the job done, but there is a stereotype associated with it.
Or the boxes are pre-made and they ran out
That doesn’t do the same thing, I guess the goal is really how to draw the outline of a circle
It’s more complex. In Photoshop, it’s a single tool. In GIMP, you make a circular selection, convert it to a path, and then stroke the path.
Not only is this more convoluted, it’s bewilderingly unintuitive to beginners and is definitely one of GIMP’s shortcomings.
I’m pretty sure there’s a GIMP plugin that does that if that is all you care about
I doubt that GIMP will ever overtake Photoshop. Adobe has the money to employ (and does employ) hundreds of experts in their fields to work on Photoshop for 8 hours a day, 5 days a week, 52 weeks a year. Although GIMP is very impressive as an open-source project and a massive testament to how far the free software model can go, it is still, at the end of the day, made by a ragtag band of (mostly) amateurs volunteering their time. Adobe, by brute force, can deliver a higher-quality product just by having the resources to employ the best people to work for them.
I love GIMP. I use it for all my image editing needs and would never consider giving a dime to Adobe. But I don’t do it for a living and I respect the opinions of those who do when they say that GIMP isn’t a good replacement for Photoshop.
Just a cursory glance, but GIMP still doesn’t seem to support additive curves and CMYK support is still rudimentary and needs a plugin
For a real Photoshop vs GIMP discussion, I think I’ll leave a link to Franklin Veaux’s Quora post here.
tl;dr there is actually a lot of functionality in Photoshop not present in GIMP that most casual users will never use, but is very important to professionals. People don’t pay hundreds of dollars to Adobe just for funsies.
I think for a real Photoshop vs GIMP comparison from the eyes of a professional, I’d like to share Franklin Veaux’s perspective. He’s an author, graphic designer, and the infamous local polygamist.
No, what I said is true if you use zero-based numbering. But when communicating with others in English, the label “first” refers to the element with the smallest index. In zero-based numbering, the label “zeroth” refers to the element with the lowest index. It’s just not the default in English, but you can definitely use zero-based numbering in English if you’re willing to edit the configuration files.