Python cho người Việt

:rocket: PyViet Engine — Python Cho Người Việt & Hành Trình Lập Trình Bằng Tiếng Việt

Diễn đàn: Dạy Nhau Học ( daynhauhoc.com ) — Top Bài Viết Nổi Bật

Tác giả: M1nhquaanz | Mục: Lập Trình / Python

Chào anh em cộng đồng Dạy Nhau Học,

Lập trình vốn từ lâu đã gắn liền với rào cản tiếng Anh và những thuật ngữ máy tính khô khan. Nhìn lại chặng đường học tập của nhiều bạn trẻ Việt Nam, việc tiếp cận lập trình thường bị chững lại ngay từ những khái niệm cú pháp ban đầu.

Hôm nay mình xin chia sẻ về PyViet Engine — một công cụ/framework cho phép bạn viết mã lập trình bằng Tiếng Việt thuần Việt (bao gồm từ khóa điều khiển, hàm hệ thống, thư viện làm game 2D, toán học, CSDL) và tự động dịch/thực thi trực tiếp trên nền tảng Python.

:hammer_and_wrench: Hướng Dẫn Sử Dụng PyViet Engine

  1. Các lệnh dòng lệnh cơ bản (CLI)

Mở terminal/command prompt và sử dụng cú pháp lệnh pyviet như sau:

:small_blue_diamond: Chạy file code trực tiếp:

pyviet demo.pyv

Chạy trực tiếp các file script Tiếng Việt (hỗ trợ các đuôi: .pv , .jspv , .pyv , .pyviet , .pvx ).

:small_blue_diamond: Xem mã Python sau khi dịch:

pyviet demo.pyv -d hoặc pyviet demo.pyv --dich

Chỉ hiển thị đoạn code đã được chuyển đổi sang Python mà không thực thi.

:small_blue_diamond: Dịch và lưu ra file .py :

pyviet demo.pyv -l hoặc pyviet demo.pyv --luu

Dịch mã Tiếng Việt và xuất ra file Python tương ứng.

:small_blue_diamond: Mã hóa / Bảo vệ mã nguồn ( .pvx ):

pyviet demo.pyv -c hoặc pyviet demo.pyv --encrypt

Mã hóa obfuscation file code sang định dạng .pvx . Sau đó bạn vẫn chạy bình thường bằng lệnh pyviet demo.pvx .

:small_blue_diamond: Chuyển đổi định dạng file sang JSON Tiếng Việt ( .jspv ):

pyviet demo.pyv -ext jspv

Đổi mã nguồn hoặc dữ liệu sang định dạng cấu trúc .jspv .

:small_blue_diamond: Đóng gói thành file chạy .exe :

pyviet demo.pyv --exe

Tự động đóng gói dự án của bạn thành file thực thi đơn độc .exe trên Windows.

:small_blue_diamond: Quản lý thư viện / Trình tương tác REPL:

Cài đặt gói/thư viện: pyviet cai requests hoặc pyviet cai game (tự động ánh xạ từ khóa sang thư viện tương ứng như pygame ) .

Gỡ thư viện: pyviet go requests .

Mở môi trường gõ lệnh trực tiếp (REPL): pyviet repl .

  1. Từ khóa & Cú pháp Tiếng Việt cơ bản

Bạn có thể viết chương trình bằng các từ khóa Tiếng Việt thân thiện:

  • neu / hoac_neu / con_khongif / elif / else
  • khi / voi / trongwhile / for / in
  • ham / tra_vedef / return
  • lop / khoi_taoclass / __init__
  • in_ra / nhapprint / input
  • dung / sai / rongTrue / False / None
  • them / tu / nhuimport / from / as
  • thu / loitry / except
    ...
    cái này chỉ là dịch lại sang tiếng việt còn các module khác thì ko nhé ae (ngoài pygame)
    https://tudienpyviet.netlify.app/ ae vào đây để phục vụ tra cứu TUKHOA_MAP và Runtime Environment (Game Pygame, AI, Core, Utils)
    vào https://pyviet.netlify.app/ để tải PyViet
  1. Góc Thảo Luận Cho Anh Em DNH

Cho dù chúng ta viết mã bằng Tiếng Việt hay Tiếng Anh, cốt lõi của lập trình vẫn là Tư duy giải quyết vấn đề (Problem Solving).

