/ / Giới thiệu ngắn gọn về ngôn ngữ V

Giới thiệu ngắn gọn về ngôn ngữ V

V Language Featured Image 1

V là một ngôn ngữ lập trình mới, mã nguồn mở, được định kiểu tĩnh do Alexander Medvednikov tạo ra. V hứa hẹn sẽ đơn giản, nhanh chóng và an toàn để xây dựng phần mềm có thể bảo trì. Một số ngôn ngữ đã ảnh hưởng đến thiết kế của V bao gồm Oberon, Swift, Kotlin và Python.

Tìm hiểu về V, các tính năng của nó và cách nó so sánh với các ngôn ngữ khác.


Những điều bạn có thể làm với V

V có rất nhiều sức mạnh và bạn có thể sử dụng nó trong hầu hết mọi ngành, bao gồm lập trình hệ thống, phát triển web và phát triển trò chơi. Ngôn ngữ đơn giản, nhanh chóng và an toàn.

V cung cấp một loạt các thư viện đồ họa mạnh mẽ để phát triển trò chơi. Những thứ này được xây dựng dựa trên GDI + / Cocoa Drawing và OpenGL cho các ứng dụng 2D / 3D phức tạp hơn.

V có một mô-đun giao diện người dùng sử dụng các bộ công cụ GUI gốc cho các ứng dụng di động, WinAPI / GDI + cho Windows, Cocoa cho macOS và bản vẽ tùy chỉnh cho Linux.

Những lý do nên thử V

Mặc dù V là một ngôn ngữ mới, nhưng những lợi ích này khiến nó trở thành một lựa chọn hợp pháp.

Sự đơn giản

Để xây dựng dự án của bạn, bạn chỉ cần chạy:

v .

Bạn không cần thiết lập môi trường xây dựng, tạo tệp trang điểm, nhập tiêu đề hoặc thiết lập môi trường ảo. Nếu bạn muốn cài đặt thư viện mới thông qua vpm (trình quản lý gói V), chỉ cần chạy

v install <package_name>

Sự an toàn

Theo mặc định, V có:

  • biến bất biến
  • cấu trúc bất biến
  • tùy chọn / kết quả và kiểm tra lỗi bắt buộc
  • tổng các loại
  • generic
  • hàm không thay đổi được args

và không:

  • vô giá trị
  • bóng thay đổi
  • hành vi không xác định
  • biến toàn cục (có thể được bật cho các ứng dụng cấp thấp như hạt nhân, thông qua cờ)

Tốc độ biên dịch

Một số ngôn ngữ lập trình nhanh hơn những ngôn ngữ khác, về mặt thực thi hoặc biên dịch. V hoạt động hiệu quả như C. Nó tự hào có thời gian biên dịch khoảng 110k loc / s với phần phụ trợ C và khoảng 1 triệu loc / s với phần phụ trợ gốc và tcc. V cũng tránh xa các phân bổ không cần thiết để cung cấp một cách tiếp cận mã hóa đơn giản, không trừu tượng.

Quản lý bộ nhớ

V không sử dụng bộ thu gom rác, điều này làm cho nó khác với các ngôn ngữ như Go và Java. Thay vào đó, V quản lý bộ nhớ tại thời điểm biên dịch, nhưng chỉ hoạt động cho các tình huống cơ bản. Bạn cần quản lý nó theo cách thủ công đối với những trường hợp phức tạp hơn.

Định dạng cho nhất quán kiểu mã

Bạn có thể dùng vfmt định dạng để định dạng mã V của bạn và cải thiện khả năng đọc của nó bằng cách chạy:

v fmt -w <your_filename>.v

Thông báo lỗi thân thiện

Các thông báo lỗi của V rất chi tiết, nhiều thông tin và hữu ích. Hãy xem ví dụ này:

user.v:8:14: error: `update_user` parameter `user` is mutable, you need to provide `mut`: `update_user(mut user)`
7 | mut user := User{}
8 | update_user(user)
| ~~~~
9 | }

