<gr33n7007h>
I feel Ruby, really should have implemented types within the language (imho) Time will tell, I suppose.
<Al2O3>
lol
<Al2O3>
uh, well, no
<Al2O3>
if you want typed language, with security, try using somehting like C or C++, or some other strong typed language.
caedmon has quit [Ping timeout: 240 seconds]
<gr33n7007h>
Al2O3: no, that's not the point.
<Al2O3>
sorry I missed it.
<Al2O3>
what is the point?
<gr33n7007h>
see above.
<Al2O3>
I was not online, missed it.
<Al2O3>
in summary?
<Al2O3>
one line of explaining?
<gr33n7007h>
I just don't like the way you have to have a separate file, it feels to me, wrong.
<gr33n7007h>
I understand Matz decision
<gr33n7007h>
Types may or may not be the future of dynamic languages. Who knows...
dviola has joined #ruby
<gr33n7007h>
I think the type inference/annotations of python is the right direction.
<gr33n7007h>
make it a gem, use or don't
dviola has quit [Quit: WeeChat 4.1.2]
<gr33n7007h>
but honestly, it should have been part of the language itself.
<gr33n7007h>
can't see that happening now, too much effort has been put into rbs/typeprof etc.
<gr33n7007h>
but like you said, maybe just don't use dynamic language at this point?
jenrzzz has quit [Ping timeout: 256 seconds]
<gr33n7007h>
anyway, i'm just babbling now. Al2O3 thoughts?
jenrzzz has joined #ruby
<gr33n7007h>
Thing is, it's hard to implement considering a lot of operators are used.
<gr33n7007h>
it can't be ugly
<gr33n7007h>
Al2O3: be excited dude, 3.3.0 released in 6 days lol :p
<Al2O3>
We'll all try and be very excited
<Al2O3>
still using irb 0.9.5(05/04/13)
<Al2O3>
things really haven't changed a lot, just a bit here and there :)
<gr33n7007h>
Al2O3: why???
<gr33n7007h>
"things really haven't changed a lot" on what planet?
<Al2O3>
have you been using ruby for 22 years?
<gr33n7007h>
not quite that long 1.8.3 lol, that must 1.6 era
<gr33n7007h>
i remember when you could pass instance variables as block args, long time ago
<gr33n7007h>
foo { |@bar, @baz| ... } would look weird now
jenrzzz has quit [Ping timeout: 264 seconds]
jenrzzz has joined #ruby
<havenwood>
gr33n7007h: Neither tests nor types are checked at runtime, so it makes sense to me for them to be separate files. Would you like tests inline too? You don't mind the performance overhead?
<havenwood>
I kinda like the idea of executable tests in the docs. Sorbet shows how you can swap out Ruby's parser to avoid the penalty of parsing code not used at runtime, still I don't think it's particularly pretty.
<havenwood>
I think folk are accustomed to inline for compiled or transpiled languages. If you're transpiling say TypeScript to JavaScript you have a chance to remove the types from the code that's actually interpreted. If Ruby did an Elixir-style compilation to IR you could get rid of overhead after first pass.
<gr33n7007h>
havenwood: you mean kinda like rusts test? that'd be awesome! same with type annotation.
<havenwood>
gr33n7007h: Yeah, Elixir supports it as well. There are gems that provide the same, but not built into Ruby of course.
<havenwood>
The advantage of "in the tests" is it's already ignored for typical parsing.
<havenwood>
I meant "tests in the docs"
jenrzzz_ has quit [Ping timeout: 260 seconds]
<havenwood>
Being commented out and all
<gr33n7007h>
havenwood: yeah, really would be great if it was built-in, batteries all included sort of shit
jenrzzz_ has joined #ruby
<gr33n7007h>
havenwood: yeah, i knew what you meant ;)
<gr33n7007h>
am i asking too much lol ;)
<gr33n7007h>
havenwood: do you use Elixir much? I've started dabbling with Julia and I find it quite enjoyable.
jenrzzz has quit [Ping timeout: 246 seconds]
jenrzzz has joined #ruby
<gr33n7007h>
>> x = -> { _1.upcase }; y = -> { _1.reverse }; class Proc alias | call end; x << y | %{wow}
<ox1eef_>
I don't miss a type checker when it comes to Ruby. And I think it would be a mistake for all dynamic languages to adopt one. It's part of what makes them different.
jenrzzz_ has quit [Ping timeout: 260 seconds]
constxqt_ has joined #ruby
otisolsen70 has quit [Quit: Leaving]
conjurus_rex has joined #ruby
xlymian has joined #ruby
jas-maelstrom has quit [Ping timeout: 256 seconds]
szkl has joined #ruby
edr has joined #ruby
jenrzzz_ has joined #ruby
m_antis has joined #ruby
jenrzzz_ has quit [Ping timeout: 264 seconds]
waldensis has joined #ruby
infinityfye has joined #ruby
jenrzzz_ has joined #ruby
brokkoli_origina has quit [Remote host closed the connection]
jenrzzz_ has quit [Ping timeout: 260 seconds]
jenrzzz_ has joined #ruby
brokkoli_origin has joined #ruby
Vonter has quit [Ping timeout: 256 seconds]
<adam12>
I dont' miss typechecker either. What I _would_ like is maybe just some better IDE support through the LSP.
Vonter has joined #ruby
<adam12>
I do enjoy "typechecking" at the edge, where I accept or send input from another system.
jenrzzz_ has quit [Ping timeout: 256 seconds]
<waldensis>
I enjoy typechecking when I work with other people
<ox1eef_>
But Ruby is a language where anything feels possible, there's few constraints: you can change constants, you can open classes, you can define methods at runtime, and on and on. A type checker feels a bit at odds with that. It's about adding constraints.
<adam12>
waldensis: I can see that, only because it forces people to give thought to the shape of their objects.
<adam12>
waldensis: If you have an insane type union, it's smelly enough to hopefully force someone stand back and think about wtf they are doing
eddof13 has joined #ruby
jenrzzz_ has joined #ruby
jenrzzz_ has quit [Ping timeout: 276 seconds]
<havenwood>
gr33n7007h: I do really like Elixir, and it's on of my goto langs, but I haven't been coding much lately.
<havenwood>
Dabbling in Rust too, but Elixir and Clojure are a joy.
<havenwood>
I've never wanted typechecking more in Ruby than when working on RubyGems. It can be a real challenge to find the expected input.
desnudopenguino has joined #ruby
<ox1eef_>
One thing I noticed in TypeScript is that when you are receiving input from an external source you can tell the compiler "yeah it is this shape" but nothing verifies that to be the case, you'd still have to validate manually before you can say with confident it is a certain shape.
caedmon has joined #ruby
jenrzzz has quit [Ping timeout: 268 seconds]
eddof13 has quit [Quit: eddof13]
jenrzzz has joined #ruby
jenrzzz has quit [Ping timeout: 264 seconds]
jenrzzz has joined #ruby
jenrzzz_ has joined #ruby
jenrzzz has quit [Ping timeout: 246 seconds]
jenrzzz has joined #ruby
eddof13 has joined #ruby
jenrzzz has quit [Ping timeout: 252 seconds]
jenrzzz_ has quit [Ping timeout: 256 seconds]
jenrzzz has joined #ruby
jenrzzz_ has joined #ruby
roadie has joined #ruby
joako has quit [Quit: quit]
joako has joined #ruby
jenrzzz_ has quit [Ping timeout: 245 seconds]
jenrzzz_ has joined #ruby
conjurus_rex has quit [Remote host closed the connection]
jenrzzz_ has quit [Ping timeout: 252 seconds]
jenrzzz_ has joined #ruby
eddof13 has quit [Quit: eddof13]
jenrzzz_ has quit [Ping timeout: 276 seconds]
jenrzzz_ has joined #ruby
jenrzzz_ has quit [Ping timeout: 260 seconds]
jenrzzz_ has joined #ruby
donofrio has joined #ruby
eddof13 has joined #ruby
Vonter has quit [Ping timeout: 256 seconds]
Vonter has joined #ruby
<gr33n7007h>
havenwood: Elixir is quite elegant last time experimented with it and has the added bonus that it's run on top of the very solid BEAM VM. Rust is definitely something I should pursue, for real.
jenrzzz_ has quit [Ping timeout: 268 seconds]
<gr33n7007h>
rust has an operator called turbofish, cute! lol
jenrzzz_ has joined #ruby
araujo has quit [Remote host closed the connection]