
Keep Ruby Weird Again [video] - asolove
http://blog.testdouble.com/posts/2016-10-31-keep-ruby-weird-again.html
======
andrew_wc_brown
I loved this video because I got all the references.

I sit on the Ruby on Rails facebook group, and its flooded with people from
India trying to learn ruby. What I find unusual is they publish tutorials when
there are plenty of good sources such as Railscasts, but its like the last 10
years doesn't exist to them and they rehash tutorials.

Ruby was great before javascript frameworks. I haven't gotten around to using
turbolinks but its strongly makes me question whether I should I stop using js
frameworks all together and go full on into turbolinks and go back to a
simpler time of rapid development.

All of sudden everything in web-development requires you to be an engineer. I
think there is a large influx of Uni CS graduates running startups and the
only solution in a complex solution such as React. I can use React but I can't
understand from a business perceptive why you would want to quadruple your
development time and create such a high bar of entry for developers.

#MakeWebDevelopmentGreatAgain #Remeber2006?Imemeber

~~~
petercooper
_What I find unusual is they publish tutorials when there are plenty of good
sources such as Railscasts, but its like the last 10 years doesn 't exist to
them and they rehash tutorials._

I think it's normal. I've seen it a lot amongst people who are actively
learning. It was common in the late 00s in the Ruby world, and is currently
common in the JavaScript, Elixir, Rust and Go worlds. It doesn't matter if
they're "rehashing" \- they're writing stuff as part of the learning process,
we haven't _got_ to read it, and I can only celebrate their enthusiasm. (Plus,
on some topics, it's handy to have tutorials rewritten for the latest OS and
database versions, etc, anyway since things always change slightly.)

~~~
PopsiclePete
So we can look forward to them creating another 20 test frameworks over the
next 10 years? Wonderful...

~~~
petercooper
Maybe. And that would be awesome, I think, because one of them would likely be
better than what we have now and worth using.

------
ttt111222333
I watched the whole thing. Quite entertaining, but the last 6 minutes is what
matters. The strengths he mentions are:

\- tools and culture that's optimized for programmer happiness and
productivity.

\- Promoting obviousness via the path of least surprise.

\- Consistency through well-considered conventions.

\- Carefully-designed value-based test suites.

\- Building long-term maintainable apps

I have to ask because I am being exposed to Ruby at work right now and I find
it, to be quite honest, a terrible language. I'm not trying to start a flame
war, I am writing this cause I want to be open minded and have some hard-core
rubyists point me in the direction of where I can learn what is good about
this language. Specifically:

1) What tools / culture are optimized for programmer happiness & productivity
in ruby? \- I don't find anything special about ruby at all. Let me know what
improves happiness / productivity. I would like to dl whatever tools / ide /
plugins / gems or whatever and take a look into it.

2) Does ruby truly promote the path of least surprise? I am often surprised
when looking at ruby code because I find traceability difficult in Ruby. Where
does the function come from when looking at a ruby codebase? Is it from a gem?
Is it from some parent class that this class has extended? I have no idea. How
do people make Ruby 'less surprising'?

3) I have no idea what is consistent well considered conventions. How do I
know something is a well-considered convention? Just use a rubocop linter?

4) Carefully-designed value-based test suites: Please explain this. What makes
testing in Ruby so much better than in other languages?

5) Building long-term maintainable apps: What makes Ruby apps more
maintainable?

~~~
steveklabnik
To add some quick answers in my experience:

1\. It's a general attitude toward building interfaces; the reader of the code
is put first. Yeah underneath things may be messy, but using those things
should be nice. The onus is placed on the implementor, rather than the user.
Ruby libraries will go to fairly extreme lengths to make things nice to use.

2\. Matz has always said that he meant the path of least surprise to him, not
to every programmer. I personally find this point the weakest.

3\. Yes, stuff like rubocop can help teach you this, but you really pick it up
from reading and writing others' code.

4\. Ruby has had a test-focused bent for a long time; and so it has a lot of
tools for testing. Back when I taught Ruby professionally, I even had an
organization with a Perl webapp want me to teach their testers Ruby, to write
test suites for the app in Ruby rather than Perl. Perl also has great testing,
so I'm not sure I agreed with them in this case, but it is something many
people feel.

5\. I've seen many unmaintainable Ruby apps as well; I think this is something
that should be aspired to overall, not necessarily something that's true
today. Or rather, there's a period of development where people get enthused
with a language, write tons of unmantainable code, step back, figure out why,
and then the next iteration is better. Justin points out that node, being
earlier in its life, might be in step 2, and that Ruby, being more mature, is
on step 4 or 5 here.