Với sự trợ giúp của thông báo lỗi, bạn có thể sửa mã này:

mut user := User{}
update_user(mut user)

C ++ so với Go so với V: So sánh ba ngôn ngữ

Trong các ví dụ này, bạn có thể thấy mã C ++, Go và V khác nhau như thế nào trong các trường hợp sử dụng lập trình cụ thể.

Chào thế giới

Trong C ++:

#include <iostream>

int main() {
std::cout << "Hello World!" << std::endl;
}

Đang đi:

package main
import "fmt"

func main() {
fmt.Println("Hello World!")
}

Trong V:

println('Hello World!')

Trong chương trình rất cơ bản này – in dòng chữ “Hello World!” – bạn có thể thấy rằng V đơn giản hơn nhiều so với C ++ hoặc Go. Bạn không cần phải nhập hoặc bao gồm bất kỳ thư viện nào cho một chương trình đơn giản như vậy.

Khởi tạo vectơ

Trong C ++:

std::vector<int> numbers = {1, 2, 3, 4};

Đang đi:

numbers := []int{1, 2, 3, 4}

Trong V:

numbers := [1, 2, 3, 4]

Trong trường hợp sử dụng này, bạn có thể thấy rằng V vẫn tạo ra mã sạch hơn hai cái khác. Không giống như các vectơ Go và C ++, V không yêu cầu các vectơ của nó phải giữ các giá trị có kiểu cố định.

In một vectơ

Trong C ++:

std::copy(numbers.begin(), numbers.end(),
std::ostream_iterator<int>(std::cout, " "));

std::cout << std::endl;

Đang đi:

fmt.Println(numbers)

Trong V:

println(numbers)

Hàm println của V có thể in biến vectơ nguyên bản, giống như hàm của Go, mặc dù hàm println sau này sử dụng gói fmt. Các tệp tiêu đề C ++ iostream cung cấp chức năng tương tự. Tuy nhiên, bạn vẫn cần phải tự in các phần tử riêng lẻ của vector.

Đọc tệp

Trong C ++:

#include <iostream>
#include <fstream>

int main() {
std::string path = "/etc/hosts";
std::ifstream f(path);
std::string text;
text.assign(std::istreambuf_iterator<char>(f), {});

if (!f)
std::cerr << "error reading from file" << std::endl;
}

Đang đi:

package main

import (
"io/ioutil"
"log"
)

func main() {
path := "/etc/hosts"
b, err := ioutil.ReadFile(path)

if err != nil {
log.Println(err)
return
}

text := string(b)
}

Trong V:

import os

path := "/etc/hosts"
text := os.read_file(path) or {
eprintln(err)
return
}

Để đọc tệp, V sử dụng mô-đun os để cung cấp các chức năng độc lập của hệ điều hành / nền tảng chung. Chúng xử lý các tác vụ như truy cập đối số dòng lệnh, đọc tệp và xử lý các quy trình. Trong trường hợp này, chúng tôi muốn đọc một tệp trong đường dẫn và trả lại nội dung, vì vậy bạn sẽ sử dụng read_file (đường dẫn) hàm số. read_file trả về lỗi nếu không có nội dung hiện có trong tệp đã cho đường dẫn. Nếu bạn muốn tìm hiểu thêm về các mô-đun khác của V, bạn có thể muốn xem tài liệu của họ.

Sẵn sàng để thử V?

V là một ngôn ngữ lập trình mới vẫn đang trong giai đoạn phát triển ban đầu. Mặc dù vậy, nó có rất nhiều sức mạnh và nhanh chóng, an toàn, dễ dàng và có thể bảo trì.

V có mã rõ ràng hơn C ++ và Go. Điều này cho thấy V có thể hỗ trợ các lập trình viên tuân thủ một trong những nguyên tắc lập trình cơ bản. Vì vậy, bạn đã sẵn sàng để thử V?

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *