Chủ đề: Bạn nghĩ gì về C so với C++?
-
24-01-2011, 04:54 PM #21
Administrator
- Ngày tham gia
- Feb 2014
- Bài viết
- 0
Gửi bởi Kevin Hoang
Không chính xác lắm, nhưng cũng một ý._http://dethi.violet.vn/present/show/entry_id/4203309
2. Cái này thấy Admin nói vậy nên cũng có ý kiến:
Tầm thường được cũng khối người theo không được. Nếu sử dụng được C/C++ thì am hiểu sâu hơn, nhưng diện rộng thì sẽ không bằng. Mặt khác, học ngôn ngữ ngoài để hiểu biết ra thì mục đích chính là dùng nó để kiếm tiền. Nếu dùng ngôn ngữ A làm việc và kiếm tiền dễ hơn thì tại sao lại chạy đi sử dụng ngôn ngữ B.
Còn Admin nói lập trình mà như gõ trên Word? Có cố cũng không được thế đâu. Đó chỉ là phần hỗ trợ thôi, còn tư duy, kỹ thuật lập trình mới là cái quan trọng. Tại sao chúng ta dành thời gian để suy nghĩ, sáng tạo ra những cái mới để lấy công cụ hỗ trợ tốt nhất ra mà làm mà cứ dành thời gian để đi tìm tòi thật sâu nhưng yếu tố riêng biệt. Nói điều này cũng là do học theo ông thầy, không biết có phiến diện quá không. Nhưng mình học được từ ông ấy những điều thực tế. Ông ấy luôn cố gắng làm những cái mà người khác chưa làm hoặc làm chưa tốt. Điều này thiên về công việc nhưng mình đang xét trên khía cạnh mục đích của việc sử dụng ngôn ngữ. Có gì sai sót mọi người thông cảm cho.
-
24-01-2011, 05:05 PM #22
Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Kevin cũng có được nghe trình diễn về cái Java Processor và mối liên hệ giữa java bytecode và machine code, cùng ý tưởng đưa mã này vào trong CPU. Tuy nhiên là Kevin chưa thấy ai giới thiệu là nó đã được đưa vào sử dụng chưa, hay vẫn còn là ý tưởng. Nếu ZCoder87 biết thì giới thiệu cho mọi người đầy đủ luôn nhé!
Còn cái .NET thì chắc chờ các bạn nghiên cứu .NET Processor nhỉ? Ý tưởng ngon lành này đang chờ bạn đấy...
Từ lâu rồi C++ vẫn biên dịch sang mã máy luôn mà. Ngoài lề một chút: nếu bạn có thời gian có thể xem cái VLC code, cái này sử dụng C nhưng vẫn mô hình hóa thành OO được, cách thức của nó rất là thú vị đấy.
Objective-C là một hướng của sự phát triển OO cho C, cùng thời với C++. Object-C nó gần giống với một số ngôn ngữ OO trước đó, nên tạo ra nhiều sự khó hiểu, nhưng nó là một hướng rõ ràng. Object-C không hề phát triển, chỉ có duy nhất Apple phát triển và sử dụng được mọi người biết đến.
Còn đây là những gì mà Kevin sẽ nghĩ:
C++ được đưa ra vào năm 1983, trong khi đó Linux được bắt đầu viết vào năm 1991, Java thì released năm 1995, PHP cũng năm 1995 ... Từ trước năm 1992 C++ đã rất phổ biến, sức mạnh của C++ đã được công nhận khắp nơi. Tại sao người ta vẫn sử dụng C để viết mà không phải là C++?
-
24-01-2011, 05:15 PM #23
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
C++ được đưa ra vào năm 1983, trong khi đó Linux được bắt đầu viết vào năm 1991, Java thì released năm 1995, PHP năm 1995 ... lúc đó C++ cũng đã rất phổ biến, sức mạnh của C++ đã được công nhận. Tại sao người ta vẫn sử dụng C để viết mà không phải là C++?
Cái điểm yếu nhất của C++ là vì nó quá uyển chuyển, và phức tạp làm cho những người viết compiler gặp rất nhiều khó khăn. Điểm rõ ràng nhất là C++0x, cái standard này vẫn còn đang được thảo luận rất nhiều, có những đặc điểm có thể đưa vào, nhưng nó sẽ break những cái đã có sẵn.
-
24-01-2011, 05:31 PM #24
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Java, PHP và rất nhiều ngôn ngữ khác là based trên C, ngay cả C# là ngôn ngữ rất mới cũng là ngôn ngữ based C và Java mà không phải là C++. Còn compiler unstable, Kevin nghĩ là không liên quan gì đến chuyện các ngôn ngữ tiếp sau lại chọn C làm cơ sở. Kevin chỉ là nghĩ thôi. Không biết mọi người nghĩ sao?
-
24-01-2011, 05:57 PM #25
Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- 24 Rạch Bùng Binh , P10,Q3 , HCM
- Bài viết
- 0
@all:
Dù cho Microsoft có ra công nghệ tuyệt vời gì đi chăng nữa, thì chỉ phục vụ phần lớn cho các cty con, chứ không thể nào cho tụi cty lớn được. Lý do vì sao?
- Cty lớn cần sự ổn định và phải có người build internal tool. Ví dụ thằng Google hay Adobe, không bao giờ hai thằng này xài .NET, vì tụi nó có thừa nhân lực để tạo ra framework và library riêng, và cách này sẽ hiệu quả hơn cho công việc của tụi nó. Vì khi có bug, tụi nó có thể thọc ngay xuống dưới và tìm mà không phải qua trung gian từ các cty khác. Không lẽ bug của .NET mà sản phẩm của Google phải đợi ngày release sao? Impossible!
- Đã là dân lập trình, khi đi làm thì chúng ta hiểu ngay, software không phải như các sản phẩm khác. Chỉ có người build nó, mới hiểu nó 100% mà thôi. Cụ thể, mình làm .NET được, nhưng mình thấy bị giới hạn khi không hiểu qui chế của Win32. Có thể là vấn đề do mình, tuy vậy có một điểm mà mình thấy là, cái software nào cũng vậy, build trên library mà chúng ta hiểu rõ hoặc chính chúng ta build sẽ làm cho việc fix bug và improvement dễ dàng hơn. Các cty nhỏ thì không có khả năng này, vì không phải cty nào cũng để năng lực để build their own framework.
- Còn việc so sánh công nghệ và ngôn ngữ là vớ vẩn, vì sao? Nói .NET chậm hơn C++ là không đúng, vì nó làm nhiều việc hơn, phải dịch từ JIT xuống Native. Nói C nhanh hơn C++ là tầm bậy, vì C++ là đối tượng, nó luôn làm nhiều việc hơn C.
@dream:
Hãy nhớ một điều là: Microsoft là một công ty kinh doanh, mục tiêu của họ là thu về lợi nhuận nhiều nhất. Trong công ty Microsft vẫn sử dụng C/C++ là ngôn ngữ chính để phát triển sản phẩm đấy, còn C# và .NET chỉ để viết các tools, ứng dụng loằng ngoằng.
Không nên để một ngôn ngữ làm bạn mù quáng. Học các ngôn ngữ khác sẽ làm cho đầu óc bạn sáng tạo hơn khi design một library hay một application. Và GUI chỉ là một phần nhỏ xíu trong lập trình mà thôi, không phải cứ ngôn ngữ làm hình với console là lỗ thời. Library, framework, compiler, ... không cần dùng GUI.
Một chút tin tức ngoài lề
Sáng nay mới đọc báo thì cái team Visual C++ 6.0 đã viết ra một compiler mới có tên là Team Developer để chuyển cái chương trình từ Win32 sang MIL ( Microsoft Intermediate Language ), vì vậy Win32 sẽ không chỉ được port sang .NET mà còn sang cloud nữa. ( trích SD Times )
Còn thằng Ozzie, chief software architect của Microsoft đã ra đi rồi, vì nó thấy tương lai của Mobile và Cloud trong khi Microsoft chỉ lo tập trung vào Desktop App.
-
24-01-2011, 06:12 PM #26
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi Kevin Hoang
Tuy nhiên đó là công nghệ về mobile vì thực tế CPU trên phone ko đủ mạnh để nó chạy máy ảo một cách tốt nhất, nên đòi hỏi nó phải được hỗ trợ từ phần cứng. Còn Intel và AMD vẫn chưa thấy động tĩnh gì thay vì họ vẫn cố gắng optimize mã máy trên CPU sao cho chạy nhanh nhất.
Mình may mắn được làm việc với những hệ thống khác máy tính nhiều và theo như mình biết thì có một sỗ hdh nhỏ nó vẫn chưa phát triển hoàn chỉnh để có 1 compiler dịch ngôn ngữ C++. Do đó phải viết bằng C vì chtr viết bằng C và chtr viết bằng ASM nó gần như giống nhau tới 70%.
-
24-01-2011, 06:30 PM #27
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nói chung chỉ cần master 1 trong những thứ C# (.NET), Java (J2EE) hay C/C++ (Tùy từng cty nó sử dụng công nghệ gì) thì cũng ko bị thất nghiệp ở Việt Nam... Muốn lên lead thì phải master ít nhất 4 platforms (đó là rule cty mình). Cái chính do mỗi người có 1 suy nghĩ, một hướng đi riêng.
Thật tế có project nó được phát triển tới 2,3 công nghệ. Như trên thiết bị này thì phải viết bằng C/C++ hoặc Java, còn trên server thì có thể làm bằng ASP# hoặc PHP cho tiện lợi....
Còn riêng mình thì love C/C++ 4ever =))
-
24-01-2011, 06:31 PM #28
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi ZCoder87
Còn cái CPU ARM-CortexA8 mà ZCoder87 đưa ra là có hỗ trợ Java-acceleration technology có tác dụng ở dạng gọi là multi-tasking Java Virtual Machine, trong nhiều điện thoại của Tung Kủa cũng đã giới thiệu công nghệ này, cái này không phải là cái Java Processor nêu trên đâu.
-
24-01-2011, 06:47 PM #29
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi Kevin Hoang
Cũng giống như C#, mình rất hi vọng nó kết liễu Java càng sớm càng tốt.nhưng với C/C++ chắc không đâu.
-
24-01-2011, 07:02 PM #30
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
@a KenVin: Cái công nghệ mà e nói chính xác là JAZELLE-RCT (http://pdf.directindustry.com/pdf/ar...-37287-_2.html)
Nói chung thì thực tế cho thấy công nghệ phần cứng nó đang cố gắng làm mọi thứ để mã ảo có thể thực thi nhanh hơn hiện tại và e đoán rằng rồi dần dần C# hay Java nó cũng được dịch ra mã máy (có thể là 10 hay 20 năm nữa). Tuy nhiên với kiến trúc CPU x86 và x64 hiện tại thì việc thay đổi nó là cả 1 quá trình dài vì sự tương thích mã ASM hiện nay trên PC đang rất ổn định.
Như vậy e khẳng định: C và C++ never die, còn C# và Java sẽ là cũng sẽ là nền tảng mạnh của tương lai [IMG]images/smilies/biggrin.png[/IMG]
@bạn Trăng khuyết: Rất tiếc là C# nó ko bao giờ kết liễu được Java [IMG]images/smilies/biggrin.png[/IMG]
- Thứ nhất C# + .NET là công nghệ độc quyền của M$ và nó chỉ chạy trên thiết bị hỗ trợ M$
- Thứ hai là Google và Oracle sẽ ko để cho M$ làm được điều đó =)) tự hiểu.
Yếu sinh lý là tình trạng suy giảm chức năng tình dục ở nam giới, gây ảnh hưởng đến chất lượng cuộc sống và hạnh phúc gia đình. Để khắc phục vấn đề này, nhiều quý ông tìm đến các loại thuốc cương...
Yếu sinh lý ở đàn ông: Nên uống...