News for hackers. Stuff that matters.
Re:Types will be part of Ruby 3 stdlib source by olah_1 on Friday April 19, 2019 @09:16AM (#19699319)
>it probably turned out that having types is an instrumental thing to enable performance improvements.

I was disappointed to find out that adding more types in Perl6 actually slows down performance.

I wonder what the differences are that adding types in one language speeds it up, while adding types in another language slows it down.

Re:Types will be part of Ruby 3 stdlib source by viraptor on Friday April 19, 2019 @09:29AM (#19699414)
It depends what do the type annotations do. I'm not sure how perl6 does it, but for example in python type annotations are completely ignored at runtime, so don't have any impact. We'll see how much / for what does Ruby 3 actually want to use the type information. Sorbet on its own is unlikely to affect runtime either.
Re:Types will be part of Ruby 3 stdlib source by fjp on Friday April 19, 2019 @12:53PM (#19701020)
Going to keep praying for type/performance optimizations in Python so we can all get past the "python is slow" thing.

Async python is an absolute joy to develop with.

Re:Types will be part of Ruby 3 stdlib source by delaaxe on Friday April 19, 2019 @01:21PM (#19701259)
Care to elaborate which type of work you're doing and which libraries you're using?
Re:Types will be part of Ruby 3 stdlib source by fjp on Monday April 22, 2019 @10:19AM (#19719112)
Libraries:

aiohttp: web framework

aiopg: async postgres driver with SQLAlchemy support

asyncssh: async ssh library with SFTP capability

I generally work on CRUD microservices to automate some steps of a business workflow - activating/registering a resource with our vendors, generating and updating pricing, picking up new files off an FTP site and processing.

Re:Types will be part of Ruby 3 stdlib source by lizmat on Friday April 19, 2019 @11:05AM (#19700176)
Type checking is runtime, although if the static optimizer can figure out that a certain call will never work at compile time, it will throw a compile time error.
Re:Types will be part of Ruby 3 stdlib source by joesb on Monday April 22, 2019 @04:43AM (#19717427)
On the other hand, if the static optimizer can figure out that a certain call will always work at compile time, it can remove the runtime check for that part.
Re:Types will be part of Ruby 3 stdlib source by lizmat on Friday April 19, 2019 @11:03AM (#19700168)
Could you elaborate on how you got to the conclusion that adding types in Perl 6 slows things down? They shouldn't, unless you create types that actually run Perl 6 code during type checking. Which is usually not the case.
Re:Types will be part of Ruby 3 stdlib source by olah_1 on Thursday April 25, 2019 @08:12PM (#19753734)
>Could you elaborate on how you got to the conclusion that adding types in Perl 6 slows things down?

I was playing around with adding types to everything in my program. Creating kind of a little Haskell style script. I was sad when it ran slower than it did without the types. Someone informed me that that is the expected outcome because (as you said) type checking is done at run time.

Re:Types will be part of Ruby 3 stdlib source by lizmat on Friday April 26, 2019 @04:29AM (#19755670)
The thing is that even if you do not specify a type, you've implicitly specified the `Any` type. And type checking (which always happens at runtime, whether or not you've explicitly specified any types) will be done against that.

So I'm very curious as to what code exposed a slowdown after explicit types were added.