Showing posts with label terminology. Show all posts
Showing posts with label terminology. Show all posts

Wednesday, 17 May 2023

Techronyms and their place in the industry

Tech terms tend to be long, cumbersome and confusing, until we compact them into clever acronyms. The tech industry is full of these, and it's generally important for tech workers to be familiar with them. It allows us to communicate better without resorting to word salad. It keeps communication terse.

I like to call them "techronyms".

Using those letters!

Many years ago, I had a boss who was dismayed at how some members of our team did not even know what "HTTP" stood for, and made it a point to test us by playing a game. He would toss out acronyms at us while we told him what each one stood for. While the game was mildly amusing, it also struck me as ultimately pointless.

Here's why

I've come across people who throw out acronym after acronym in an attempt to sound savvy. These tech poseurs get away with it precisely because they are throwing them at laypeople who just lap it up.

Pretty, but empty.

At the end of the day, it's empty knowledge. It's just used by people to appear knowledgeable without actually having to expend the effort to acquire that knowledge. All the while, people who actually have that knowledge aren't heard because they don't look like they know anything.

By placing this much emphasis on knowing acronyms, we enable this behavior.

What really matters

Is it important that web developers know what "HTTP" stands for rather than simply knowing that it's the prefix of a generic URL? (That's Universal Resource Locator, by the way. Heh heh)

Sure it is. But is it enough?

So imagine if we knew that "HTTP" was an acronym for "Hyper-text Transfer Protocol" but couldn't explain what that meant? Wouldn't it amount to the same thing?

Learn the concepts, not
just the acronyms.

Maybe it's just me, but I would rather tech workers understand the concepts rather than simply being able to parrot the terms. If a tech worker could tell me that the protocol is a set of procedures used to transport HTML content from server to client, I really wouldn't care if this person knew exactly what it stood for. Let's be honest here; what knowledge is more valuable - the label or the concept? Ideally, we'd know both, but if we could only choose one, I know what I would choose.

That's all!

That was just a short rant. Needed to get it out there.

Ultimately, it doesn't matter. Fakers are gonna fake. And the people who actually know their shit, will just go on being useful. The world will continue to spin on its axis, and if such is the world we inhabit, I'll make my peace with it.

TTYL,
T___T

Saturday, 8 August 2020

Ten Problematic Tech Terms

The tech world has been a-buzz recently. Following the Black Lives Matter riots across the USA, some tech firms have declared their intention to help eradicate racism - by erasing problematic language from their code bases. The overall objective is to be inclusive and avoid insensitive references.

How this is going to help exactly, remains a mystery to many of us. It's tempting to simply dismiss all this as just another poorly-disguised attempt at virtue-signalling. But in the spirit of joining in the fun, let's take a look at some of the terms slated for erasure and their proposed replacements. And some terms that haven't yet had the dubious honor.

1. Master/Slave

This term is used in tech to describe situations where one process or entity controls another, or where one is an original and the others (the "slaves") take reference from it. Ostensibly, tech such as GitHub, Python and Twitter (and even MySQL!) have decided that they will no longer use the terms "master" or "slave" in their code repositories. Instead, terms such as "main" and "replica" will be used.

No more master-slave relationships!

It's a bit of a stretch of the imagination to equate a "Master" branch in GitHub with slavery, but what do I know, right? I'm not a marginalized race in the US. Hell, I don't even live in the US!

2. Black/White

Google claims that the terms "blacklist" and "blackhat" have negative connotations associated with the color, and this is somehow denigrating African-Americans. Instead, we should be using terms such as "rejectlist" and "allowlist" to replace "blacklist" and "whitelist", respectively.

We can't be blackhats
anymore?

To be fair, "rejectlist" and "allowlist" are a lot more obvious than "blacklist" and "whitelist". It's objectively a good change. I just think the reasons behind it feel kind of forced. It's almost like someone's trying a little too hard not to offend black people.

3. Chief Technical Officer

Hey, how about "Chief" Technical Officer? Or "Chief" anything? Isn't that insulting to Native Americans who actually earned that title? Non-native Americans, you can do better.

So Sioux me!

Native American cultural appropriation is a real thing, yo. Just ask Chris Hemsworth.


4. Ninja

Eradicating the word "ninja" from tech vocabulary will be welcome. That's also cultural appropriation. Imagine how the real ninjas feel, having that term co-opted by a bunch of computer geeks who probably couldn't throw a shuriken worth a damn.

Won't someone please
think of the ninjas?

Also, it's incredibly lame to describe yourself as a "code ninja". Please just fucking stop.

5. Kanban

