Josh Matthews - An Introduction To Rust
-
3:16 - 3:18--Con người không quan trọng --
-
3:19 - 3:23--Không có con người trong công nghệ,
chỉ có các phần thay thế được -- -
3:23 - 3:28(Cười)
-
6:16 - 6:17Được rồi, bắt đầu thôi.
-
6:21 - 6:26Tôi sẽ cho các bạn biết
Rust là gì, -
6:26 - 6:29tại sao Rust là một phần việc của Mozilla
-
6:29 - 6:32và khi nào Rust sẽ bắt đầu
là một phần việc của Mozilla. -
6:33 - 6:33Bắt đầu thôi.
-
6:34 - 6:36Rust là một ngôn ngữ lập trình mới
-
6:36 - 6:40được tạo ra tại Mozilla
-
6:41 - 6:42và chia sẻ với thế giới.
-
6:43 - 6:45Mục tiêu
-
6:45 - 6:46đơn thuần là
-
6:46 - 6:49cứ khi nào bạn, một lập trình viên,
-
6:49 - 6:50theo truyền thống
-
6:51 - 6:52cần tới C++
-
6:52 - 6:55để đảm bảo, ví dụ như
hiệu suất chẳng hạn, -
6:55 - 6:57thì Rust sẽ là lựa chọn thay thế khả thi
-
6:57 - 6:58trong mọi tình huống.
-
6:58 - 7:01Sẽ không còn lý do dùng C++ thay vì
-
7:01 - 7:02dùng Rust,
-
7:03 - 7:04tương lai lí tưởng là vậy.
-
7:07 - 7:09Rust khởi đầu là dự án bên lề
-
7:09 - 7:11của một thành viên Mozilla, Graydon Hoare,
-
7:11 - 7:14trước năm 2009.
-
7:14 - 7:16Anh ấy bắt đầu dành toàn thời gian
cho dự án -
7:16 - 7:18năm 2009
-
7:18 - 7:21vì Mozilla thấy ý tưởng và đề xuất:
-
7:21 - 7:23"Chúng ta có thể dùng vào Firefox...
-
7:23 - 7:26...và cải thiện sản phẩm
nếu chúng ta hoàn thiện ngôn ngữ này." -
7:26 - 7:30Đó là lúc chúng tôi bắt đầu đầu tư
thời gian và tài nguyên cho dự án. -
7:32 - 7:33Vài năm sau,
-
7:33 - 7:37chúng tôi hiện có một đội
thuộc Mozilla Research -
7:37 - 7:39dành toàn thời gian
phát triển Rust. -
7:40 - 7:44Chúng tôi cho ra
phiên bản 1.0 năm ngoái -
7:44 - 7:47và hiện cứ 6 tuần chúng tôi
cho ra một phiên bản mới -
7:47 - 7:48chúng tôi vừa cho ra phiên bản 1.13.
-
7:49 - 7:51Và có một cộng đồng lớn
-
7:51 - 7:53đang quan tâm đến ngôn ngữ,
-
7:54 - 7:56nên không chỉ mỗi phát triển viên
-
7:56 - 7:57ở Mozilla phát triển Rust.
-
7:58 - 8:01Một số các phát triển viên này
thuộc Nhóm Lõi, -
8:01 - 8:03là những người
quyết định tương lai của ngôn ngữ -
8:03 - 8:06và giúp định hình hướng phát triển
theo thời gian. -
8:07 - 8:08Ngoài nhân viên,
-
8:08 - 8:09còn có tình nguyện viên
-
8:09 - 8:11và nhân viên từ các công ti
-
8:11 - 8:15hiện đang dùng Rust
để phát triển sản phẩm. -
8:15 - 8:17Họ cũng giúp định hình hệ sinh thái Rust
-
8:17 - 8:21với rất nhiều thư viện
-
8:21 - 8:24hiện đang được phát triển bởi
-
8:24 - 8:25những người hứng thú với ngôn ngữ.
-
8:25 - 8:29Rust nhận được rất nhiều lượt tải.
Từ lần thuyết trình cuối của tôi, -
8:29 - 8:32đã có thêm 10 triệu lượt tải
và 300 thư viện mới, -
8:32 - 8:35nói chung là rất sôi nổi.
Còn có các bạn của Rust, -
8:35 - 8:38để tôi giới thiệu với các bạn.
-
8:38 - 8:43Đây là trang ghi lại rất nhiều các
công ty đã cho chúng tôi biết rằng -
8:43 - 8:45họ đang dùng Rust
trong sản xuất... -
8:45 - 8:49... và họ rất hào hứng
với triển vọng của Rust. -
8:50 - 8:52Tóm lại, rất nhiều thứ hay ho
đang diễn ra. -
8:58 - 9:01Tại sao chúng tôi tạo ra Rust
-
9:01 - 9:04là vì trước đây,
-
9:04 - 9:07chúng tôi có khoảng
hơn 10 năm dùng Firefox -
9:07 - 9:08và Javascript trong Firefox
-
9:08 - 9:10xin lỗi, C++ và Javascript trong Firefox.
-
9:10 - 9:12Chúng tôi nhận ra
-
9:13 - 9:15có một vài vấn đề toàn diện
-
9:16 - 9:18do việc dùng C++ gây ra,
-
9:19 - 9:23cụ thể là việc viết code
sử dụng các luồng cục bộ -
9:23 - 9:24là rất khó.
-
9:24 - 9:26Rất dễ viết code sai
-
9:26 - 9:30và rất dễ viết code
không an toàn -
9:30 - 9:31dẫn đến việc tạo ra
-
9:31 - 9:33các khai thác bảo mật
-
9:33 - 9:36mà được các chính phủ
-
9:36 - 9:37và tin tặc
-
9:37 - 9:38khắp thế giới
-
9:38 - 9:39lưu trữ và sử dụng nhằm
-
9:40 - 9:41đánh cắp dữ liệu người dùng
-
9:41 - 9:43và kiểm soát máy tính,
-
9:43 - 9:44dùng trình duyệt làm véc-tơ.
-
9:44 - 9:48Rất nhiều khai thác kiểu này
được công bố hàng năm -
9:48 - 9:52bởi các nhà điều tra an ninh
-
9:52 - 9:54và còn có các cuộc thi tìm xem
-
9:54 - 9:57ai có thể đánh hạ trình duyệt nhanh nhất.
-
9:58 - 10:02Chúng tôi tìm cách xử lý vấn đề
-
10:02 - 10:03qua một ngôn ngữ mới.
-
10:03 - 10:04Hóa ra
-
10:04 - 10:06hai vấn đề
-
10:06 - 10:08mà vừa cản trở việc viết code song song
-
10:08 - 10:10nhằm tận dụng phần cứng hiện đại
-
10:11 - 10:14vừa cản trở việc viết code
an toàn và tránh bị khai thác -
10:14 - 10:15đều có thể giải quyết
-
10:15 - 10:18bằng khái niệm "Quyền sở hữu".
-
10:18 - 10:21Để tôi làm rõ khái niệm cho các bạn.
-
10:21 - 10:24Khái niệm "Quyền sở hữu"
bao hàm hai ý niệm. -
10:25 - 10:28Một là chủ sở hữu của giá trị là ai
-
10:28 - 10:30và liệu có nhiều chủ sở hữu
cùng một giá trị -
10:30 - 10:34hay nhiều người dùng đang chia sẻ
một giá trị hay không. -
10:34 - 10:38Hai là khi nào giá trị mới
thực sự hợp lệ. -
10:38 - 10:41Chỗ nào trong chương trình
-
10:41 - 10:44mà việc tương tác với giá trị
mới thực sự an toàn? -
10:45 - 10:47Từ đây ta có thể rút ra vài quy tắc.
-
10:48 - 10:50Nếu chỉ có một chủ sở hữu
cho một giá trị, -
10:50 - 10:54có thể hủy giá trị
khi chủ sở hữu ra khỏi tầm vực -
10:54 - 10:57vì không còn cách nào
để tham chiếu giá trị đó nữa. -
10:58 - 11:00Tương tự, các giá trị
chỉ có một chủ sở hữu -
11:00 - 11:02được phép thay đổi
-
11:02 - 11:06vì không ai quan sát được
việc giá trị bị biến đổi. -
11:06 - 11:07Cuối cùng,
-
11:08 - 11:10trong trường hợp đa chủ sở hữu,
-
11:10 - 11:11ta cần đưa ra
-
11:11 - 11:12khái niệm Mượn,
-
11:12 - 11:14tức là tuy vẫn chỉ có một chủ sở hữu,
-
11:14 - 11:15người khác có thể quan sát,
-
11:15 - 11:18khiến giá trị không thể thay đổi.
-
11:18 - 11:21Một ví dụ tương đồng,
-
11:22 - 11:24tôi có một sách tô màu
và một cái bút màu -
11:24 - 11:25cùng một nhóm bạn,
-
11:25 - 11:27chúng tôi có thể đề ra vài quy tắc sau.
-
11:28 - 11:31Cuốn sách và cái bút màu
là sở hữu của tôi. -
11:31 - 11:33Tôi đi đâu thì chúng theo đấy.
-
11:33 - 11:35Tôi bỏ về thì không ai khác
quan sát được cuốn sách -
11:35 - 11:36hay tô màu được nữa.
-
11:37 - 11:41Nhưng tôi có thể cho ai đó
mượn cuốn sách, -
11:41 - 11:43nói cách khác là người ta
mượn của tôi. -
11:43 - 11:45Tôi không tô màu được
khi người ta mượn -
11:45 - 11:46vì thế không hay.
-
11:47 - 11:49Người tôi cho mượn cũng có thể
cho người khác mượn -
11:50 - 11:53với điều kiện là
người đang mượn -
11:53 - 11:55phải trả sách cho tôi
trước khi đi -
11:55 - 11:56vì tôi là chủ sở hữu,
-
11:56 - 11:58chỉ tôi mới mang được sách đi.
-
12:00 - 12:00Một điều nữa,
-
12:03 - 12:04nếu tôi có bút màu
-
12:04 - 12:05thì tôi có thể tô màu được
-
12:05 - 12:06nếu tôi cũng có sách.
-
12:07 - 12:09Tôi cũng có thể cho mượn bút,
-
12:09 - 12:12người mượn bút sẽ tô màu được
nếu người ta có sách -
12:12 - 12:14nhưng tôi thì không còn
tô màu được nữa -
12:14 - 12:16vì chỉ có một cái bút.
-
12:16 - 12:17Cuối cùng,
-
12:17 - 12:20nếu tôi muốn về nhưng lại
không có sách trong tay -
12:20 - 12:25thì chết rồi, tôi phải đợi
đến khi có người trả lại sách cho tôi -
12:25 - 12:27hoặc tôi phải cho sách
cho ai khác và nói -
12:27 - 12:30"Tao không còn sở hữu sách nữa,
mày đi mà giải quyết." -
12:32 - 12:34Quyền sở hữu ở Rust.
-
12:37 - 12:41Hình dung ta có một kiểu dữ liệu
gọi là ColouringBook. -
12:41 - 12:42Nó cho ta một hàm khởi tạo
-
12:42 - 12:44trả về một thực thể mới
của kiểu ColouringBook. -
12:44 - 12:45Tiếp đó,
-
12:45 - 12:48ta có một biến tên là book
-
12:48 - 12:50và ta cho nó
-
12:50 - 12:52lưu giá trị của kiểu ColouringBook này.
-
12:52 - 12:53Giờ ta có thể
-
12:53 - 12:54gọi phương thức colour()
-
12:54 - 12:57và thay đổi ColouringBook
thế nào đó, -
12:57 - 12:58tô màu chẳng hạn.
-
12:58 - 13:00Ta có thể thay đổi
-
13:00 - 13:01vì hiện chỉ có một chủ sở hữu.
-
13:04 - 13:05Để xem chuyện gì xảy ra nếu
-
13:05 - 13:07ai đó mượn sách?
-
13:07 - 13:09Ta có thêm một biến
tên là borrowed_book -
13:09 - 13:11ta dùng dấu &
-
13:11 - 13:13để cho biết ta đang mượn giá trị
-
13:13 - 13:16được lưu trữ trong giá trị tên là book này
-
13:16 - 13:17- trong biến book.
-
13:17 - 13:19Đây gọi là Mượn Không Thay Đổi Được.
-
13:20 - 13:23Không còn có thể
-
13:23 - 13:25thay đổi giá trị ban đầu nữa
-
13:25 - 13:27vì nó đã bị mượn.
-
13:27 - 13:28Ta không thể
-
13:28 - 13:30tô màu
trong khi ai đó đang mượn sách -
13:31 - 13:33như ví dụ tôi nói đến.
-
13:34 - 13:35Tuy nhiên,
-
13:35 - 13:38dù một ai khác đã
mượn sách, -
13:38 - 13:39người đó cũng chưa tô màu được
-
13:39 - 13:40do chưa có bút.
-
13:40 - 13:45
-
13:45 - 13:46
-
13:49 - 13:51
-
13:51 - 13:53
-
13:53 - 13:54
-
13:54 - 13:55
-
13:56 - 13:59
-
13:59 - 14:01
-
14:01 - 14:03
-
14:03 - 14:04
-
14:04 - 14:06
-
14:06 - 14:06
-
14:06 - 14:09
-
14:09 - 14:10
-
14:13 - 14:15
-
14:15 - 14:19
-
14:19 - 14:20
-
14:20 - 14:22
-
14:22 - 14:24
-
14:24 - 14:26
-
14:30 - 14:32
-
14:33 - 14:34
-
14:34 - 14:36
-
14:36 - 14:37
-
14:37 - 14:38
-
14:38 - 14:40
-
14:41 - 14:43
-
14:43 - 14:44
-
14:44 - 14:45
-
14:45 - 14:46
-
14:46 - 14:47
-
14:48 - 14:49
-
14:50 - 14:53
-
14:53 - 14:54
-
14:54 - 14:57
-
14:57 - 14:59
-
14:59 - 15:01
-
15:01 - 15:03
-
15:03 - 15:06
-
15:06 - 15:08
-
15:08 - 15:10
-
15:10 - 15:12
-
15:12 - 15:15
-
15:15 - 15:17
-
15:17 - 15:18
-
15:18 - 15:20
-
15:20 - 15:21
-
15:21 - 15:24
-
15:24 - 15:26
-
15:26 - 15:30
-
15:30 - 15:31
-
15:31 - 15:32
-
15:32 - 15:34
-
15:34 - 15:37
-
15:37 - 15:39
-
15:39 - 15:41
-
15:43 - 15:46
-
15:46 - 15:49
-
15:49 - 15:51
-
15:52 - 15:54
-
15:54 - 15:57
-
15:58 - 15:59
-
15:59 - 16:02
-
16:02 - 16:04
-
16:04 - 16:05
-
16:07 - 16:08
-
16:08 - 16:10
-
16:10 - 16:13
-
16:13 - 16:15
-
16:15 - 16:16
-
16:16 - 16:18
-
16:18 - 16:20
-
16:22 - 16:25
-
16:25 - 16:28
-
16:28 - 16:32
-
16:32 - 16:33
-
16:36 - 16:36
-
16:37 - 16:39
-
16:39 - 16:41
-
16:41 - 16:43
-
16:43 - 16:46
-
16:46 - 16:48
-
16:49 - 16:56
-
16:57 - 16:57
-
16:58 - 17:01
-
17:02 - 17:05
-
17:05 - 17:08
-
17:08 - 17:09
-
17:09 - 17:11
-
17:11 - 17:13
-
17:13 - 17:15
-
17:15 - 17:17
-
17:17 - 17:20
-
17:20 - 17:21
-
17:21 - 17:22
-
17:22 - 17:24
-
17:25 - 17:27
-
17:27 - 17:28
-
17:29 - 17:32
-
17:33 - 17:34
-
17:34 - 17:37
-
17:38 - 17:39
-
17:39 - 17:41
-
17:41 - 17:45
-
17:45 - 17:51
-
17:54 - 17:55
-
17:55 - 17:56
-
17:56 - 18:00
-
18:00 - 18:01
-
18:01 - 18:05
-
18:05 - 18:08
-
18:08 - 18:10
-
18:10 - 18:12
-
18:12 - 18:15
-
18:15 - 18:19
-
18:19 - 18:20
-
18:21 - 18:24
-
18:25 - 18:27
-
18:27 - 18:29
-
18:29 - 18:32
-
18:32 - 18:34
-
18:34 - 18:37
-
18:37 - 18:40
-
18:40 - 18:42
-
18:42 - 18:44
-
18:44 - 18:50
-
18:50 - 18:51
-
18:51 - 18:54
-
18:54 - 18:55
-
18:55 - 18:58
-
18:58 - 18:59
-
18:59 - 19:02
-
19:02 - 19:04
-
19:04 - 19:05
-
19:05 - 19:11
-
19:13 - 19:14
-
19:14 - 19:15
-
19:15 - 19:17
-
19:17 - 19:20
-
19:20 - 19:23
-
19:23 - 19:25
-
19:25 - 19:27
-
19:27 - 19:29
-
19:29 - 19:31
-
19:31 - 19:33
-
19:33 - 19:35
-
19:35 - 19:37
-
19:37 - 19:39
-
19:39 - 19:40
-
19:40 - 19:44
-
19:44 - 19:46
-
19:46 - 19:48
-
19:48 - 19:50
-
19:50 - 19:53
-
19:53 - 19:56
-
19:56 - 19:58
-
19:58 - 20:00
-
20:00 - 20:03
-
20:03 - 20:05
-
20:05 - 20:10
-
20:10 - 20:11
-
20:11 - 20:13
-
20:13 - 20:17
-
20:17 - 20:18
-
20:18 - 20:21
-
20:21 - 20:23
-
20:23 - 20:24
-
20:24 - 20:26
-
20:26 - 20:27
-
20:27 - 20:28
-
20:28 - 20:30
-
20:31 - 20:33
-
20:33 - 20:36
-
20:36 - 20:38
-
20:38 - 20:40
-
20:40 - 20:42
-
20:42 - 20:44
-
20:44 - 20:46
-
20:46 - 20:48
-
20:48 - 20:50
-
20:50 - 20:52
-
20:53 - 20:56
-
20:56 - 20:57
-
20:58 - 21:00
-
21:00 - 21:07
-
21:07 - 21:09
-
21:09 - 21:12
-
21:12 - 21:13
-
21:13 - 21:15
-
21:15 - 21:17
-
21:17 - 21:19
-
21:19 - 21:21
-
21:21 - 21:24
-
21:24 - 21:27
-
21:28 - 21:29
-
21:29 - 21:30
-
21:30 - 21:32
-
21:32 - 21:35
-
21:35 - 21:37
-
21:37 - 21:39
-
21:39 - 21:41
-
21:41 - 21:43
-
21:43 - 21:44
-
21:44 - 21:47
-
21:48 - 21:50
-
21:50 - 21:52
-
21:52 - 21:55
-
21:55 - 21:57
-
21:57 - 21:58
-
21:58 - 22:01
-
22:04 - 22:06
-
22:06 - 22:07
-
22:07 - 22:09
-
22:09 - 22:12
-
22:12 - 22:13
-
22:13 - 22:15
-
22:15 - 22:18
-
22:18 - 22:19
-
22:19 - 22:23
-
22:23 - 22:27
-
22:27 - 22:30
-
22:30 - 22:32
-
22:32 - 22:35
-
22:37 - 22:38
-
22:38 - 22:39
-
22:40 - 22:42
-
22:42 - 22:43
-
22:49 - 22:50
-
22:53 - 22:56
-
22:57 - 22:59
-
22:59 - 23:02
-
23:05 - 23:06
-
23:06 - 23:09
-
23:09 - 23:10
-
23:11 - 23:14
-
23:14 - 23:16
-
23:16 - 23:17
-
23:17 - 23:18
-
23:18 - 23:22
-
23:22 - 23:25
-
23:25 - 23:27
-
23:27 - 23:30
-
23:30 - 23:32
-
23:33 - 23:36
-
23:36 - 23:38
-
23:38 - 23:41
-
23:41 - 23:45
-
23:47 - 23:49
-
23:49 - 23:52
-
23:53 - 23:55
-
23:58 - 23:59
-
24:16 - 24:19
-
24:19 - 24:25
-
24:27 - 24:29
-
24:29 - 24:32
-
24:32 - 24:34
-
24:34 - 24:37
-
24:37 - 24:39
-
24:39 - 24:41
-
24:41 - 24:44
-
24:45 - 24:48
-
24:48 - 24:51
-
24:51 - 24:53
-
24:54 - 24:58
-
24:58 - 24:59
-
24:59 - 25:03
-
25:03 - 25:06
-
25:06 - 25:08
-
25:08 - 25:10
-
25:10 - 25:11
-
25:15 - 25:18
-
25:18 - 25:20
-
25:20 - 25:21
-
25:21 - 25:23
-
25:24 - 25:25
-
25:25 - 25:28
-
25:30 - 25:32
-
25:32 - 25:34
-
25:34 - 25:36
-
25:36 - 25:40
-
25:40 - 25:41
-
25:41 - 25:44
-
25:50 - 25:52
-
25:52 - 25:55
-
25:55 - 25:57
-
25:59 - 26:02
-
26:02 - 26:03
-
26:03 - 26:06
-
26:06 - 26:08
-
26:08 - 26:10
-
26:10 - 26:14
-
26:15 - 26:35
-
26:40 - 26:41
-
26:42 - 26:44
-
26:45 - 26:50
-
26:50 - 26:54
-
26:54 - 26:56
-
26:56 - 26:58
-
26:58 - 27:00
-
27:00 - 27:01
-
27:01 - 27:03
-
27:03 - 27:04
-
27:04 - 27:06
-
27:06 - 27:08
-
27:08 - 27:12
-
27:12 - 27:14
-
27:14 - 27:16
-
27:17 - 27:19
-
27:19 - 27:21
-
27:21 - 27:23
-
27:23 - 27:26
-
27:26 - 27:27
-
27:28 - 27:30
-
27:30 - 27:32
-
27:32 - 27:33
-
27:33 - 27:37
-
27:43 - 27:45
-
27:45 - 27:47
-
27:47 - 27:50
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust | |
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust | |
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust | |
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust | |
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust | |
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust | |
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust | |
![]() |
majestycattish edited Vietnamese subtitles for Josh Matthews - An Introduction To Rust |