Agenda
- Smalltalk in C#: AjTalk
- Smalltalk in JavaScript: AjTalkJs
The Project
https://github.com/ajlopez/AjTalk
- VM using bytecodes
- Using .NET types and libraries
- More than one VM in same process
- Using NPM for packaging
- Agents
- Remote Objects
- Transactions (a la STM)
- Minimal image
- Host Machine
- Compile with Visitors
Object Table
AjTalk Strategy
## Accessing .NET objects and types
Native method
```smalltalk
1 toString
```
Creating native objects
```smalltalk
@System.Data.DataSet new
```
Creating native objects with arguments
```smalltalk
@System.IO.FileInfo new: ‘myfile.txt’.
@System.Data.SqlClient.SqlCommand new: ‘select * from employee’ with: conn
```
Agents
Node.js
- JavaScript Runtime
- Based on Google V8 JavaScript Engine
- One thread for JavaScript
- Asynchronous operations via LibUv
- Native Modules
- Module Ecosystem
Vibrant Community
THE END
BY Angel 'Java' Lopez / www.ajlopez.com / @ajlopez