Another case of cultural appropriation. The Kanban was originally used in manufacturing operations in Japan. Then this got taken to the USA, and some time later, the tech industry took to using this to manage software development processes. We can still use Kanban boards, though maybe we should start calling them something else?

Yeah, call 'em something else!

I seriously doubt the Japanese are anything less than smug that the Kanban got adopted by the Americans. But wait... does this whole movement actually have anything to do with the feelings of other cultures, or is it just an excuse to make tech companies feel all progressive and shit?

6. Sanity Check

The term "sanity check" is usually in the context of testing. However, the word "sanity" might be sensitive to people who suffer from mental illness. I'm no expert here, and far be it for me to sound unsympathetic, but could that be because they suffer from mental illness?

Who're you
calling insane?!

The term "smoke test" has been suggested as a substitute. But it appears that the term already exists, and there's actually a difference. You know what, this is crazy (no pun intended) and I'm just gonna let the experts sort this out.


7. Dummy

A "dummy" anything is usually used in software development as a stand-in for the real thing. A dummy account. A dummy file. Dummy content. Just like crash-test dummies are used in place of real people.

I surrender to the awesome power
of your Wokeness.

But no, what if it triggers people who are, say, not the brightest bulb in the chandelier? We want to be inclusive, right? Twitter has suggested "placeholder", which actually isn't that bad. Unlike the case of "blacklist" and whitelist", however,  the term "dummy" was actually pretty obvious already and I don't think it needed changing.

8. Throttling

In software, "throttling" is the process of regulating the rate of processing, because sometimes you gotta slow stuff down in order for things to go smoothly. After all, resources are limited, and we don't want the system to bite off more than it can chew.

Just choking, folks!

But geez, this term is just so violent. It brings to mind wringing of necks and MMA chokeholds. Why such a hostile term? How about "hugging"?

9. Penetration Testing

This is actually a term used in computer security, to assess the defenses and robustness of any particular system. But it's kind of lewd, isn't it? Penetration?

Such penetrating insight!

Think of all the locker room jokes we computer nerds could make if this term were still in use. How about we just scrap it so people don't feel, y'know,  uncomfortable?

10. Alpha/Beta

Alpha release. Beta release. These terms are commonly used to describe software versions. You know what else they're used to describe? Males.

That's Alpha AF.

Maybe usage of this term encourages toxic masculinity. Should we chance it? I mean, if we're going to deprecate the use of "master" and "slave", surely this is next!

Conclusion

Yes, I'm being really facetious here. But let's be real for a minute.

Naming things is one of the great struggles of software development. Congratulations, we just made it a whole lot harder.

It's not that I think tech terms are set in stone and shouldn't change at all. Obviously, some change is for the better. Even more obviously, it would be better if they were done for the right reasons. If done to improve clarity or sustainability of maintenance; some objectively beneficial metric, yes I'm all for it.

But if it's done just for the sake of appealing to the Social Justice mob, I think it's ill-advised. Because there's no end to this sort of thing. People are always going to be offended by something or other. The world doesn't revolve around the USA and their great struggle with racism and their history as slave-owners, and it's time people realized that.

Now that's a master main stroke!
T___T

Saturday, 14 April 2018

Tech Terms and why we should use them right

Tech is full of terms specific to the industry only. Buzzwords, jargon, phrases - they're all part of the tech terminology. Terminology is important.

Years ago, I was in a company that used Team Foundation Server (TFS) for version control. I never knew what it was called. Sure, I knew that it was called "TFS" and that I had to check in my code after I was done with it, but I never knew the specific term for this. And it came back to haunt me years later when interviewers asked me if I had ever used a code repository. It never occurred to me, until much later, that a "code repository" was this thing called "TFS" which my team used to collaborate on code, and check on different versions of the code base. I had been using it for a year and didn't even know this much! All I had been doing was working day in and out without any thought to the larger picture. Like it or not, this suggested a lot of things about my professionalism, none of them particularly flattering.

This is not the only example. For years, I worked on CSS without understanding the term "CSS Box Model". I wrote code in a certain way to guard against threats, not knowing what I did was "whitelisting". And I never knew my preferred style of placing curly brackets was known as the K&R style. I just wrote code, and I knew it worked. End of story.

See, this is why terminology is important. Using the correct terms puts you in the same league as the professionals. You share a language. Instant cred.

This is a double-edged sword, though...

The problem with instant cred

