EVERYTHING I say in these slides
is fuzzy and opinionated
COMPUTER LANGUAGES.
(though I'll modify this a bit)
Changing your screensaver
Writer/Word
Calc/Excel
HTML/CSS
Bash
PHP/MYSQL/Javascript
Python/Perl/Ruby interpreted/scripted
C compiled
Assembly (00 4E A3 77 8C 0A etc)
- this is important to remember:
Written BY humans FOR humans.
Most everything you see isn't some weird computer artifact: it's a choice.
Consider, e.g. Excel, which many would call
the best computer language ever created,
and perhaps a very good balance between
Simple and Easy
also, most languages will have exceptions to the below :)
and/or "Turing complete"
(I will use this term loosely)
and often have a REPL
This may just be me, but
"parts of speech" helps me immensely
"Scripts" are probably highest
Simple like a Command line =
"Unfriendly, but a great deal of power and possibility through simplicity"
Easy like Siri /Alexa =
"Friendly, lots of complexity, but it only lets you do like seven things" ☺
Or, I should probably say, a particular couple of ways to
redefine SIMPLE and EASY.
Procedural/imperative
Object-oriented
Functional
Declarative
(these are fuzzy and non-exclusive)
Procedural/Imperative ("default")
Do things step by step
Functional
Turn it into straight up math. No variables, no
"procedures"
Object Oriented
Everything uses an "object" metaphor.
("Black Box Approach")..
Declarative:
Uncommon, because very hands-off.
You don't say "how" - you just tell what to do over a limited set of possibilities.
(This is HTML and MySQL, and increasingly a lot more things..)
e.g. YAML is used to define things. This is EASY (not SIMPLE)
C
Rust
Go
- Low level, Compiled, Native
Java
Python
(Midrange, Python's honestly probably the best all around, let the fights begin)
Bash and other SCRIPTING LANGUAGES
Very powerful, and weirdly often not considered
"languages"
What about MySQL, et al?
Declarative, and not specialized
(why do I hate workbench? :))
Here goes: This ONLY makes sense if you remember that the web grew and accreted on itself, and encouraged to do so primarily by "market forces"...
as opposed to "designed."
Plain ol' text. BBS and the like
"Lets make this look better than the Matrix, SEMANTICALLY"
"Still kind of ugly, now let's go VISUAL"
OKAY, how about, lets just reach into the computer and run random programs
cgi-bin
This actually worked for a while when we were oh so innocent...
..but honestly, i think we've come full circle.
PHP.
Click a menu and get back some generated HTML. Cool!
Combine with MySQL for even more power!
uhoh.
"Okay, so we want things to move around. And maybe more..."
We've got this thing people are using to literally make cartoons...
..so I guess we're going to use it for EVERYTHING.
Flash
Clearly, we can do better than Flash. I mean, we could slap that together in a weekend and name it something similar to something that already exists because okay
Okay, maybe that wasn't a great idea...
but too bad, here we are.