01/10/2018, 09:59

Liệu C và C++ có bao giờ bị thất sủng không?

Chào mọi người trong diễn đàn, em là người mới bập bẹ mới học lập trình và em đang theo dõi bài học C của anh đạt được vài ngày. Em có 1 thắc mắc là hiện tại Go nó đang được mọi người xem là C thế kỉ 21 thì liệu C nói riêng và C++ nói chung thì nó có bị thất sủng không ạ?

Khoa NTA viết 12:01 ngày 01/10/2018

Kế bên Go là còn Rust nữa. Nhưng C là C, kể cả tốc độ compile (các loại C compiler nói chung) và tốc độ thực thi đều nhỉnh hơn hơn Go và Rust. Rust cũng nhỉnh hơn Go nhưng hơi phức tạp nên hơi flop đâu được ông lớn Google lăng xê đâu.

Nhưng nếu bạn học Go được thì cứ học đi, đâu nhất định phải học C/C++ trước. Chúc bạn thành công.

Lê Nhật Thanh viết 12:00 ngày 01/10/2018

Bạn thấy thời gian nó ra đời và tồn tài thì các bạn đã biết. C nó rất gần với ngôn ngữ máy. Chúng ta dễ dàng kiểm soát bô nhớ, 2 ngôn ngữ này là bá chủ trong lập trình nhúng bạn à. Nhắc tới nhúng thì người ta nhắc tới C/C++.

Đào An viết 12:10 ngày 01/10/2018

Học tốt một ngôn ngữ thì học ngôn ngữ mới sẽ nhanh hơn (chắc đâu đó tầm 1 tháng) nên ko phải lo đâu. Cứ học tốt C/C++ đi bạn. Năm nào chả có ngôn ngữ mới ra đời mà có thấy nó chết đâu

nghia viết 12:01 ngày 01/10/2018

c/c++ sẽ thất sủng khi không còn linux OS mà không còn linux thì internet cũng …

Phuong Chris viết 12:14 ngày 01/10/2018

hỏi tào lao quá, cứ lao vào học đi. không thừa đâu

Phan Bá Hải viết 12:03 ngày 01/10/2018

Khi nào có ngôn ngữ có cú pháp đơn giản và thực thi nhanh hơn cả C thì C mới chết. Mà còn lâu lắm bạn. Nên bạn cứ học đi

明玉 viết 12:02 ngày 01/10/2018

Câu này mình nói thật: có thể thế giới không thất sủng, ở VN thì thất sủng đấy, vì CNTT ở VN toàn là đi làm dịch vụ web không à

Dark.Hades viết 12:00 ngày 01/10/2018

Mình thấy ở vn hiện tại đa số là theo web và gia công phần mềm.

=> Ngôn ngữ càng bậc cao càng được trọng dụng.

Ngành web hiện nay thì đổ xô về PHP, Nodejs có nhưng không nhiều.
Phần mềm thì C#, kéo thả,…

Những ngôn ngữ bậc thấp hoặc bắt đầu liên quan tới linux, cài đặt hệ thống này nọ thì ít được chú trọng, hầu như chỉ có cá nhân tự mày mò, những cá nhân này sau khi có kinh nghiệm thì đa số không còn ở trong nước mà hầu hết ra nước ngoài lập nghiệp/cống hiến.

Rhen Su viết 12:03 ngày 01/10/2018

dạ cảm ơn mọi người trả lời. Em cũng thích cái C này lắm lúc có thử python được 1-2 tuần nhưng thấy C nó thú vị sao sao nên quay qua C học. Em chỉ hỏi vậy thôi chứ em biết C vẫn là nên tảng cho lập trình sau này mà:)

Lương Quang Mạnh viết 12:07 ngày 01/10/2018

Cái này hay à nha, lần đầu có người khen C thú vị hơn Python đó

Rhen Su viết 12:04 ngày 01/10/2018

hehe. Em cũng chả biết nữa. Hồi trung học có học sơ qua pascal, sau đó e lên mạng xem 1 số ngôn ngữ lập trình, nghe nói game hay chơi đều lập trình bằng C/C++ nên e mới có cảm giác thích (em mê game) :))

Văn Dương viết 12:00 ngày 01/10/2018

Cứ đến lúc làm thật mới biết thích thằng nào hơn thằng nào
Lúc đấy lại chả khóc hết nước mắt chứ tưởng

Rhen Su viết 12:05 ngày 01/10/2018

em cũng chuẩn bị sẵn tâm lí rồi. Có gì thì nhảy thôi a :))

Phan Bá Hải viết 12:00 ngày 01/10/2018

