<devyn>
glowcoil: yes, it is impossible, I completely agree. but ELLIOTTCABLE wants a syntax with lisp-like simplicity, and this can represent a decent amount of programs still. underneath it would still be graphs, so an alternative, namey syntax could be produced. keep in mind that Paws' Scripts are capable of representing far more than cPaws can, so it's kind of similar in that way
<glowcoil>
ELLIOTTCABLE: uhhh, every single language with a recursive syntax ever made (e.g. 3 + (5 + 7)) is a textual language for trees
<glowcoil>
ELLIOTTCABLE: some news is that i don't hate computers anymore
<glowcoil>
ELLIOTTCABLE: i have so few caring feels about it
<glowcoil>
ELLIOTTCABLE: because everything in the world is like tetris and fuck utopianism
<glowcoil>
cloudhead: i like you
<glowcoil>
ELLIOTTCABLE, cloudhead: you are presenting a false dichotomy. if you are making a _why guide to ruby, don't say "combinator". when we're discussing the design of a standard library i thought combinator would be more in the accepted set of words, i would never fucking use it in a guide for newbs unless they were coming from haskell. one can be precise and
<cloudhead>
I agree though, language for introductory content should be different
<cloudhead>
but newbieness is a transitory phase, that's why most things are not optimized for it
<ELLIOTTCABLE>
Newbieness is absolutely not a transitory phrase.
alexgordon has joined #elliottcable
yorick has joined #elliottcable
<cloudhead>
I don't know what you're talking about
<cloudhead>
it takes between a couple minutes to a couple weeks to understand most things
<cloudhead>
but once you do, you understand them for the rest of your life
<cloudhead>
that's a long time, compared to the learning phase
prophile has joined #elliottcable
<katlogic>
cloudhead: I think ELLIOTTCABLE means newbie churn. Steep curve probably does not help, at least I prioritize short term gains (ie use something crap but easy) over long term profit :>
<cloudhead>
right
<cloudhead>
but that doesn't usually last for ever
<cloudhead>
once you're passed that, you don't want to keep reading about what you already know
<oldskirt>
I want LOD controls in documentation
<katlogic>
Indeed. My personal requirement for introducory content would be just tutorial dumbed down in terms what newbies already know, not this huge infodump of would-be awesome-sauce which is just wall of text :(
<katlogic>
It hurts people with attention span of goldfish.
<oldskirt>
which is practically everyone nowadays ^^
<katlogic>
Good docs is still a must though, ie quality reference manual (minimum prose!) pointing out all the edge cases.
<katlogic>
Too often stuff does the tutorial part a-ok, but forget to mention potentially tricky stuff. Notoriously various JS rockstart stuff.
<oldskirt>
yep. so often I want the "programmers explanation" that assumes I kind of know how stuff works but need to know the gotchas and edge cases
prophile has quit [Quit: The Game]
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
prophile has joined #elliottcable
<ELLIOTTCABLE>
cloudhead: irrelevant. That's true for *one thing*.
<ELLIOTTCABLE>
but the two much more relevant statistics are:
<ELLIOTTCABLE>
A) for the number of things for which you are an initiate, is always going to be *minuscule* compared to the number of things for which you are a newbie; and thus, by average, in any given situation, you are *much* more likely to be a newbie than an initiate,
<ELLIOTTCABLE>
and B) the vast majority of people, readers, users, whatever, are going to be *newbies* for *most* of your product / document / discussion.
<ELLIOTTCABLE>
the more complexity you introduce into a discussion, the more assumptions you make about their knowledge-base, the more you push the set of people who can participate out into the "long tail" of Ubergrammers … and worse, because programming is such a huge field, it's not even really pushing it out into some set of somehow-special, somehow-perfect
<ELLIOTTCABLE>
programmers; no, you're just pushing it out into a *bubble* of people who *happen* to be specialized in *exactly* what you are specialized in.
<ELLIOTTCABLE>
which is doing a damned good job of shutting out intelligent discourse from those with other points of view than yours, even *assuming* that you're okay with shutting out the 99% that are *actual* newbies at basically everything, and not a part of *any* such long-tail.
<ELLIOTTCABLE>
tl;dr: that's some exclusive bullshit, bro. go become a better person.
<ELLIOTTCABLE>
glowcoil: FWIW, I agree with you: it's not a false dichotomy.
<ELLIOTTCABLE>
in the interest of conveying a *very* important worldview, I've simplified; and it's true, one can be friendly *without* speaking like the Simple English Wikipedia all the time.
<ELLIOTTCABLE>
But the point is, although it is all a gradient, our community is *hugely* slid down towards the horrible end of that gradient: excluding newcomers, confusing the less-knowledgeable, and propping ourselves up for knowing such big words, oooooooo we're smart. /=
<ELLIOTTCABLE>
It's not like I don't get it. I feel really good when I get to communicate with somebody using words like "meta-singleton" or get to talk about "the lambda calculus"
<ELLIOTTCABLE>
but i'm also super-aware, every time I talk with programmers, how *completely unnecessary* half of the words are.
<ELLIOTTCABLE>
in a one-on-one in a hallway, it's usually okay, even though it's still bugging me, hovering there in my mind, making me feel like a horrible person,
<ELLIOTTCABLE>
but in a fucking IRC room? an IRC room to which I *intentionally invite* newcomers, like TheMathNinja, or way back when, spherecat1 / vil?
<ELLIOTTCABLE>
ag_dubs: (I'm curious of your opinion on this; I know we discussed educational programming languages and how they shouldn't be some dumbed-down education-specific piece of crap like Squeak … read the scroll back, here, when you have a moment)
<ELLIOTTCABLE>
to me, it comes back to a lot of the arguments I hear from gender activists, or the newer age-activism or ability-activism groups:
<katlogic>
tl;dr ableism
<ELLIOTTCABLE>
Having *lots* of Specific Knowledge™ is borne of privilege. And by laying out constant barriers of *specific* knowledge, hundreds of them in every conversation, between a visitor and their participating, we're effectively *excluding* a huge number of those visitors; and that's not okay.
<katlogic>
"If others can do something I cannot be bothered to learn, I feel entitled to that skill and will rant on my tumblr how smarter people are ableist towards me."
<ELLIOTTCABLE>
katlogic: "cannot be bothered to learn."
<katlogic>
Worst part is, you have to cater to that attitude since apparently its quite widespread in western world.
<yorick>
terminology is needed for having efficient discussions about complicated things, which are great and everyone should have more of
<katlogic>
In soviet russia we just say "shut up, bitch". In western world, you have to pull up grandstanding PR to not accidentally offend someone.
<katlogic>
Because lazy people are easily offended.
<ELLIOTTCABLE>
It's, yes, a little bit more difficult, or causes some small problems for us, to *not* do so. I'm not dumb. I'm aware how many problems are caused by imprecise documentation. I get how many times that's burned you (or me, or anybody else); but in a contest between making that documentation *more inaccessible* for the majority, but solving the relatively
<ELLIOTTCABLE>
rare, occasional bug that arises from imprecise documentation.
<yorick>
documentation? sure, you can make that easy and accessible. but hallway discussions?
<ELLIOTTCABLE>
which is also why we *have* several different kinds of "documentation." In any remotely-not-terrible programming language, code should be self-documenting. If it's not, it's badly written, or it's in a bad writing-environment. (language, etc.) Then, for shared work, there's specification documents.
<ELLIOTTCABLE>
yorick: the topic here is more IRC, honestly.
<katlogic>
yorick: Academic rigor is double-edged sword. Often academics indulging in it are also restricted by it. More entropy sometimes brings "out of the box" solutions.
<katlogic>
Not often enough, though.
<yorick>
"self-documenting" is what people who are too lazy to document their code say
<ELLIOTTCABLE>
a hallway discussion between one or two more people isn't so bad, because the chances of a newcomer walking up are smaller.
<ELLIOTTCABLE>
but IRC, or twitter, or mailing lists? anything expressly public, like that?
<ELLIOTTCABLE>
katlogic: "Anybody offended is just lazy" is not an okay point of view to express around me. |=
<katlogic>
I know, you elitist prick.
<ELLIOTTCABLE>
Inclusivity is important to me, and is a topic I'm just as comfortable discussing in this channel as programming-language design, or delicious dicks.
akshatj-c has quit [Changing host]
akshatj-c has joined #elliottcable
<ELLIOTTCABLE>
akshatj-c: what's with the -c, by the way?
<ELLIOTTCABLE>
9:51 AM <yorick> terminology is needed for having efficient discussions about complicated things, which are great and everyone should have more of
<ELLIOTTCABLE>
yorick: well-known, not new data, but also not relevant.
* yorick
gets back to work
<ELLIOTTCABLE>
the discussions usually *need not be* efficient.
<akshatj-c>
C
<ELLIOTTCABLE>
trying to attain perfect efficiency of discussion, at the cost of an increased barrier-to-entry, is a terrible trade-off.
<katlogic>
Rigorously it's called nirvana fallacy.
<ELLIOTTCABLE>
that "level", the exact point on that spectrum of trade-off that is chosen, is of course fairly dynamic … but it should only *rise* when the efficiency or impreciseness is actively seen to be getting in the way of the active discussion.
<yorick>
yeah, who doesn't want to talk about sequencing-structures instead of monads
<ELLIOTTCABLE>
“Striving for perfection is not the same as the nirvana fallacy. Having a goal of perfection or near perfection, and working towards that goal, is admirable. However, giving up on the goal because perfection is not attained, despite major improvements being attained, is fallacious.”
<katlogic>
akshatj-c: The second should not compile because excess initializer, the first is ok?
<ELLIOTTCABLE>
You, actually, are the one purporting fallacy: the inverse thereof.
<ELLIOTTCABLE>
“What you're suggesting we strive towards is obviously-impossible perfection. Therefore, we should not try.”
<ELLIOTTCABLE>
What we are trying to do is Y, and that is perfect and impossible.
<ELLIOTTCABLE>
X is imperfect, and therefore possible.
<ELLIOTTCABLE>
Therefore, we should strive towards X.
<ELLIOTTCABLE>
nope.
<katlogic>
ELLIOTTCABLE: I think the inverse of is unix philosophy / parreto principle. 80% of job is done with 20% resources.
<katlogic>
so best P/L ratio is to leave jobs only 80% finished.
<katlogic>
Thats why unix stuff usually fails in 1 out of 5 cases, have no helpful error messages, has no friendly GUI etc :)
<katlogic>
Perfection is poison, good enough is bliss.
<ELLIOTTCABLE>
> implying that UNIX is bliss for the majority of users
<ELLIOTTCABLE>
"good enough" is then leaving the barrier-to-entry at "preforming the last 20% yourself", for each user.
<katlogic>
Only in terms of initial investment cost. Who cares about long term cost of ownership in this day and age?
<ELLIOTTCABLE>
whether that's learning the odds and ends, or learning the GUI-less tool environment, or learning the programming language so you can read the code because there's no documentation, or writing your own solution/wrapper/gui to any of the above …
<akshatj-c>
katlogic: but it does, even the compiler gives no error
<ELLIOTTCABLE>
… which excludes anybody without the time, ability, or desire to preform that 20% of work.
<ELLIOTTCABLE>
this is why I use Macs.
<ELLIOTTCABLE>
ಠ_ಠ
<katlogic>
akshatj-c: Some compilers just emit warnings about excess initializers, some consider it error.
<katlogic>
akshatj-c: The standard says it is UB/error, but in practice rarely anything is corrupted.
<katlogic>
akshatj-c: That book is some terrible piece of advice, btw.
<katlogic>
Aka, tries to warn about UB by using UB which rarely ever compiles to evil code as an example.
<akshatj-c>
Why?
<katlogic>
The compiler knows something is wrong and fixes it for you in case of EI. Or throws an error.
<katlogic>
Doing otherwise is not helpful.
<katlogic>
Now, omitting the initializer[C would be guaranteed UB, because there is no way to fix it, but is not hard semantic error either, so the compiler warns, but does not fix that for you.
prophile has quit [Quit: The Game]
<katlogic>
ELLIOTTCABLE: Yeah, Apple is good example that perfection pays off. The investment is actually worth it to get competitive advantage.
<katlogic>
Especially if you compete in sea of 80% mediociricity.
<alexgordon>
akshatj-c!
<akshatj-c>
Hi alexgordon
<alexgordon>
akshatj-c: I'm surprised you even found this place
<akshatj-c>
I found it 3 years ago
<alexgordon>
it must have moved above 3 times since you were in here a few years ago
<vigs>
yeah semicommas and underscores are overrated
akshatj-c has quit [Ping timeout: 272 seconds]
<glowcoil>
6:26 AM <cloudhead> it takes between a couple minutes to a couple weeks to understand most things
<glowcoil>
6:26 AM <cloudhead> that's a long time, compared to the learning phase
<glowcoil>
6:26 AM <cloudhead> but once you do, you understand them for the rest of your life
Rusky has quit [Quit: Leaving.]
<glowcoil>
ELLIOTTCABLE: for a while I've been planning to have a whimsical newbie Tempus tutorial and then a link that's like "feeling a little old for this?" for a tutorial that assumes more
Rusky has joined #elliottcable
<ELLIOTTCABLE>
Call it "The Song of Tempus," and write it in epic verse.
<glowcoil>
ELLIOTTCABLE: so i entirely agree with the need for non-technical introductions to most things, but we're fucking *designing a programming language* here, so instead of "don't use those words" i feel the more appropriate thing is to just ask each other about the words we don't get
<glowcoil>
ELLIOTTCABLE: haha there will definitely be one of those
akshatj-c has joined #elliottcable
<glowcoil>
ELLIOTTCABLE: actually i guess what you said about letting people participate in the conversations here makes sense
* glowcoil
shruge
<ELLIOTTCABLE>
Yah @ both
<glowcoil>
idk it seems less productive to keep vocabulary dumbed down in language design discussion though, compared to like, teaching people to program
<glowcoil>
but yeah nerds using unnecessary words
<glowcoil>
about programming
<ELLIOTTCABLE>
my issue isn't with words *when describing the design of new programming languages*
<glowcoil>
you hit that on the head
<ELLIOTTCABLE>
I'm all for an escalating conversation moving into mutually-beneficial linguistic territory, as is appropriate
<ELLIOTTCABLE>
But the fact that they *always* seem to just *start* there, in every IRC room ever, at every conference table, in every classroom,
<ELLIOTTCABLE>
idk.
<glowcoil>
ELLIOTTCABLE: not sure if your longwords in that sentence were intentional
<glowcoil>
haha
<glowcoil>
no yeah you have a good point
<ELLIOTTCABLE>
it crushes my soul that "programming" is considered difficult, that it routinely pays over $100,000 a year in the U.S. …
* glowcoil
nods billion
<ELLIOTTCABLE>
kids and housewives and weightlifters should be doing this shit.
<ELLIOTTCABLE>
To improve their lives.
<ELLIOTTCABLE>
And it's,
<ELLIOTTCABLE>
100%,
<ELLIOTTCABLE>
*our* fault,
<ELLIOTTCABLE>
that they're not.
<ELLIOTTCABLE>
we invested our collective privilege, to bang through those GUI-less 80% projects of katlogic's. and yet we're selfishly doing nothing, in most cases, to pay that investment forward, to reduce it for the next comer.
<ELLIOTTCABLE>
because we feel special for having done so.
<ELLIOTTCABLE>
Because we *need* to feel special for having done so.
<ELLIOTTCABLE>
i feel small-minded and worthless for doing so. >'=
<ELLIOTTCABLE>
it's one of the biggest pains in my life.
<ELLIOTTCABLE>
"real people, every day, think I'm some sort of genius, some sort of special, because I'm a programmer. because I'm an "engineer.""
<ELLIOTTCABLE>
and I just know so strongly, so viscerally, how wrong that is, but I just … it's so hard to see a path through the muck that is our society, to a place where housekidslifters *can* and *do* and,
<ELLIOTTCABLE>
bbl lunch
TheMathNinja has joined #elliottcable
<cloudhead>
what makes you think programming is easier than other professions?
<cloudhead>
if by "programming", you mean typing code that compiles, sure that's not difficult. But contributing wokring solutions to real problems is a whole different ball game
<cloudhead>
and that's what people get paid for
eligrey has joined #elliottcable
<cloudhead>
it's in no way trivial, and you wouldn't want hosuewives and weightlifters to do it
<cloudhead>
in the same way you wouldn't want engineers doing surgery
<cloudhead>
there's too much potential for fuck up
<cloudhead>
even for experts
<cloudhead>
"experts"
<cloudhead>
instead of dumbing things down, people should be brought to the level in which they can understand
yorick has quit [Remote host closed the connection]
akshatj-c has quit [Changing host]
akshatj-c has joined #elliottcable
<alexgordon>
cloudhead: when I was in my teens I wasn't much worse of a programmer than I am now
<cloudhead>
O.o
<cloudhead>
I'd say that's incredibly surprising to me
<alexgordon>
maybe that's an indictment upon myself
<alexgordon>
it takes a long time to learn how to be a doctor or a lawyer
<alexgordon>
it only takes a few years to learn how to be a good programmer if you're motivated and smart
<cloudhead>
hm I must not have been smart or motivated then
<alexgordon>
:P
<joelteon>
yeah, dummy
<cloudhead>
it definitely took more than a few years for me
<cloudhead>
the thing is you cannot become a good programmer on your own
<joelteon>
i find programming to be a process of continual improvement
<joelteon>
i don't think there's ever a point where i'll stop getting better
<cloudhead>
agreed ^
<alexgordon>
I don't think I've improved more than 10% in the last 5 years
<alexgordon>
the tools have improved
<cloudhead>
have you worked with people who were much better than you?
<cloudhead>
in those 5 years
<alexgordon>
cloudhead: sure
<alexgordon>
depends how you classify "work with"
<cloudhead>
i mean every day
<alexgordon>
then no
<cloudhead>
ok
<cloudhead>
well, that would be my explanation
<alexgordon>
but then I'm not doing anything particularly difficult
* alexgordon
shrugs
<purr>
¯\(º_o)/¯
<joelteon>
well maybe you SHOULD
<cloudhead>
:D
<cloudhead>
I mean, that's the whole thing I guess
<alexgordon>
joelteon: if someone pays me to write a compiler, I'll do it ;)
<cloudhead>
if you're working in your comfort zone
<cloudhead>
then you won't improve that much
<cloudhead>
and by zone I don't even mean domain
<alexgordon>
most programming is PHP and node.js and python scripts and objective-c
<joelteon>
alexgordon: ok, write a ruby to c++ compiler
<joelteon>
i'll pay you $30
<joelteon>
USD
<alexgordon>
hardly fields medal worthy
<cloudhead>
heh
<alexgordon>
joelteon: more :P
<joelteon>
you said you'd do it
<joelteon>
don't back out now
<alexgordon>
-_-
<cloudhead>
that's the worse possible combination of languages you could find