Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Pricing

Ufuk Kayserilioglu

👤 Person
252 total appearances

Appearances Over Time

Podcast Appearances

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So if you're looking at a method and it has a signature on top of it, and it says these are the parameters that it takes of these types and it returns this type, then you don't need to go and look anywhere else, basically, if you know what those other types are as well. You don't need to go look anywhere else, like to all the colors of this method or whatever. It's just evergreen documentation.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So if you're looking at a method and it has a signature on top of it, and it says these are the parameters that it takes of these types and it returns this type, then you don't need to go and look anywhere else, basically, if you know what those other types are as well. You don't need to go look anywhere else, like to all the colors of this method or whatever. It's just evergreen documentation.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

And the reason why it's evergreen is because if somebody changes the method signature, they have to change the signature on top of the method as well. Otherwise you will have like the static type checker breaking in CI, right? So it has to be evergreen. People need to keep it up to date. And that makes it very easy to onboard new people to your code base or to your team or to your company as well.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

And the reason why it's evergreen is because if somebody changes the method signature, they have to change the signature on top of the method as well. Otherwise you will have like the static type checker breaking in CI, right? So it has to be evergreen. People need to keep it up to date. And that makes it very easy to onboard new people to your code base or to your team or to your company as well.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So we heard from developers that those were all great benefits of adopting types. And like I said, we didn't adopt types across the whole code base, but we're allowing people to adopt those types gradually as much as they want. And our team is also helping people within the company in their adoption process. So sometimes we help them We review their PRs.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So we heard from developers that those were all great benefits of adopting types. And like I said, we didn't adopt types across the whole code base, but we're allowing people to adopt those types gradually as much as they want. And our team is also helping people within the company in their adoption process. So sometimes we help them We review their PRs.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

Sometimes we actually pair with them to make that adoption easier. Or we just answer questions in a Slack channel when they're stuck.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

Sometimes we actually pair with them to make that adoption easier. Or we just answer questions in a Slack channel when they're stuck.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

Okay, so personally, just before I joined Shopify, I was working on code bases that were built by TypeScript. And actually, TypeScript was, I think there is something wrong with me, and I'll come to that.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

Okay, so personally, just before I joined Shopify, I was working on code bases that were built by TypeScript. And actually, TypeScript was, I think there is something wrong with me, and I'll come to that.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So TypeScript was, I was at the time working in a web agency, but I was on the team that were doing like cutting edge two week sprints that were like trying to see if we could make certain things work. And we were mostly working on JavaScript and I consciously chose to try TypeScript to see how it would work. And TypeScript coupled with Visual Studio Code was a joy to use.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So TypeScript was, I was at the time working in a web agency, but I was on the team that were doing like cutting edge two week sprints that were like trying to see if we could make certain things work. And we were mostly working on JavaScript and I consciously chose to try TypeScript to see how it would work. And TypeScript coupled with Visual Studio Code was a joy to use.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

And I started loving it for all the code completion and all the type things. And you don't look at the documentation a lot.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

And I started loving it for all the code completion and all the type things. And you don't look at the documentation a lot.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

Anyway, like I was really enjoying TypeScript before I joined Shopify and I had already heard about Sorbet and like Sorbet got me similarly excited because it has, it still has the promise of doing the same thing that TypeScript did for JavaScript, which was not to destroy the language as a language.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

Anyway, like I was really enjoying TypeScript before I joined Shopify and I had already heard about Sorbet and like Sorbet got me similarly excited because it has, it still has the promise of doing the same thing that TypeScript did for JavaScript, which was not to destroy the language as a language.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

But to add features on top of it that people could opt into if they wanted or needed more strict typing. And it's again, this whole thing, because TypeScript is a hundred percent JavaScript plus some other things. The difference with TypeScript is it compiles into JavaScript. So it does not type checking at runtime. Whereas with Sorbet. It's built inside of Ruby.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

But to add features on top of it that people could opt into if they wanted or needed more strict typing. And it's again, this whole thing, because TypeScript is a hundred percent JavaScript plus some other things. The difference with TypeScript is it compiles into JavaScript. So it does not type checking at runtime. Whereas with Sorbet. It's built inside of Ruby.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So all the sorbet annotations and everything are also Ruby constructs. So those Ruby constructs can also do type checking or type assertions at runtime. So that's the kind of difference, but looking back, I kind of see myself having almost exclusively worked in code bases that had some types somewhere. So I'd worked with Delphi for a while and then C++, C Sharp. And then, like I said, TypeScript.

Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664

So all the sorbet annotations and everything are also Ruby constructs. So those Ruby constructs can also do type checking or type assertions at runtime. So that's the kind of difference, but looking back, I kind of see myself having almost exclusively worked in code bases that had some types somewhere. So I'd worked with Delphi for a while and then C++, C Sharp. And then, like I said, TypeScript.