You see, plenty of people have figured out the path to "instant cred" too. Pepper their dialogue constantly with tech buzzwords that ultimately don't mean anything in the wrong context. Drop jargon like it's going out of fashion. Join conversations they have no business joining because they haven't done the damn work. These are the pretenders who are trying to sound like they know the industry without having worked a single day in it. They don't have to know anything; just sound knowledgeable.

"So we simply need a Separation Of Concerns in order to follow the Don't Repeat Yourself Rule and Stand On The Shoulders Of Giants to avoid Duplication of Effort."

Feel nauseous yet?

*urk*

When I was younger, I tended to think the world was full of these snake-oil salesmen. In fact, anyone who used terminology too liberally, was immediately classified as some poseur who was trying way too hard to impress people. Maybe get promoted to management or something.

Well, I wasn't completely wrong then, but neither was I completely right. The world is full of these poseurs. But that does not negate the importance of using the right terminology.

Earlier this year, I talked about the difference between parameters and arguments. A lot of techs I know like to say things like "pass in those parameters to the function", which is incorrect. These techs aren't stupid or incompetent; but like me, their training was not totally structured. Whatever we knew, we picked up along our career paths. Bits and pieces of a large scattered picture. The correct terminology wasn't important as long as we understood each other.

To some extent, that works. But it's hard to be effective at what you do if you can't communicate, and you can't count on being in the same team all your life. You will work with other teams who will use the correct terminology, and you will end up confusing the living heck out of each other.

Being pedantic much?

No, I'm not advocating being pedantic at all. In fact, I have nothing but disdain for people who keep correcting me to nitpick on a word I might have incorrectly used when trying to explain a concept, especially when they know damn well what I meant.  Collect your achievement award and get over yourself, why don't you?

But making an effort to use the correct terms is important because it tells people you're not a total idiot. Especially when you're not a total idiot. Don't let a couple of incorrectly used words detract from the brilliance of your ideas. That's all I'm saying.

Using the correct terms gives you insight into the bigger picture. It makes you think about what you're doing instead of simply doing it, which can be dangerous.

Don't take things to extremes though...

There's a happy middle ground in all of this. You don't have to drop buzzwords just to show people you know your shit, but you do have to understand technical terms because, ultimately, they're one of the things separating you, the professional programmer from the rest of the garbage.

The solution to this? Don't just code. Read. Question. Learn.

Till next time, one good term deserves another!
T___T

Saturday, 6 January 2018

An Argument About Arguments

What's the difference between an argument and a parameter?

The difference might seem academic, and to some, these terms may even be interchangeable. Lesson of the day: they're not. I've had to listen to people say "pass in the parameters to this function", and, just gotta say, the usage is incorrect. You do not pass in parameters to a function. You pass in arguments.

Hey, I'm not judging. I've made that same mistake in early days. What the hell, everybody's a noob once, right?

Parameters are the inputs to a function (and subroutine, in the case of QBasic). They form the basic, if optional, structure of the function like so. (example in JavaScript)
function shoutOut(param1, param2)
{
    return param1 + " " + param2;
}


So you could say: shoutOut() accepts two parameters, param1 and param2.

Arguments, however, are the actual values you pass into a function in place of those parameters. In the example below, arg1 has the value "Hello" and arg2 has the value "World". These values are arguments passed into shoutOut().
var arg1 = "Hello";
var arg2 = "World";

shoutOut(arg1, arg2);

function shoutOut(param1, param2)
{
    return param1 + " " + param2;
}

Long story short: The arguments are "Hello" and "World" (or arg1 and arg2). The parameters are param1 and param2.

Layman's example

I know most techs will get it at this point, but let me make it even simpler. Think of parameters as placeholders for arguments.

Think of this as a function
with four parameters.
Let's use an analogy. Let's imagine that a function is a parking lot, and parameters are parking spots within the parking lot. Now we all know that parking spots aren't the same as cars. Parking spots are just lines drawn in a parking lot for cars to occupy.

Now think of this as a function
with five  parameters and only
one argument passed in.
So now, think of parameters as parking spots and arguments as cars!

Conclusion

I know, I know, this is really pedantic, huh? But if you're going to code and you want to be able to communicate ideas clearly to other people who are going to read that code, you need to get your terminology right.

Besides, it's only professional.

function bye (seeya) { return seeya; }
T___T

Thursday, 17 November 2016

No-show Nodevember

Days from now, tech conference Nodevember will be held in Nashville, Tennessee on the 20th. In there, panelists will present the past, present and future of the JavaScript-based platform, NodeJS.



Having begun to work more extensively with JavaScript in the last couple years, I naturally took an interest in this particular development. And sadly, this conference will be notable for one significant absentee - Douglas Crockford.

