VoV 038: Webassembly and Typescript with 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!
Special Guests:
Eduardo San Martin Morote
Show Notes
Panel:
- 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!
Show Topics:
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:24 – Chris: Can you talk about C++? Compare it to JavaScript?
4:37 – Joe talks about transferring from JavaScript to C++.
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:10 – Guest: When you look at the syntax and create classes with JavaScript...I think C++ has always had classes from the beginning.
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...
9:23 – Guest talks about integers, JavaScript, memory, C++, and building games! Check out this discussion here!
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.
13:57 – Chris: What is different about web assembly compared to trans-piled to JS languages that are basically Ruby. That compile to JavaScript – you don’t have to write the JavaScript (it’s basically Ruby) and your browser will interpret the JavaScript.
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:02 – Chris: I don’t know this...I know that JavaScript is an interpretive language you read it from top to bottom...
17:25 – Panel: Can JavaScript read from top to bottom? I thought you had to see the entire thing? Correct me if I am wrong?
17:45 – Chris: Yeah, yeah – absolutely.
17:52 – Panel: I think that’s roughly accurate. We are way off topic!
18:21 – Chris: Would it be accurate (since we aren’t all experts), but it sounds like web assembly is that it does work on a lower level than JavaScript, so it’s possible to achieve optimizations that wouldn’t be possible with JavaScript. Is that true?
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...
31:37 – Chris: You said that in VS code but I can get that in JavaScript. What is the extra advantage of using TypeScript on top of that?
32:00 – Guest.
32:14 – Chris: Let’s say I ignore the auto-completion, I type quickly – would TypeScript give me a warning?
32:31 – Guest: Yes that is true. If you use it with JavaScript you probably won’t have an error.
33:05 – Chris: A compile time...
You mentioned that you could enable some of these checks in JavaScript. How do you do that?
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?
36:05 – Panel talks about his experience and why people might not use TypeScript. He also mentioned CoffeeScript, C#, and JavaScript.
He gives an analogy of riding a motorcycle and a truck.
38:04 – Panelist continues. He says that people love the freedom of JavaScript.
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.
41:15 – Chris: I don’t think I have found anyone coming from JavaScript that say that TypeScript is not worth it.
41:41 – Guest: I like TypeScript I don’t like writing applications in TypeScript. I like writing my libraries somewhere else. The flexibility that you have in JavaScript helps a lot. I don’t like my components to be typed. I do like having...
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!
Links:
- Vue
- React
- JavaScript
- C#
- C++
- C++ Programming / Memory Management
- Angular
- Blazor
- JavaScript
- DevChat TV
- Graph QL
- WebAssembly
- VuePress
- HACKS
- TypeScript: Generics
- Generic Types
- TypeScript: TS Config.json
- VS CODE
- CoffeeScript
- 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
Sponsors:
Picks:
Joe
- Framework Summit Videos on Youtube - Coming soon.
Divya
Chris
- Vue CLI Plugins Electron Builder
- Read nooks
Eduardo
- Remote work due to traveling
Special Guest: Eduardo San Martin Morote.
VoV 038: Webassembly and Typescript with Eduardo San Martin Morote
0:00
Playback Speed: