Ngôn ngữ lập trình C thực sự đã vượt qua thử thách của thời gian. Có rất ít môi trường nơi nó không phát triển mạnh. Điều này chủ yếu là do hiệu suất thực hiện cao của nó, thật không may, có giá: C không hỗ trợ nhiều tính năng được mong đợi trong một ngôn ngữ lập trình hiện đại.
Nghiên cứu Mozilla Rust. là một nỗ lực để tạo ra một bẫy chuột tốt hơn. Thiết kế ngôn ngữ của nó vẫn tập trung vào hiệu suất cao và gần với phần cứng.
Tuy nhiên, cú pháp và trình biên dịch của nó cũng tận dụng các lợi ích khác nhau được cung cấp bởi nghiên cứu ngôn ngữ lập trình hiện đại. Đưa ra rằng nhiệm vụ của Mozilla là việc tạo ra một 'web mở', không đáng ngạc nhiên khi công ty đang làm việc không mệt mỏi để mang lại bức trí tuệ mới nhất của mình vào web.
Trong khi Rust có thể, về lý thuyết, hãy chạy trên máy khách thông qua các hệ thống như Emscripten, sức mạnh thực sự của nó nằm trong việc tạo ra các dịch vụ phụ trợ hiệu quả.
Bạn đang tạo một trang web từ đầu? Đóng đinh thiết kế và hiệu suất với một đỉnh người tạo ra trang web và xuất sắc web hosting . Có tập tin để chia sẻ hoặc lưu? Tham gia với những lưu trữ đám mây tùy chọn.
Trong khi các nhà quản lý gói như 'apt-get' chắc chắn thực hiện cuộc sống của nhà phát triển dễ dàng hơn, người duy trì danh sách gói, đến và lớn, được biết là không có bạn bè về tốc độ quá mức. Do đó, nhiều, nếu không nhất, bộ nhớ cache gói 'đã lỗi thời.
Nhóm Rust đã giải quyết vấn đề này bằng cách cung cấp một tập lệnh cài đặt chuyên dụng, thiết lập hệ thống mà nó đang chạy hiệu quả. Sau đó, triển khai, là một quy trình hai bước: Trước tiên, hãy đảm bảo rằng Trình tải xuống / Trình phân tích cú pháp Curl có sẵn:
Tamnhan @ Tamhan-ThinkPad: ~ $ sudo apt-get Curl Curl
[sudo] Mật khẩu cho Tamnan:
Đọc danh sách gói ... Xong ...
Sau đó, trong bước thứ hai, tải xuống trình cài đặt và chuyển nó sang 'sh' bằng cách sử dụng toán tử đường ống. 'Sh' là tốc ký cho trình thông dịch shell mặc định của máy trạm của bạn, sau đó sẽ tiến hành chạy mã trong tay:
Tamnhan @ Tamhan-ThinkPad: ~ $ curl https://sh.rustup.rs -ssf | SH.
Thông tin: Tải xuống trình cài đặt
Trong quá trình cài đặt, Trình cài đặt Rust sẽ hiển thị nhiều lời nhắc tương tự về ngoại hình với các dấu hiệu hiển thị trong hình bên phải. Đơn giản chỉ cần làm theo chúng để đạt được cài đặt mặc định.
Trong một số trường hợp, việc triển khai Rust sẽ thất bại với lỗi tương tự "Lỗi: Không thể ghi tệp RCFile: '/home/tamhan/.bash_profile'". Nếu điều này xảy ra trong quá trình cài đặt, hãy sử dụng 'sudo -s' để lấy vỏ gốc, sau đó rửa sạch và lặp lại để tiến hành.
Với điều đó, đó là thời gian để chạy chương trình nhỏ đầu tiên của chúng tôi. Tệp rỉ sét, theo mặc định, có phần mở rộng tệp '.rs'. Tạo một tệp có tên 'FirstTest.rs', sau đó cung cấp nó với đoạn mã sau:
fn main () {
println! ("Hello World!");
}
Các lập trình viên C và C ++ thường tự hỏi tại sao các phép gọi của phương thức 'println' yêu cầu sử dụng dấu chấm than. Câu trả lời rất đơn giản: Rust thực hiện 'println' như một macro, được gọi theo một cách khác.
Cho rằng rỉ sét là một ngôn ngữ được biên dịch, ví dụ của chúng tôi phải được xử lý trước khi nó có thể được chạy từ dòng lệnh:
Tamhan @ Tamhan-ThinkPad: ~ / Rustspace $ Rustc FirstTest.rs
Tamnan @ Tamhan-ThinkPad: ~ / Rustspace $ ./firsttest
Xin chào thế giới!
Mô tả một ngôn ngữ lập trình hoàn chỉnh, chẳng hạn như rỉ sét, trong không gian hạn chế, chúng tôi có sẵn ở đây là không thể. Vì vậy, hãy bắt đầu bằng cách chính thức chỉ cho bạn nghiên cứu của Mozilla Tài liệu toàn diện . Một tính năng chắc chắn sẽ gây ấn tượng với các lập trình viên C liên quan đến việc sử dụng lệnh 'trận đấu': Ngoài các so sánh trực tiếp, nó cũng cho phép sử dụng các toán tử phạm vi để đơn giản hóa rất nhiều thiết kế của các chương trình nâng cao:
fn main () {
Đặt số = 5;
println! ("Làm việc trên {}", số);
Số khớp {
1 = & gt; println! ("một!"),
2 |. 3 |. 5 |. 7 = & gt; println! ("Prime"),
_ = & gt; println! ("một số"),
Không thể
}
Bộ sưu tập rác cổ điển có điểm yếu của nó: hầu hết các triển khai đưa chương trình dừng lại một lần dừng lại theo thời gian. Để xung quanh rằng rỉ sét sử dụng một bộ được gọi là 'trừu tượng' không có chi phí 'để mô phỏng một hành vi tương tự trong một thời trang ít gây phiền nhiễu hơn.
Về nguyên tắc, mọi tài nguyên được tạo bằng một chủ sở hữu theo cách tương tự như hệ thống con cha-con của QT. Tuy nhiên, một tính năng gọi là 'mượn' cho phép lập trình viên chuyển quyền sở hữu giữa các nguồn tài nguyên, do đó truyền chúng xung quanh hệ thống.
Thật không may, một cuộc thảo luận đầy đủ về khả năng của trình quản lý bộ nhớ của Rust sẽ phá vỡ các giới hạn của bài viết này - hãy để nó đủ để tuyên bố rằng rỉ sét cung cấp một hình thức quản lý bộ nhớ rất không chính thống, nhưng khả thi.
Trong khi mã C và C ++ có thể được chia thành các thư viện, hãy làm như vậy là một nhiệm vụ khó chịu và hơi khó chịu. Hơn nữa, đảm bảo rằng tất cả các thư viện cần thiết là nơi họ cần là một cái gì đó thậm chí các nhà phát triển dày dạn muốn tránh.
Cộng đồng JavaScript từ lâu đã giải quyết vấn đề này thông qua các sản phẩm như NPM. Các dự án được mô tả thông qua tệp cấu trúc dự án, trong số những thứ khác - chứa các tham chiếu đến các thư viện và các yếu tố khác cần thiết trong quá trình chạy biên dịch thực tế.
Trong trường hợp rỉ sét, một người quản lý gói có tên Cargo thực hiện một công việc tương tự. Tạo một dự án mới có thể được thực hiện thông qua việc sử dụng lệnh 'hàng mới' theo cách tương tự như sau:
Tamnhan @ Tamhan-ThinkPad: ~ / Rustspace $ Cargo New FutureSample1 --bin
Tạo nhị phân (ứng dụng) Dự án `FutureSample1`
Tamnhan @ Tamhan-ThinkPad: ~ / Rustspace $
Khi quá trình tạo hoàn tất, cấu trúc thư mục tương tự như trong ảnh ở dưới cùng của trang này sẽ được tạo.
Các tệp .toml hoạt động như 'Bộ điều khiển' - Trong trường hợp dự án mới được tạo mới của chúng tôi, tệp chứa cấu trúc sau:
[Gói]
Tên = "FutureSample1"
Phiên bản = "0.1.0"
Tác giả = ["Tamnhan"]
[phụ thuộc]
Điểm tương đồng với các tệp .ini của truyền thuyết không hoàn toàn không phù hợp: Trong một thời trang không giống nhau với NPM, định dạng tệp cấu hình cổ xưa cũng được sử dụng để mô tả các tệp cấu hình được sử dụng cho các dự án RUST. Khối '[phụ thuộc]' là mối quan tâm đặc biệt đối với chúng tôi - nó chứa một danh sách tất cả các thư viện bên ngoài, cần phải có mặt để biên dịch thành công.
Tạo một máy chủ web bằng tay là một công việc khó chịu tốt nhất để lại cho Masochists. Thay vào đó, chúng tôi sẽ chọn một khuôn khổ. Đáng buồn thay, tìm đúng một là không dễ dàng - như ghé thăm Danh sách các khung phát triển web của AWWY tiết lộ, có rất nhiều ứng cử viên.
Chúng tôi sẽ chọn Tên lửa. Nếu chỉ vì nó dường như khá phổ biến và đã thấy một bản cập nhật được phát hành vào tháng 5 năm 2018. Đáng buồn là, các nhà phát triển của Rocket có xu hướng thích các tính năng ngôn ngữ mới được giới thiệu, đó là lý do tại sao cần phải cập nhật cài đặt Rust của bạn bằng cách sử dụng các lệnh sau là bắt buộc :
Tamnhan @ Tamhan-ThinkPad: ~ / Rustspace / Futuresample1 $ Rustup Update & amp; & amp; Cập nhật hàng hóa
Bước tiếp theo chủ yếu là một câu hỏi về hương vị. Hầu hết các thư viện đi kèm với các dự án khởi động được cung cấp trước, mà các nhà phát triển có thể đơn giản là Siphon từ Github. Làm như vậy đối với thư viện 'Prime' của bạn không nhất thiết là một ý tưởng tồi - mặc dù một lần nhiều hơn một thư viện có liên quan, một cách tiếp cận thủ công có xu hướng có hiệu quả hơn.
Tiếp theo, mở tệp .toml, sau đó sửa đổi phần 'phụ thuộc' theo cách sau để bao gồm phiên bản gần đây của khung Rocket:
[phụ thuộc]
Tên lửa = "0,3,6"
rocket_codegen = "0,3,6"
Rocket là duy nhất ở chỗ nó yêu cầu bao gồm tổng cộng hai gói: Ngoài khung chính, một tệp trình tạo mã riêng biệt cũng được yêu cầu. Dù bằng cách nào, phiên bản của chúng tôi bao gồm một phiên bản cụ thể của hai thư viện - hàng hóa cũng có thể chấp nhận ký tự đại diện, cho phép chương trình 'chọn chất độc' mà không cần bất kỳ sự giúp đỡ nào từ chúng tôi.
Với điều đó, một vấn đề vẫn còn, một vấn đề vẫn còn: Nhập 'Cargo Run' trong thư mục chứa tệp .toml để thực hiện biên dịch được hỗ trợ, sẽ - trong số những thứ khác - tải xuống các thư viện mã có liên quan từ kho lưu trữ và biên dịchtoàn bộ enchilada cho bạn.
Trang tiếp theo: Giàn giáo và phân tích chuyên sâu
Trang hiện tại: trang 1
Trang tiếp theo Trang 2[số 8] (Tín dụng hình ảnh: Brendan McCaffrey (khái niệm gốc của Clara McCaffrey)) Pureref là một ví..
Học cách sử dụng độ tương phản trong nghệ thuật sẽ chuyển đổi các dự án của bạn và cách bạn làm việc. Khía cạnh yêu thích của tôi để làm vi..
[số 8] (Tín dụng hình ảnh: Svelte) Sapper là một khung được xây dựng trên đầu Svelte. Nó tập ..
Minh họa bản đồ đã có một sự hồi sinh thực sự trong vài năm qua. Một sự thay thế thú vị cho bản đồ Google khô, bản đồ minh họa có thể chứa đ�..
[số 8] Affinity Designer là một công cụ chỉnh sửa vector phổ biến. Cũng như các phiên bản Mac và Windows, S..
Kết cấu thường là những gì làm mờ các đường giữa các tác phẩm nghệ thuật truyền thống và kỹ thuật số. Thường thì thật dễ dàng để nói sự ..
[số 8] [số 8] Tình yêu bị mất bởi Canada's. Jam3. là một bài thơ tương tác tối thiểu, s�..
[số 8] Trong một thời gian dài, chức năng ngoại tuyến, đồng bộ hóa nền và thông báo đẩy có các ứng..