Hot take: "HTML is a programming language" is gatekeeping in effect, if not in intent.

That is, something need not be a programming language to be a the subject of highly useful and important technical skills — viewing all of computing through the lens of programming languages is inherently limiting.

It's perfectly reasonable, I posit, to have a taxonomy in which HTML is absolutely a markup language, but is not a programming language, and in which different *mutually beneficial skills* are relevant for each kind of language. Computing isn't just programming. Hell, software development isn't just programming!
As with most of my hot takes, I believe the above about 63% seriously, and offer it by way of making a point more than as a literal truth.

It's been a few days, with a lot of misunderstanding in replies. That's on me for not communicating my point effectively, so let me expand on and clarify.

Suppose you encounter "HTML isn't a real programming language" as an example of gatekeeping people out of tech. It's a real and really awful canard that techbros use, even now.

Very roughly, you can respond in one of two ways:

• Expand the definition of "programming language"
• Challenge the idea that programming is necessary to be in tech

I vastly prefer the second approach, as the first one doesn't actually challenge the core assumption that gives the threat of gatekeeping its teeth.

Also the differentiation between writing a program (very *very* roughly, an executable sequence of instructions) and markup (very *very* roughly the declaration of some data upon which a program acts) is an important one, and I don't think we should let gatekeepers co-opt that distinction to be assholes.

Amongst other things, arguing against gatekeeping by asserting that HTML is a programming language just lets the gatekeeper shift the goal posts. "Writing documentation isn't programming," "triaging issues isn't programming," "project management isn't programming," "UI design isn't programming," and so forth.

I fairly strongly believe that challenging the core assumption is an effective way of cutting that line of gatekeeping off entirely.

@xgranade I would still argue that declarative programming is a thing, but I think that's rather beside the point.

I think when someone says something is "not programming" it's because they believe that being able to program is still anything special, which it hasn't been since, oh, the 90s at the latest, probably.

My university taught Java in the 2000s, and one of the lecturers around 2007 was saying "when we implemented the course, if you didn't know Java, you were nothing, but these days, if you do know Java, you're still nothing."

And I think that's where the gatekeeping comes from. There was a time when you could be basically bare-minimum competent at programming and be considered a genius and that time is gone but people are still desperately clinging to it because they became accustomed to mediocrity being rewarded.

@Catriona Absolutely agreed about declarative programming, that's part of the complexity that I tried to sweep under the rug a bit with "very *very* roughly" in order to fit things into toot-length, but absolutely, yeah.

As for the bit about since the 90s, I tend to agree, save for that I've seen that discourse rear its ugly head again this bloody week, so some folks are still stuck in the 90s. Desperately clinging, as you say.

@Catriona Part of my intent with that thread is to try and call out what I see as being an insufficient if well-intentioned response to that desperate clinging, and to try and get slightly closer at the core of where that clinging comes from, as well as the harm that it causes.
@xgranade This. I remember when “Web Designer” was a distinct role commanding as much respect and compensation as a programmer, so of course techbros’ giant egos and fragile insecurity couldn’t let that stand.

@xgranade to use one HTML page ,one need be good at
linode
phyp/python/ django
some js lib
linode / equivalent
to see how the conceived their page to work
seo scripting
Site reliability
SQL/ some dB
linux/ equivalent for server sec
NOW THATS AND ENTRY BARRIER
( or so i was told in my UG intern :)
or
(orgmode + make file+git ) equivalent in other editor

Now

@xameer @xgranade

To use one HTML page, one just needs to open a local file in a browser.

For other people to see it, you might move it to a web server (with different methods). The web server could by installed and administrated by someone else (and it is often).

Every other stuff is optional. Might be very useful, but it is optional.

@xameer @xgranade

Btw: Installing and administrating that web server is also not programming.

Programming might be used to do these tasks, though.

