Is C++ a good first programming language?

Topic này đang hot bên Quora, mọi người đọc chơi :slight_smile:

http://qr.ae/fra7r


No, and I’ll go even further and say that none of the popular programming languages are well suited to being learned as a first programming language. The reason is simple: “real world” languages need to be scrappy and pragmatic in order to meet the needs of a wide variety of applications, but a good first programming language would be one with a simple mental model, to introduce students to concepts common to programming languages in general without forcing them to deal with confusing details that don’t fit neatly into a simple mental model.

But C++ is particularly bad. I said real world languages are scrappy and pragmatic, and C++ exemplifies those qualities more than any other. There’s so much undefined, unspecified, and implementation-defined behaviour, just so C++ can be fast on every machine. There’s stuff from C we can’t get rid of, because of backward compatibility. There are extremely complicated sets of rules for how some features behave, so that some practical kind of behaviour can be established for all possible uses. None of these things should be present in a good first programming language.


Các câu trả lời khác cho câu hỏi này

http://www.quora.com/Is-C++-a-good-first-programming-language

Cá nhân Đạt đồng ý với các câu trả lời no

5 Likes

Nếu theo tiêu chí này, và theo em đánh giá 1 cách tự nhiên nhất trong các ngôn ngữ mà em từng học và biết thì có Python xứng đáng hơn C++ rất nhiều :smile:

Theo em Pascal gần nhất :smile:

1 Like

Pascal đúng là “tự nhiên”, nhưng theo mình cách dùng câu lệnh như vậy dư thừa qúa :smile:

" Dư thừa " ??? là sao nhỉ ???

Lệnh Pascal theo dạng Basic, if then else.

Ý mình là câu lệnh và từ khóa của pascal viết theo 1 cách quá tự nhiên, các ngôn ngữ về sau đều lược bỏ đi nhiều. Tất nhiên nó có ưu điểm là người đọc code sẽ dễ hiểu và có tư duy liền mạch. Nhưng mình vẫn ủng hộ cách viết ngắn gọn, mềm dẻo và hơn nữa có thể viết theo cả OOP của Python :smile:

1 Like

Pascal và Python à :sunglasses:, thôi chọn pascal đi, rất gần với thực tế, phù hợp với người mới hơn (đặc biệt là với học sinh).


Em nhớ không nhầm là có trường ở Việt Nam còn dạy cho học sinh cấp 2 lập trình batch file trước pascal


Nhưng em vẫn mong có một ngôn ngữ nào đó thật sự dành cho giáo dục ở Việt Nam hơn. Vì học sinh đã phải học lập trình lại còn phải học tiếng anh nữa, tại sao không tạo ra một ngôn ngữ cho trẻ em/thiếu niên Việt Nam có thể tiếp cận với lập trình với một cách đơn giản nhất, dễ hiểu nhất. Đồng ý là học lập trình thì không thể tránh tiếng anh mãi được nhưng mà tránh được đến đâu thì tránh :blush: cùng một lúc học 2 thứ theo em là không nên tý nào :smile:

Mục tiêu của ngôn ngữ đó là cho các em những khái niệm cơ bản nhất của lập trình, nên có thể hi sinh/dấu đi những vấn đề sâu xa của lập trình.
Ví dụ như này:

Nạp thư viện lib.vn

i=1
Lặp lại khi (i<5):
Bắt đầu:
    In("Chao the gioi")
    Tăng i lên 1 
Kết thúc.

Không nên tí nào, tiếng Việt không đủ từ vựng để miêu tả các vấn đề kỹ thuật, đặc biệt là trong ngành công nghệ thông tin.

Nên dùng tiếng Anh. Nên học nhiều tiếng Anh hơn.

2 Likes

Trong C++ có thể định nghĩa đc mà anh! Em nhớ không lằm là định nghĩa được từ khóa luôn.

> #define if nếu
1 Like

Em thấy chương trình pascal của cấp 2 cũng chỉ có for if read write đơn giản, thì mình cũng chỉ cần tạo ra một ngôn ngữ để làm những việc đó thôi còn khi các em đã quen với tư duy lập trình thì có hàng tá ngôn ngữ để lựa chọn

Em không hề có tham vọng tạo ra “ngôn ngữ lập trình của người việt” có thể làm phần mềm to lớn này nọ, em cần một ngôn ngữ để đưa em đến với lập trình một cách dễ dàng nhất

Thực ra Pascal cũng có bản tiếng Việt Anh song ngữ đấy chứ nhưng nhược điểm, nhìn loạn mắt và cùi bắp so với Pascal thời đại mới

vd:

Chương_trình vd;

bắt đầu
nếu … thì
begin
if … then

end;

kết thúc.

Python thì sao? Mục tiêu ban đầu của Python là ngôn ngữ dễ học.

Còn mục tiêu của Pascal là ngôn ngữ để dạy học :smile:

1 Like

Nhưng dù sao theo mình thì tin học THCS tiếng anh trong đó cũng không nhiều. Chỉ cần trình tiếng anh 6 cũng có thể hiểu hết được

Nhưng em không biết for là gì range là gì, print là gì. Nếu như em biết nghĩa của từ đó trong tiếng anh thì em hoàn toàn có thể nhớ nó và tư duy theo nó một cách dễ dàng hơn.

Em sẽ nghiên cứu cái này :blush:

Học sinh nói chung là lười lắm anh, bỏ được cái gì là nó bỏ hết, đặc biệt tiếng anh không được yêu thích lắm, luôn luôn bị học sinh coi là một môn học khó nhằn và từ đó sinh ra định kiến cái gì có tiếng anh là khó =>bỏ :smile:

Nếu có 1 điều ước, em ước VN chấp nhận tiếng Anh là ngôn ngữ chính thứ 2 như Ấn Độ hay Malaysia đang làm!

1 Like

Bạn cũng có thể làm một ngôn ngữ như thế trên Pascal vì Pascal mở nên bạn có thể down source về sửa. Các thư viện cũng mở nốt. OpenGl trên Pascal cũng mở, windowAPI vẫn xem được source trên Pascal, blah blah nói chung cái gì liên quan tới Pascal đều mở.

Còn mình thì không. Nói gì thì nói, mất văn hóa là mất nước.

Em chỉ muốn làm sao mà học sinh không còn sợ / ghét tiếng anh nữa. Chứ đừng bỏ hẳn tiếng việt

Hôm em gạ đứa em nghịch thử pascal nó bảo “em ghét tiếng anh lắm em không học đâu” :smile:

Chắc chắn em sẽ nghiên cứu cái này :blush:

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