Mình học Python theo các video của anh Đạt. Sau đó lên FPT Polytechnic học Java. Cũng nhờ biết được OOP bên Python mà thấy Java dễ học hơn nhiều so với lúc tiếp xúc ban đầu. Sau này nghiên cứu .NET Framework và cũng thích thú vì khá giống Java
Tuy nhiên quay lại C/C++ thì không biết mô tê gì cả. Đọc Document trên mạng cũng chả hiểu gì cả (cách viết Document bên C khác với Java và C# quá) Mà học lại từ đầu thì hơi ngán + mất thời gian, mình cũng chưa rảnh để học C cho nó đàng hoàng nên thôi

Trần Hoàn viết 12:00 ngày 01/10/2018

Sau thời gian học tí tí C++, mình xin xác nhận điều mình thấy khó chịu nhất là khai báo mảng :))
kiểu dữ liệu là int[] mà khai báo int a[10]. Bó tay.

Nguyễn Quốc Hoàng viết 12:03 ngày 01/10/2018

Sau thời gian học tí tí C++, mình xin xác nhận điều mình thấy khó chịu nhất là khai báo mảng :))
kiểu dữ liệu là int[] mà khai báo int a[10]. Bó tay.

Quen rồi lại thấy tiện hơn đó bạn êy. Cách khai báo này làm cho chương trình chạy nhanh hơn, tiết kiệm bộ nhớ hơn, song bị hạn chế về kích thước mảng, C++ còn có cách khai báo mảng động dựa trên con trỏ nữa, cách khai báo này chính là cách khai báo mà Java hay dùng.

Nguyễn Quốc Hoàng viết 12:10 ngày 01/10/2018

Mình học Python theo các video của anh Đạt. Sau đó lên FPT Polytechnic học Java. Cũng nhờ biết được OOP bên Python mà thấy Java dễ học hơn nhiều so với lúc tiếp xúc ban đầu. Sau này nghiên cứu .NET Framework và cũng thích thú vì khá giống Java
Tuy nhiên quay lại C/C++ thì không biết mô tê gì cả. Đọc Document trên mạng cũng chả hiểu gì cả (cách viết Document bên C khác với Java và C# quá) Mà học lại từ đầu thì hơi ngán + mất thời gian, mình cũng chưa rảnh để học C cho nó đàng hoàng nên thôi

Đó chính là cái mà bạn phải lo đó, mình nè, hồi chưa học C/C++ thì chỉ có biết PHP, học xong rồi biết thêm Java, Python và vài ngôn ngữ khác nữa. Hồi đó thích học mấy ngôn ngữ hiện đại lắm, nhưng sau này quen C/C++ rồi thì lại thấy học C/C++ hứng thú hơn

Aragami1408 viết 12:13 ngày 01/10/2018
  1. Không có C hay C++ thì windows chả bảo giờ có phiên bản mới
  2. Không có C hay C++ thì các phần cứng như ram, chip chả còn nữa
  3. Không có C hay C++ thì linux cũng tàn
  4. Không có C hay C++ thì chả có chuyện có nền tảng để chạy web
  5. Không có C hay C++ thì tương lai chẳng còn game để mà chơi nữa

Cứ thoải mái đi! C và C++ phổ biến lắm. C và C++ tốc độ thực thi nhanh hơn nhiều thứ khác thì cứ dùng đi nhé. C và C++ làm game và làm desktop app thì mượt mà lắm. Mình từng làm rồi

Florastamine viết 12:13 ngày 01/10/2018

9 MONTHS LATER

20 characters

Trần Hoàn viết 12:05 ngày 01/10/2018

Chỉ đơn giản là quen thôi, nhưng cú pháp như vậy là không nhất quán. Rõ ràng a có kiểu dữ liệu là int[], lẽ ra cú pháp như vậy phải là SAI.

Các ngôn ngữ hướng đối tượng mình biết thì array là class nên không khai báo mảng trên stack như C/C++ được. Một đối tượng mảng buộc phải khai báo trên heap thông qua toán tử new hoặc các array object khác. Nhưng cách khai báo như vậy tuân thủ quy định chung về cú pháp khai báo: <kiểu dữ liệu> <TênBiến>; hoặc <kiểu dữ liệu> <TênBiến> = <đối tượng>; (ví dụ int[] a = new int[10];) (Đây mới là cách Java hay dùng)

C++ đi lên từ C, trong C thì mảng chẳng phải struct cũng chẳng phải class, chỉ đơn giản là một kiểu dữ liệu. Thế nên khai báo tầm bậy cũng chả chết ai, khai báo mảng 10 phần tử xong truy cập đến phần tử thứ 15 cũng ok.

Việc khai báo trên stack chẳng nhanh hơn so với khai báo trên heap là bao nhiêu, chỉ đảm bảo ứng dụng không bị memory leak. Tuy nhiên stack cung cấp cho mỗi ứng dụng là có hạn, tuỳ theo kiến trúc hệ điều hành (64 bit/32 bit…), trong khi heap thì vô tận, chừng nào RAM còn chỗ. Chính việc khai báo các biến trên stack mới chiếm chỗ bộ nhớ, nếu như LTV có khả năng quản lý tốt cấp phát động. Hoặc như các ngôn ngữ hướng đối tượng phổ biến như Java, C# thì sẽ có GC lo liệu.

Bài liên quan
0