Anh em trên Dạy Nhau Học nghĩ sao về việc sử dụng cú pháp Tiếng Việt để giảng dạy Python cho các bạn mới bắt đầu hoặc học sinh phổ thông? Hãy để lại ý kiến thảo luận ở bên dưới nhé!

Trước tiên, mình xin cảm ơn bạn về nỗ lực đóng góp cho cộng đồng. Mình cũng hoan nghênh tinh thần dám nghĩ dám làm của bạn.

Tuy nhiên, mình không ủng hộ việc dịch các từ khóa tiếng Anh sang tiếng Việt như cách bạn làm.

  1. Các từ khóa tiếng Anh trong python là các từ đơn, hoàn toàn dễ hiểu. Việc bạn chuyển nó sang 1 kiểu dịch hoàn toàn không giúp dễ dàng tiếp cận python mà tăng thêm một lớp dịch gây rối rắm, khó học.
  2. Mình khá chắc là bản thân bạn là tác giả cũng hoàn toàn không thể nhớ hết 265 từ khóa python mà phải dùng từ điển để tra từ tương ứng rồi mới viết được file pyv. Nếu giả sử bạn đã thành thạo python tiếng Việt này, bạn sẽ bị “chậm” đi khi viết python gốc.
  3. Từ khóa python cũng tương tự với nhiều ngôn ngữ lập trình khác. Khi quen với các từ khóa này có thể dễ dàng tiếp cận các ngôn ngữ lập trình khác.
  4. Rào cản đọc hiểu các văn bản tiếng Anh để học ngôn ngữ mới là rào cản lớn còn bản thân từ khóa thì quá đơn giản để trở thành rào cản.
  5. Mô hình của bạn giới hạn việc import và sử dụng các thư viện khác của python. Bản thân người dùng khi muốn sử dụng các thư viện khác cũng phải dùng tiếng Anh.

Người ta thường tạo ra ngôn ngữ lập trình mới để giải quyết các vấn đề mà ngôn ngữ lập trình hiện tại không làm được chứ không dịch các tự khóa để làm gì cả.

3 Likes

I’m sorry that I have to speak out against your “Python cho người việt” approach. Since English is the de facto language in the business and IT worlds, I am NOT against Vietnamese. I understand, read, and write Vietnamese very well. Nevertheless, I always write my posts in English so that people—especially beginners—can learn English and become familiar with it through reading.

How is an IT developer supposed to work in an international team or company if he or she doesn’t fully understand the basics of English and can only write code using “Vietnamese Python keywords”?

This is a dumb localism. Anyone who takes this approach is doomed to fail. This has nothing to do with English chauvinism or anti-Vietnamese sentiment.

rào cản tiếng Anh thì kể cả có giỏi tiếng Anh thì vẫn khó hiểu khi đọc tài liệu chuyên môn nha bạn. Rào cản thực sự là khi đọc tài liệu ta bị thiếu các kiến thức nền tảng để hiểu, hoặc chính cách diễn đạt của tác giả trong tài liệu đó làm nó khó hiểu. Và có những lúc đọc tài liệu nguyên gốc nó lại dễ hiểu hơn là dịch ra tiếng Việt. Nói chung thì không cần một ngôn ngữ lập trình bằng tiếng Việt cho người Việt làm gì. Điều nên làm là chia sẽ kiến thức từ các nguồn tài liệu tiếng Anh một cách dễ hiểu hơn cho mọi người. Hoặc tạo ra một ngôn ngữ mới (vẫn nên dùng tiếng Anh) giải quyết các vấn đề mà nó tối ưu nhất, va để tất cả m.n trên thế giới sử dụng chứ không riêng gì người Việt.

:rofl: This is due to the Vietnamese mindset, which is exactly the same as the Chinese one. Everything is translated in such a way that even names are affected, making it difficult and tedious for anyone who understand Vietnamese to read them. Here are a few examples:

  • People’s names: Xi Jinping is rendered as Tâp Cân Bình :face_with_monocle:
  • Country names: Switzerland is rendered as Thụy Sĩ :woozy_face:
  • Technical term: quantum is rendered as Lượng Tử :rofl:

All of this prevents Vietnamese people from understanding the modern language that is evolving worldwide.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?