~~~
antod
> _1\. It 's a general attitude toward building interfaces; the reader of the
> code is put first. Yeah underneath things may be messy, but using those
> things should be nice. The onus is placed on the implementor, rather than
> the user. Ruby libraries will go to fairly extreme lengths to make things
> nice to use._

I struggle with this a little as newish ruby coder (but not new to coding).
The efforts to make a 'nice' interface can interfere with keeping underlying
implementations elegant/simple.

Too much focus on the happiness of a dev cranking out new code at the expense
of the happiness of developers coming along afterwards trying to understand
it.

Ruby is fun to create stuff with, but I kinda prefer the Python culture that
tries to drum into devs the importance of readability and explicitness for
other developers. As a dev you do far more poring over others code than
creating brand new stuff.

~~~
christophilus
Explicitness. << This is key. Ruby/Rails just feels really implicit and
magical for someone who spent the first 15 years of his career in C++, C#, and
JavaScript. (I've only been doing Rails professionally for a year, though, so
maybe my opinion will change with more experience.)

~~~
quesera
That's mostly an effect of Rails. "Convention over configuration" was one of
the early mantras, and usually it serves well for such a large API...but
sometimes it's just magic.

Ruby itself is a fairly explicit and consistent language. Some of the syntax
might seem surprising at first if you haven't bought into the "everything is
an object (really)" perspective.

~~~
matt_kantor
Chef is pretty magical as well. I think it's easy to get carried away with
syntax-sugary DSLs at the expense of of straightforwardness in Ruby if you
aren't disciplined about simplicity.

------
searls
Hi HN! I'm the speaker in this talk. Just a heads up that when I refer to "The
Failing Hacker News", that's just all part of the satire. It's all love here!

~~~
ambivalence
Well, we'd believe you if you said "Nobody has more respect for Hacker News
than me. I know it, you know it, everybody knows it!"

~~~
searls
Nobody has more respect for Hacker News than me. I know it, you know it,
everybody knows it!

~~~
dccoolgai
Hacker News is a disaster. It's rigged - you can't even mention Javascript
without 10 people - nasty people - saying how everyone who uses JS is
deplorable. It's the worst website in history.

~~~
snovv_crash
Using JS on the backend is deplorable. For front-end work I don't think there
is currently much other choice...

