VoV 038: Webassembly and Typescript with Eduardo San Martin Morote
- Chris Fritz
- Joe Eames
- Divya Sasidharan
Special Guest: Eduardo San Martin Morote
In this episode, the panel talks with Eduardo San Martin Morote who is a member of the Vue.js team, a speaker, and trainer who currently resides in France. The panelists and Eduardo talk about developing games, coding, WebAssembly, C++, Vue, Angular, memory management, and much more! Check it out!
0:33 – Chris: Today’s panel is Joe Eames who organizes many different conferences.
1:09 – Joe: That was long introduction! Hi everyone! I organize an Angular conference, too; it’s very small.
1:26 – Chris: Divya is also on our panel and is an awesome speaker and conference organizer. Our special guest is Eduardo San Martin Morote!
1:55 – Chris: Actually it’s good that I get your full name. I do speak a little bit of Spanish.
2:17 – Panel goes back-and-forth.
2:33 – Guest: It was good and sounded like American Spanish.
2:47 – Chris: This is about Eduardo and not my Spanish. You used to be a game developer?
3:08 – Guest.
3:17 – Chris: You wrote a lot of C++?
3:20 – Guest: Yep!
3:22 – Chris.
3:50 – Guest: It’s optimized – you can handle 1 million requests per second – but that doesn’t happen unless it’s a huge organization.
4:48 – Guest: I am an instructor, too, and teach Vue.js to people. The thing to me is the variable scoping of functions.
5:50 – Chris: Variable scoping – let’s not get into too much detail, cause we are an audio medium.
6:58 – Chris: I used to write things back in the day with C++. I remember some features that were added later that I never got to take advantage of. I can’t remember what they were. I thought classes were one of those things. It won’t be a fruitful line of discussion cause I would be guessing.
Chris: What’s different about C++ is that the types are more important?
7:57 – Guest: It’s not that it’s important it’s necessary.
8:27 – Guest: Pointers are an integer that...
8:47 – Guest continues.
8:52 – Chris: In C++ when you say memory management you are...
11:00 – Panelist talks about web assembly and asks a question.
11:23 – Guest: You will always have...the thing is that you are always getting the most out of the hardware. Computers keep getting faster and faster and people are building games with more effects.
11:53 – (Guest continues): Native video games will always be a step ahead of what web assembly can achieve.
12:50 – Have you heard of Blazor (from Microsoft)? (No.) You write it all in C#.
Panel talks about Silver Light.
14:42 – Divya: Doesn’t it run on the GPU? That it runs on the graphic card?
14:55 – Chris: It works at a very low-level. Take any language and have the same low access that languages do (low as safely as possible) in the browser b/c there is still security concerns.
15:27 – Guest.
15:43 – Chris: What if I am using Canvas?
15:54 – Guest: ...the logic of your game will be faster.
16:20 – Chris: You have more fine-grained control? And you can control the speed of operations?
16:25 – Guest: You should be able to. If you are using a program like C++...
17:45 – Chris: Yeah, yeah – absolutely.
17:52 – Panel: I think that’s roughly accurate. We are way off topic!
18:58 – Divya: I think you could say that...there is an article by Lin Clark that you should check out!
19:37 – Panel: See link to show notes to find article and here!
19:48 – Chris: What got you started into web development? Why no longer game development?
20:02 – Guest: When I started coding at 13-14 years old. It’s funny b/c at 15 years old I was coding and I didn’t even know that I was doing it.
22:41 – Chris: Toxic like...?
22:50 – Guest: Before I was thinking of the long hours and people were working too much, and not getting the recognition that they deserve. It was toxic, and it was a diverse environment. I realized that diversity is very important. The field is changing, but that’s why.
23:42 – Chris.
23:52 – Chris: Something else, it sounds like more familiar with C++ is TypeScript. Talk about that please?
24:17 – Guest: What got me into it were the generic types.
24:30 – Chris: What is a generic?
24:44 – Guest talks about generics. He mentions integers and other terms.
25:30 – Panel helps to clarify about generics, too.
27:08 – Panel: I got into generics when...
Panel: Did you get into generics around the same time as C++?
27:27 – Guest.
28:00 – Panel: Where I see generics being used is with RJS.
29:15 – Chris: What is the point?
29:19 – Guest: I think there are many points of view with this. When I build my libraries...
32:00 – Guest.
32:14 – Chris: Let’s say I ignore the auto-completion, I type quickly – would TypeScript give me a warning?
33:05 – Chris: A compile time...
Say you have an editor like VS Code, but can actually when there is a potential error?
33:47 – Guest: For a project you have to create a...
34:20 – Chris asks a question.
34:28 – Guest: Yes, I think it does. Pretty sure it does.
34:37 – Chris and Guest go back-and-forth.
35:05 – Chris: See Show Notes for TS Config.
35:10 – Panel.
35:53 – Chris: If they choose not to use TypeScript what are the downsides?
He gives an analogy of riding a motorcycle and a truck.
39:23 – Chris: If most of your bugs aren’t being caught by...
40:00 – Panel: Something that looks and sees and fits super well doesn’t mean that it’s a good idea. A big project is totally different. When you dip your toe in the water it might be more overhead that you don’t’ need. You have to think about the smaller / larger cases. I think that’s why Vue is getting a lot of popularity.
42:27 – Guest continues.
43:35 – Chris: Why is it different bad or different good?
43:40 – Guest: It’s bad.
43:53 – Chris: What hurts your development?
44:00 – Guest: You get typing errors.
The guest gives a specific example.
45:11 – Chris: It sounds like with applications you are doing more proto typing and changing requirements. Making the types really strict and specific can really hurt you?
45:39 – Guest: That’s better.
45:44 – Chris asks another question.
46:00 – Panel: That’s mostly true.
46:13 – Chris: Types can make some refractors easier, but overall a lot of refractors are going to take longer with TypeScript. At least with your application - say it’s organized in both cases.
46:55 – Chris: One more thing about TypeScript – some people (if not coming from C# or C++) I have found that people are spending a lot of time (making sure the typing is working really well) rather than writing unit tests and stuff like that. There is an opportunity cost there.
Try TypeScript – it might be for you!
48:10 – Panel: As the team grows so do the benefits!
48:20 – Chris: Anything else? Where can people find you?
48:24 – Guest: I am giving a workshop in Toronto in November!
48:54 – Guest: Twitter!
- C++ Programming / Memory Management
- DevChat TV
- Graph QL
- TypeScript: Generics
- Generic Types
- TypeScript: TS Config.json
- VS CODE
- Opinion – “In Praise of Mediocrity” by Tim Wu
- GitHub: Vue-Cli-Plugin_Electron-Builder
- Eduardo’s GitHub
- Eduardo’s Twitter
- Eduardo’s Code Mentor
- Eduardo’s Medium
- Eduardo’s Trello
- Framework Summit Videos on Youtube - Coming soon.
- Vue CLI Plugins Electron Builder
- Read nooks
- Remote work due to traveling