<ELLIOTTCABLE>
I mean, you definitely didn't invent it. The async/await syntax is years and years old.
<ELLIOTTCABLE>
JS copied it from C#, who copied it from …
<ELLIOTTCABLE>
Python? Maybe?
<ELLIOTTCABLE>
nah, Python coped it from C# too
<eligrey>
yeah python invented it
<ELLIOTTCABLE>
so far, not a huge fan, anyway
<eligrey>
but everyone thinks es6 is so amazing in 2016 when ive been using it all along
<eligrey>
at least the async stuff
<ELLIOTTCABLE>
as usual, trying to do asynch stuff in JavaScript just makes me sick that I'm *building* the langauge I want, instead of *using* the language I want |=
* ELLIOTTCABLE
pats eligrey
<eligrey>
no thats entirely why i follow you
<eligrey>
i want to use paws eventually for stuff
<ELLIOTTCABLE>
anyway.
<ELLIOTTCABLE>
how about libgit2?
<ELLIOTTCABLE>
lol the only thing Paws is useful for is writing another language
<eligrey>
are you forking it?
<eligrey>
get rid of sha1 and replace with sha3
<ELLIOTTCABLE>
forking libgi2? nah
<ELLIOTTCABLE>
lmao.
<ELLIOTTCABLE>
no. I'm using NodeGit, and realllllly don't want to touch Promises with a ten-foot pole
<ELLIOTTCABLE>
hence, keeping them at arms' length with async/await & Babel
<eligrey>
chrome has arg1 => do stuff with arg1.blah
<eligrey>
and firefox now
<ELLIOTTCABLE>
yeah, don't care much about browsers rn
<eligrey>
arrow notation
<ELLIOTTCABLE>
my only browser-relevant work is Paws, and that's all in like EcmaScript2000BC. /=
<eligrey>
my commercial stuff is all non-browsers
<ELLIOTTCABLE>
and this current project, now that I'm *finally* playing with ES2015+, is Node-only
<eligrey>
share.oftn.org needs node too unfortunately
<eligrey>
for instant.io stuff
Rurik has joined #elliottcable
Rurik has joined #elliottcable
<ELLIOTTCABLE>
this song has been fuckin' *doing* it for me, recently
<ELLIOTTCABLE>
got some private-repo work on the web-site
<jfhbrook>
`grep -R 'prototype.whatever =' ./lib
<jfhbrook>
`
<ELLIOTTCABLE>
but finally decided to start on the meat of it
<jfhbrook>
or ag, or whatever
<ELLIOTTCABLE>
which is *fucking hellish* because, god, damn, the internals of libgit2 are fucking horrifying
<jfhbrook>
oh, ag actually told me the "don't do regular expressions" flag today and I already forget it
<jfhbrook>
basically it only comes up if you type an invalid regexp
<ELLIOTTCABLE>
I tend to avoid regexp search
<jfhbrook>
I don't explicitly try for it
<jfhbrook>
I'm usually trying for an exact string match
<ELLIOTTCABLE>
it's almost *always* faster, for me, to type like ten ags in a row of permutations of static strings, than it is to construct the right regex, to find what I want
<ELLIOTTCABLE>
yeah
<jfhbrook>
beause *that*'s easy to reason about
<ELLIOTTCABLE>
I keep it aliased to the disable-regex version
<ELLIOTTCABLE>
node-log would be a better name 4shur
<jfhbrook>
idk I was never wild about a single tj library
<jfhbrook>
and I feel bad
<ELLIOTTCABLE>
ugh yes I hate him
<ELLIOTTCABLE>
it's totally unreasonable but I just, do
<jfhbrook>
because I suspect part of that is due to my old bosses at nodjatso also hating him
<ELLIOTTCABLE>
have some old beef from Back In The Day
<jfhbrook>
I used to be okay with express, but I think I like hapi better
<ELLIOTTCABLE>
idk webframeworks period
<jfhbrook>
hapi kinda sucks too in its own way so I don't think there's a clear winner there
<jfhbrook>
well
<ELLIOTTCABLE>
burned by rails, and have avoided them almost entirely ever since
<jfhbrook>
"frameworks"
<jfhbrook>
oh jesus
<jfhbrook>
very very different ELLIOTTCABLE
<ELLIOTTCABLE>
once in a *blue* fuckin' moon, I'd do a Sinatra something-or-other, or play around with Connect, but. lol.
<ELLIOTTCABLE>
yes, aware, lol
<jfhbrook>
so like here's the thing
<jfhbrook>
there's a whole mess of things you need to build My Little Crud App
<ELLIOTTCABLE>
I get what they *are*, but what I do boils down to: 1. complex sites that are *architecturally* simple, and that I can build as static HTML with front-end code,
<ELLIOTTCABLE>
or 2. *insanely simple* things that still need some backend stuff, that I can implement by hand as an HTTP server.
<ELLIOTTCABLE>
and that's just ... what I end up doing. every time.
<jfhbrook>
no I mean, if what you need is a route handler and a views abstraction, microframeworks have you covered
<ELLIOTTCABLE>
I think I have something somewhere actively using connect, maybe? one thing? and that's it?
<jfhbrook>
a route handler, a views abstraction and a "plugin layer"
<jfhbrook>
that's what express and hapi both give you
<jfhbrook>
the most obvious thing I don't really like about ruby is that it has like 30 "function-like" abstractions for no good god damned reason
<ELLIOTTCABLE>
but in terms of just *being a programming language*, nothing will ever beat ruby. ruby is literally just fucking perfect in every fucking way and is teh god-language and iw ill putnc you iun the balls if u diagree
* ELLIOTTCABLE
begins to spin in circles faster and faster
* ELLIOTTCABLE
begins to smoke and sputter
<jfhbrook>
like js and python aren't perfect here, I get that there are object binding rules and everyone has to fucking make a lambda type
* ELLIOTTCABLE
a distant keening sound begins to descend from the higher registers
<jfhbrook>
but come on
<jfhbrook>
I dunno
* ELLIOTTCABLE
you can't tell where it began, but you get the impression it was happening a long time before you were consciously aware of it
<jfhbrook>
I think maybe if I wasn't introduced to it by rails and _why and instead came into it via devops I'd be more down
* ELLIOTTCABLE
small flashes of light appear in your peripheral vision, distortions affect your sight of all things around you except ELLIOTTCABLE
<jfhbrook>
problem there: python is an acceptable devops environment much like ruby and, well, I like python
<jfhbrook>
I don't like that it's python 2 but whatever
<ELLIOTTCABLE>
yeah, I dislike Python and love Ruby; I started with Ruby and am only now learning Python
<jfhbrook>
python has some stupid stuff
<jfhbrook>
but if you color inside the lines it's pleasant
<ELLIOTTCABLE>
like, I think literally no possible Python feature will redeem it in my eyes after I discovered that the initialization values of default arguments are *shared* across invocations, what the everliving fuck
<jfhbrook>
and it allows its fair share of Weird Things to be possible
<ELLIOTTCABLE>
and the one-line lambdas piss me off but whatever
<jfhbrook>
yeah those irritate me too
<jfhbrook>
python people think I'm nuts for wanting multi-line lambdas
<ELLIOTTCABLE>
tbh I hate Ruby *internally*; but the beautiful thing is, none of that *matters*
<ELLIOTTCABLE>
if you sit down to teach somebody to program, making *any choice* except Ruby is just Fucking Foolish
<jfhbrook>
I also have this problem where ruby almost never has a library to do a specific thing I want to do, that someone else has done better
<jfhbrook>
hasn't*
<ELLIOTTCABLE>
most of the above was silliness, but I *do* genuinely believe that:
<jfhbrook>
I do honestly believe python's a good starter language, and that javascript is acceptable
<jfhbrook>
I don't doubt ruby is good too
<ELLIOTTCABLE>
Ruby has some Eldritch Horrors in parse.y and the the 9 Circles of Meta-Meta-Singleton Eigenclass are one of the most viscerally disturbing things you'll ever see in programming,
<ELLIOTTCABLE>
but … as long as you don't get deep as fuck, everything above the waterline is truly intuitive, beautiful, easy-going, friendly ... just, wonderful
<ELLIOTTCABLE>
every other language has warts *above* the water-line
<jfhbrook>
yeah no python's really similar in that regard, to me
<jfhbrook>
even the lambdas
<ELLIOTTCABLE>
Ruby has some truly horrific ones, but like, 100%, literally every single part I *don't* like about the language, is buried behind “you're probably doing Bad Things.”
<jfhbrook>
because if you're writing pythonic code anything longer than a line you want to document anyway
<ELLIOTTCABLE>
which no other language has acheived for me.
<jfhbrook>
which reminds me, I have a python program I need to hack on
<jfhbrook>
gnight ec
<ELLIOTTCABLE>
jfhbrook: <3
<ELLIOTTCABLE>
alexgordon: paws
<ELLIOTTCABLE>
-didja @ alexgordon
<purr>
alexgordon: didja write a paws yet? didja? didja!?
<alexgordon>
I'm sure I did a few years ago
<ELLIOTTCABLE>
9:41 PM <jfhbrook> I also have this problem where ruby almost never has a library to do a specific thing I want to do, that someone else has done better
<ELLIOTTCABLE>
I strongly believe this is an effect of the language being an *easy language to do easy things in*
<ELLIOTTCABLE>
90% of the time, it's easier to write the two lines of code to do <simple task>, than to include a library
<ELLIOTTCABLE>
the *opposite* of JavaScript, where the language has so much ... friction, that it's often easier to include a module, even if the module is only like 5 lines of code.
<ELLIOTTCABLE>
well this didn't go well
<ELLIOTTCABLE>
FATAL ERROR: invalid array length Allocation failed - process out of memory
<ELLIOTTCABLE>
haaaaaave definitely never had that happen in JavaScript before. <,<
<jfhbrook>
I'm usually looking for non-trivial things ELLIOTTCABLE
<jfhbrook>
like, python has numpy
<ELLIOTTCABLE>
you're never gonna beat Python for scientific/numerics work, anywhere.
<jfhbrook>
sure, and ruby doesn't *have* to beat python
<jfhbrook>
at *that*
<ELLIOTTCABLE>
that's like *the selling point*, besides them actually accepting the obvious fact that semantic indentation is the one true god of programming
<jfhbrook>
but it should beat it at *something*
<ELLIOTTCABLE>
writing literally any other code. ;)
<jfhbrook>
except I can never find libraries for any of the shit I'm interested in
<jfhbrook>
I'm talking, like, bindings and api clients
<ELLIOTTCABLE>
I'd say Perl is a 05, ES5 is a 35, ES6 a 45, and Python is an 85
<ELLIOTTCABLE>
if I'm rating Ruby a 100
<ELLIOTTCABLE>
and the thing is, like, there's no reason to thoroughly learn Ruby if you thoroughly know Python.
<ELLIOTTCABLE>
difference isn't big enough, and the set of tasks they solve *well* is too similar.
<jfhbrook>
that's my point, there's no selling point for ruby in terms of Things You Can Do, like functionality, from what I saw pypi beats the pants off rubygems
<jfhbrook>
I think ecosystem is almost more important than the language itself
<jfhbrook>
which is a shame, obviously
<ELLIOTTCABLE>
ehhhhhhhh. Disagree, for a whoooole bundle of reasons.
<jfhbrook>
so like
<jfhbrook>
what are some good ruby libraries?
<ELLIOTTCABLE>
npm now trounces literally everything else that isn't on the JVM,
<ELLIOTTCABLE>
but like ... I wouldn't say *that's* a selling point that makes up for the language itself, much, at all.
<jfhbrook>
sure, npm makes everyone's package manager look wimpy
<jfhbrook>
well it's about quality as much as it is quantity
<ELLIOTTCABLE>
EventMachine, Hpricot, Sinatra, such are the ones I can remember
<ELLIOTTCABLE>
it's been years :P
<jfhbrook>
but libraries enable me to do things
<ELLIOTTCABLE>
yeah, that's the thing. Ruby's got *stellar* libraries, in every single case I can remember.
<jfhbrook>
so those are all things I can already do in a myriad of languages and environments
<ELLIOTTCABLE>
I miss that community constantly when working with the mountains of difficult-to-use, poorly-documented shit that the Node community produces >
<ELLIOTTCABLE>
>: *
<jfhbrook>
like everyone and their dog has a sinatra clone
<ELLIOTTCABLE>
1. somebody needs it for the first time, and it gets written in that somebody's pet language.
<ELLIOTTCABLE>
2. bunch of other language communities write mediocre solutions in 100 different ways.
<ELLIOTTCABLE>
3. Ruby community notices, or needs it, and writes The Single Best Way to do it,
<ELLIOTTCABLE>
4. *new* packages show up in all the other languages that copy the Ruby community's choice of approach, and then that new package dominates whatever old package / way-of-doing-things the language used to use.
<jfhbrook>
it probably feels that way a lot of the time, but while ruby's somewhat influential there are **plenty** of influential libraries and environments
<ELLIOTTCABLE>
shit like middleware came out of Rubyland, event-loops for “apps”, all sorts of syntactic choices and flavours originated there (basically everything currently popular in non-C-flavoured languages, except semantic indentation, which obv. is a Pythonism),
<jfhbrook>
like, when I think events, I think twisted, and I bet twisted's older then eventmachine
<jfhbrook>
no, middleware came from python
<jfhbrook>
middleware's straight out of wsgi
<jfhbrook>
rack was a port of wsgi to ruby
<ELLIOTTCABLE>
lolol
<purr>
lololol
<ELLIOTTCABLE>
well then.
<ELLIOTTCABLE>
I'm going to depart the conversation, because I find Python *such* a pain in my ass that I can never be impartial here,
<jfhbrook>
no it's fine if you don't like python
<ELLIOTTCABLE>
but let's just say ... your arguments aren't convincing, in terms of me suggesting something other than Ruby as Everyone's First Language.
<jfhbrook>
I mean
<ELLIOTTCABLE>
another way to put it: I'm in a class right now, watching people struggle with Python; and I've watched enough *others* struggle with Ruby while tutoring, to have some idea with the sorts of problems people have?
<jfhbrook>
even for a first language it helps if you get instant gratification
<ELLIOTTCABLE>
and there's a lot more confusion over basic things here that just ... don't exist in Ruby /=
<jfhbrook>
maybe you can get that from ruby, idk
<ELLIOTTCABLE>
also woah I can't believe I got roped into a Python/Ruby argument, and actually got *invested*
<jfhbrook>
I needed numerical stuff so I'm really really heavily biased there
<ELLIOTTCABLE>
who cares, they're both better than JS or Perl or some low-level Systems BS™, if they're an option for you.
<ELLIOTTCABLE>
tennis vs. racquetball
<jfhbrook>
I only push because I want to like ruby XD
<ELLIOTTCABLE>
I *love* ruby. God. I don't think I'll ever stop loving it.
<jfhbrook>
I should just like
<jfhbrook>
get really into puppet
<jfhbrook>
or something stupid like that
<ELLIOTTCABLE>
I deeply hope that Ruby, Rust, and Paws, are the only languages I need to care about / work in, in the 2020s.
<jfhbrook>
it sucks that ruby was first in that space
<ELLIOTTCABLE>
so tired of JavaScript. so tired of C-family.
<jfhbrook>
because, like, the python implementations (ansible, salt) came later and learned a few lessons
<jfhbrook>
yeah, javascript *is* tiring
<jfhbrook>
I still like it
<ELLIOTTCABLE>
same.
<jfhbrook>
but I'm kinda done with it as a discipline
<ELLIOTTCABLE>
tiring, but I don't *hate* it.
<ELLIOTTCABLE>
am literally just tired, not hating.
<ELLIOTTCABLE>
it's necessary for me. /=
<ELLIOTTCABLE>
maybe some day WebAssembly will be a stable real thing and I can consider moving my Paws work to a compiled bytecode-VM instead of having to make a terrible-ass bytecode-interpreter my ground-zero, but. ‘someday.’ who even knows.
<jfhbrook>
idk what webassembly is
<ELLIOTTCABLE>
???
<ELLIOTTCABLE>
basically it's the NaCl people and the asm.js people resolving their differences by throwing both away and doing what they should have done in the first place
<ELLIOTTCABLE>
it's binary and is designed as a binary-compilation target, so that satisfies some of what the NaCl people wanted; and it's based semantically on existing JavaScript (well, asm.js) principles, so improvements to WebAssembly evaluation should hopefully trickle back up to plain JavaScript (which satisfies some of what the asm.js people wanted) ...
<ELLIOTTCABLE>
unfortunately it loses the ‘coolness’ of both of those. (secure *machine-code* evaluation haxery from NaCl, and higher-level-language as a compile target, which are the things I cared about from either of those, are gone. *shrug*)
<purr>
¯\(º_o)/¯
<ELLIOTTCABLE>
but it seems eminently practical, and almost everybody is behind it.
<ELLIOTTCABLE>
Goog, Microsoft, Mozilla, and it's spearheded by Eich, so
<ELLIOTTCABLE>
give it 10 years and you'll be happily `import 'dom'` or whatever and compiling your Python for the browser. that's pretty much inevitably where things are headed right now.
<jfhbrook>
yeah I get that
<ELLIOTTCABLE>
writing JavaScript directly is looking to become the systems-programming of the web; I expect a lot of existing front-end stuff is going to explode in diversity into Each Person's Favourite Langauge du jour
<jfhbrook>
fuck
<jfhbrook>
there are rumors about my needing to maintain c++ code with only 2 programmers at the company fluent
<ELLIOTTCABLE>
stuff to be aware of. need to keep an eye on where the industry is going, instead of fapping about ES2017 features or whatever /=
<jfhbrook>
and I want them to teach me
<ELLIOTTCABLE>
C++ guhg
<jfhbrook>
I just realized, it's 11:00pm on a friday and I haven't mentioned my interest to our lead architect
<jfhbrook>
I can't say c++ is pretty
<jfhbrook>
but I think it's valuable to learn for a number of reasons, For Me
<jfhbrook>
I'm not any good at compiled languages, strongly typed languages, or languages with pointers
<jfhbrook>
and, well, a whole shitload of the other trappings of c++