@unixwitch @xgranade I go by 2nd option , 1st option was told to me by the consultant/ wannabe recruiter right after the college and my boss during g the intern
quote - you need know mysql ,lamp, php handy to improve UI
I didn't get involve in the latter as the possible compensation was not right and i didn't have the early boomer advantage ( my school didn't teach me Java/ CPP)

@xameer @xgranade
If people of that generation in my country learned programming at school (up to A-Level) at all, it wasn't Java or C++. They might have learned Assembly, C or even Fortran or Cobol (but probably not).

Early Gen-X (me) learned Basic or Pascal at school.

Everything else: Mostly self-taught - often with a book. Or with a course the company paid. Most people haven't had internet "always on".

@unixwitch @xgranade and yet workplace incentivizes good grades
@xgranade taxonomy is praxis and one must ask what its ends are. Is a hot dog a sandwich? A naively abstract calculus of language would have us believe the valid answers are “yes” or “no”, but an understanding informed by the concept of sprachspiel leads us to the correct response, which is of course, “are you a cop? Because you have to tell me if you’re a cop”
@glyph @xgranade cop being short for coprophiliac?
@xgranade HTML(+CSS) takes longer to learn than any of the first several programming languages I learned, and I am more intimidated by it than most mainstream programming languages. Web standards are absolutely huge. You don't need to know it all to do something useful, but trying to read and learn from the average web page today is not for the faint of heart.

@swelljoe @xgranade The average web page now is layers and layers of software stack, which isn't representative of what you'd be doing with HTML/CSS, and you might not even end up using it in its purest form.

You kinda have to specialise. Learn the basics, move on to JS, pick a framework (Probably React) and then practice building out front ends. Probably also a good idea to learn Django or something to make a functional web app. And that all does take longer than just like, learning Java.

@mdstevens0612 @xgranade "pick a framework (Probably React)" No. I'm not falling for that again.
@swelljoe @xgranade Lol yeah that's very fair, even as someone who picked React.
@xgranade then students don't get taught structuring files into directory hierarchy, and they make a mess everywhere they touch

@xgranade I don't even understand how this can be a good faith assertion.

HTML is Hypertext Markup Language.

It's... Markup. You use it to turn plaintext into hypertext.

@feoh @xgranade Correct. It’s simply not programming any more that Markdown or, heck, using Microsoft Word is programming.
@feoh @xgranade Why not both? Consider an alternative taxonomy: "programming" is telling a computer what to do with more detail & creativity than is typical; a "programming language" is text that you use to describe to a computer in detail what you want it to do. Writing HTML is programming because you are using text to tell a computer how to make a webpage to your precise specifications. I think that this taxonomy reasonably maps to the way many people think about programming and computers.
@tilde @feoh @xgranade Thank you! It's not like "programming" is a single skill anyway. There are so many different ways to tell computers what to do.
@xgranade
Coming from the perspective of the 5% of mastodon users who don't have a degree in computer science (I'm kidding, but it feels that way sometimes) what would your criteria be for what you DO consider a "programming language"?
@realn2s
@toplesstopics @xgranade @realn2s usually, by definition it involves having functions. HTML doesn't have those. CSS doesn't either, but SASS/SCSS now does.

@salixdubois @toplesstopics @xgranade
Would you consider Assembler to have functions?

I really struggle with the definition

@realn2s @toplesstopics @xgranade I don't know that one. Can you do a for loop? Some maths?
@realn2s @toplesstopics @xgranade from the quick lookup, it seems to be a language processor more than a language in itself.

@realn2s @toplesstopics @xgranade ah, it translates assembly language code into machine code, and assembly is as 'low-level programming language'.

So assembler no, assembly yes.

@realn2s @toplesstopics @xgranade wait, the question was about *functions*. Procedures, subroutines, macros (to me) are included in 'function'. In this case "Assembly directives" seem to fit since it's "directing [the assembler] to perform operations other than assembling instructions".
@realn2s @toplesstopics @xgranade What I'm referring to is Turing-completeness.

@salixdubois @toplesstopics @xgranade
That is one definition. It don't that there are a ton of things which are (accidentally) Turing complete and are not intended to be progressing languages.

This raises a question if a more informal definition isn't more practical.

E.g. that a programming language is a "language" which offers abstractions to help humans to fulfil a task

And as i understood it, the OP posed the question if "being" a programming language increases the barrier of entry (which I think is an interesting question)

@realn2s Yeah, I wasn't responsing to OP's question, which I did find interesting too.

I was replying to @toplesstopics and so I used Turing-completeness because that's how it's usually defined in computer science.

@salixdubois

Okay all that is officially out of my pay grade, lol. It's like the old stereotype of the mom who has no idea what different game consoles are calling everything a "Nintendo" I guess.

@realn2s @xgranade

@xgranade
Since, like HTML, Markdown is a markup language, if markup languages are programming, people "program" to talk in Discord!
@xgranade perhaps so. huh.
@xgranade see, it's the "if not in intent" that makes this not really that incendiary. we do appreciate that.
@xgranade it also does feel kind of like it was fighting the last war. we're not sure people, like...... write html anymore ><
@ireneista You're not wrong... I've also seen that discourse this very week, so the last war still seems to rage on somehow.
@xgranade it feels like the reciprocal of a gatekeeping statement; perhaps there’s some rule I’m unaware of that does the linguistic version of (1/x) also equals x. E.g., being overly inclusive is actually unfair to all the other outliers?