Đặt tên trong lập trình: tại sao camelCase lại phổ biến

Em thường sử dụng các ngôn ngữ hướng đối tượng, cảm thấy cách đặt tên biến, phương thức camelCase rất là phổ biến.
Theo mọi người thì tại sao nó lại phổ biến đến vậy khi so sánh với các kiểu khác ạ ?

Em dạo một vòng thì thấy một số điểm sau:

  • camelCase phổ biến trong hầu hết các ngôn ngữ hỗ trợ mạnh OOP để đặt tên biến như Java, Dart, Swift, Kotlin, …
  • C# thường đặt tên phương thức với CastleCase / PascalCase, em không hiểu vì sao C# khác Java ở điểm này
  • snake_case rất dễ đọc với các tên dài, nhưng có vẻ bị thất thế so với camelCase vì phần lớn tên biến, phương thức chỉ gồm 2 - 3 từ, phân tách tốt động từ và danh từ
  • Nếu tên class là CastleCase, mà phương thức là snake_case thì cũng dị. Còn vì sao class hay đặt là CastleCase thì chắc do nó rất nổi và phân biệt với các kiểu nguyên thủy
  • Kiểu kebab-case thì cũng tương đồng với snake_case đó chứ, bấm kí tự ‘-’ còn nhanh hơn ‘_’ vì không cần nhấn shift, chắc do trùng ký tự đặc biệt nên không được đặt tên biến. Nhưng vì nhanh hơn snake_case nên được đặt nhiều cho tên folder
  • Vì sao CastleCase lại phổ biến hơn snake_case và kebab-case khi đặt tên thư mục nhỉ ?

Mời mọi người đề xuất thêm 1 số phong cách đặt tên

Có 3 lý do:

  1. Viết camelCase nhanh nhất:
    – camelCase có độ dài ngắn nhất so với snakeCase và kebabCase.
    – camelCase không cần nhấn caps lock ở ký tự đầu tiên so với PascalCase.

  2. camelCase viết in thường như format văn bản hành chính, sách báo thông thường nên dễ nhìn hơn so với upper case toàn bộ như ngôn ngữ Cobol, fortran, ABAP.

  3. Người đầu tiên dùng gì thì người sau quen dùng theo vậy: năm 19xx, Smalltalk là ngôn ngữ OOP hot trend dùng camelCase nên con cháu sau này cứ thế mà quen tay.

3 Likes

Hiện tại, các ngôn ngữ phổ biến (theo số lượng lập trình viên) quy ước camelCase, dẫn đến trường hợp camelCase xuất hiện nhiều nhất.

Nhưng xét thuần mặt lý thuyết, so sánh ngôn ngữ lập trình với nhau, không tính yếu tố số lượng lập trình viên, thì snake_case mới là nhiều nhất đó.

3 Likes

Tại vì Microsoft có truyền thống sử dụng Pascal Case nên họ thừa kế cái đó vô C#.
Nếu bạn lập trình WinApi thì sẽ thấy họ sử dụng Pascal Case kết hợp với Hungarian Notation từ thời C và C++ :smiley:


còn nếu bạn về việc tại sao camelCase lại phổ biến trong OOP mình nghĩ thì nó do sự phổ biến của Java. khi các ngôn ngữ OOP khác muốn thay thế JAva thì họ phải cho dev cảm giác gần gũi với Java nên sử dụng chung annotation.

5 Likes

Viết lộn ngược hoặc soi gương thì gọi là gì case? :smiley: Ví dụ: camelCase giờ thành esaClemac, ɘƨɒƆlɘmɒɔPascalCase thành esaClacsaP, ɘƨɒƆlɒɔƨɒԳ.

1 Like

Ngôn ngữ nào ra trước hoặc phổ biến thì các loại style liên quan đến nó phổ biến.
Chỉ có thế thôi. Tránh phân tích nhiều rồi lại thành như phân tích văn học.

2 Likes

Các ngôn ngữ mà thế giới Linux dùng nhiều thì lại ưa snake_case hơn.

  • Python, Ruby cũng OOP nhưng lại ưa snake_case.
  • Rust là ngôn ngữ trẻ, có một chút phong cách OOP trong đó (mặc dù nó không phải là OOP, tùy theo tiêu chí) cũng ưa snake_case.
  • Mình lập trình C cho hệ thống nhúng, cũng ưa snake_case.
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?