SlideShare a Scribd company logo
Rustとは
パヴェウ・ルシン
株式会社ブリリアントサービス
2015.04.07
 自己紹介
 会社の紹介
 なぜRustか?
 Rustの基本
アジェンダ
 Paweł Rusin (パヴェウ・ルシン)
 pawel.rusin@brilliantservice.co.jp
Facebook: Paweł Rusin (iofar@o2.pl)
Twitter: RusinPaw
 会社:
 株式会社ブリリアントサービス
 業務:
開発部のエンジニア(主にiOSアプリケーショ
ン開発)
自己紹介
 株式会社ブリリアントサービス
 本社:大阪
 支社:東京(品川)、シリコンバレー
 アプリケーション開発、O2Oサービス開発、スマートデ
バイス開発
会社の紹介
 ジェスチャーで操作できる電脳メガネ
 ジェスチャー認識システム
 拡張現実で独特な体験を提供
 FreeBSDベース
 開発言語はCとObjective-C...
miramaについて
Objective-C
Swift
C Objective-C
システム
パーフォーマンス
OO
P
豊かなstandard library
?
モダーン
安定(メモリー管理)
書きやすい
他の希望特徴
Rustとは
●
2009年からMozilla Researchで開発しているプログラ
ミング言語
●
マルチパラタイム(純関数型、オブジェクト指向な
ど)
●
クライアントーサーバーアピリケーションに向け
●
特徴:メモリー・セーフ、並列性
●
開発中:現在点1.0.0 beta(2015年5月ver1.0リリス予
定)
参照
●
Rust book: https://doc.rust-lang.org/book/ (nightly bu
ild)
●
Rust documentation: http://doc.rust-lang.org/
●
IRC irc.mozilla.org #rust
$ curl -sf -L https://static.rust-lang.org/rustup.sh | sudo sh
$ curl -f -L https://static.rust-lang.org/rustup.sh -O
$ sudo sh rustup.sh
インストール仕
方
バイナリかソースからインストール可能:
http://www.rust-lang.org/install.html
$ git clone https://github.com/yohanesu/tokyorust-part1
fn main() {
println!("Hello World!");
}
example1.rs
マクロ
$ rustc example1.rc
$ ./example1
fn main() {
let n = 5;
if n < 0 {
println!("{} is negative", n);
} else if n > 0 {
println!("{} is positive", n);
} else {
println!("{} is zero", n);
}
}
example2.rs
Non-mutable!
struct Rectangle{
x : i32,
y : i32
}
impl Rectangle{
fn area(&self) -> i32{
self.x*self.y
}
}
fn main() {
let rect = Rectangle{x:2,y:3};
println!("Rectangle area is {}",rect.area());
}
example3.rs (OO
P) struct定義でIV
struct実装でメソッド
example4.rs (純関数
型)
不安定機能#![feature(core)]
#![feature(collections)]
use std::iter::AdditiveIterator;
fn main() {
let kanji_array : [String;3] = [
String::from_str("Rust is fun."),
String::from_str("You can use High Order Functions."),
String::from_str("I want to learn more.")];
let char_count = kanji_array.iter().map(|s : &String|s.len()).sum();
println!("Character count: {}", char_count);
}
example4.rs (純関数型)
Rust is fun!
You can use High Order Functions!
I want to learn more!
12
33
21
61
sum()
String.len()
String.len()
String.len()
map()
メモリー管理
●
バッグの原因:
– freeしない(メモリーリーク)
– freeされたメモリーを使用
– 二回目free
– Null pointer dereference
●
対策
– Smart pointers
– Garbage collector
– ARC (Automatic reference counting)
borrow.rs (メモリー管理)
fn main() {
let x = 4;
let y = &x;
println!("Address of x is {:p} address of y is
{:p}",&x,y);
}
Address of x is 0x7fff5fa1795c address of y is 0x7fff5fa1795c
–メモリー管理 immutable borr
ow
x x x
y
z
example5.rs (メモリー管
理)
fn main() {
let x = 4;
let y = &x;
println!("Address of x is {:p} address of y is
{:p}",&x,y);
*y = 1;
}
borrow.rs:6:4: 6:10 error: cannot assign to immutable borrowed content
`*y`
borrow.rs:6 *y = 1;
^~~~~~
error: aborting due to previous error
example5.rs (メモリー管
理)
fn main() {
let mut x = 4;
let y = &x;
println!("Address of x is {:p} address of y is
{:p}",&x,y);
*y = 1;
}
borrow.rs:6:4: 6:10 error: cannot assign to immutable borrowed content
`*y`
borrow.rs:6 *y = 1;
^~~~~~
error: aborting due to previous error
example5.rs (メモリー管
理)
fn main() {
let mut x = 4;
let y = &mut x;
println!("Address of x is {:p} address of y is
{:p}",&x,y);
*y = 1;
}
borrow.rs:5:58: 5:59 error: cannot borrow `x` as immutable because it is
also borrowed as mutable
borrow.rs:5 println!("Address of x is {:p} address of y is {:p}",&x,y);
^
note: in expansion of format_args!
<std macros>:2:25: 2:58 note: expansion site
<std macros>:1:1: 2:62 note: in expansion of print!
<std macros>:3:1: 3:54 note: expansion site
<std macros>:1:1: 3:58 note: in expansion of println!
borrow.rs:5:4: 5:63 note: expansion site
borrow.rs:4:17: 4:18 note: previous borrow of `x` occurs here; the mutable
borrow prevents subsequent moves, borrows, or modification of `x` until
the borrow ends
borrow.rs:4 let y = &mut x;
^
borrow.rs:7:2: 7:2 note: previous borrow ends here
borrow.rs:1 fn main() {
...
borrow.rs:7 }
^
error: aborting due to previous error
example5.rs (メモリー管
理)
fn main() {
let mut x = 4;
let y = &mut x;
println!("Address of x is {:p} address of y is
{:p}",&x,y);
*y = 1;
}
borrow.rs:5:58: 5:59 error: cannot borrow `x` as immutable because it is
also borrowed as mutable
borrow.rs:5 println!("Address of x is {:p} address of y is {:p}",&x,y);
^
note: in expansion of format_args!
<std macros>:2:25: 2:58 note: expansion site
<std macros>:1:1: 2:62 note: in expansion of print!
<std macros>:3:1: 3:54 note: expansion site
<std macros>:1:1: 3:58 note: in expansion of println!
borrow.rs:5:4: 5:63 note: expansion site
borrow.rs:4:17: 4:18 note: previous borrow of `x` occurs here; the mutable
borrow prevents subsequent moves, borrows, or modification of `x` until
the borrow ends
borrow.rs:4 let y = &mut x;
^
borrow.rs:7:2: 7:2 note: previous borrow ends here
borrow.rs:1 fn main() {
...
borrow.rs:7 }
^
error: aborting due to previous error
example5.rs (メモリー管
理)
fn main() {
let mut x = 4;
let y = &mut x;
//println!("Address of x is {:p} address of y is {:p}",&x,y);
*y = 1;
}
成功!
example5.rs (メモリー管
理)
fn main() {
let mut x = 4;
if true {
let y = &mut x;
println!("Address of y is {:p}",y);
*y = 1;
}
println!("Address of x is {:p}",&x);
}
Address of y is 0x7fff51b4795c
Address of x is 0x7fff51b4795c
yのlifetime = 借りる範囲
–メモリー管理 mutable borrow
mut x x mut x
mut y
example5.rs (メモリー管
理)
fn main() {
let x = Box::new(4);
let y = x;
println!("Value of y is {}",y);
}
Value of y is 4
example5.rs (メモリー管
理)
fn main() {
let x = Box::new(4);
let y = x;
println!("Value of y is {}",y);
println!("Value of x is {}",x);
}
borrow.rs:6:32: 6:33 error: use of moved value: `x`
borrow.rs:6 println!("Value of x is {}",x);
^
note: in expansion of format_args!
<std macros>:2:25: 2:58 note: expansion site
<std macros>:1:1: 2:62 note: in expansion of print!
<std macros>:3:1: 3:54 note: expansion site
<std macros>:1:1: 3:58 note: in expansion of println!
borrow.rs:6:4: 6:35 note: expansion site
borrow.rs:4:8: 4:9 note: `x` moved here because it has type
`Box<i32>`, which is moved by default
borrow.rs:4 let y = x;
^
borrow.rs:4:9: 4:9 help: use `ref` to override
error: aborting due to previous error
example5.rs (メモリー管
理)fn main() {
let x = Box::new(4);
println!("Value of x is {}",x);
if true {
let y = x;
println!("Value of y is {}",y);
}
println!("Value of x is {}",x);
}
borrow.rs:11:35: 11:36 error: use of moved value: `x`
borrow.rs:11 println!("Value of x is {}",x);
^
note: in expansion of format_args!
<std macros>:2:25: 2:58 note: expansion site
<std macros>:1:1: 2:62 note: in expansion of print!
<std macros>:3:1: 3:54 note: expansion site
<std macros>:1:1: 3:58 note: in expansion of println!
borrow.rs:11:7: 11:38 note: expansion site
borrow.rs:8:11: 8:12 note: `x` moved here because it has type `Box<i32>`,
which is moved by default
borrow.rs:8 let y = x;
^
borrow.rs:8:12: 8:12 help: use `ref` to override
error: aborting due to previous error
yのlifetime
example5.rs (メモリー管
理)fn main() {
let x = Box::new(4);
println!("Value of x is {}",x);
if true {
let y = x;
println!("Value of y is {}",y);
x = y;
}
println!("Value of x is {}",x);
}
borrow.rs:11:35: 11:36 error: use of moved value: `x`
borrow.rs:11 println!("Value of x is {}",x);
^
note: in expansion of format_args!
<std macros>:2:25: 2:58 note: expansion site
<std macros>:1:1: 2:62 note: in expansion of print!
<std macros>:3:1: 3:54 note: expansion site
<std macros>:1:1: 3:58 note: in expansion of println!
borrow.rs:11:7: 11:38 note: expansion site
borrow.rs:8:11: 8:12 note: `x` moved here because it has type `Box<i32>`,
which is moved by default
borrow.rs:8 let y = x;
^
borrow.rs:8:12: 8:12 help: use `ref` to override
error: aborting due to previous error
example5.rs (メモリー管
理)fn main() {
let mut x = Box::new(4);
println!("Value of x is {}",x);
if true {
let y = x;
println!("Value of y is {}",y);
x = y;
}
println!("Value of x is {}",x);
}
Value of x is 4
Value of y is 4
Value of x is 4
メモリー管理 - move
x x
y
以上 。。。?

More Related Content

What's hot

Clojure 1.1 And Beyond
Clojure 1.1 And BeyondClojure 1.1 And Beyond
Clojure 1.1 And Beyond
Mike Fogus
 
Rust: Unlocking Systems Programming
Rust: Unlocking Systems ProgrammingRust: Unlocking Systems Programming
Rust: Unlocking Systems Programming
C4Media
 
The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent SevenMike Fogus
 
NativeBoost
NativeBoostNativeBoost
NativeBoost
ESUG
 
Grand Central Dispatch in Objective-C
Grand Central Dispatch in Objective-CGrand Central Dispatch in Objective-C
Grand Central Dispatch in Objective-C
Pavel Albitsky
 
Rust: код может быть одновременно безопасным и быстрым, Степан Кольцов
Rust: код может быть одновременно безопасным и быстрым, Степан КольцовRust: код может быть одновременно безопасным и быстрым, Степан Кольцов
Rust: код может быть одновременно безопасным и быстрым, Степан Кольцов
Yandex
 
Oops pramming with examples
Oops pramming with examplesOops pramming with examples
Oops pramming with examples
Syed Khaleel
 
The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184
Mahmoud Samir Fayed
 
Python
PythonPython
Python
Wei-Bo Chen
 
JavaScript - new features in ECMAScript 6
JavaScript - new features in ECMAScript 6JavaScript - new features in ECMAScript 6
JavaScript - new features in ECMAScript 6Solution4Future
 
Php engine
Php enginePhp engine
Php engine
julien pauli
 
Ownership System in Rust
Ownership System in RustOwnership System in Rust
Ownership System in Rust
Chih-Hsuan Kuo
 
Protocol handler in Gecko
Protocol handler in GeckoProtocol handler in Gecko
Protocol handler in Gecko
Chih-Hsuan Kuo
 
C++totural file
C++totural fileC++totural file
C++totural filehalaisumit
 
Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.
UA Mobile
 
Create your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 VeronaCreate your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 Verona
Patrick Allaert
 
Groovy
GroovyGroovy
Groovy
Zen Urban
 
ES2015 (ES6) Overview
ES2015 (ES6) OverviewES2015 (ES6) Overview
ES2015 (ES6) Overview
hesher
 
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
Lin Yo-An
 

What's hot (20)

Clojure 1.1 And Beyond
Clojure 1.1 And BeyondClojure 1.1 And Beyond
Clojure 1.1 And Beyond
 
Rust: Unlocking Systems Programming
Rust: Unlocking Systems ProgrammingRust: Unlocking Systems Programming
Rust: Unlocking Systems Programming
 
The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent Seven
 
NativeBoost
NativeBoostNativeBoost
NativeBoost
 
Grand Central Dispatch in Objective-C
Grand Central Dispatch in Objective-CGrand Central Dispatch in Objective-C
Grand Central Dispatch in Objective-C
 
Rust: код может быть одновременно безопасным и быстрым, Степан Кольцов
Rust: код может быть одновременно безопасным и быстрым, Степан КольцовRust: код может быть одновременно безопасным и быстрым, Степан Кольцов
Rust: код может быть одновременно безопасным и быстрым, Степан Кольцов
 
Oops pramming with examples
Oops pramming with examplesOops pramming with examples
Oops pramming with examples
 
The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184
 
Python
PythonPython
Python
 
JavaScript - new features in ECMAScript 6
JavaScript - new features in ECMAScript 6JavaScript - new features in ECMAScript 6
JavaScript - new features in ECMAScript 6
 
Php engine
Php enginePhp engine
Php engine
 
Ownership System in Rust
Ownership System in RustOwnership System in Rust
Ownership System in Rust
 
Protocol handler in Gecko
Protocol handler in GeckoProtocol handler in Gecko
Protocol handler in Gecko
 
C++totural file
C++totural fileC++totural file
C++totural file
 
C++ tutorial
C++ tutorialC++ tutorial
C++ tutorial
 
Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.
 
Create your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 VeronaCreate your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 Verona
 
Groovy
GroovyGroovy
Groovy
 
ES2015 (ES6) Overview
ES2015 (ES6) OverviewES2015 (ES6) Overview
ES2015 (ES6) Overview
 
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
 

Viewers also liked

Rust言語
Rust言語Rust言語
Rust言語
健太 田上
 
Rust 超入門
Rust 超入門Rust 超入門
Rust 超入門
Chris Birchall
 
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみたRust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
sumito3478
 
パワポアート・オンライン
パワポアート・オンラインパワポアート・オンライン
パワポアート・オンライン
高見 知英
 
第2部 自作ライブラリ紹介
第2部  自作ライブラリ紹介第2部  自作ライブラリ紹介
プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介
Takaaki Hirano
 
夢のある話をしようと思ったけど、やっぱり現実の話をする
夢のある話をしようと思ったけど、やっぱり現実の話をする夢のある話をしようと思ったけど、やっぱり現実の話をする
夢のある話をしようと思ったけど、やっぱり現実の話をする
Hidetsugu Takahashi
 
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)
Sho Yoshida
 
今日から使おうSmalltalk
今日から使おうSmalltalk今日から使おうSmalltalk
今日から使おうSmalltalkSho Yoshida
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
 
C++の黒魔術
C++の黒魔術C++の黒魔術
C++の黒魔術
Daichi OBINATA
 
Rust v1.0 release celebration party
Rust v1.0 release celebration partyRust v1.0 release celebration party
Rust v1.0 release celebration party
Akira Hayakawa
 
たのしい高階関数
たのしい高階関数たのしい高階関数
たのしい高階関数
Shinichi Kozake
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
Yuki Tamura
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
Ra Zon
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由
Hiromi Ishii
 
RustなNATSのClientを作ってみた
RustなNATSのClientを作ってみたRustなNATSのClientを作ってみた
RustなNATSのClientを作ってみた
wallyqs
 
Raft
RaftRaft

Viewers also liked (18)

Rust言語
Rust言語Rust言語
Rust言語
 
Rust 超入門
Rust 超入門Rust 超入門
Rust 超入門
 
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみたRust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
 
パワポアート・オンライン
パワポアート・オンラインパワポアート・オンライン
パワポアート・オンライン
 
第2部 自作ライブラリ紹介
第2部  自作ライブラリ紹介第2部  自作ライブラリ紹介
第2部 自作ライブラリ紹介
 
プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介
 
夢のある話をしようと思ったけど、やっぱり現実の話をする
夢のある話をしようと思ったけど、やっぱり現実の話をする夢のある話をしようと思ったけど、やっぱり現実の話をする
夢のある話をしようと思ったけど、やっぱり現実の話をする
 
Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)Smaltalk驚異の開発(私が使い続ける2012年の話)
Smaltalk驚異の開発(私が使い続ける2012年の話)
 
今日から使おうSmalltalk
今日から使おうSmalltalk今日から使おうSmalltalk
今日から使おうSmalltalk
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
 
C++の黒魔術
C++の黒魔術C++の黒魔術
C++の黒魔術
 
Rust v1.0 release celebration party
Rust v1.0 release celebration partyRust v1.0 release celebration party
Rust v1.0 release celebration party
 
たのしい高階関数
たのしい高階関数たのしい高階関数
たのしい高階関数
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由
 
RustなNATSのClientを作ってみた
RustなNATSのClientを作ってみたRustなNATSのClientを作ってみた
RustなNATSのClientを作ってみた
 
Raft
RaftRaft
Raft
 

Similar to Rust言語紹介

Javascript status 2016
Javascript status 2016Javascript status 2016
Javascript status 2016
Arshavski Alexander
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihun
JIHUN KIM
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applicationsTom Croucher
 
Ruby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code style
Ruby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code styleRuby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code style
Ruby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code styleAnton Shemerey
 
What To Expect From PHP7
What To Expect From PHP7What To Expect From PHP7
What To Expect From PHP7
Codemotion
 
Androsia: A step ahead in securing in-memory Android application data by Sami...
Androsia: A step ahead in securing in-memory Android application data by Sami...Androsia: A step ahead in securing in-memory Android application data by Sami...
Androsia: A step ahead in securing in-memory Android application data by Sami...
CODE BLUE
 
Php basic for vit university
Php basic for vit universityPhp basic for vit university
Php basic for vit university
Mandakini Kumari
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
Domenic Denicola
 
Let's build a parser!
Let's build a parser!Let's build a parser!
Let's build a parser!
Boy Baukema
 
node.js, javascript and the future
node.js, javascript and the futurenode.js, javascript and the future
node.js, javascript and the futureJeff Miccolis
 
Ch1(introduction to php)
Ch1(introduction to php)Ch1(introduction to php)
Ch1(introduction to php)
Chhom Karath
 
Seaside - The Revenge of Smalltalk
Seaside - The Revenge of SmalltalkSeaside - The Revenge of Smalltalk
Seaside - The Revenge of Smalltalk
Lukas Renggli
 
ES6 is Nigh
ES6 is NighES6 is Nigh
ES6 is Nigh
Domenic Denicola
 
The_Borrow_Checker.pdf
The_Borrow_Checker.pdfThe_Borrow_Checker.pdf
The_Borrow_Checker.pdf
Mario Alexandro Santini
 
React Native Evening
React Native EveningReact Native Evening
React Native Evening
Troy Miles
 

Similar to Rust言語紹介 (20)

Javascript status 2016
Javascript status 2016Javascript status 2016
Javascript status 2016
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihun
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 
Ruby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code style
Ruby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code styleRuby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code style
Ruby: OOP, metaprogramming, blocks, iterators, mix-ins, duck typing. Code style
 
What To Expect From PHP7
What To Expect From PHP7What To Expect From PHP7
What To Expect From PHP7
 
Androsia: A step ahead in securing in-memory Android application data by Sami...
Androsia: A step ahead in securing in-memory Android application data by Sami...Androsia: A step ahead in securing in-memory Android application data by Sami...
Androsia: A step ahead in securing in-memory Android application data by Sami...
 
Google maps
Google mapsGoogle maps
Google maps
 
Php basic for vit university
Php basic for vit universityPhp basic for vit university
Php basic for vit university
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
 
Let's build a parser!
Let's build a parser!Let's build a parser!
Let's build a parser!
 
node.js, javascript and the future
node.js, javascript and the futurenode.js, javascript and the future
node.js, javascript and the future
 
Ch1(introduction to php)
Ch1(introduction to php)Ch1(introduction to php)
Ch1(introduction to php)
 
Seaside - The Revenge of Smalltalk
Seaside - The Revenge of SmalltalkSeaside - The Revenge of Smalltalk
Seaside - The Revenge of Smalltalk
 
ES6 is Nigh
ES6 is NighES6 is Nigh
ES6 is Nigh
 
The_Borrow_Checker.pdf
The_Borrow_Checker.pdfThe_Borrow_Checker.pdf
The_Borrow_Checker.pdf
 
React Native Evening
React Native EveningReact Native Evening
React Native Evening
 
extending-php
extending-phpextending-php
extending-php
 
extending-php
extending-phpextending-php
extending-php
 
extending-php
extending-phpextending-php
extending-php
 
extending-php
extending-phpextending-php
extending-php
 

More from Paweł Rusin

Workflow and development in globally distributed mobile teams
Workflow and development in globally distributed mobile teamsWorkflow and development in globally distributed mobile teams
Workflow and development in globally distributed mobile teams
Paweł Rusin
 
R言語で統計分類基本
R言語で統計分類基本R言語で統計分類基本
R言語で統計分類基本Paweł Rusin
 
関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフ関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフPaweł Rusin
 
関東第2回r勉強会
関東第2回r勉強会関東第2回r勉強会
関東第2回r勉強会Paweł Rusin
 
課題 (第三回)
課題 (第三回)課題 (第三回)
課題 (第三回)Paweł Rusin
 
第三回R勉強会
第三回R勉強会第三回R勉強会
第三回R勉強会Paweł Rusin
 
第2回R勉強会1
第2回R勉強会1第2回R勉強会1
第2回R勉強会1Paweł Rusin
 

More from Paweł Rusin (8)

Workflow and development in globally distributed mobile teams
Workflow and development in globally distributed mobile teamsWorkflow and development in globally distributed mobile teams
Workflow and development in globally distributed mobile teams
 
LOD METI
LOD METILOD METI
LOD METI
 
R言語で統計分類基本
R言語で統計分類基本R言語で統計分類基本
R言語で統計分類基本
 
関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフ関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフ
 
関東第2回r勉強会
関東第2回r勉強会関東第2回r勉強会
関東第2回r勉強会
 
課題 (第三回)
課題 (第三回)課題 (第三回)
課題 (第三回)
 
第三回R勉強会
第三回R勉強会第三回R勉強会
第三回R勉強会
 
第2回R勉強会1
第2回R勉強会1第2回R勉強会1
第2回R勉強会1
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

Rust言語紹介