~~~
zrail
(A whoosh so hard it even mussed Trump's hair)

------
igravious
"I'd rather that we all became heroes than just to select a handful
arbitrarily"

Preach it brother!

I do miss _why and his antics though.

While in major part satirical this talk does have a serious message. (See from
about the twenty-second minute onwards.) Ruby is no longer the new hotness.
Javascript is going from strength to strength, new functional programming
languages like Elixir and Clojure on the rise, In the compiled language space
there's Go and Rust. With our though leaders moving on who do we look to for
direction? Imagine if DHH moves on, what do we do then? Justin's point is that
the Ruby community needs to become bigger than its heroes.

I see Python taking on the natural language processing, machine learning,
computational linguistics space. That's a missed opportunity for Ruby. As
awesome as Rails is, its swallowing of mind-share risks making Ruby a one
trick pony.

I think this is a conversation we need to have. I know lots of companies use
Ruby but at one point I believed that Ruby had the potential to become
something like the next Java, and I don't any more.

~~~
hencq
I no longer do anything with Ruby anymore, but I used to for a while (purely
as a hobby) around 2004. That was a wonderful time. Rails had just arrived and
there seemed to be a lot of experimentation and quirkiness around the
language. _why and others showed me the power of DSLs and clever
metaprogramming hacks.

From my exposure to metaprogramming I discovered other languages like
Smalltalk and Lisp with its macros. I now mainly use Clojure, but I don't
think I would ever have discovered that without Ruby.

------
pak
I _love_ this brief history of the Ruby ecosystem and its community, maybe the
Trump parody I've enjoyed most. Maybe, the best.

Incidentally, I suppose the first 5 minutes of fighting with a three-way
dongle and a poor connection, having to restart the talk, etc. is just a
little preview of what every 2016 MBP owner will soon have the pleasure of
experiencing themselves.

~~~
searls
Yeah I'm not thrilled. Turns out I got bit by this bug in the new 12" MB
[http://iphone.appleinsider.com/articles/16/10/20/owners-
of-a...](http://iphone.appleinsider.com/articles/16/10/20/owners-of-
apples-2016-12-inch-macbook-report-usb-c-to-hdmi-adapter-flickering)

~~~
kimburgess
Side note - it looks like that issue (among others) may be with the apple
adapter itself rather than the MB [http://www.cypress.com/knowledge-base-
article/known-issues-u...](http://www.cypress.com/knowledge-base-
article/known-issues-using-apple-usb-c-digital-av-multiport-adapter-and-
apple-29w-usb).

------
pjmlp
Quite interesting, maybe one should also check this older talk:

Robert Martin, "What Killed Smalltalk Could Kill Ruby", 2009

[https://www.youtube.com/watch?v=YX3iRjKj7C0](https://www.youtube.com/watch?v=YX3iRjKj7C0)

------
didibus
Ruby has always been a jack of all trade, master of none.

\- It is not the fastest dynamic language like Clojure or LuaJit.

\- It does not have great C interop like Python.

\- It does not have an easily embeddedable runtime as Lua.

\- It is not the scripting language of all web browsers like JavaScript.

\- It does not have major big business backing like PHP.

\- It is not as good as Lisps for meta-programming and DSLs.

\- It is not amazing at concurrency like Erlang.

\- It is not the bleeding edge of untyped functional programming like Racket
or Clojure.

\- It does not have every library under the sun like Python.

\- It is not as great at OOP as Smalltalk

So while it's perfectly acceptable at all those things, it doesn't excel at
anything. That's why I think it is loosing ground.

It does have Ruby on Rails, and that's still arguably the best Web Framework.

~~~
MrBra
What got Ruby popular (even _before_ Rails) was its expressiveness.

Concerning this aspect, I think it's still above the other languages you
mentioned.

So if you rephrase your sentence like: "jack of all trades, master of _one_ ",
that is, expressiveness (leading to the "developer first attitude", developer
happiness, ecc), then I think it nicely explains why it still represents a
valid choice in many situations.

If it also gets more solid in some of those areas you mentioned (and it's
important to note that the community is focusing exactly on some of those
areas: concurrency ("Guilds"), speed ("3x3"), ecc) then it might not only stop
loosing momentum, but actually start _shining_ again (note that I said
"loosing momentum", not ground: it's easy to loose momentum when you are not a
language backed by Google, but it doesn't necessarily mean you're loosing
ground...)

So, considering all this, why not keep it in consideration as an almost unique
(expressiveness-wise) all-around tool, and keep an optimistic mind for what it
is coming up with, rather than just tagging it as a falling technology?

~~~
MrBra
Relevant:

Ruby 3x3: Matz, Koichi, and Tenderlove on the future of Ruby Performance

[https://blog.heroku.com/ruby-3-by-3/](https://blog.heroku.com/ruby-3-by-3/)

------
er0l
The last 6 minutes with the hat off really struck a chord. Excellent talk and
couldn't agree more.

~~~
searls
The rest is sizzle, that there is the steak

~~~
er0l
mmmm steak

------
TheBiv
I'm currently watching this video and unfortunately I cannot stare at the
video for more than a few seconds bc of that glowing green border around the
outside of the page.

I finally had to just change the color. OP if you have anything to do with
this website, please consider changing that color to almost anything else (or
just remove it).

~~~
searls
Sorry the green bothers you. You could always click through to Vimeo, which is
minimally green [https://vimeo.com/189525997](https://vimeo.com/189525997)

~~~
TheBiv
All good bud!

------
dluan
TIL 'Seattle-style' ruby

~~~
searls
It's a thing! They don't use parantheses! Like savages!

~~~
dluan
Having learned ruby in Seattle coffeeshop meetups, I never realized this. I
also never realized that the weirdness that pervaded Seattle hacker meetups
wasn't normal everywhere else, until I attended meetups in SF. NW rubyists
are... weird.

Also, totally agree with the end this video.

~~~
alexilliamson
Went to a few seattle.rb meetups, and truly felt like the experiences captured
what makes Seattle/Ruby weird, wonderful.

------
deathweasel
Do you know where to find the rest of the talks from this conference, by
chance?

~~~
bdcravens
It was just last Friday (I was there; awesome conference). Usually Confreaks
gets them up in a couple of weeks; here's the URL where they'll appear:
[http://confreaks.tv/events/keeprubyweird2016](http://confreaks.tv/events/keeprubyweird2016)

------
PravlageTiem
Keep your weird contained to your monoliths and stop trying to colonize
JavaScript!

~~~
SocratesV
All your base are belong to us.

