Tại sao nhiều ngôn ngữ lập trình lại phân biệt chữ hoa và chữ thường?

Anh có dùng chức năng này nhiều không, nếu như mà tự nhiên C không phân biệt hoa thường nữa thì có gây rắc rối nhiều cho anh trong trường hợp này không ạ :blush:

1 Like

Luôn luôn dùng chứ. Thực ra nếu không phân biệt hoa thường thì cũng khá rắc rối. Vì khi đó mình không thể sử dụng cách code như thế này nữa rồi.

3 Likes

Mình thấy hoa thường có lợi ấy chứ. :v
Như mình có cách troll hay dùng khi code bài giùm mất thằng bạn là đặt tên biến toàn 1 chữ rồi in hoa tùm lum loạn xà ngầu:
int a,A, aa, Aa, aA; double f,F,ff,fF,Ff;

=)))))))))))))))))))

4 Likes

Em đọc bài này rồi mới đăng lên đây đấy chứ, vì thấy ông Jeff cũng không thích vụ phân biệt hoa thường lắm (giống mình :smile:) nên mới thắc mắc vì một người có “số má” như Jeff mà cũng không thích tính năng này thì tại sao nhiều ngôn ngữ vẫn để tính năng này (kể cả những ngôn ngữ khá mới) :imp:

Có thể do ảnh hưởng từ C với .NET . Như Pascal sẽ tốt hơn :slight_smile:

1 Like

WOW WOW, vấn đề này được mọi người thảo luận rất sôi nổi ở nước ngoài chứ không phải như em nghĩ, chẳng qua là em search không đúng thôi, việc phân biệt hoa thường này họ gọi là case - sentivity (hôm nay vào thẳng Blog Coding Hornor mới biết cái này :blush: )

Đọc một số comment thì thấy nhiều người bảo là do máy tính bản chất là đã phân biệt hoa thường ( :+1: hợp lý), do đó nếu ngôn ngữ không phân biệt hoa thường có thể làm ảnh hưởng đến hiệu suất compiler.
Có người nói là code sạch hơn, dễ hiểu hơn , có người nói là để search cho dễ hay gì đó (khá là khó dịch :blush: )

Nhưng Jeff có vẻ không đồng ý với những ý kiến đó lắm. Mọi người muốn tìm hiểu thêm thì xem ở 2 link dưới nhá. (đọc được ý kiến nào khác với mấy cái trên thì comment lên đây cho em tham khảo với nhá) :smile:

http://discourse.codinghorror.com/t/the-case-for-case-insensitivity/948
http://stackoverflow.com/questions/503218/why-are-many-languages-case-sensitive

1 Like

Riêng Đạt thì vẫn ủng hộ phân biệt hoa thường vì Đạt thấy viễn cảnh mà không phân biệt hoa thường khá là dễ gây nhầm lẫn.

Tuy nhiên Đạt chưa làm ngôn ngữ nào không phân biệt hoa thường, hoặc có làm mà không để ý, nên Đạt thấy phân biệt hoa thường là một tính năng hay :smile:

Jeff có nhiều nhận định trái chiều, không phải cái nào người ta cũng đồng ý. Thế mới có cái để mà thảo luận :smile:

1 Like

:+1: Em cũng phân vân lắm, chưa biết nghiêng về ý kiến nào cả :smile: tại em học pascal, VB, trước C nên là ảnh hưởng đến thói quen code, qua C bị lỗi nhiều nên ức chế :joy:

1 Like

À ra thế, thì học ngôn ngữ mới có tư duy mới. Nhưng ban đầu có thể mình ức chế vì cái này. Nhưng suy nghĩ lại thì mình có thể tận dụng được mà?

1 Like

Thực ra mình cũng học Pascal trước nhưng khi code toàn bật Intellisense với lại đặt tên toàn chuẩn từ hồi dùng Pascal :smile:

1 Like

Em code quen kiểu đầu tiên khai báo tên theo chuẩn (pascal hoặc camel) sau đó thì các biến sau này chỉ cần gõ bình thường là IDE nó tự sửa lại (Visual Studio), giờ code C không được như thế nữa :joy:

Hiện giờ em đang dùng IDE gì? Anh nghĩ hầu hết các IDE đều hỗ trợ cái này nên việc phân biệt hoa thường với IDE không là vấn đề.

Kể cả các editor cũng có thể giúp mình mà :smile:

Em vẫn dùng code::block để học C, tất nhiên là nó vẫn gợi ý nhưng mà, tần suất ấn nút Shift với tab nhiều hơn so với trước đây nên là nhiều lúc cảm thấy mỏi ngón út :blush: (trước thì em chỉ ấn Shift khi khai báo biến lần đầu thôi)


Nhưng chắc tập nhiều thì quen thôi ạ :smile:

1 Like

Không khó khăn đâu mà lại thân thiện nữa. Kiểu như lớp thì phải viết hoa rồi. dễ dàng cho việc đọc hiểu

1 Like

Nói chung là mình không thích kiểu phân biệt hoa thường :astonished: :

1 Like

Theo mình nghĩ phân biệt hoa thường tốt đấy chứ :smile: nó giúp ta đỡ tốn thời gian suy nghĩ tên biến. Ví dụ, trong Java, muốn khai báo đối tượng String thì dùng: String string ; khai báo List thì dùng List list ;
Dễ dàng hiểu biến đó là kiểu dữ liệu gì :wink:

Mình nghĩ khió bạn sẽ lẫn lộn List với list khi suy nghĩ trong đầu nên gọi list nào :blush:

Thực ra nếu bạn đã từng code Java rồi thì mình nghĩ là sẽ không bao giờ nhầm lẫn được List và list.
Căn bản người ta có những quy chuẩn đặt tên riêng cho variable và Class rồi.

Cho nhìn hỏi khi đặt tên file thì bai1.cpp và bai1.CPP có khác nhau không ạ

Có vẻ cần phải học căn bản về máy tính, hệ điều hành bạn à. Người ta đang thảo luận ngôn ngữ lập trình, cái bạn hỏi lại không phải ngôn ngữ lập trình.

MacOS, Windows thì mặc định không phân biệt hoa/ thường trong tên file, trong khi đó, Linux nói chung là có sự phân biệt. Tuy nhiên, một số vọc sĩ chỉnh MacOS phân biệt chữ thường/ chữ hoa hoặc vì họ thường làm việc với *nix nói chung nên chuyển qua phân biệt hoa - thường để tránh mấy lỗi ngớ ngẩn.

Dù sao, cũng trả lời luôn: trên Windows thì bạn đặt tên file như trên là không có gì khác nhau dưới con mắt của Windows, tức bạn không thể đặt 2 file trên cùng thư mục được.

Nhưng trong đoạn mã lập trình C/ C++ khi bạn gọi vào thì rõ ràng là bạn đặt như thế nào phải viết đúng như thế ấy vì ngôn ngữ C/C++ phân biệt, có thể trên Windows bạn viết lộn xộn thì vẫn hiểu, nhưng túm lại là bạn đang sắp sẩy chân vì nhỡ code không dùng trên Windows mà dùng trên Mac OSX (tức MacOS), Linux thì có thể dẫn đến không tìm thấy file.

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