NGL I apply to places where I use the software. But it’s not one thing, it’s a dozen things I would fix.
I actually never successfully got the job. Probably because during the interview, I come off like a rambling psychopath pointing out extremely specific things.
Part of my previous company’s hiring process included having the candidate use our software, then asking what they thought of the experience and what improvements they thought would have the most impact. It wasn’t entirely useful because devs weren’t in control of prioritizing changes, but it was always interesting to see which pain points stuck out to the candidate.
It does give some insight into how people think. Some people are bothered with UI events and placement, others wanted to reduce the bandwidth it required, we had one girl who approached it focused on the accessibility of the software, and unfortunately for us support was abysmal. You also need thick skin to invite random joe off the street to tell you how your software sucks.
Honestly, anybody with a gender studies degree can get into software developer nowadays no sweat, nowadays the fortune 500 standards are so low that they’ll just hire anyone on the spot without even questioning it. Honestly only started to take note of this the second Biden got into office, the quality of software overall has gone down. Overall, back to open source, I never truly got the open source movement in general, never been my thing. Proprietary software is inheitly more secure which is why most enterprise systems still use windows xp.
By not understanding how version control works. I’ve worked at places that had a surprising number of developers who would just merge things in ways that drop code from other developers.
I now work for a small business but in the interest of not getting bitten in the ass I don’t wish to give the name of my previous employer. It was a large defense contractor, but our values didn’t align so I moved on when I found another opportunity to put food on the table. I know that’s not a satisfying answer but I’m here for entertainment value and the opportunity cost might not be worth it. My main point was that even though they have the money they didn’t see the value in good software process.
All the time! We would leave bugs unfixed even if the fix was trivially easy because management felt productive listing it as a cost savings. Software maintenance was seen as a necessary evil.
Software maintenance was seen as a necessary evil.
The most important lesson I learned about the economics of software is that sourcecode is always accounted as a liability and not an asset. Accountants will never let you code your way into more value. Everything else you see stems from that truth.
I think its type system is “okay”, I mean inherently dynamic typing is pretty error-prone. But its type coercion algorithms are bonkers. Also that whole “NaN ≠ NaN” business…
See that’s one of the parts that is actually almost in line with other languages. In Go, for example, nil ≠ nil because nil is, by definition, undefined. You can’t say whether one thing that you know nothing about is at all like something else that you know nothing about. It really should raise an exception at the attempt to compare NaN though.
IIRC, a nil value can be checked against a literal successfully but not against another nil value. Say you want to check for equality of two vars that could be nil. You just need an extra if statement to ensure that you are not trying to compare nil and nil or nil and a non-nil value (that’ll give you a type error or NPE):
<span style="color:#323232;">var a *string
</span><span style="color:#323232;">var b *string
</span><span style="color:#323232;">
</span><span style="color:#323232;">...
</span><span style="color:#323232;">if a != nil && b != nil {
</span><span style="color:#323232;"> if a == b {
</span><span style="color:#323232;"> fmt.Println("Party!")
</span><span style="color:#323232;"> } else {
</span><span style="color:#323232;"> fmt.Println("Also Party!")
</span><span style="color:#323232;">}
</span>
Kinda. nil is a weird value in Go, not quite the same as null or None in JS and Python, respectively. A nil value may or may not be typed and it may or may not be comparable to similar or different types. There is logical consistency to where these scenarios can be hit but it is pretty convoluted and much safer, with fewer footguns to check for nil values before comparison.
I’m other words, in Go (nil == nil) || (nil != nil), depending on the underlaying types. One can always check if a variable has a nil value but may not be able to compare variables if one or more have a nil value. Therefore, it is best to first check for nil values to protect against errors that failure to execute comparisons might cause (anything from incorrect outcome to panic).
ETA: Here’s some examples
<span style="color:#323232;">// this is always possible for a variable that may have a nil value.
</span><span style="color:#323232;">a != nil || a == nil
</span><span style="color:#323232;">
</span><span style="color:#323232;">a = nil
</span><span style="color:#323232;">b = nil
</span><span style="color:#323232;">// This may or may not be valid, depending on the underlying types.
</span><span style="color:#323232;">a != b || a == b
</span><span style="color:#323232;">
</span><span style="color:#323232;">// Better practice for safety is to check for nil first
</span><span style="color:#323232;">if a != nil && b != nil {
</span><span style="color:#323232;"> if a == b {
</span><span style="color:#323232;"> fmt.Println("equal")
</span><span style="color:#323232;"> } else {
</span><span style="color:#323232;"> fmt.Println("not equal")
</span><span style="color:#323232;"> }
</span><span style="color:#323232;">} else {
</span><span style="color:#323232;"> fmt.Println("a and/or b is nil and may not be comparable")
</span><span style="color:#323232;">}
</span>
Thoroughly confusing lol. I think I need to check the spec in order to grasp this. I feel like this has more to do with the typing system rather than nil itself, maybe. I’ll see.
But yeah, this is nothing like null or undefined in JS, but more similar to NaN.
Yeah… It’s weird but I find it useful that it is, in a weird way. Treating it as an uncertainty means that one MUST explicitly check all pointers for nil as part of normal practice. This avoids NPEs.
It’s onanism in English. And it’s rather stupid to call it that because Onan didn’t masturbate, he used the pull out method to avoid getting his sister-in-law pregnant with his brother’s kid. (yes, I know that sounds weird but that’s the story)
I figure it is called that because both the pull-out method and masturbation for penis-havers involves spilling your seed somewhere outside of a woman’s womb.
Yes, from a superficial viewpoint they are similar. And from a superficial viewpoint shooting a practice target is similar to shooting a person dead. It would be rather stupid to refer to target practice as murder.
I get your point, but considering that we got the word “Onanism” from the Bible I was thinking about some Christian denominations’ views of why God wasn’t happy with Onan in the Bible: because he ejaculated without trying to procreate. That is why I thought it was relevant to tie those two things together like that.
According to Wikipedia, Biblical scholars essentially agree with you, to the point
Bible scholars even maintain that the Bible does not claim that masturbation would be sinful.
which is pretty cool especially given my prior belief that most people agreed it was about lust. Wikipedia does also say that some Christian denominations have interpreted the sin to be as lust, though.
And Catholicism, at least, still doesn’t like the ejaculation without procreation:
Since, therefore, the conjugal act is destined primarily by nature for the begetting of children, those who in exercising it deliberately frustrate its natural power and purpose sin against nature and commit a deed which is shameful and intrinsically vicious.
Small wonder, therefore, if Holy Writ bears witness that the Divine Majesty regards with greatest detestation this horrible crime and at times has punished it with death. As St. Augustine notes, “Intercourse even with one’s legitimate wife is unlawful and wicked where the conception of the offspring is prevented. Onan, the son of Juda, did this and the Lord killed him for it.”
Not the same thing, I’m pretty sure something like that is in almost any language, but here it’s the official word for male masturbation, not some niche word that’s not really used much.
I know the story and you’re right, it’s pretty dumb how it’s used.
But as you mention, NaN propagates.
So at checkout, your wallet will become NaN, as the shops money balance. Then it will spread to your bank account and before you realize what happens the whole banking-district is in flames.
programmer_humor
Newest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.