A couple months back, the organizers of Nodevember announced on Twitter that Crockford had been uninvited to the seminar as keynote speaker. Their reason? As follows.

"While we have a tremendous respect for Mr. Crockford's abilities as a speaker and his contributions to our craft, we became aware that based on private feedback - not simply the dialogue on Twitter - that his presence would make some speakers uncomfortable to the point where they refused to attend or speak."


Now, there could be more to the picture than what was presented. We'll never know, and the organizers aren't telling.

What we can see, are little pieces of whatever picture that took place during Crockford's last presentation prior to the announcement. Apparently, Crockford had made quite a few people uncomfortable during his little talk on The Seif Project. Check out the video below.



At the 41:30 mark, he makes the following assertion
"So the old web was great because it provided promiscuity. It meant that you could go and connect to anything and you're probably going to be okay. You might get shocked and embarrassed but your machine's not going to get taken over, your identity is not going to get stolen. That hasn't always been true but pretty much the web can do that and that's good because that allows us to get introduced to things. We used to call it surfing. That you could go from one thing to another and discover stuff and start forming relationships. Unfortunately, the same thing which allows the promiscuity to work is very bad for dealing with commitment. So that's what the new web is for."

Soon, people were accusing him of slut-shaming the Internet and usage of sexist terminology. And this particular accusation on top of everything.

Say what?

Yep, apparently the word promiscuous was too harsh for some very easily offended souls in the audience. In a world now filled with trigger-free zones and political correctness, being outraged appears to be the in-thing now. And Nodevember will be all the poorer for it. While I wouldn't go to the extent of calling him "the Father of JS", Crockford has made significant contribution to JavaScript. I had read his book JavaScript: The Good Parts, and while his writing style was far from engaging, there was plenty to be learned, and it was presented in a manner I could absorb with relative comfort.

Thankfully, Crockford was not without his defenders. In an impassioned blogpost, Adam Morgan wrote, with very deliberate sarcasm:
"What a danger to our industry! Ignoring the complete over-reaction to these two comments a quick search of the word promiscuity on dictionary.com shows that Crockford actually used this word correctly."

He then went on to explain that Crockford had probaby meant "consisting of parts, elements, or individuals of different kinds brought together without order" instead of "characterized by or involving indiscriminate mingling or association, especially having sexual relations with a number of partners on a casual basis". I'm not exactly sure I agree. What version of the word promiscuous had Crockford actually intended? If it had been the second, then why did he follow up with "Unfortunately, the same thing which allows the promiscuity to work is very bad for dealing with commitment"? It certainly seems to hint very strongly at the latter definition.

But still. So what?

Crockford wasn't using a derogatory term on anyone. On your mothers, sisters or even your pet goldfish. If he was slut-shaming, he was slut-shaming the Internet - what amounts to a collection of separate entities made out of electrons and wires, and joined together by the seven OSI layers.

Go watch the video. Crockford's public speaking is even less engaging than his writing. The old dude's Boring with a capital B. Guy was wooden, straight-faced. Dead serious. He wasn't trying to be witty, or cracking a joke. (OK, maybe he was, but he was terrible at it) He was just trying to explain his point using a metaphor. Not a particularly clever one, I grant you. But offensive? Come on.

I guess it's true - people can be butthurt by anything these days. Stop being sensitive. Start being sensible, instead. Techies already have a negative reputation for being socially inept. We really don't need to add being whiny douchebags to that.

The YouTube video below sums it up pretty well. Score one for common sense, old chap.



More on Safe Spaces

In the wake of the 2016 USA Presidential Election, I came across this article about the shattered feelings of voters as Hillary Clinton was defeated at the ballot box by Donald Trump. Really, a "cry-in" to mourn the results of a fair and open election? Is that such a tragedy? Oh, I guess it is, because a man very few people (me included) have a high opinion of, won! And won fair and square, playing by the very rules the US of A have been applying for the past 200 years!

When I was done picking my jaw off the floor, there was another contender for WTF Moment of the Week. The article ended with a campus activities coordinator saying "I have no words". You and me both, lady.

There are probably more instances out there, and judging from this, perhaps I shouldn't have been that surprised about Nodevember's decision concerning Crockford.

What can I say? These Americans are crazy. Going by what's happened this election and what's happened with the upcoming Nodevember, USA is going down the rubbish chute. Not because of Donald fucking Trump, but because this generation of people appear to be crafted from very fragile snowflakes.

The End?

Kevin Old, one of the former organizers of Nodevember, must have realized how ridiculous this entire affair was, because he put this statement up. I guess, better late than never, eh?

What a load of Crock!
T___T