So sánh ngôn ngữ c và visuabasic

thế bạn có nghĩ rằng C++/MFC chỉ chạy được trên Windows còn .NET và Java có thể multiplatform? Tôi không phản đối nếu chúng ta so sánh để học hỏi, còn so sánh để chứng tỏ 1 ngôn ngữ nào đó là số một thì chẳng khác nào bắt thế giới chỉ dùng xe Toyota hoặc xe Ford.


meotrang7x

25-08-2007, 22:25

Hôm nay mình khẳng định lại là “Tư duy lập trình của C++ mới là tư duy logic nhất, thiết thực nhất và rõ ràng nhất. Bởi vì tư duy C++ là nền tảng cho tất cả các ngôn ngữ sau này” .

Còn đối với em thì khi tư duy em cố gắng đẩy cái abstraction lên cao nhất, do đó sẽ không dính đến ngôn ngữ gì khi tư duy cả (thực ra là em có dùng 1 ngôn ngữ khi tư duy, đó là tiếng Việt). Sau đó thì tùy theo yêu cầu của ứng dụng mà em chọn ngôn ngữ (hay yêu cầu của khách hàng, hoặc yêu cầu của boss em). C++ hay Python gì cũng được (dĩ nhiên cái details thì nó khác nhau rồi, nhưng cái đó không quan trọng đối với em). Bác nói C++ là tốt nhất thì không sai, nhưng mà cũng không đúng đâu bác. Tùy trường hợp cụ thể thôi.


Sao ko so sánh VC++ với đối thủ thực sự của nó là Delphi/C++ Builder ấy lol


eXecutive

26-08-2007, 13:33

#############

#############

#############

#############


Linux thì viết bằng C khá nhiều, nhưng Windows thì C/C++ chỉ 1 phần thôi, code ASM chiếm khá nhiều trong đó. Nhưng đó là chuyện của OS, khi đã bắt tay vào viết những dòng code đầu tiên của kernel thì ko thay đổi ngôn ngữ được nữa, giống như Windows Vista hiện giờ đâu phải được viế trên nền .net mà M$ ra sức cổ vũ :D Code Pascal dài dòng nhưng đổi lại cái rõ ràng và dễ hiểu. Code C/C++ có thể gây nhầm lẫn với người mới chứ code pascal thì ko. Về sức mạnh thì VC++ và Delphi là tương đương nhau ở mức các thao tác hệ thống. Nhưng ở mức độ RAD thì Delphi lại trội hơn VC++ rất nhiều. Và ở những bài viết trên thì bạn đang so sánh VC++ với các ngôn ngữ khác chứ ko phải là C++ thuần túy ;)


Linux thì viết bằng C khá nhiều, nhưng Windows thì C/C++ chỉ 1 phần thôi, code ASM chiếm khá nhiều trong đó. Nhưng đó là chuyện của OS, khi đã bắt tay vào viết những dòng code đầu tiên của kernel thì ko thay đổi ngôn ngữ được nữa, giống như Windows Vista hiện giờ đâu phải được viế trên nền .net mà M$ ra sức cổ vũ :D Code Pascal dài dòng nhưng đổi lại cái rõ ràng và dễ hiểu. Code C/C++ có thể gây nhầm lẫn với người mới chứ code pascal thì ko. Về sức mạnh thì VC++ và Delphi là tương đương nhau ở mức các thao tác hệ thống. Nhưng ở mức độ RAD thì Delphi lại trội hơn VC++ rất nhiều. Và ở những bài viết trên thì bạn đang so sánh VC++ với các ngôn ngữ khác chứ ko phải là C++ thuần túy ;) THeo tớ thì Windows cũng giống Linux, phần lớn mã nguồn hệ điều hành được viết bằng C (không phải C++ đâu nhé). Nếu các bạn muốn tìm hiểu tại sao người ta không viết hdh = C++ thì có thể tìm đọc bài viết của Linus Torval. (có một số ngoại lệ: một số HDH được viết nhiều trên C++, một số viết hoàn toàn = asm, nhưng các hdh này tính phổ dụng không cao). VC là môi trường phát triển C/C++ tốt nhất hiện nay (không có đối thủ), nhưng xét về khía cạnh RAD thì CBuilder/Delphi là vô địch (so với VB, PowerBuilder,...). Delphi không thịnh hành ở Việt Nam có lẽ do khả năng hỗ trợ Unicode quá kém.


eXecutive

26-08-2007, 14:21

#############

#############

#############

#############


Một người học Delphi sẽ rất khó khăn khi chuyển sang học các ngôn ngữ khác như C++. Bởi vì không quen cách viết ngắn gọn của lập trình.

Ngôn ngữ Pascal có thể đem so sánh với ngôn ngữ C Ngôn ngữ Object Pascal có thể đem so sánh với C++.

Có một thực tế là khi chúng tôi bắt đầu học về IT, số lượng sách cũng như thày dạy về C/C++ không phổ biến. Trong khi đó với 300KB (turbo pascal) bạn có thể thoải mái làm việc với pascal/object pascal/OOP.

Sức mạnh của Delphi và C++ như thế nào thì thực tế cũng trả lời. Tôi cũng không muốn bàn cải làm gì. Mình không biết RAD là gì nhưng mình hỏi lại Delphi sử dụng XML, Services, Sercurity... như thế nào không?

Về mặt này thì Visual Studio đi sau delphi 1 bước, các ứng dụng n-tiers viết với Delphi cực kỳ dễ dàng, trong sáng, không một bộ công cụ nào có thể sánh được.

Thông tin Chương trình Linux viết bằng C mình không biết ở đâu ra nhưng ở Linux hay MacOS vẫn luôn chạy theo sự phát triển của Visual Studio. Linux có dotGNU (giống .NET). Linux có C++ dùng trình biên dịch g++ chứ không phải gcc như trước đây đã thảo luận.

Linux là HDH mã nguồn mở, bạn có thể tải nó về ở địa chỉ http://www.kernel.org DotGNU hay Mono chỉ là những dự án có mục đích chứng minh tính hữu dụng của các thư viện mã nguồn mở. Tại thời điểm này nó không phải là đối thủ của nền tảng .NET của Ms. (DotGNU không phải "của" Linux).


Sức mạnh của Delphi và C++ như thế nào thì thực tế cũng trả lời. Tôi cũng không muốn bàn cải làm gì. Mình không biết RAD là gì nhưng mình hỏi lại Delphi sử dụng XML, Services, Sercurity... như thế nào không?

Có thể bạn ko tin, nhưng Delphi làm những việc này rất hoàn hảo, cả ở mức RAD và mức code :D bạn có thể tạo 1 service mà ko cần viết bất kỳ dòng mã nào với Delphi, mặc dù tôi ko đánh giá cao chuyện này.

C#, con bài của M$, là ngôn ngữ dựa trên C++ nhưng phong cách thiết kế lại dựa trên Delphi.

Điểm yếu duy nhất của Delphi là Unicode, Delphi for Win32 tới bây giờ vẫn chưa chịu hỗ trợ native Unicode (mặc dù cái giá của nó ko hề rẻ, những 7000$), bắt buộc coder phải làm nhiều hơn cho việc này. Tất nhiên, Delphi.Net hay Delphi for PHP hỗ trợ Unicode bình thường.


minhquan1712

26-08-2007, 15:44

Nói tới Java thì có lẽ nhiều người cho rằng nó lập trình Game rất tốt và tốt hơn C++. Tuy nhiên theo tôi chỉ là ngang tầm với nhau mà thôi. Cái mạnh của Java hơn C++ có lẽ là viết được game trên Di động với J2ME. Nhưng đối với Symbian thì chúng ta có thể dùng ngôn ngữ C++. C++ có thể DevGame và thực tế người ta vẫn dùng C++ rất nhiều.

Ngay bản thân mình cũng thích lập trình Game mà luôn hy vọng sẽ Dev được 1 trò game 3D ra trò mặc dù vẫn chưa có đủ khả năng để hoàn thành nó một cách hoàn chỉnh. Nói ra thì chắc cũng it ai tin. Mình sẽ post 1 số chương trình Demo 3D sử dụng OpenGL mà mình viết trên C++/MFC cũng để chức khả năng và minh sức mạnh trong công nghệ phát triển Game của C++.

cái này bạn chỉ nói theo wuan điểm cá nhân của bạn. Ko mang 1 tính khác wuan nào cả. Chả lẽ bạn chỉ viết được 1 game 2D bằng VC++ thì bạn đã nói về lập trình game java <=> với C++ hay sao? 1 progammer đích thực ko hề so sách sức mạnh của ngôn ngữ này hơn ngôn ngữ khác ở điểm nào, mà họ sẽ cố gắng sử dụng chúng để bù lấp những điểm yếu cho nhau.Và khi ra đời làm việc cũng vậy. Bạn ko thể nào quyết định được ứng dụng đó được dev bằng ngôn ngữ nào, mà điều đó chỉ có thể quyết định bởi khách hàng của bạn(có thể wua sự tư vấn của bạn). Nếu bạn chỉ cứ ôm con C++ mà học thì chúc bạn kiếm được việc làm tốt nhé :D _


Ngay bản thân mình cũng thích lập trình Game mà luôn hy vọng sẽ Dev được 1 trò game 3D ra trò mặc dù vẫn chưa có đủ khả năng để hoàn thành nó một cách hoàn chỉnh. Nói ra thì chắc cũng it ai tin. Mình sẽ post 1 số chương trình Demo 3D sử dụng OpenGL mà mình viết trên C++/MFC cũng để chức khả năng và minh sức mạnh trong công nghệ phát triển Game của C++. Đưa ra cũng ko chứng minh được gì lol Với VB6 tôi cũng có thể sử dụng OpenGL và DirectX, Delphi thì ko cần phải bàn. C++ đúng là rất mạnh, nó thể hiện gần như toàn bộ lý thuyết về hướng đốí tượng, và đang là ngôn ngữ nền cho hầu hết các ngôn ngữ hiện nay. Biết về C++ có thể dễ dàng hiểu được những đoạn script xa lạ của một ngôn ngữ dựa trên C/C++ nào đó, và cũng dễ dàng nắm được cơ bản của các ngôn ngữ đó. Nhưng C++/MFC lại là chuyện khác, nó là trở thành thư viện/công cụ của VC++, là một môi trường phát triển C++ rất tốt, nhưng cũng ko tốt hơn Borland C++ Builder. Thị phần của VC++ khá lớn chỉ vì 1 lý do đơn giản: Windows.


Tienlbhoc

26-08-2007, 18:08

mình code c# nè, cũng trình gà thôi, c# sẽ tốn bộ nhớ hơn, chạy chậm hơn nhưng c# được cái rất đơn giản, để code mấy cái ứng dụng win của cậu thì mình học đến bao giờ,nhất là từ bé đến giờ mình toàn tự học, có được ai dạy buổi nào về máy tính đâu, c# mình học có gần 1 tháng thôi à, viết code nhanh, đặc biệt hướng dẫn của msdn rất hay đối với mấy bạn tự học mình ghét nhất là con trỏ, học c c++ trầy trật, lên c# thoát luôn. Nói chung, không phải cứ mạnh mới là lựa chọn hàng đầu, phải biết cân đối giữa mạnh, nhanh với tính đơn giản và phổ biến, code của cậu cung cấp mã nguồn thì mình ngồi khóc, còn soft của mình mà nhờ mấy ông bạn test thì dễ không. Mà c++ lại đi bắt vít với dotnet cái vốn được dành cho mấy ngôn ngữ như c#( mấy cái java mình không biết nên không bàn tới) thì không hay. Nếu bài viết này, bạn nêu những tính năng mà c++ có thể làm được như trên mà không đem so sánh hay vùi dập ngôn ngữ khác thì mình rất đồng tình, nhưng nói kiểu của bạn thì không hay chút nào, bạn làm được từng đấy chắc cũng đã đi làm , có kinh nghiệm lâu, mình mới có giấy báo đỗ đại học thôi, xin lỗi nếu dạy đời


Với C++/MFC thì đây mới là thế mạnh của nó.

- Khoá bàn phím, hay chuột sử dụng thì sử dụng Hook.

HHOOK SetWindowsHookEx( int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId );

Nếu bạn để ý thì Unikey cũng có file Hook.dll mới có thể viết được chương trình gõ tiếng việt.

- Gửi yêu cầu tới một ứng dụng. Muốn yêu cầu gì thì Msg tương ứng. Ví dụ đóng chương trình thì WM_CLOSE, WM_KEYDOWN, WM_CHAR,...

LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );

- Đọc nội dung theo cấp độ vật lý trên đĩa thì có hàm.

HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile );

Hàm này mới đúng là hàm đọc file mạnh nhất. Nếu FileName là: - “\.\PHYSICALDRIVE0” : Đọc theo cấp độ vật lý - “\\.\C:” : Đọc theo cấp độ Volume Vì vậy nên các chương trình diệt virus kiểm tra BootSector trực tiếp trên HDH Windows được mà không phải dùng ngắt.

Và rất nhiều hàm API khác rất mạnh có thể can thiệp vào hệ thống nữa. Tất cả những API ở trên ko hề là API của C++/MFC, đó là API của Windows được khai báo dưới dạng code C++ cho coder. Bạn đề cập tới hook thì chắc hẳn cũng hiểu rõ tại sao Unikey phải dùng file dll để hook chứ ;)

Nếu C# có thể sử dụng được DLL chia sẻ từ VC++ thì nó hoàn toàn có khả năng gọi trực tiếp Windows API từ các kernel DLL của Windows ;)


professor.net

26-08-2007, 19:09

C++ đúng là rất mạnh.nhưng làm việc với nó thì rất mệt. nếu ai chưa từng tham gia vô 1 dự án thật sự,thì không biết tằm quan trọng của C++ đâu.


Có ai biết ở đâu có tài liệu hướng dẫn step by step về cách tạo một dự án với C/C++. Em đã có căn bản C và C++, nhưng mãi vẫn chưa thể thành thạo cái tạo một dự án, mở mấy open source ra mà không biết nên bắt đầu từ đâu

C/C++ là vua, dân lập trình chuyên nghiệp toàn dùng nó. Chứ còn chơi chơi, viết vài cái soft quản lý thì dùng cái khác là ổn


professor.net

26-08-2007, 19:12

C# thì lập trình rất đã,


nguyenniit1911

26-08-2007, 20:37

Trước khi học C++ tôi cũng đã có 1 khoảng thời gian ngắn tiếp cận với pascal và VB nhưng thực nó không có mấy ấn tượng mạnh đối với tôi như C++.

Một người học Delphi sẽ rất khó khăn khi chuyển sang học các ngôn ngữ khác như C++. Bởi vì không quen cách viết ngắn gọn của lập trình.

Nhưng một người đã học C++ thì có thể học các ngôn ngữ khác một cách nhanh chóng. Ngay bản thân tôi có thể viết JavaScript hay ActionScript(Flash) mà chưa từng học qua ngôn ngữ Java, nói ra thì sợ bạn nối tôi nỗ nhưng không lẽ tôi post code lên đê chứng minh.

Sức mạnh của Delphi và C++ như thế nào thì thực tế cũng trả lời. Tôi cũng không muốn bàn cải làm gì. Mình không biết RAD là gì nhưng mình hỏi lại Delphi sử dụng XML, Services, Sercurity... như thế nào không?

Ngôn ngữ C++ ở đây dĩ nhiên không phải là C++ thuần túy vì, vì nó phải biến đổi và phát triển mới có thể thích nghi được với hiện tại. Tôi thích Visual Studio và Visual Studio yêu cầu cái gì để lập trình thì tôi sẽ học cái đó.

C và C++ mặc dù cùng là 1 dòng họ nhưng có sự khác biệt nhau hoàn toàn. C không biết Object là gì và cũng không thể nào biết Design Patterns,...

Thông tin Chương trình Linux viết bằng C mình không biết ở đâu ra nhưng ở Linux hay MacOS vẫn luôn chạy theo sự phát triển của Visual Studio. Linux có dotGNU (giống .NET). Linux có C++ dùng trình biên dịch g++ chứ không phải gcc như trước đây đã thảo luận.

Bây giờ bạn hãy cài Visual C++ Express 2005. Chỉ yêu cầu đơn giản là xuất ra chữ "Hello". Mình dám chắc bạn không thể làm được với printf hay cout. trong khi Visual Studio 2008 đang sắp ra đời rồi.

- Thì ra bác này là một "con chiên" của Microsoft, đang ra sức tâng bốc VC++ trong bộ VS Express (chắc là 2005 SP1). Bác đưa ra một vài cái ScreenSaver Demo, rồi game 2D Audition Demo để chứng minh rằng VC++ là No1 trong lĩnh vực ... game, buồn cười nhỉ. Còn nhiều lĩnh vực khác lắm bác à, mỗi ngôn ngữ có thế mạnh riêng của nó.

- Biết JavaScript đâu nhất thiết phải biết Java nhỉ, chắc JS của bác cũng chỉ viết được cỡ document.write("Hello!");, alert("Hello!");... thôi nhỉ. Việc code giỏi chỉ JS thôi cũng là một vấn đề ko nhỏ đâu bác. Bác show vài đoạn JS bác viết lên xem thử nhỉ, cũng hơi tò mò. lol (ActionScript thì tôi ko biết).

- Không biết bác lấy đâu ra thông tin Linux và MacOS chạy theo sự phát triển của VS thế? Bác thích VS là quyền của bác, ko cần phải rêu rao lên như thế. Còn đối với tôi việc học VS.NET giống như là bị nhốt trong cái Windows Prison.

ps: RAD = Rapid Application Development. (nếu kô lầm :D) Ít ai nói multiplatform, thường dùng là cross-platform.


duongdragonxxx

26-08-2007, 23:13

đúng là rảnh thật. HAHA. Lúc mới lập trình tui cũng hay ti toe so sánh cái này cái kia, đến jờ thì có 1 cái nhìn khác. Cái nào cũng mạnh cả. VD: - để lập trình 1 app nhúng chẳng hạn thì chắc chắn là kô dùng .net roài mà chọn asm or c++. - để viết 1 cái soft cho 1 doanh nghiệp dùng chẳng hạn (vd như là wản lý bán hàng) thì liệu có ai xách c++ ra viết kô nhỉ.

Đến đây các pác tự bình luận nhá. Mỗi cái có 1 cái hay riêng


nguyen.the.vinh

26-08-2007, 23:16

đúng là rảnh thật. HAHA. Lúc mới lập trình tui cũng hay ti toe so sánh cái này cái kia, đến jờ thì có 1 cái nhìn khác. Cái nào cũng mạnh cả. VD: - để lập trình 1 app nhúng chẳng hạn thì chắc chắn là kô dùng .net roài mà chọn asm or c++. - để viết 1 cái soft cho 1 doanh nghiệp dùng chẳng hạn (vd như là wản lý bán hàng) thì liệu có ai xách c++ ra viết kô nhỉ.

Đến đây các pác tự bình luận nhá. Mỗi cái có 1 cái hay riêng

- Nhúng thì dùng C chứ không C++ ;), mà hình như dùng cả java thì phải (đoán mò) - soft cho doanh nghiệp thì cũng dùng C++/VC++ cũng chẳng sao _


meotrang7x

27-08-2007, 09:28

Nhưng một người đã học C++ thì có thể học các ngôn ngữ khác một cách nhanh chóng. Ngay bản thân tôi có thể viết JavaScript hay ActionScript(Flash) mà chưa từng học qua ngôn ngữ Java, nói ra thì sợ bạn nối tôi nỗ nhưng không lẽ tôi post code lên đê chứng minh.

Hihi, vậy bác không biết là Java và JavaScript chẳng hề có bà con gì sao? Rất nhiều người lập trình cũng chỉ biết JavaScript mà không biết Java đó bác. ActionScript cũng thế.


meotrang7x

27-08-2007, 09:31

Có ai biết ở đâu có tài liệu hướng dẫn step by step về cách tạo một dự án với C/C++. Em đã có căn bản C và C++, nhưng mãi vẫn chưa thể thành thạo cái tạo một dự án, mở mấy open source ra mà không biết nên bắt đầu từ đâu

C/C++ là vua, dân lập trình chuyên nghiệp toàn dùng nó. Chứ còn chơi chơi, viết vài cái soft quản lý thì dùng cái khác là ổn

Còn mấy ngôn ngữ khác là hoàng đế.:rolleyes:


C/C++ là 1 trong những ngôn lập trình "vạn năng" (lâu rồi ít thấy ai dùng từ này). Nó có thể làm tất cả mọi việc. Các lang khác như PHP/VB.NET chuyên dung về 1 lĩnh vực hơn .

Do đó : C/C++ sẽ làm được nhiều việc mà nhiều lang khác kg lam được, hoặc kg mạnh bằng. và ngược lại C/C++ sẽ kém hơn 1 số lang ở 1 vài lĩnh vực nào đó.

Trong TG lập trình, có thể nói C là Vua(mạnh mẽ) và Pascal là nữ hoàng(đẹp). Gần như tất cả các lang sau này đều là họ của C và pascal(hoặc basic).


eXecutive

27-08-2007, 12:57

#############

#############

#############

#############


eXecutive

27-08-2007, 13:14

#############

#############

#############

#############


Linux có 1 môi trường lập trình rất giống .NET, tôi nghe một người bạn nói là dotGNU tuy nhiên tôi chưa có tài liệu về nó nên tôi không muốn nói ra. http://www.builderau.com.au/program/dotnet/soa/Running-NET-on-Linux-with-DotGNU/0,339028399,339130565,00.htm

Vô thử trang này để mở mang tầm mắt Cái này chỉ cố "giải thoát" .net ra khỏi Windows, chả mang ý nghĩa gì cả. Môi trường truyền thống của Linux là C, giống như xưa kia Unix được viết bằng C vậy. Dùng C++/MFC đúng là sẽ bị nhốt trong nhà tù Windows thật ;) Nhưng C++ thì ko. Các phần mềm cross-platform được viết bằng C++ nhưng ko hề dùng MFC, điều đó đảm bảo cho nó có thể dịch được trên VC++, gcc++... P/S: môi trường đồ họa của Linux là X-Window, ko phải X Windows ;)


Câu này nghe thật khó chịu. Nên nhớ là C++ không bị phụ thuộc vào .NET bởi vì .NET ra đời sau khi xuất hiện C++. Với C++ vẫn có thể lập trình trên Linux và cấu trúc chương trình chạy trên X WINDOWS hoàn toàn giống với Visual C++.

Đoạn code này là tôi copy từ tài liệu của GNU đó. Nên đùng nói là C++ bị nhốt trong nhà tù Windows nha! coi chừng bị người ta cười đó.

Linux có 1 môi trường lập trình rất giống .NET, tôi nghe một người bạn nói là dotGNU tuy nhiên tôi chưa có tài liệu về nó nên tôi không muốn nói ra. http://www.builderau.com.au/program/dotnet/soa/Running-NET-on-Linux-with-DotGNU/0,339028399,339130565,00.htm

Vô thử trang này để mở mang tầm mắt

Nếu bạn đã dùng qua các công cụ khác (Netbeans, Eclipse/MyEclipse, PowerBuilder, Delphi, C++Builder, KDevelope, Codewarrior...) thì bạn sẽ có những so sánh khách quan hơn đấy!

Bạn đọc kỹ bài của bạn quangvu đi, mọi người chỉ phản đối bạn ở khía cạnh gắn C++ với các công vụ MS thôi (.NET, MSVC,...).

C/C++ là 1 trong những ngôn lập trình "vạn năng" (lâu rồi ít thấy ai dùng từ này). Nó có thể làm tất cả mọi việc. Các lang khác như PHP/VB.NET chuyên dung về 1 lĩnh vực hơn .

Do đó : C/C++ sẽ làm được nhiều việc mà nhiều lang khác kg lam được, hoặc kg mạnh bằng. và ngược lại C/C++ sẽ kém hơn 1 số lang ở 1 vài lĩnh vực nào đó.

Trong TG lập trình, có thể nói C là Vua(mạnh mẽ) và Pascal là nữ hoàng(đẹp). Gần như tất cả các lang sau này đều là họ của C và pascal(hoặc basic).


eXecutive

27-08-2007, 13:48

#############

#############

#############

#############


meotrang7x

27-08-2007, 13:54

Sau 1 ngày không lên mạng mà có nhiều người kiện cáo quá. Ok tình tui thích biện luận (có người bảo tôi chuyển qua nghề Luật Sư nhưng tôi thích lập trình hơn :D.

Để tôi xử lý từ từ nha!

Chả khoe khoang gì nhưng muốn biết JS tôi viết thế nào thì vào trang này do tôi Design (có thể hơi gà thì tôi ko chuyên về WEB) đi. http://freehost03.websamba.com/choidoimottinhyeu/

Bác không hiểu ý rồi, người ta nói JavaScript và Java chả có liên quan gì với nhau cả. Đâu phải bác lập trình được JavaScript mặc dù không hề biết qua Java rồi bác kết luận là Java dễ?


meotrang7x

27-08-2007, 13:57

Bài viết này không hề muốn vùi dập các ngôn ngữ khác mà chỉ với mục tiêu là bảo vệ cho những ai đang học C++. C++ có rất nhiều điều rất hay mà chỉ khi học nó mới có thể cảm thấy được.

Còn việc kiếm được việc làm với C++ thì tôi không bao giò quan tâm tới vì tôi tin tôi sẽ thành công với C++!

Hihihi, có ai tấn công những người học C++ của bác đâu mà bác lại phải bảo vệ? Chỉ vì bác bảo vệ quá nên chúng em mới vào tấn công đấy thôi.


eXecutive

27-08-2007, 14:03

#############

#############

#############

#############


----- Tiếp tục cãi!

C++/MFC là một tool nhưng nguyên tắc của nó là Win32 C++ hoàn toàn. Muốn học C++/MFC thì phải biết sơ qua nguyên tắc này đó là MessageLoop,... Do đó có thể chuyển đổi hoàn toàn từ C++/MFC sang Win32 C++ thông thường. Khác nhau giữa 2 cái này thực chất chỉ là C++/MFC sử dụng hướng đối tượng.

Windows là một hệ điều hành tương tối toàn diện. Ngay bản thân bạn cũng phải cài Windows vào máy tính của mình (đừng nói là không có nha!) Do đó C++/MFC mặc dù bị nhốt trong nhà tù nhưng đó là một nhà tù rất rộng lớn mà ai cũng phải nhốt trong đó :D

Bạn chỉ mới xài WindowsXP hoặc cao hơn là Vista. Nghề chính của tôi là "chuyên viên quản trị mạng" chứ không phải là lập trình viên. Bạn sẽ cảm thấy Microsoft đúng là "khổng lồ" mà người ta thường nói với ở hệ điều hành Windows Server. Sử dụng Windows XP thì ai cũng có thể làm được nhưng nếu sử dụng thành thạo được Windows Server BillGate sẵn sàng cho bạn 1 cái bằng có tên là MSCA hoặc MSCE,... và .NET được thiết kế để làm việc cho Server chứ không phải là Client mà bạn biết!

Phát biểu cẩn thận 1 chút :emlaugh:

Tôi dùng Windows từ phiên bản 3.1 đến giờ, ngoại trừ Windows Vista ra thì tất cả các phiên bản của Windows đều đã sử dụng qua, kể cả Windows Server 2003 được cài đặt trên server chứ ko phải PC nhé :innocent: Dùng Windows cho các tác vụ thông thường, còn ở các tác vụ liên quan đến công việc thì tôi vẫn phải làm việc với Linux và Solaris.

Các phần mềm chạy trên Win tôi viết từ trước đến giờ đều bằng Delphi, một số có sử dụng thêm VC++ nhưng chưa bao giờ dùng MFC. Tôi viết DLL bằng VC++ chỉ vì 1 lẽ đơn giản: các SDK và DDK (như DirectX SDK và Windows DDK) được M$ phân phối dưới dạng các file VC++ header, nếu dùng Delphi tôi sẽ phải khai báo lại toàn bộ, việc này rất mất thời gian nên giải pháp tốt nhất là dùng VC++ để viết DLL. Ví dụ, khi viết 1 soft firewall tôi dùng Delphi, nhưng ở mức driver tôi phải dùng VC++ vì tôi ko thể khai báo lại toàn bộ Windows DDK bằng Delphi. Đây chính là lợi thế của VC++ khi so với các môi trường khác.

P/S: Message loop là cấu trúc của Windows, ko phải của C++. Ứng dụng Delphi hay BCB, thậm chí VB nếu viết thuần Windows API thì vẫn phải dùng Message loop. Và MFC của VC++ vốn phục vụ cho RAD, mà RAD của VC++ thì ko phải đối thủ của VB chứ đừng nói Delphi hay BCB ;) VC++ là một môi trường phát triển C++ cực mạnh nhưng ko phải vạn năng, nhiều tính năng của nó rất kém so với các môi trường khác. Tính năng mạnh nhất của VC++ là khả năng làm việc với hệ thống, đây là điều mà đôi khi Delphi ko thể bì kịp vì 1 lý do đơn giản: Microsoft;)


Cách đây không lâu tôi bị một bạn đã học C# nói với tôi là: “Cách tư duy của bạn là tư duy của C++, rất tốt nhưng các ngôn ngữ mới bây giờ có một tư duy khác...” Hôm nay mình khẳng định lại là “Tư duy lập trình của C++ mới là tư duy logic nhất, thiết thực nhất và rõ ràng nhất. Bởi vì tư duy C++ là nền tảng cho tất cả các ngôn ngữ sau này” . Đọc đoạn này, mình cứ tưởng bác nói về Pascal ấy chứ :emlaugh: .

PS: Bác hãy so sánh C/C++ VS Prolog thử xem :lick: .


nguyenniit1911

27-08-2007, 17:14

----- C++/MFC là một tool nhưng nguyên tắc của nó là Win32 C++ hoàn toàn. Muốn học C++/MFC thì phải biết sơ qua nguyên tắc này đó là MessageLoop,... Do đó có thể chuyển đổi hoàn toàn từ C++/MFC sang Win32 C++ thông thường. Khác nhau giữa 2 cái này thực chất chỉ là C++/MFC sử dụng hướng đối tượng.

Windows là một hệ điều hành tương tối toàn diện. Ngay bản thân bạn cũng phải cài Windows vào máy tính của mình (đừng nói là không có nha!) Do đó C++/MFC mặc dù bị nhốt trong nhà tù nhưng đó là một nhà tù rất rộng lớn mà ai cũng phải nhốt trong đó :D

Bạn chỉ mới xài WindowsXP hoặc cao hơn là Vista. Nghề chính của tôi là "chuyên viên quản trị mạng" chứ không phải là lập trình viên. Bạn sẽ cảm thấy Microsoft đúng là "khổng lồ" mà người ta thường nói với ở hệ điều hành Windows Server. Sử dụng Windows XP thì ai cũng có thể làm được nhưng nếu sử dụng thành thạo được Windows Server BillGate sẵn sàng cho bạn 1 cái bằng có tên là MSCA hoặc MSCE,... và .NET được thiết kế để làm việc cho Server chứ không phải là Client mà bạn biết!

- Đã xem mấy đoạn JS mà bác show cho, dù ko biết bác tự code bao nhiêu, copy bao nhiêu nhưng vẫn thấy JS của bác vẫn chỉ ở mức document.write("Hello!");. Tôi chưa hề nói lập trình C++ là bị nhốt trong Windows Prison, tôi nói là VS.NET cơ mà. Mấy cái IDE để lập trình .NET trên Linux ấy chỉ để vọc thôi, tôi nghĩ ai hâm lắm mới dùng chúng.

- Đừng có suy bụng ta ra bụng người nhé, tôi đã ko xài Windows từ khi biết Ubuntu tới giờ. Cái mà tôi quan tâm là Java (JSE, JEE), Java thì trên Windows hay Linux thì cũng ko khác biệt mấy.

- M$ thì chả cho ko ai cái gì cả. M$ chỉ là khổng lồ thực sự trên Desktop và Office còn trên Server và Database thì Linux và Oracle là No1. JEE cũng như .NET được thiết kế để phát triển Application Server, nói nôm na là các ứng dụng đa tầng, chứ đâu phải cho Server.

- À, tiện cho hỏi bác một câu, bác đang xài VS Express phải ko? Bác có biết hạn chế của nó là gì ko? (Hỏi chơi thôi) lol


----- Bạn chỉ mới xài WindowsXP hoặc cao hơn là Vista. Nghề chính của tôi là "chuyên viên quản trị mạng" chứ không phải là lập trình viên. Bạn sẽ cảm thấy Microsoft đúng là "khổng lồ" mà người ta thường nói với ở hệ điều hành Windows Server. Sử dụng Windows XP thì ai cũng có thể làm được nhưng nếu sử dụng thành thạo được Windows Server BillGate sẵn sàng cho bạn 1 cái bằng có tên là MSCA hoặc MSCE,... và .NET được thiết kế để làm việc cho Server chứ không phải là Client mà bạn biết!

Chuyên viên quản trị mạng mà gọi Linux là phần mềm thì he he. QTM mà chỉ biết windows, windows, chả mảy may có khái niệm gì về linux/unix/bsd thì khó mà tiến xa lắm!


cndkhuong

27-08-2007, 17:53

Các bạn đọc giải trí chơi :

Microsoft: Không còn "Sự thật"

Sau hơn 3 năm tồn tại, cuối cùng Get The Facts (Đâu là sự thật) - mũi súng mà Microsoft chĩa thẳng vào cộng đồng nguồn mở - đã phải đóng cửa.

"Get The Facts" là một trong những chiến dịch quảng cáo của Microsoft ra đời năm 2004. Nhiệm vụ cơ bản của trang web này là khuyến khích người dùng chuyển từ việc sử dụng Linux sang hệ điều hành của Windows.

Cũng được biết tới như một "chiến dịch chống Linux", Get The Facts đã khơi mào cho khá nhiều vụ tranh luận, so sánh giữa phần mềm nguồn mở và các sản phẩm của Linux. Và dĩ nhiên, Get The Facts luôn khẳng định tính ưu việt của Windows so với Linux.

Trên trang web này, Microsoft giới thiệu các công trình nghiên cứu, phân tích kinh doanh và kết quả thí nghiệm. Chúng gồm các bài viết như "Chi phí nhân công khiến Windows có lợi thế so với Linux" hay "Vận hành WinTel Server rẻ hơn 10 lần so với máy chủ Linux".

Cuối cùng, sau hơn 3 năm tồn tại, Microsoft đã quyết định cho trang web này "về hưu". Có lẽ Microsoft đóng cửa trang web này cũng là một quyết định nên làm bởi vì sự tồn tại của Get The Facts luôn đi kèm với câu hỏi phải chăng Microsoft đã "lót tay" cho một số nhà phân tích để họ đưa ra những kết quả có lợi cho Windows. Cách đây không lâu, Lenovo và Dell đã công bố đưa Linux vào một số dòng máy tính của hãng. Những số liệu điều tra cho thấy Linux đang có những bước tiến dài, trong khi đó, Vista của Microsoft đang phải hứng chịu những lời chỉ trích. Linux của ngày hôm nay đã không còn là Linux của 3 năm trước, Linux ngày nay đã có thể tự tin mà nói rằng "Đã đến lúc tiếm ngôi Windows".

(24H.COM.VN - Theo Soft, VnE)


PhamTienSInh

28-08-2007, 09:58

@eXecutive :

Những mớ lý thuyết mà bạn đưa ra để ủng hộ C++ mình thấy không ổn lắm. Đúng C++ là ngôn ngữ logic nhất... nhưng thời thế đã khác rồi , nếu như 6 năm về trước bạn viết bài này , tôi sẽ vỗ tay hoan hô.Nhưng với thời điểm hiện nay , tôi và rất nhiều người sẽ cho rằng bạn có vấn đề thật.

1.Những demo mà bạn dùng C++ chỉ là các chương trình cỏn con chả nói lên điểm mạnh của C++, tôi có thể viết các DEMO đó bằng ASM ,PASCAL cách đây 6 năm. 2.Bạn nhìn lại mình thử xem, ngoài mấy chương trình vặt đó bạn còn có thể làm gì nữa???? Bạn cũng nhìn ra việt software xem các chương trình hàng đầu, kế toán ,quản lý ( MISA ,ASPLUS, DỰ toán...rồi từ điển.. có cái nào dùng C++ ) hay toàn VB,C#.

3.Chúng ta đừng nên hối tiếc 1 ánh hào quang đã tắt, ko lẽ bạn mới là người khôn trên thế giới này chỉ bám vào C++ mà sống còn Microsoft cùng với hàng triệu coder khác dám đặt cược vào công nghệ .NET đều là kẻ ngu muội.

4.Công nghệ lập trình bây giờ đã thay đổi rất nhiều, microsoft đã phát minh ra .net để phản ánh sự thay đổi đó ,đã qua rồi những cài ngày mà coder phải hì hục code những công viêc lặt vặt..chỉ để tập trung vào bussiness logic.

5.Nếu bạn làm ở công ty phần mềm nào đó( có lẽ không phải đâu vì 1 lập trình viên chuyên nghiệp phải có tư duy mở và chẳng bao giờ hạn chế mình vào bất cứ 1 ngôn ngữ lập trình nào ) thì các công ty đối thủ sẽ rất mừng vì đơn giản để có đựoc 1 DEMO cho khách hàng, dùng c++ bạn sẽ mất hàng tháng để code và hàng năm để DEBUG, với Vb hay C# thì chỉ cần 1 /10 thời gian đó, kết cục tất yếu công ty bạn sẽ đuổi viêc bạn và phải thay đổi hoặc sẽ phá sản..

6.Nói thế là đủ, nhiều bài trả lời của các PRO phía trên cũng đã làm cho bạn thấy được vấn đề ( chẳng biết có thấy không nữa ).Nếu bạn không thấy thì tôi cũng đành chịu....đành phải tự nhủ : NGOÀI MÌNH RA SAO LẮM THẰNG NGU THẾ, ÔI C++ , ĐỒ CHẾT TIỆT


eXecutive

28-08-2007, 11:56

#############

#############

#############

#############


eXecutive

28-08-2007, 12:03

#############

#############

#############

#############


Xin lỗi vì mình nòi Linux là phần mền chỗ nào? Nếu có thì có lẽ do tôi xóa và viết lại có chữ lập trình phần mền nên nhầm đâu đó mà thôi!

-- Trong những nhận xét vừa qua, có lẽ là tôi đang nói chuyện với người lớn tuổi hơn tôi rất nhiều. Năm nay tôi cũng chỉ mới 20 tuổi, có thể đang tranh luận với tôi là những người đáng tuổi anh, chị hoặc cha mẹ tôi do đó nếu trong phát ngôn có gì thì thì xin bỏ qua! Và dĩ nhiên là diễn đàn mà! ai cũng có thể tranh luận. --

THỨ 1: MÌNH MUỐN KẾT THÚC VẤN ĐỀ VỀ DELPHI

- Mình thấy những người học DELPHI ở đây cho .NET là một chiêu bài của MS hoặc có thể so sánh .NET đơn giản chỉ là RAD của Delphi. Hoàn toàn sai lầm. Khi .NET ra đời thì cả thế giới không riêng gì MS nói đó là "môt sự thay đổi trong ngành điện toán". Mục tiêu .NET ra đời không phải để lập trình các ngôn ngữ như C# hay VB.NET mà là WEB SERVICES XML. Hỗ trợ kết nối tới các máy chủ phục vụ như MS SQL SERVER hay MS EXCHANGE,... Do đó nếu nói các ngôn ngữ như C++, C# hay VB.NET bị nhốt trong nhà từ .NET là sai lầm hoàn toàn mà nói chính xác hơn là ưu điểm. Hiện nay một LTV .NET làm việc tốt tại VN có thể đạt thu nhập trên 400USD là chuyện thường. - Do đó những ai xác định sự ra đời của .NET là chiêu bài của MS là những người lạc hậu không biết .NET là cái gì???

- Thực ra trong bài viết này mình không muốn so sánh C++ với Delphi bởi vì Delphi là một ngôn ngữ đang chết tại VN cũng như nhiều nước trên thế giới. tại sao như vậy tôi sẽ phân tích ở 2 vấn đề:

1. Ngồn nhân lực lập trình Tôi biết cách đây khoảng 5,6 năm thì ngành CNTT rất ít khi để ý tới C/C++. Lúc đó chúng ta đào tạo với ngôn ngữ PASCAL là chủ yếu. Anh trai tôi học cơ khí cũng được học Pascal, Chị tôi học Hóa học cũng được học Pascal nhưng chắc có lẽ là học Pascal để giải toán! Do đó những người mà biết Delphi thông thường đều là những người lớn tuổi. Nhưng trong những năm gần đây thì hầu hết các trường ĐH đều chuyển chương trình đào tạo C/C++. Một sinh viên khi bước vào ngành CNTT sẽ được học 2 môn: "Nhập môn lập trình C" và "Lập trình hướng đối tượng với C++". Sau khi học xong môn này SV có thể học bất cứ ngôn ngữ nào như C#, VB.NET hay Java... Và dần dần trong tương lai sẽ không còn lập trình viên Delphi tại VN nữa.

2. Thực tế - Có người nói là Delphi viết phần mềm nhiều hơn C++. Chỉ là nói mà "lời nói thì gió bay" chả có ý nghĩa gì. Chúng ta hãy xét những người khổng lồ trong CNTT. - MS: Khỏi cần giới thiệu nhiều. Visual Studio với các ngôn ngữ của nó đang là mũi nhọn chủ yếu của MS. - Microsystem SUN: Đối thủ thực sự của MS, nói tới SUN là phải nói tới Java. - Oracle: Được xếp là 1/3 nhà quản trị CSDL lớn nhất thế giới. Kết nối CSDL với Oracle chỉ có 2 con đường là .NET và J2EE (java). ...

do đó Delphi không phải là đối thủ của C++. Mà đối thủ của C++ chính là Java! Chỗ này bạn nhầm lẫn nặng rồi. Ko ai nói .Net chỉ là RAD của Delphi. Tôi nói thiết kế của C# mang phong cách của Delphi. nếu bạn biết rõ về sự ra đời của ngôn ngữ này thì bạn phải hiểu tại sao tôi lại đưa ra kết luận đó.

Delphi chưa hề "sống" đúng nghĩa ở VN nên ko thể nói nói nó đang "chết" trên đất VN. Hiện tại ở VN có rất ít cty tuyển Delphi, họ chỉ tuyển khi thực hiện các dự án cho nước ngoài, ví dụ như SSP hiện có 1 đội ngũ LTV Delphi. bên trong ETown vẫn còn 1 số cty tuyển Delphi, nhưng họ khá kín tiếng so với các đại gia như FPT hay FCG... Trên thế giới thì khác, Châu Âu vẫn đang chuộng Delphi. Borland vẫn ra đều đều các phiên bản Delphi với cái giá ko hề rẻ (Delphi 2007 giá những 7000$). Và ngay cả M$ cũng tham gia vào Delphi để đảm bảo khả năng làm việc với .Net của nó.

Bạn đưa ra M$, Sun và Oracle để so sánh làm gì? Những công ty đang nắm 1 công nghệ chủ đạo nào đó hiếm khi nào chọn công nghệ của đối thủ. Trong khi đ1o Delphi ko phải là 1 công nghệ, nó là 1 môi trường phát triển, đừng đem nó so sánh với các công nghệ như .Net hay java. Thậm chì với oracle, họ vẫn hỗ trợ Delphi. Và thật nực cười khi cho rằng kết nối Oracle chỉ có duy nhất 2 con đường .Net và j2ee. Các ngôn ngữ khác đều có thể kết nối với Oracle dễ dàng, thậm chí thư viện oci8 của PHP là do Oracle phát triển cung cấp cho cộng đồng.


THỨ 2: VẤN ĐỀ VIỆC LÀM VỚI C++ PROGRAMER MS khi tung ra các ngôn ngữ như C#, VB.NET họ nói gì? "Bạn hãy lập trình nó đi! Nó là sự kết hợp mềm dẻo của Visual Basic và sức mạnh của C++". Nói như vậy nhưng đằng sau lưng MS vẫn là C++ đơn giản bởi vì nguồn nhân lực chủ yếu của MS là các LTV C++. Không tin thì gọi điện hỏi BILLGATE thử ổng lập trình ngôn ngữ gì.

Khi mình quyết định đi lên với C++. Mình biết chắc là mình đang đi sai hướng với CNTT ở VN. Ở VN chúng ta chỉ cần các LTV như C#, VB.NET, ASP.NET, PHP, Java... Nhưng tôi vẫn không từ bỏ ý định đó. - C++/MFC mặc dù đã khá xưa so với nhiều người nhưng nó rất mạnh! - C++/CLI chỉ mới ra đời gần 2 năm, nó là một ngôn ngữ rất mới chưa hề đến VN. Và không ai dạy tôi C++/CLI mà đơn giản là tôi tự học. Nói C++/CLI có thể nhiều người không biết nó là gì? Nói nôn na nó là con lai giữa C# và C++ bởi vì nó là C# nhưng lại có 2 con trỏ.

Ngay bản thân tôi, với kiến thức C++/CLI bây giờ, nếu muốn chuyển sang lập trình C# thì tôi chỉ cần đúng 2 tuần là đủ. Với Java lập trình J2SE thì có thể tới 1 tháng. Bởi vì một người đã đã học C++ rồi thì có thể học bất cứ ngôn ngữ nào khác rất nhanh chóng ngoài dòng họ của Pascal và Delphi. Nhưng mình tin là sẽ có chỗ ở VN rất cần C++. Do đó chắc chắc một điều LTV C++ không bao giờ bị thất nghiệp.

Hiện tại có lẽ Bill Gate đã ko còn động tay đến code, nhưng từ xa xưa Basic là tác phẩm của Bill. Ở VN ko chỉ có mình bạn tiếp cận C++/CLI. Rất nhiều cty tuyển dụng LTV am hiểu VC++ với mức độ cao, CLI ko phải ngoại lệ. Và các LVT VC++ ko ai chỉ ôm mỗi C++, họ đều nắm trong tay ít nhất là 3 ngôn ngữ LT, bời vì họ biết có những công việc mà VC++ ko thể đáp ứng tốt bằng các công cụ khác. Rất nhiều LTV C++ nắm rất vững cả 2 nền tảng Java lẫn .net, đồng thời nắm luôn cả những công nghệ nguồn mở khác như PHP hay Python. Hiện nay rất hiếm LTV chuyên nghiệp nào chỉ biết mỗi 1 ngôn ngữ cả.

P/S: cái đầu tiên tôi tiếp xúc với lập trình ko phải là Pascal hay C mà là shell script của DOS - tập tin batch. Sau đó là được học Pascal và tự học C/C++, tiếp đến là VB, VC++ rồi mới đến lượt Delphi. Mãi đến sau này tôi mới tiếp cận Java và PHP. Để nắm cơ bản của 1 ngôn ngữ ko mất nhiều thời gian, chỉ vài tuần đến 1 tháng. và tôi tin rằng tất cả các LTV nếu am hiểu 1 ngôn ngữ, 1 công nghệ nào đó sẽ đều rất dễ dàng để tiếp cận và nắm bắt các ngôn ngữ, công nghệ khác trong 1 thời gian ngắn, bất kể nền tảng của họ là C/C++ hay Pascal.


To eXecutive : Bạn có biết Delphi phát triển nhanh đến mức nào kg ? Hãng Borland đã quyết định thành lập 1 cty con(Inprise) để KD Delphi, vậy mà chỉ sau vài năm cty con này đã đủ $ để mủa lại chính Borland. Nên nhớ là lúc đó tập đoàn Borland kg hề nhỏ .


meotrang7x

28-08-2007, 13:53

Nhưng trong những năm gần đây thì hầu hết các trường ĐH đều chuyển chương trình đào tạo C/C++. Một sinh viên khi bước vào ngành CNTT sẽ được học 2 môn: "Nhập môn lập trình C" và "Lập trình hướng đối tượng với C++". Sau khi học xong môn này SV có thể học bất cứ ngôn ngữ nào như C#, VB.NET hay Java... Và dần dần trong tương lai sẽ không còn lập trình viên Delphi tại VN nữa.

Bác ơi, em hồi đó học lập trình Pascal trước và sau đó em chuyển sang (nói là chuyển sang cũng không đúng, mà học để biết thêm, còn đụng chuyện thì coi thằng nào phù hợp xài thằng đó, không có thằng nào luôn phù hợp nhất trong mọi tình huống - nếu có thì mấy thằng khác ngủm hết rồi) học C/C++, Java, C#, Python, PHP, VB... hầu như rất là dễ dàng. Theo em thì học xong cách tư duy với một ngôn ngữ nào đó rồi thì việc chuyển sang các ngôn ngữ khác đều dễ dàng, không chỉ riêng gì C/C++.


meotrang7x

28-08-2007, 14:01

THỨ 2: VẤN ĐỀ VIỆC LÀM VỚI C++ PROGRAMER MS khi tung ra các ngôn ngữ như C#, VB.NET họ nói gì? "Bạn hãy lập trình nó đi! Nó là sự kết hợp mềm dẻo của Visual Basic và sức mạnh của C++". Nói như vậy nhưng đằng sau lưng MS vẫn là C++ đơn giản bởi vì nguồn nhân lực chủ yếu của MS là các LTV C++. Không tin thì gọi điện hỏi BILLGATE thử ổng lập trình ngôn ngữ gì. Khi mình quyết định đi lên với C++. Mình biết chắc là mình đang đi sai hướng với CNTT ở VN. Ở VN chúng ta chỉ cần các LTV như C#, VB.NET, ASP.NET, PHP, Java... Nhưng tôi vẫn không từ bỏ ý định đó. - C++/MFC mặc dù đã khá xưa so với nhiều người nhưng nó rất mạnh! - C++/CLI chỉ mới ra đời gần 2 năm, nó là một ngôn ngữ rất mới chưa hề đến VN. Và không ai dạy tôi C++/CLI mà đơn giản là tôi tự học. Nói C++/CLI có thể nhiều người không biết nó là gì? Nói nôn na nó là con lai giữa C# và C++ bởi vì nó là C# nhưng lại có 2 con trỏ.

Ngay bản thân tôi, với kiến thức C++/CLI bây giờ, nếu muốn chuyển sang lập trình C# thì tôi chỉ cần đúng 2 tuần là đủ. Với Java lập trình J2SE thì có thể tới 1 tháng. Bởi vì một người đã đã học C++ rồi thì có thể học bất cứ ngôn ngữ nào khác rất nhanh chóng ngoài dòng họ của Pascal và Delphi.Nhưng mình tin là sẽ có chỗ ở VN rất cần C++. Do đó chắc chắc một điều LTV C++ không bao giờ bị thất nghiệp.

-Bill Gates thì giờ không còn lập trình đâu bác (lập trình theo nghĩa là công việc chính, còn hobby thì ai biết ổng có lập trình hay không) -Thời gian mà bác dùng để học ngôn ngữ mới không quá dài nhưng cũng không quá ngắn, nói thiệt với bác C# em học syntax chỉ vài ngày (chỉ syntax thôi nhé), Python em học trong vòng 1 tuần, PHP thì học đủ để đọc code là 3 ngày, sau đó đi làm PHP luôn rồi vừa làm vừa học. Còn C/C++ thì em biết nhưng ít xài, khi nào đụng chuyện vẫn móc ra xài thôi. Em vẫn chẳng thấy là C/C++ giúp cho việc học ngôn ngữ khác nhanh như thế nào mà em chỉ thấy là biết một ngôn ngữ (bất kỳ ngôn ngữ nào) đều học được các ngôn ngữ khác nhanh chóng, như em học Pascal trước C/C++ đấy thôi.


Hôm nay mình khẳng định lại là “Tư duy lập trình của C++ mới là tư duy logic nhất, thiết thực nhất và rõ ràng nhất. Bởi vì tư duy C++ là nền tảng cho tất cả các ngôn ngữ sau này”

Tôi đưa ra khẳng định là C++ là vô địch và không có ngôn ngữ lập trình nào có thể so sánh được. Pro mới lập trình C++ và Pro không bao giờ đặt câu hỏi ngớ ngẫn học C++ để làm gì?

Hay lắm, tôi sẽ lưu lại những câu này của bạn làm trích dẫn.

Mọi người có thấy các câu này đáng ghi lại vào sử sách không? Rất đanh thép và rất hùng hồn. Từ ngữ như có lửa hừng hực ấy.

Ai mà không thấy vậy thì nhất định không phải là dân pro đâu ;)


Không hiểu tại sao mà Delphi không phát triển tại VN nhỉ? Cái thời mà Microsoft mới chỉ có Visual C++ và Basic 5.0 thì lập trình Delphi 4 là sướng nhất. Phát triển RAD cũng sướng mà lập trình hệ thống Windows cũng lẹ. Cái control toolbox của Delphi cho đến bi giờ Microsoft còn chôm đưa vào bộ Office 2007. Object Pascal chỉ có đơn kế thừa nhưng đơn giản, dễ hiểu, C# và Java cũng chỉ có đơn kế thừa. Nghe nói sau này kiến trúc sư trưởng của Delphi qua làm cho Microsoft để xây dựng C#.


- Thực ra trong bài viết này mình không muốn so sánh C++ với Delphi bởi vì Delphi là một ngôn ngữ đang chết tại VN cũng như nhiều nước trên thế giới. tại sao như vậy tôi sẽ phân tích ở 2 vấn đề:

1. Ngồn nhân lực lập trình Tôi biết cách đây khoảng 5,6 năm thì ngành CNTT rất ít khi để ý tới C/C++. Lúc đó chúng ta đào tạo với ngôn ngữ PASCAL là chủ yếu. Anh trai tôi học cơ khí cũng được học Pascal, Chị tôi học Hóa học cũng được học Pascal nhưng chắc có lẽ là học Pascal để giải toán! Do đó những người mà biết Delphi thông thường đều là những người lớn tuổi. Nhưng trong những năm gần đây thì hầu hết các trường ĐH đều chuyển chương trình đào tạo C/C++. Một sinh viên khi bước vào ngành CNTT sẽ được học 2 môn: "Nhập môn lập trình C" và "Lập trình hướng đối tượng với C++". Sau khi học xong môn này SV có thể học bất cứ ngôn ngữ nào như C#, VB.NET hay Java... Và dần dần trong tương lai sẽ không còn lập trình viên Delphi tại VN nữa.

2. Thực tế - Có người nói là Delphi viết phần mềm nhiều hơn C++. Chỉ là nói mà "lời nói thì gió bay" chả có ý nghĩa gì. Chúng ta hãy xét những người khổng lồ trong CNTT. - MS: Khỏi cần giới thiệu nhiều. Visual Studio với các ngôn ngữ của nó đang là mũi nhọn chủ yếu của MS. - Microsystem SUN: Đối thủ thực sự của MS, nói tới SUN là phải nói tới Java. - Oracle: Được xếp là 1/3 nhà quản trị CSDL lớn nhất thế giới. Kết nối CSDL với Oracle chỉ có 2 con đường là .NET và J2EE (java). ...

do đó Delphi không phải là đối thủ của C++. Mà đối thủ của C++ chính là Java!

Delphi là một công cụ lập trinh, không phải là một ngôn ngữ lập trình. Delphi sử dụng Object Pascal làm ngôn ngữ lập trình (có thay đổi ít nhiều). Do đó không thể so sánh Delphi và C++ được, có chăng bạn nên so sánh Delphi và Visual C. Sự thực thì nền tảng .NET không phải là phát minh của Ms. Đó là phát minh của hãng Borland - hãng tạo ra công cụ Delphi (dĩ nhiên là có tên khác, .NET là thương hiệu của Ms). Chính tác giả của Delphi và cũng là tác giả của công cụ lập trình huyền thoại Turbo Pascal hiện đang là tổng công trình sư .NET của Ms (Ms có cổ phần rất lớn tại Borland). Vấn đề này sẽ được đề cập sau! Ở Việt Nam, Delphi không được dùng phổ biến nhưng tại đông Âu, Braxin, Trung Quốc,... Delphi lại cực kỳ thịnh hành.


vansulich

28-08-2007, 21:58

Mình thấy VB,Pascal vẫn là cơ bản từ đó mình có thể học thêm bất kỳ ngôn ngữ nào mà không gặp mấy khó khăn. ông cha ta nói rồi mà đầu xuôi đuôi lọt mà :D


Bổ sung 1 chút: Anders Hejlsberg là kiến trúc sư của C#, đầu quân cho M$ sau 1 thời gian dài làm việc cho Borland, là tác giả của Turbo Pascal và kiến trúc sư trưởng của Delphi. Do vậy mới có cái gọi là thiết kế của C# mang phong cách của Delphi.


thuongshoo

29-08-2007, 19:10

xExcutive phải nói là học kỹ, học nhiều, so sánh rất hay. Làm gì thì làm chứ công nghệ thì phải đi đôi với tiền. Như bạn nói, C/C++ là tất cả . Nhưng với C/C++ là phải làm tất cả Chắc cũng dễ thấy, ở 1 số nhiệm vụ, project, làm bằng C/C++ thì 0 biết bao giờ mới có cơm ăn.

Cái .NET nói là mun-ti pờ-lát-phơm nhưng hiện tại hình như nó chỉ mới chạy trên Window đúng hôn ? Java mới thật sự là multiplatform nhe! Có điều, càng ngày tui càng 0 thích Java. Cài cái JDK, jre thì nó cài vô máy loạn xạ. Nào là 1 bản chính ở program files, nào là 1 bản admin..\..application\java , rồi tới common files\java.... Tốn đĩa trời ơi!


eXecutive

29-08-2007, 20:52

Chuyện vấn đề cách lập trình của C# giống Delphi hay không thì tôi không cần biết. Nhưng tôi biết C# có .NET và C# thông dụng hơn Delphi! Và đối với tôi thì Thực tế mới là cái quan trọng..

Quay lại về C++. Lập trình C++/MFC rất khó! có thể là cách lập trình của nó khó nhất trong các ngôn ngữ lập trình bởi vì cách lập trình của nó gần sát với hệ thống. Và có rất nhiều rất nhiều người bỏ cuộc giữa chừng với C++.

NGOÀI MÌNH RA SAO LẮM THẰNG NGU THẾ, ÔI C++ , ĐỒ CHẾT TIỆT

Một người chưa từng học C++ vẫn có thể học Visual Basic hay C# một cách bình thường vì VB hay C# có cách lập trình theo dạng Forms và có Hướng Đối Tượng cao hơn C++ chuẩn, nó giải quyết được sự rắc rối của như cách lập trình C++.

Nhưng khi học C++/MFC bạn sẽ hiểu được rất rõ cách hoạt động của Windows cũng như Linux đó là những Hàng đợi MSG, Xử lý MSG. Những cái này chắc chắn không ai biết khi lập trình C# hoặc các ngôn ngữ bậc cao. Đó là lý do mà tôi nói Tư duy C++ thiết thực nhất!

Bạn có thể so sánh phng cách nhảy của Michael Jackson với cách nhảy của các ca sĩ Việt Nam, nếu cho bạn 1 tấm vé để chọn 1 in 2 bạn sẽ xem ai nhảy! Dĩ nhiên một bước nhảy khó phải có cái gì đó khác với cách nhảy dễ, bình thường. Lập trình cũng vậy!

C++/MFC rất khó chơi nhưng những ai biết cách chơi với nó thì sẽ cảm thấy nó rất dễ thương và không rắc rối nhiều như mọi người nghĩ. Để xây dựng .NET MS phải có một thời gian dài phát triển các IDE như Visual Studio 5, Visual Studio 6,trong thời kỳ này là giai đoạn mà C++/MFC là công cụ chủ lực của MS cũng như là nhiều công ty phần mềm lớn trên thế giới. Và hiện nay phần mềm được viết MFC rất nhiều: MACROMEDIA FLASH, AUTODESK AUTOCAD, 3DSMAX, ABODE PHOTOSHOP, những phần mềm của MS thì khỏi nói rồi như WMP, Office... trò game Volamtruyenky mà VN mua gần 1 tỷ đổng để sửa từ tiếng TQ thành tiếng VN cũng phát triển từ C++/MFC và rất nhiều.

MFC8.0 cũng ra đời đi trong bộ Visual Studio 2005 hỗ trợ ngôn ngữ C++/CLI tương tác trên cả .NET và WIN32 cũ trước đây. Rõ ràng nó không thể thiếu được trong VS.


trietbkit

29-08-2007, 21:04

ý kiến của bạn về chuyện C++ là mạnh nhất thì tôi thấy là đúng thật đó. tuy nhiên, thử hỏi xem có mấy ai dám tự nhận mình là MASTER về C++ cả chứ. đơn giản là vì nó khó quá. còn .net thì lại mang đến sự dễ dàng cho người lập trình (tôi ko nói là nó mạnh hơn c++ à nghen). cho nên, bây giờ nếu ra ngoài mấy cty, người ta yêu cầu biết về vb.net hay c# nhiều hơn đó.


eXecutive

29-08-2007, 21:18

Trong toàn bộ Topic này mình chưa bao giờ tự cho mình là MASTER C++. Kiến thứ C++ là khổng lồ và có học cũng ko thể nào hết. Còn về việc làm thì người tai hỏi VB.NET hay C# thì mình thừa biết!

Tôi đọc một số bài viết có người nói là "ĐEM DEMO 3D lên chả chứng mình được gì?". Tại sao lại không. Nếu tôi cứ nói làm được game, làm được game... thì có ai tin không, bởi vì một số người nghĩ C++ chỉ là Borland C++ 3.0!

Việc VB hay C#, Delphi có được OpenGL hay DX chỉ là chuyện bình thường. Nhưng OpenGL và DX được viết dành riêng cho C++. Ngay trong GUILD hướng dẫn sử dụng của SILICON, hay MS cũng dùng ngôn ngữ C++.

Một số người vừa biết Delphi vưa biết C++ viết lại 1 thư viện giả lập (liên kết tới OpenGL32.dll và GLu32.dll) để Delphi có OpenGL chỉ là 1 chuyện nhỏ nhưng hỏi thật có thể lấy hết được các hàm của OpenGL không? Bởi vì ngay bên trong OpenGL hay DX vẫn còn có 1 ngôn ngữ nữa để làm việc trực tiếp với con CHIP đồ họa. Nói ra như vậy là đủ rồi! Và dĩ nhiên một chiếc xe nhật hay 1 Toyota sản xuất tại Nhật phải khác Toyota tại VN chứ.

Hơn nữa việc học với C#, C++ rất dễ dàng vì thông dụng hơn Delphi rất nhiều. Bây giờ mà ra hiệu sách Nguyễn Văn Cừ hay Nguyễn Thị Minh Khai tìm 1 cuốn về Delphi cũng thấy hiếm nữa.


Trong toàn bộ Topic này mình chưa bao giờ tự cho mình là MASTER C++. Kiến thứ C++ là khổng lồ và có học cũng ko thể nào hết. Còn về việc làm thì người tai hỏi VB.NET hay C# thì mình thừa biết!

Tôi đọc một số bài viết có người nói là "ĐEM DEMO 3D lên chả chứng mình được gì?". Tại sao lại không. Nếu tôi cứ nói làm được game, làm được game... thì có ai tin không, bởi vì một số người nghĩ C++ chỉ là Borland C++ 3.0!

Việc VB hay C#, Delphi có được OpenGL hay DX chỉ là chuyện bình thường. Nhưng OpenGL và DX được viết dành riêng cho C++. Ngay trong GUILD hướng dẫn sử dụng của SILICON, hay MS cũng dùng ngôn ngữ C++.

Một số người vừa biết Delphi vưa biết C++ viết lại 1 thư viện giả lập (liên kết tới OpenGL32.dll và GLu32.dll) để Delphi có OpenGL chỉ là 1 chuyện nhỏ nhưng hỏi thật có thể lấy hết được các hàm của OpenGL không? Bởi vì ngay bên trong OpenGL hay DX vẫn còn có 1 ngôn ngữ nữa để làm việc trực tiếp với con CHIP đồ họa. Nói ra như vậy là đủ rồi! Và dĩ nhiên một chiếc xe nhật hay 1 Toyota sản xuất tại Nhật phải khác Toyota tại VN chứ.

Hơn nữa việc học với C#, C++ rất dễ dàng vì thông dụng hơn Delphi rất nhiều. Bây giờ mà ra hiệu sách Nguyễn Văn Cừ hay Nguyễn Thị Minh Khai tìm 1 cuốn về Delphi cũng thấy hiếm nữa.

Cái này thì bạn nhầm. Khai báo lại DirectX trong Delphi ko phải là ngồi viết 1 DLL bằng VC++ rồi gọi bằng Delphi, chỉ đơn giản là khai báo prototype các hàm của DirectX trong 1 unit của Delphi, cũng tương tự như các file header C++ trong bộ DirectX SDK. OpenGL thì Borland đã cung cấp sẵn unit chứa các khai báo. Việc sử dụng DirectX bằng VC++ hay Delphi (một khi đã khai báo các hàm) hoàn toàn như nhau, với tốc độ như nhau. Và nếu dùng Borland C++ Builder thì ko cần phải khai báo lại mà có thể dùng trực tiếp DirectX SDK mà M$ đã viết ra cho VC++.

Viết các demo 3D mà sử dụng các thự viện đồ họa như DirectX hay openGL thì chả chứng minh được gì cả, vì công sức và kỹ thuật mà bạn bỏ ra trong đó ko có bao nhiêu. Trong khi đó, ngay ở trên nền DOS, tôi đã có thể viết được các demo hiệu ứng đồ họa và 3D bằng ASM và Pascal/C, hoàn toàn ko dùng đến các thư viện đồ họa có sẵn (muốn dùng cũng ko được). Làm về đồ họa thì cái quan trọng ko phải là bạn dùng thư viện gì, công cụ nào mà là bạn có nắm được các kiến thức về đồ họa hay ko thôi.

Còn tư duy C++ khi lập trình Windows mà bạn nói là cái gì kia chứ. Message loop à? Message Queue à? Kiến trúc Windows nó như thế thì khi lập trình Windows bắt buộc phải tuân theo như thế, chả riêng gì VC++. Ở đây thì ko có hướng đối tượng gì cả. Sau đó các thiết kế Form của VB, MFC của VC++, WinForm của .Net, VCL của Delphi/BCB ... mới hướng đối tượng hóa kiến trúc này, tạo ra các control và che dấu sự phức tạp của kiến trúc message để LTV có thể dễ dàng phát triển các ứng dụng Windows. Nếu phát triển 1 ứng dụng thuần Windows API (tức ko sử dụng các control có sẵn), hoặc khi lập trình để tạo các control ... thì LTV bắt buộc phải làm việc với kiến trúc message của Windows, bất kể họ dang dùng VB, VC++ hay Delphi. Một ví dụ tương tự là Thread. Thông thường người ta hay dùng Timer, nhưng đối với 1 số tác vụ phức tạp thì vẫn phải quay về kiến trúc Thread của Windows, phải dùng những hàm API về Thread mà Windows cung cấp, lúc này dùng C++ hay Delphi cũng như nhau.

C++ là môn ngôn ngữ cực mạnh, mạnh hơn cả Object Pascal. VC++ là 1 môi trường phát triển C++ cực mạnh, thế nhưng nó ko đủ để lấn át các môi trường khác. Và các ưu điểm mà bạn đưa ra ko đủ để chứng minh rằng cái C++/MFC và C++/CLI của bạn mạnh hơn các công cụ khác. Bạn đem ưu điểm của VC++ ra so với khuyết điểm của các ngôn ngữ khác (khả năng phát triển hệ thống khi so với VB, C#, khả năng được hỗ trợ, mức độ phổ biến khi so với Delphi...) mà ko hề thấy bạn kể đến các khuyết điểm cúa nó so với những thứ kia. Tổng hợp ưu điểm và nhược điểm thì VC++ là 1 công cụ rất mạnh, nhưng ko phải số 1, các công cụ khác vẫn có những ưu điểm mà VC++ ko có.

Lý lẽ bạn đưa ra để bảo vệ quan điểm rất hay, nhưng chưa đủ và vững để thuyết phục tất cả mọi người. Vì vậy tôi tin rằng sẽ vẫn còn có các reply phản bác ý kiến của bạn. ;) Thực tế là quan trọng đối với bạn nhưng thực tế ở VN khác với thực tế trên thế giới.

P/S: đã từ lâu lắm rồi tôi ko đọc sách TV nữa ;) Ở thời đại hiện tại thì ko biết có bao nhiêu người học lập trình bằng sách TV nhỉ?


.:Ninja:.

29-08-2007, 22:05

C++ mạnh vì có con trỏ.

Điểm bất cập của C++ là ở chổ biên dịch. Tui viết 1 chương trình ở VC khi cho qua DEVC thì không chạy được (chẳng hạn ở VC cho phép bạn khai báo void main () nhưng ở DEVC thì bắt bạn phải khai báo int main()). Đó là điểm mà C++ thua các ngôn ngữ khác (Java chẳng hạn)


Tôi nghĩ xExcutive chỉ nhìn thấy 1 khía cạnh của vấn đề. Rõ ràng C++/MFC là mạnh nhất nếu bạn chọn hướng lập trình hệ thống trên Windows. .NET được xây dựng không phải là để thiên về lập trình hệ thống mà hướng về ứng dụng thương mại. Sau đây tôi xin liệt kê một số ưu điểm của .NET:

  1. làm việc với C++ rất dễ xảy ra memory leaking nếu bạn quản lý con trỏ không kỹ => C# không gặp vấn đề này (loại trừ ngay từ lúc bạn lập trình).
  2. C++ không có khái niệm Reflection như .NET. Nền tảng COM/ActiveX cho phép C++ gọi chương trình ở mức binary nhưng rõ ràng COM/ActiveX quá phức tạp so với assembly của .NET
  3. Trong khi MFC chỉ là mô hình đối tượng một số khái niệm hệ thống của Windows, thì .NET Framework được Microsoft xây dựng bài bản, phản ánh những khái niệm mà người lập trình hiện nay quan tâm trong các ứng dụng thương mại. Ví dụ:
  4. Dataset: lập trình Cơ sở dữ liệu trên .NET sung sướng hơn trên Visual C++ nhiều lần.
  5. XML: xử lý dữ liệu XML dễ dàng
  6. Web: dùng Visual C++/MFC viết Web không biết bao giờ mới xong. còn ASP.NET : quá hay, chỉ khổ là vẫn không phổ biến như PHP.
  7. Web Service: chưa nghe nói dùng Visual C++ viết cái này bao giờ cả
  8. Ứng dụng COM+: trong .NET rất dễ dàng
  9. Viết ứng dụng client/server : Http Channel, Tcp Channel, .NET Remoting dễ hơn so với socket.

meotrang7x

29-08-2007, 23:26

xExcutive phải nói là học kỹ, học nhiều, so sánh rất hay. Làm gì thì làm chứ công nghệ thì phải đi đôi với tiền. Như bạn nói, C/C++ là tất cả . Nhưng với C/C++ là phải làm tất cả Chắc cũng dễ thấy, ở 1 số nhiệm vụ, project, làm bằng C/C++ thì 0 biết bao giờ mới có cơm ăn.

Cái .NET nói là mun-ti pờ-lát-phơm nhưng hiện tại hình như nó chỉ mới chạy trên Window đúng hôn ? Java mới thật sự là multiplatform nhe! Có điều, càng ngày tui càng 0 thích Java. Cài cái JDK, jre thì nó cài vô máy loạn xạ. Nào là 1 bản chính ở program files, nào là 1 bản admin..\..application\java , rồi tới common files\java.... Tốn đĩa trời ơi!

Không đúng, bạn search thông tin về Mono nhé.


meotrang7x

29-08-2007, 23:31

Nhưng khi học C++/MFC bạn sẽ hiểu được rất rõ cách hoạt động của Windows cũng như Linux đó là những Hàng đợi MSG, Xử lý MSG. Những cái này chắc chắn không ai biết khi lập trình C# hoặc các ngôn ngữ bậc cao. Đó là lý do mà tôi nói Tư duy C++ thiết thực nhất!

-Sao lại không có bác? Bác có thể dùng Delphi để xử lý Message Loop chẳng khác gì C++ cả. À, mà thật ra cái Message Loop này là của Win32 API, thuần C, chứ có phải của C++ đâu bác?

-Mình vẫn giữ nguyên ý kiến là tư duy lập trình tốt nhất là tư duy độc lập với ngôn ngữ lập trình. Còn nếu phải chọn thì mình chọn Java, rất trong sáng và class library được design rất elegant.


nguyentuan2

29-08-2007, 23:33

Điểm bất cập của C++ là ở chổ biên dịch. Tui viết 1 chương trình ở VC khi cho qua DEVC thì không chạy được (chẳng hạn ở VC cho phép bạn khai báo void main () nhưng ở DEVC thì bắt bạn phải khai báo int main()). Đó là điểm mà C++ thua các ngôn ngữ khác (Java chẳng hạn)

Ặc, đây không phải là điểm yếu của C++. Vì C++ đã rất lâu đời cho nên mới phát triển ra nhiều phiên bản -tức là trình biên dịch-khác nhau, như một số trình dịch phổ biến: VC++, gcc, cc, suncc. Các phiên bản hầu như giống nhau về cú pháp, nhưng có thể khác nhau một chút về cách xử lý cú pháp.

Ví dụ như việc khởi tạo giá trị ban đầu cho biến integer trong các trình biên dịch có thể không giống nhau, ví dụ như việc tăng biến đếm trong vòng for có thể được thực hiện tự động lúc bắt đầu vòng for hoặc cuối vòng for,.. ví dụ như phát biểu i++ hay i có thể tạo ra performance khác nhau trong các trình biên dịch khác nhau Đó là đặc điểm của ngôn ngữ C chứ không phải là điểm yếu

Còn java Mới chỉ có Sun phát triển trình dịch và máy ảo java (cho qua trình dịch VJ của MS), cho nên làm gì có chuyện không nhất quán. Nếu java phát triển đến khi có một hãng khác xây dựng một trình dịch khác cho java, thì cũng sẽ xảy ra chuyện tương tự như C++


nguyentuan2

29-08-2007, 23:44

Không biết trong suy nghĩ của mọi người thì từ "mạnh hơn" có nghĩa là gì Nếu định nghĩa mạnh là sự mềm dẻo, uyển chuyển hay dễ dàng tương tác với hệ thống thì C++ rất mạnh hơn C#, Java hay Delphi

Còn nếu định nghĩa mạnh là code ngắn gọn, ít khả năng sai, cú pháp trong sáng thì nhà vô địch đích thực là C# và Java


nguyen.the.vinh

29-08-2007, 23:48

Tôi cũng đồng ý rằng C++ là ngôn ngữ rất mạnh tuy nhiên với mỗi việc thì ta cần tìm công cụ phù hợp để giải quyết vấn đề. Như khi đi câu cá, ta cũng cần tìm chỗ nào có cá để mà câu ngoài ra với mỗi loại cá thì có loại cần câu phù hợp, ta không thể dùng cần câu cá chình để ra ao hay mương để câu cá rô được. Ở đây cũng vậy, viết keylogger bằng C# thì chả ra sao và bây giờ mà viết chương trình quản lý thông tin mà dùng C++ thì cũng không tốt.


.:Ninja:.

29-08-2007, 23:50

Đặc điểm đó chính là điểm yếu. Vì nó không nhất quán nên gây khó khăn trong lúc lập trình. Khó khăn sẽ càng lớn nếu bạn làm các project lớn.


nguyen.the.vinh

29-08-2007, 23:51

C++ mạnh vì có con trỏ.

Điểm bất cập của C++ là ở chổ biên dịch. Tui viết 1 chương trình ở VC khi cho qua DEVC thì không chạy được (chẳng hạn ở VC cho phép bạn khai báo void main () nhưng ở DEVC thì bắt bạn phải khai báo int main()). Đó là điểm mà C++ thua các ngôn ngữ khác (Java chẳng hạn)

Lạc đề quá, chả liên quan gì. Làm gì có project nào có thể dịch tốt trên tất cả các compiler mà không cần sửa một dòng code nào được. Chắc chỉ có Hello World :D


C++ khó học bỏ xừ. Code nhìn muốn hoa mắt. Nếu học 1 cái bên C# mất 1 giờ thì bên C++ có khi mò cả ngày cũng chưa ra. Trong .Net mọi thứ được chia theo namespace nên rất dễ tra cứu, hàm có chú thích rõ ràng, C++ nếu chưa học qua thì bó tay chả biết nó viết cái quái gì nữa. C++ có thể sử dụng tất cả các lớp trong .Net nhưng code nhìn không đẹp tí nào. Cái mà tôi thích nhất ở C# là sự rõ ràng, trong sáng vì vậy nó dễ viết, dễ debug. Tôi nghĩ nếu C++ thay đổi lại cách code, thay các thư viện thành namespace, đừng dùng quá nhiều tên biến, tên hằng, các chữ viết tắt thì cũng sẽ được nhiều người ưa thích thôi. Còn những thứ như dataset, xml, webservice, web chẳng qua là người ta muốn làm hay không thôi, M$ cũng có thể làm trên C++ nếu họ muốn, nhưng mà hầu như họ chẳng mấy quan tâm đến C++ MFC nữa rồi. Về khả năng, C# hầu như có thể làm được mọi thứ, trừ nhân hệ điều hành và driver phần cứng ra. Về tốc độ, C# bỏ xa C++ nếu không chạy với CLR. Ngay cả lợi thế chạy không cần cài Framework của C++ sắp không còn, khi Vista hỗ trợ luôn .Net ver 2 và 3.


Còn java Mới chỉ có Sun phát triển trình dịch và máy ảo java (cho qua trình dịch VJ của MS), cho nên làm gì có chuyện không nhất quán. Nếu java phát triển đến khi có một hãng khác xây dựng một trình dịch khác cho java, thì cũng sẽ xảy ra chuyện tương tự như C++ Điều này thực tế đã xảy ra. JVM của M$ ngày xưa có khác so với JVM của Sun, dẫn đến Java theo kiểu M$ sẽ ko thể chạy được trên các OS khác. Điều này đã dẫn đến chuyện kiện cáo lôi thôi giữa Sun và M$.


nokichuong

29-08-2007, 23:59

......."Tùy cơ ứng biến"......... "Lấy vô chiêu thắng hữu chiêu" Khi đạt đến cảnh giới này rồi thì ngôn ngữ nào cũng được khà khà....lol


Lạc đề quá, chả liên quan gì. Làm gì có project nào có thể dịch tốt trên tất cả các compiler mà không cần sửa một dòng code nào được. Chắc chỉ có Hello World :D

Một số project opensource cross-plaform có thể dịch tốt trên khá nhiều compiler, điển hình như Mozilla, Firefox, Thunderbird... có thể dịch tốt trên VC++, BCB, gcc++, dev-c... Code thì ko cần sửa nhưgn file quản lý project thì đương nhiên phải sửa rồi.


nguyen.the.vinh

30-08-2007, 00:08

Một số project opensource cross-plaform có thể dịch tốt trên khá nhiều compiler, điển hình như Mozilla, Firefox, Thunderbird... có thể dịch tốt trên VC++, BCB, gcc++, dev-c... Code thì ko cần sửa nhưgn file quản lý project thì đương nhiên phải sửa rồi.

Dịch tốt thì rõ rồi nhưng chắc phải sửa code cho phù hợp, không nhiều thì ít _


nguyentuan2

30-08-2007, 00:16

Bản chất là vẫn phải thay code, nhưng trong khi lập trình người ta đã cover nhiều trường hợp vào chương trình cho nên ta thấy nó vẫn có thể được dịch trơn tru với nhiều trình dịch

ví dụ như trên Windows với VC có phát biểu procA nhưng trên Linux với gcc không có phát biểu procA mà tương đương với nó là phát biểu procB như vậy thì thay vì phải sửa lại code tạo ra phiên bản khác của cùng project thì người ta viết như thế này

if _COMPILER==_VC

procA

elif _COMPILER==_GCC

procB

else

error unknown compiler

end


.:Ninja:.

30-08-2007, 00:20

Dịch tốt thì rõ rồi nhưng chắc phải sửa code cho phù hợp, không nhiều thì ít _

Ặc

Bạn đã làm 1 project lớn chưa?

Tôi nói chả có j là ko ăn nhập cả? Có lẽ bạn nên đọc lại.

Tui làm trên Java ko hề sửa đổi dù chỉ 1 dòng code.

Nếu là C++ bạn sẽ phải thay đổi code cho phù hợp.


Ặc

Bạn đã làm 1 project lớn chưa?

Tôi nói chả có j là ko ăn nhập cả? Có lẽ bạn nên đọc lại.

Tui làm trên Java ko hề sửa đổi dù chỉ 1 dòng code.

Nếu là C++ bạn sẽ phải thay đổi code cho phù hợp.

Làm EJB thì biết bạn à ;)


nguyen.the.vinh

30-08-2007, 00:26

Tôi thì chả biết project cỡ thế nào là lớn cả nên cũng có thể coi là chưa làm project lớn nào. Tôi nói bạn lạc đề bởi trong khi ở đây bàn chủ yếu về khả năng và sự thuận tiện khi sử dụng một ngôn ngữ vào một vấn đề cụ thể thì bạn lại đi vào quá chi tiết như kiểu khai báo hàm main, cái mà hoàn toàn có thể khắc phục được một cách dễ dàng.


nguyen.the.vinh

30-08-2007, 00:30

Ngoài luồng chút: sao cái nick này mình thay đổi chữ ký thì chỉ những bài viết sau đó mới có tác dụng trong khi cái nick khác thì không thế nhỉ. Lạ quá!


eXecutive

30-08-2007, 14:12

Tôi cũng ngoài lề một xíu. Xin kể một câu chuyện cho bớt căng thẳng: Khi Liên Hợp Quốc ngồi họp và nói chuyện. Một người phát biểu:

- Trong các dân tộc trên thế giới tui nể nhất là người NHẬT. Người nhật rất bảo thủ và rất lạnh lùng. Sau chiến tranh thế giới thứ 2, từ một nước bại trận nhưng người Nhật với bản lĩnh của mình đã xây dựng lên một đất nước như ngày nay, giàu và là nước có nền kinh tế thứ 2 trên thế giới. Và người Nhật có một phong cách làm việc là "Không nói mà làm!".

- Một người cãi lại. Tui chỉ nể Trung Quốc. Nhật đâu có phóng được tên lửa, TQ là nước thứ 3 thành công ở lĩnh vực này. Người TQ nói là làm. Nhật ra xe nào thì TQ có hàng nhái như vậy và hẵn là Nhật rất sợ Trung Quốc.

- Chuyện nhỏ àh. Tui còn biết một dân tộc mà ai cũng sợ, Việt Nam đó "Nói một đường nhưng làm một nẻo".


eXecutive

30-08-2007, 14:19

  1. làm việc với C++ rất dễ xảy ra memory leaking nếu bạn quản lý con trỏ không kỹ => C# không gặp vấn đề này (loại trừ ngay từ lúc bạn lập trình).

Memory Leaking với C++ ra chuyện thường. Với C++ khi bạn khai báo new thì bắc buộc phải delete cái này ai học C++ cũng phải biết.

  1. C++ không có khái niệm Reflection như .NET. Nền tảng COM/ActiveX cho phép C++ gọi chương trình ở mức binary nhưng rõ ràng COM/ActiveX quá phức tạp so với assembly của .NET
  2. Trong khi MFC chỉ là mô hình đối tượng một số khái niệm hệ thống của Windows, thì .NET Framework được Microsoft xây dựng bài bản, phản ánh những khái niệm mà người lập trình hiện nay quan tâm trong các ứng dụng thương mại. Ví dụ:
  3. Dataset: lập trình Cơ sở dữ liệu trên .NET sung sướng hơn trên Visual C++ nhiều lần.
  4. XML: xử lý dữ liệu XML dễ dàng
  5. Web: dùng Visual C++/MFC viết Web không biết bao giờ mới xong. còn ASP.NET : quá hay, chỉ khổ là vẫn không phổ biến như PHP.
  6. Web Service: chưa nghe nói dùng Visual C++ viết cái này bao giờ cả
  7. Ứng dụng COM+: trong .NET rất dễ dàng
  8. Viết ứng dụng client/server : Http Channel, Tcp Channel, .NET Remoting dễ hơn so với socket.

Bạn cũng là một trong số nhưng người không biết C++ có thể lập trình trên .NET . Cài VS2005 lên, chọn new Project xem Web Service có hay không? C++ chỉ không thể lập trình được ASP.NET như C# hay VB mà thôi!


eXecutive

30-08-2007, 14:29

Viết các demo 3D mà sử dụng các thự viện đồ họa như DirectX hay openGL thì chả chứng minh được gì cả, vì công sức và kỹ thuật mà bạn bỏ ra trong đó ko có bao nhiêu. Trong khi đó, ngay ở trên nền DOS, tôi đã có thể viết được các demo hiệu ứng đồ họa và 3D bằng ASM và Pascal/C, hoàn toàn ko dùng đến các thư viện đồ họa có sẵn (muốn dùng cũng ko được). Làm về đồ họa thì cái quan trọng ko phải là bạn dùng thư viện gì, công cụ nào mà là bạn có nắm được các kiến thức về đồ họa hay ko thôi.

Mình không hề nói Delphi phải lập trình lại toàn bộ thư viện OpenGL và DX mà nói là Liên kết dưa theo các prototype của C++ nhưng chắc chắc không thể nào viết lại hết các prototype chuẩn của OpenGL hay DX.

Bạn nói mình Post demo chả ý nghĩa gì? Vậy bạn hãy POST DEMO 3D giống của mình bằng PASCAL lên cho mình xem.

Mình hoàn toàn có thể post cho bạn 1 project mà mình làm tự tương tự 3DS MAX với hỗ trợ 4 OpenGL Engine trên 1 của sổ. Mình viết nó mục tiêu là để tự lập thiết kế các MODEL 3D nhưng vì chưa hoàn thiện nên mình không muốn SHOW ra mà thôi.

Hãy làm đi nếu Pascal khi cho làm được chuyển đó. --------

Có người cho rằng lập trình C++ là phải làm tất cả. Vớ vẫn! Có lẽ bạn cũng chỉ biết C++ qua BC3.1 hay cao lắm là console mới nói như vậy.

Tại sao lại có C++/MFC. MFC là gì?

Với C++/CLI khỉ chẳng cần phải làm vì nó chính là .NET.


Thôi tui không cãi nữa, dùng ngôn ngữ gì cũng được, ai kiếm được nhiều tiền hơn hoặc giúp người khác kiếm được nhiều tiền hơn thì ngôn ngữ đó là số 1.


Bạn eX bảo vệ C++ hăng quá. Tôi vốn ghét lập trình nên ko dám có ý kiến gì về các ngôn ngữ, nhưng đọc bài này lại nhớ lại 1 chuyện về việc kết hợp các ngôn ngữ.

Cách đây nhiều năm tôi có quen 1 nhóm 4 LTV, trưởng nhóm là 1 bác chuyên C/C++ (và 1 vài ngôn ngữ khác) (bác này nổi tiếng là chuyên gõ code = notepad, cho dù lúc đó đã có VS), 1 bác chuyên VB (xuất thân dân Business), 1 bác chuyên Java (xuất thân dân IT), 1 bác nữa cũng chuyên VB/Delphi(xuất thân dân Xây Dựng). Mỗi khi có dự án, bác trưởng nhóm thường họp 3 bác kia và phân tích các module, sau đó bác nào thấy module nào dễ với chuyên môn của mình thì xách về làm. Bác trưởng nhóm sẽ chịu trách nhiệm cố vấn khi mấy bác kia gặp vấn đề, các bác kia cũng tư vấn lẫn nhau. Tôi ko biết họ làm thế nào để các module viết = ngôn ngữ khác nhau lại có thể chạy với nhau, nhưng các chương trình chạy rất tốt, một vài phần mềm chuyên dụng của họ đc bán với giá cao hơn cả Delphi 2007. Sau một thời gian thì dự án nhiều, lại ko tuyển được người, nên mỗi bác lãnh 1 dự án. Nhưng lúc này mỗi bác đã gần như trở thành loại môn-gì-cũng-chơi ( theo như họ tự gọi thì là 7-môn-phối-hợp ) chứ ko còn là chuyên về 1 thứ nữa. Module nào thấy viết = cái gì dễ thì dùng ngôn ngữ đó, nếu bí quá mới phải hỏi lẫn nhau.

Họ hợp tác với nhau được chừng 1.5 năm thì nhóm đó tách ra, mỗi bác trở thành trưởng nhóm của 1 nhóm khác và đều rất thành công. Tôi nghĩ rằng họ thực sự là dân chuyên nghiệp, cho dù có ai đó không siêu về C/C++, vì họ biết cách kết hợp điểm mạnh của các ngôn ngữ với nhau. Cũng giống như 1 cầu thủ bóng đá, cần phải biết nhiều kiểu ghi bàn để biết thời điểm nào thì dùng cách nào (kể cả nhờ Chúa)


Beach_Long

31-08-2007, 14:01

Tôi nhớ khi còn đi học, thầy tui dạy rằng : ngôn ngữ nào không quan trọng, quan trọng ở người sử dụng ngôn ngữ đó như thế nào. với công cụ thô sơ + tay nghề cao, người ta vẫn có thể tạo ra những sản phẩm đẹp; công cụ hiện đại + tay nghề thấp, thì sản phẩm không thể đẹp đựợc.


Mình không hề nói Delphi phải lập trình lại toàn bộ thư viện OpenGL và DX mà nói là Liên kết dưa theo các prototype của C++ nhưng chắc chắc không thể nào viết lại hết các prototype chuẩn của OpenGL hay DX. Borland đã cung cấp sẵn khai báo API của OpenGL, đủ hay ko thì tôi ko thể quản hết, nhưng tôi tin là chẳng có lý do gì để có thiếu sót so với các API của OpenGL đã được công bố. Đối với DirectX thì hồi DirectX 7 đã có 1 dự án nguồn mở thực hiện việc khai báo lại tất cả các API được công bố trong DirectX 7 SDK. Tôi ko hiểu từ "liên kết" mà bạn đề cập ở đây có ý nghĩa gì, vì VC++ khi viết ứng dụng dùng DirectX thì nó vẫn phải liên kết với các DLL của DirectX, chỉ khác so với Delphi là các hàm trong các DLL này đã được M$ cung cấp sẵn trong DX SDK, giống như là M$ đã cung cấp sẵn khai báo các API của Windows kernel.

Bạn nói mình Post demo chả ý nghĩa gì? Vậy bạn hãy POST DEMO 3D giống của mình bằng PASCAL lên cho mình xem.

Mình hoàn toàn có thể post cho bạn 1 project mà mình làm tự tương tự 3DS MAX với hỗ trợ 4 OpenGL Engine trên 1 của sổ. Mình viết nó mục tiêu là để tự lập thiết kế các MODEL 3D nhưng vì chưa hoàn thiện nên mình không muốn SHOW ra mà thôi.

Hãy làm đi nếu Pascal khi cho làm được chuyển đó. --------

Cái này thì bạn thực sự gây khó cho tôi ;) Đã ko dùng đến Pascal gần 5 năm, ko đụng đến Delphi gần 3 năm, bảo tôi kiếm chương trình viết bằng Delphi thì họa chăng còn file setup là cùng huống hồ code Pascal ;) Nhưng tôi nhớ ko lầm thì ở trong box Pascal/Delphi có 1 số demo về đồ họa bằng Pascal, chủ yếu là vẽ lá cờ chuyển động theo sóng sin trong không gian. Và tôi nhớ chắc chắn là có vài topic bàn về quyển sách "Demo và lập trình đồ họa" của KS Dương Thiên Tứ, quyển này chuyên về đồ họa 2D, 3D, kỹ xảo, hiệu ứng bằng Pascal+ASM, code rất ngắn nhưng hiệu ứng đạt đuợc cứ như là dùng thư viện OpenGL trên nền Windows. Hơn nữa, ở đây tôi ko hề so sánh khả năng đồ họa của Pascal với OpenGL/DirectX - một việc làm ngu xuẩn. Tôi chỉ nói rằng viết 1 vài demo bằng cách gọi các hàm của DirectX chả là cái gì trong thế giới lập trình đồ họa cả, nếu bạn có học qua môn Đồ họa máy tính, đặc biệt là lý thuyết về đồ họa 3D thì bạn hẳn bạn sẽ hiểu tại sao tôi lại phát biểu như thế. Chương trình vẽ 1 cái ấm nước 3D được đổ bóng, phủ vật liệu plasma... là dạng kinh điển của LT đồ họa 3D, đã xuất hiện từ thời kỳ DOS với ngôn ngữ ASM với kích thước chương trình siêu nhỏ. Cái code C++ của bạn có thể dễ dàng chuyển thành VB, Delphi... mà ko cần phải tốn nhiều công sức, đơn giản vì bạn gọi các API của DirectX, là thứ đã được công bố trong DirectX SDK.


Mình không hề nói Delphi phải lập trình lại toàn bộ thư viện OpenGL và DX mà nói là Liên kết dưa theo các prototype của C++ nhưng chắc chắc không thể nào viết lại hết các prototype chuẩn của OpenGL hay DX.

Bạn nói mình Post demo chả ý nghĩa gì? Vậy bạn hãy POST DEMO 3D giống của mình bằng PASCAL lên cho mình xem.

Mình hoàn toàn có thể post cho bạn 1 project mà mình làm tự tương tự 3DS MAX với hỗ trợ 4 OpenGL Engine trên 1 của sổ. Mình viết nó mục tiêu là để tự lập thiết kế các MODEL 3D nhưng vì chưa hoàn thiện nên mình không muốn SHOW ra mà thôi.

Hãy làm đi nếu Pascal khi cho làm được chuyển đó. -------- Bạn này trẻ con quá, gặp cái gì hay cứ cho là nhất mà không buồn để ý tới thứ gì khác. Về bản chất các API của DirectX được đóng gói dưới dạng COM để có thể gọi từ bất kỳ ngôn ngữ lập trình nào. Việc sử dụng các thư viện 3D trong delphi không khác mấy so với VC++. Tôi không chuyên về lập trình games/3D nên không đưa ra ví dụ cho bạn được. Tuy nhiên bạn có thể tham khảo một số cuốn sách: http://www.amazon.com/Delphi-Graphics-Game-Programming-Exposed/dp/1556226373 và các bài viết: http://delphi.about.com/od/gameprogramming/Game_Programming.htm

Bạn khen và bảo vệ ngôn ngữ lập trình yêu thích của bạn là C++, tuy nhiên bạn chưa đưa ra đủ lý lẽ thuyết phục mọi người về điểm mạnh của ngôn ngữ này. Phản bác của mọi người giúp bạn có cái nhìn tổng thể hơn, khái quát hơn về các công cụ lập trình khác nhau đó :)

Thân.


meotrang7x

01-09-2007, 10:04

Tôi cũng ngoài lề một xíu. Xin kể một câu chuyện cho bớt căng thẳng: Khi Liên Hợp Quốc ngồi họp và nói chuyện. Một người phát biểu:

- Trong các dân tộc trên thế giới tui nể nhất là người NHẬT. Người nhật rất bảo thủ và rất lạnh lùng. Sau chiến tranh thế giới thứ 2, từ một nước bại trận nhưng người Nhật với bản lĩnh của mình đã xây dựng lên một đất nước như ngày nay, giàu và là nước có nền kinh tế thứ 2 trên thế giới. Và người Nhật có một phong cách làm việc là "Không nói mà làm!".

- Một người cãi lại. Tui chỉ nể Trung Quốc. Nhật đâu có phóng được tên lửa, TQ là nước thứ 3 thành công ở lĩnh vực này. Người TQ nói là làm. Nhật ra xe nào thì TQ có hàng nhái như vậy và hẵn là Nhật rất sợ Trung Quốc.

- Chuyện nhỏ àh. Tui còn biết một dân tộc mà ai cũng sợ, Việt Nam đó "Nói một đường nhưng làm một nẻo".

Phải chăng ý bác là mặc dù bác đang ra sức bảo vệ C++ nhưng trong thâm tâm của bác thì xem C++ như là thứ... bỏ đi? ;)


eXecutive

01-09-2007, 22:28

Bạn này trẻ con quá, gặp cái gì hay cứ cho là nhất mà không buồn để ý tới thứ gì khác. Về bản chất các API của DirectX được đóng gói dưới dạng COM để có thể gọi từ bất kỳ ngôn ngữ lập trình nào. Việc sử dụng các thư viện 3D trong delphi không khác mấy so với VC++. Tôi không chuyên về lập trình games/3D nên không đưa ra ví dụ cho bạn được. Tuy nhiên bạn có thể tham khảo một số cuốn sách: http://www.amazon.com/Delphi-Graphics-Game-Programming-Exposed/dp/1556226373 và các bài viết: http://delphi.about.com/od/gameprogramming/Game_Programming.htm

Bạn khen và bảo vệ ngôn ngữ lập trình yêu thích của bạn là C++, tuy nhiên bạn chưa đưa ra đủ lý lẽ thuyết phục mọi người về điểm mạnh của ngôn ngữ này. Phản bác của mọi người giúp bạn có cái nhìn tổng thể hơn, khái quát hơn về các công cụ lập trình khác nhau đó :)

Thân.

Đừng gọi tôi là trẻ con bởi vì khi đã gọi tôi là trẻ con thì bạn phải coi thử bạn đủ lớn hơn tôi chưa, bạn cũng chỉ là con nít mà thôi!

Tôi chả cần nói nhiều làm gì nữa. Bạn nói tôi không đủ lý lẽ để thuyết phục điểm mạnh của C++ nhưng cũng chẳng có ai trong topic này đưa ra lý thuyết để thuyết phục tôi để tôi. Thậm chí còn phân tích từng câu nói, bắt bẻ từng lỗi sai như "X WINDOWS" vơi "X-WINDOWS" tuy nhiên lại không biết 2 cái này là 1. Nếu cho tôi là trẻ con mà chấp như vậy sao.

Topic nên close ở đây là tốt nhất!

Tôi chỉ nói C++ làm được tất cả Dĩ nhiên việc học ngôn ngữ nào là do chính các bạn lựa chọn.


ohyesssvn

01-09-2007, 22:32

Tôi chỉ nói C++ làm được tất cả.

E dè phát biểu, C++ ko viết được boot virus.


Tôi chả cần nói nhiều làm gì nữa. Bạn nói tôi không đủ lý lẽ để thuyết phục điểm mạnh của C++ nhưng cũng chẳng có ai trong topic này đưa ra lý thuyết để thuyết phục tôi để tôi. Thậm chí còn phân tích từng câu nói, bắt bẻ từng lỗi sai như "X WINDOWS" vơi "X-WINDOWS" tuy nhiên lại không biết 2 cái này là 1. Nếu cho tôi là trẻ con mà chấp như vậy sao.

Tôi bắt bẻ đấy, nhưng bạn nên xem kỹ tôi bắt bẻ chỗ nào chứ nhỉ ;) Bạn dùng X WINDOWS, tôi bắt bẻ lại là X-WINDOW nhé, nhìn kỹ xem có khác hay ko nhé lol Giống nhau chắc sẽ có Microsoft Window quá lol

Các lý lẽ bạn đưa ra nhằm chứng minh C++ vượt lên tất cả. Mọi người đều đã đưa ra các ví dụ cho thấy các tính năng mà bạn đưa ra các công cụ khác đều vẫn làm tốt, thậm chí đưa ra các tính năng mà VC++ ko đáp ứng tốt như các công cụ khác, thiết nghĩ nhiêu đó cũng đủ chứ nhỉ. ;)


Ngay bản thân tôi có thể viết JavaScript hay ActionScript(Flash) mà chưa từng học qua ngôn ngữ Java, nói ra thì sợ bạn nối tôi nỗ nhưng không lẽ tôi post code lên đê chứng minh.

Java có liên quan gì ở đây?


Bây giờ bạn hãy cài Visual C++ Express 2005. Chỉ yêu cầu đơn giản là xuất ra chữ "Hello". Mình dám chắc bạn không thể làm được với printf hay cout. trong khi Visual Studio 2008 đang sắp ra đời rồi.

Với Python thì bạn chỉ cần MỘT câu:

print "Hello"


ngocquang19877

02-09-2007, 00:06

giờ mới phát hiện ra cái topic củ chuối này lol.


meotrang7x

02-09-2007, 01:19

Tôi chỉ nói C++ làm được tất cả Dĩ nhiên việc học ngôn ngữ nào là do chính các bạn lựa chọn.

Tôi thì nói Assembly làm được tất cả, dĩ nhiên do bạn chọn thôi ;)


meotrang7x

02-09-2007, 01:20

giờ mới phát hiện ra cái topic củ chuối này lol.

Bác này vô phát biểu một câu củ khoai lang thiệt.


Bác này vô phát biểu một câu củ khoai lang thiệt. Phát biểu đúng đấy chứ ;)


tien bac

02-09-2007, 09:56

Lại topic đi so sánh ngôn ngữ nữa. Mệt quá đi mất, đọc 3 pages đầu có bác còn bảo javascript hơi khác java gì gì đó, javascript và java khác nhau hoàn toàn, không hề liên quan đến nhau! Javascript nó thực ra là ngôn ngữ object based không như java! Nên đừng nói là java và javascript giống nhau hay na ná nhé. Còn C++ theo quan điểm tôi chỉ xài nó khi ứng dụng bạn có nhiều chức năng thao tác trực tiếp xuống hệ thống. Tất nhiên là các thao tác khác như lập trình game hay CSDL hay bất kì mục đích gì thì nó đều làm được, nhưng không phải vì thế mà lúc nào cũng chon C++. Đến lúc này, thường người ta sẽ nghĩ ngay tới việc triển khai code trên ngôn ngữ nào thích hợp nhất. Chỉ cần ví dụ đơn giản như là chỉ hiển thị mấy dữ liệu tĩnh đi dùng asp, php ! Liệu có ngớ ngẩn ko! Hay như là lập trình ứng dụng quản lý hàng hóa ai chọn C++ ko ? Hay làm ứng dụng từ điển ai dùng .NET ko ? Mỗi cái có cái mạnh riêng nên đừng đi so sánh nữa lol


meotrang7x

02-09-2007, 10:37

Phát biểu đúng đấy chứ ;)

Chuối đúng hay khoai lang đúng hả bác? ;)


Chuối đúng hay khoai lang đúng hả bác? ;)

Cả 2 đều đúng lol lol


email: [email protected]


email: [email protected]

wtf? :bored::buck::glare:


bluesky1612

02-09-2007, 19:15

Bắt đầu spam, e theo dõi từ đầu tới cuối, miểng văng lung tung, cắm đầy cả đầu e đây, các bác ợ. So sánh ngôn ngữ làm gì chứ?


meotrang7x

03-09-2007, 08:03

email: [email protected]

Còn đây là món thứ 3: củ su hào, mời các bác xơi. :D


Phe của eXecutive chỉ có mỗi eXecutive. Không phải là dân C++ ko ủng hộ, nhưng họ đã trưởng thành, họ biết không có cái nào là nhất cả, chỉ có mỗi eXecutive là hơi non dại, và lại cực đoan nữa.


eXecutive

03-09-2007, 11:03

Nói thì cứ như là thầy giáo của tôi chứ trong bụng cũng chả biết cái gì.

Tôi chứng minh được C++ là nhất đó. Nhiều bạn phân tích API làm được cái này, .NET làm được cái này nhưng cũng chả biết được C++ có thể lập trình được trên 2 nền tảng. Thậm chí có thể Mixing trong 1 chương trình.

Nói những lập trình viên C++ là trường thành là một câu nói không có khoa học bởi vì không ai có thể học được hết C++ và cho là trưởng thành.

Ở Topic này đơn giản chỉ có mình tôi biện luận, dẫu sao cũng có một số bạn mail tới mượn tài liệu của tôi là tôi cảm thấy rất thành công ở Topic này rồi.

Tôi cũng chả chấp gì? lại giở trò spam để phá topic nữa.


Nói thì cứ như là thầy giáo của tôi chứ trong bụng cũng chả biết cái gì.

Tôi chứng minh được C++ là nhất đó. Nhiều bạn phân tích API làm được cái này, .NET làm được cái này nhưng cũng chả biết được C++ có thể lập trình được trên 2 nền tảng. Thậm chí có thể Mixing trong 1 chương trình.

Nói những lập trình viên C++ là trường thành là một câu nói không có khoa học bởi vì không ai có thể học được hết C++ và cho là trưởng thành.

Ở Topic này đơn giản chỉ có mình tôi biện luận, dẫu sao cũng có một số bạn mail tới mượn tài liệu của tôi là tôi cảm thấy rất thành công ở Topic này rồi.

Tôi cũng chả chấp gì? lại giở trò spam để phá topic nữa.

Thế bạn có biết Delphi cũng lập trình được trên cả 2 nền tảng Windows và .Net ko nhỉ? Và nếu dùng CLX thay cho VCL thì ứng dụng Delphi có thể được build trên Kylix để chạy trên nền Linux.

"Trưởng thành" ko có nghĩa là phải học hết C++ (ở đây là VC++), chỉ cần họ nắm được đến mức độ thỏa mãn cho nhu cầu công việc thì cũng đã có thể gọi là trưởng thành rồi ;)

C++ rất mạnh, ko ai chối cãi. Nhưng VC++ đứng nhất thì bao giờ cũng sẽ có người phản bác. Ngay cả môi trường phát triển cho C++ thì VC++ cũng chưa thể đứng nhất được huống hồ là các môi trường khác. Nếu VC++ là vô địch thì các sản phẩm có thu phí khác như C++ Builder, Warrior C++... sẽ chết yểu chứ ko thể phát triển liên tục với một mức giá chả thua kém sản phẩm của M$. Và C++/MFC sẽ ko thể viết được ứng dụng cross-platform như những bộ thư viện C++ khác, chẳng hạn Qt hay Gtk. Các ứng dụng nguồn mở như Mozilla, Firefox... đều có thể compile bằng VC++ nhưng nó ko hề dùng đến MFC hay CLI ;)


whitepenguin

03-09-2007, 11:32

C++ đâu có vô tận đâu . mấu cái .net ,mfc là học thư viện vá quy tắc của Microsoft mà , ,C++ học liên tục trong 2 tháng là biết hết cách làm việc thối , ngoại trù việc tìm hiểu sau về NameMangling và Calling convention ,Variable Return .. mấy cái này tùy vào mỗi compiler , Microsoft quy ước rieng , Borland khác .DJGPP cũng khác

Nói chung em thấy C++ người ta xái nhiều ,viết ứng dụng rất nhiều ,Về Games trên thế giới có ai dùng java háy là C# ,Visual basic để viết Game thương mại đâu , C++ nhanh ,nhưng vẩn thua mình tự viết bằng assembly .

Có lần em dịch cái hàm viêt bằng C++ thành Assembly để coi nó viết thế nào thì ,em thấy nó dịch hơi kém , em có thể viết 1 hàm bằng assembly làm thao tác tương tự mà code ngằng hơn cả nó ,nhưng mà dù sao ,thì no Optimize cung thông minh lắm ,C++ hơi khó hiểu vì lý do độ abstact ko cao ,gần với cấp thấp ,cho nên nó nhanh là đúng ,khi mìnhh học C++ thì mình phải học cách nó làm việc ở múc độ abstract thấp như nó . C++ nhanh chả có gì la lạ . chi sau assembly ,vì Assembly ko có khái niễm Abstract nên ,mình học theo quy định làm việc của CPU ,viết code siêu ngắn

Mức độ Abstract cằng cao > càng gần với ngôn gnu74 con người -> sinh mã máy rất nhiều, C++ đứng phía sau Assembly nó nên nó không thể là nhất mà là nhì :)) hehehehe .

Đó là lý do người ta dùng C++ và Assembly để viết những Project lớn đòi hỏi CPU Proccess cao .

Em khoái Assembly nhất và C++ nhì , Project của em viết bằng C++ , nhưng interface với Assembly bằng các module . C++ bất lợi ở chỗ không thể dùng ngay được các Features mới của CPU mà mà phãi dùng các thư viện cung cấp hỗ trợ ,còn Assembly áp dụng được ngay các Feature cua CPU ,ngay trên code


meotrang7x

03-09-2007, 11:49

Nói thì cứ như là thầy giáo của tôi chứ trong bụng cũng chả biết cái gì.

Bác lại cay cú nữa rồi.

Tôi chứng minh được C++ là nhất đó. Nhiều bạn phân tích API làm được cái này, .NET làm được cái này nhưng cũng chả biết được C++ có thể lập trình được trên 2 nền tảng. Thậm chí có thể Mixing trong 1 chương trình.

Chứng minh chưa đúng, vì Delphi cũng làm được cái này. Vả lại tùy theo ứng dụng, tự nhiên viết một chương trình nho nhỏ mà cũng phải mixing 2 cái này sao bác? Chắc bác biết câu giết gà bằng dao mổ bò nhỉ? Vừa mất nhiều sức mà kết quả lại tệ hơn rất nhiều khi dùng đúng công cụ.

Nói những lập trình viên C++ là trường thành là một câu nói không có khoa học bởi vì không ai có thể học được hết C++ và cho là trưởng thành.

Bác lại hăng máu nên chưa đọc hết ý của người khác rồi, người ta nói bác chưa trưởng thành thôi chứ có nói tất cả lập trình viên C++ là chưa trưởng thành đâu? Bác nhanh nhẩu đoản như vậy cũng chứng minh tính chưa trưởng thành của bác đấy.

Ở Topic này đơn giản chỉ có mình tôi biện luận, dẫu sao cũng có một số bạn mail tới mượn tài liệu của tôi là tôi cảm thấy rất thành công ở Topic này rồi.

Chúc mừng bác!

Tôi cũng chả chấp gì? lại giở trò spam để phá topic nữa. Chứ bác có chịu trả lời thẳng vào lời phản biện của người khác đâu nhỉ? Bác cứ thao thao bất tuyệt (mặc dù sai) mà chẳng cần quan tâm người khác nói gì, bác làm vậy cũng là một hình thức spam đấy (spam khoe kiến thức).

Mong bác hiểu góp ý của những anh em khác.


ldarkmage

16-11-2007, 11:37

hix hix, ngồi đọc hết cả cái toppic này toàn thấy người này khen NNLT của mình là nhất, của người kia chỉ đáng bỏ đi, em góp ý 1 chút (không biết toppic này còn ai vào không nhưng em cứ viết ở đây) Theo em (viết cái này cho đỡ xúc phạm tới người khác và khẳng định ý kiến của em ở đầu) 1. Pascal: ngôn ngữ lập trình cho cấp cơ sở (ý em là dùng cho người mới học lập trình) em thấy các bác bảo Pascal không có con trỏ thì e là không hiểu về pascal (không nhớ là ý kiến của ai), thực tế thì pascal không có hướng đối tượng thì đúng hơn. Nói là Pascal không thể lập trình hệ thống thì có lẽ hơi quan liêu, hệ thông ở đây là hệ thóng nào, theo bác eXecutive thì hệ thông có phải là OS không, nếu là OS thì em chịu không có gì để tranh luận với bác (theo em thì OS là hệ điều hành chứ không phải hệ thống); do vậy lập trình hệ thống ta có thể nhúng ASM vào rất hữu dụng; đối với C cũng vậy. 2. C : cũng giống Pas nhưng nó tạo ra một môi trường mở cho người lập trình hơn (nói là mở nhưng mấy ai chuyên Pascal lại chuyển sang C đâu, em nói vậy vì Pascal có thể viết các thư viện, các hàm mới, bản thân em cũng đã từng viết 1 chương trình dùng để viết tiếng việt trong Pascal) xét cho cùng thì Pass và C là ngôn ngữ lập trình cơ sở (giống như là học tiểu học ý) 3. ASM: hix hix, nói về NNLT này thì em dám nói đây là NNLT mạnh nhất (mạnh nhất có nghĩa là có thể làm được tất cả với nó, tuy nhiên để làm được tất cả thì có lẽ phải dùng tất cả thời gian của 1 đời người mà có lẽ cũng không đủ để viết ứng dụng) em xin miễn ý kiến về NNLT này 4. Visual Basic: cái này thì viết app cho văn hòng thì tốt lắm, tuy nhiên cũng chỉ ở mức trên tiểu học 1 chút vì động chạm đến phầm mền như kế toán, quản trị bán hàng, quản trị nhân sự thì người ta thường dúng foxpro for Win nhiều và dễ dàng hơn dùng VB, tuy nhiên em thấy một số người vẫn dùng pascal for Win để giải quyết công việc nếu họ cho rằng đó là tốt nhất với họ thay vì phải nghiên cứu thêm 1 NNLT khác 5. V C++ thì thích hợp cho các ứng dụng can thiệp sâu vào hệ điều hành (cụ thể là windows) vì nó được MS thiết kế để phục vụ phát triển các ứng dụng đó mà, tuy nhiên để làm web thì vẫn rất tốt, có điều hơi vất vả, nếu đem so sánh với PHP, JSP, Aspx thì mệt cho người lập trình lắm 6. V C#,web: cái này mới ra đời, mục đích phục vụ tốt hơn cho các ứng dụng service, web, client/server, DB,... tốt hơn có nghĩa là thao tác, vận hành, xử lý,... Chủ topic này nói là C++ xử lý nhanh hơn C# thì có lẽ hơi thiên vị, bác viết chưong trình đơn giản hoặc các app với windows thì công nhận nhanh thật nhưng nếu bác viết 1 mô hình server/client dùng để làm chương trình dự báo kết quả nhắn tin trên truyền hình thì chưa chắc C++ đã = C# chứ chưa nói là JAVA (nếu ai đã từng học JAVA thì biết là nó không phải JAVASCRIP, còn cụ thể em sẽ nói ở dưới) 7. Delphi: đây là sản phẩm của BL, có thể nói đây là hướng đột phá của PASCAL, hỗ trợ hệ thống, OS khá tốt. Delphi cũng là ngôn ngữ mà nhiều nha sản xuất game lựa chọn chứ không chỉ riêng VC++ 8. JAVA: trở lại ví dụ về mô hình Clent/server trong hệ thông nhắn tin thoại, hầu như được viết = java. So sánh với javascrip thì... thực tế em chẳng muốn so sánh làm gì vì nó chẳng liên quan gì đến nhau, JAVA chuyên viết cho server còn JAVASCRIP hầu như viết để giải quyết các hiệu ứng, xử lý cho client (chỉ dùng cho web) - đến đây mỏi tay quá, còn nhiều NNLT nữa thực ra thì có chữ Visual đằng trước thì không phải NNLT mà nó chỉ tích hợp thêm các công cụ kéo thả, các hàm có sãn để tiện cho LTV thao tác thôi... Để kết luận đâu là NNLT mạnh nhất thì quả là không ai dám nói, hoặc có nói cũng chỉ mập mờ (các bác thử nghĩ xem, rất nhiều quảng cáo có câu nói là .ABC. hàng đầu trong lĩnh vực .XYZ. nhưng có phải là hàng đầu tương đương với No1 đâu, ví dụ như 1 lớp học đó, những người đứng hàng đầu là những người nhỏ bé đó thôi (những = nhiều) NNLT nào cũng có cái ưu, cái khuyết của nó, tuy nhiên người LTV sẽ đi theo 1 hoặc nhiều hướng để giải quyết công việc của mình (có thể để giải trí, có thể để kiếm sống, có thể để....) nhưng mà không có cái nào jup' bạn trở thành Chủ tịch người cả (hi hi) may chăng có lập trình = USD


mr.nguyenhuutuan

05-01-2008, 21:55

Cố gắng đọc được đến trang 3, tình hình là em nhận thấy thế này :

- Tác giả của topic không hiểu mình nói gì, hay chính xác hơn là không hiểu một cái gì. nhầm lẫn tai hại nhất là đến giờ vẫn không phân biệt được đâu là ngôn ngữ lập trình và đâu là nền tảng lập trình (platform)

- Rất nhiều bậc đàn anh có trình độ cao nổi tiếng trong giới lập trình bỏ hơi sức ra cãi vã trong 1 topic so sánh khác thứ nguyên.

- Nếu muốn nói ngôn ngữ lập trình nào mạnh nhất đa năng nhất thì xin thưa là ASM.

- Nếu muốn tìm ngôn ngữ/ platform nào mạnh nhất thì xin thưa đó là mã máy (machine code) => có rất nhiều loại cho mỗi loại cpu :D.

- Chẳng có lập trình viên nào chọn ngôn ngữ trước khi code, họ chọn mục tiêu và nền tảng.

Vài lời ngu muội.


- Nếu muốn nói ngôn ngữ lập trình nào mạnh nhất đa năng nhất thì xin thưa là ASM.

- Nếu muốn tìm ngôn ngữ/ platform nào mạnh nhất thì xin thưa đó là mã máy (machine code) => có rất nhiều loại cho mỗi loại cpu :D.

- Chẳng có lập trình viên nào chọn ngôn ngữ trước khi code, họ chọn mục tiêu và nền tảng.

Đọc thấy 3 câu này đáng lưu tâm, chả có ASM thì chả có C,C++,C#,Java,Delphi,PHP,XML,JavaScript,..... ( hình như là vậy :D )


00987194211

11-04-2008, 17:24

- Rất nhiều bậc đàn anh có trình độ cao nổi tiếng trong giới lập trình bỏ hơi sức ra cãi vã trong 1 topic so sánh khác thứ nguyên.

- Chẳng có lập trình viên nào chọn ngôn ngữ trước khi code, họ chọn mục tiêu và nền tảng.

Một câu nói khép lại topic:D:D:D


thuongshoo

11-04-2008, 17:37

Một câu nói khép lại topic:D:D:D

đồng ý :yes::yes: MÀ sao bạn executive lâu nay ít thấy vô nữa? tui thích bàn cãi tới cùng. Cãi vậy mới sướng nhưng cãi xong thì chả ai vô nữa. Ai cũng thích bị tổn thương thì thiệt hại cho tui quá:no: Thôi! Mọi người vô bàn luận tiếp nhe! lol


Còn không cám ơn tui khơi lại topic :D C++ thì xài nhiều, các phần mềm duyệt wed, download đều dùng đến nó. Nghĩ lại, chắc phải chuyên sâu vô C++ để mai này ta phất..phất..phất


hailuanon

17-04-2008, 16:59

Vậy giờ tui muốn viết chương trình mà chương trình đó có thể chạy được trên windows và linux thì tui nên học gì ? C++, C# hay Delphi.net, java,... hay học tùm lum hết. Xin cám ơn!


Hok bik zì

17-04-2008, 17:14

Em thì cứ Java/Swing, C++/Qt, Python/wxPython là chỗ nào cũng chạy tuốt. Còn .NET thì Mono mới hỗ trợ đến .Net Framework 1.1 .... chán !

[=========> Bổ sung bài viết <=========]

ờ mà bác mèo đâu í nhỉ ? lâu lắm roài ko thấy bác í spam nữa :D


hailuanon

18-04-2008, 12:01

Em thì cứ Java/Swing, C++/Qt, Python/wxPython là chỗ nào cũng chạy tuốt. Còn .NET thì Mono mới hỗ trợ đến .Net Framework 1.1 .... chán !

[=========> Bổ sung bài viết <=========]

ờ mà bác mèo đâu í nhỉ ? lâu lắm roài ko thấy bác í spam nữa :D OK, cám ơn bác nhiều! À, cho em hỏi thêm cái hẽm Swing của Java, Qt của C++ là cái gì vậy bác ? có phải là chương trình để viết và chạy chương trình không ? em dùng NetBeans để học C++ và java được không ? hay nên xài chương trình nào ?


VuongChieuQuan

18-04-2008, 12:36

Cho em spam một cái !

Đọc được nửa cái topic này em đơ luôn, uống hết một chai nước.

Các bác Pro sao không mở vài cái topic riêng, kiểu chuyên đề giống các 4room khác ấy, cho bọn đàn em học tập nhỉ ! Mỗi bác một topic thì giờ chắc cái box C/C++ này hoành tráng lắm đấy.

Em có thêm chút ý kiến các bác có tiếp topic thì lên trình bày cho các bọn đàn em còn dễ đọc , dễ theo dõi chút ( tô đậm, xuống dòng....), chứ cứ thế này chắc em thành 8 mắt mất.


Hok bik zì

18-04-2008, 13:33

Swing,Qt,wxPython tất cả đều là các thư viện đồ họa để tạo GUI cho ứng dụng(giống như MFC). Hình như trong Netbeans 6 có sẵn Swing roài, khỏi phải kiếm cho mệt. Nói Qt "chạy tuốt" cũng hơi quá, vì dùng C++ mà lị :D ! Nhưng tiện ở chỗ bạn viết trên Windows XP thì có thể mang sang Linux rebuild lại là chạy vô tư, không phải viết hay cấu hình lại cái gì trơn ! Còn Swing hay wxPython thì vô tư roài (dùng intepreter language mà :D)


Nói chung bác nào cũng hay ho cả! Mỗi tội nặng về chỉ trích nhau!


tuy phong

19-04-2008, 21:08

Thật quá ngu ngốc khi chứng minh 1 ngôn ngữ nào đó là số 1. Ở đời ko phải hơn thua nhau ở cái ngôn ngữ mà hơn thua nhau ở cái thư viện hỗ trợ ấy. Tại sao cho đến nay VS vẫn là số 1 vì nó có bộ thư viện hỗ trợ quá khủng chứ ngôn ngữ thì cái gì chẳng được. Tôi công nhận C là nền tảng của các ngôn ngữ nhưng C# cho đến giờ vẫn được coi là 1 ngôn ngữ đẹp nhất vì cấu trúc chặt chẽ, trong sáng và trừu tượng đủ cho chúng ta ko cần can thiệp quá sâu vào hệ thống mà vẫn tư duy lập trình tốt. Chứng minh C++ là vô địch để làm gì? Để bắt tất cả mọi người học C++ giống như hiện giờ VN đang đào tạo nhà nhà người người học Pascal à? Thầy tôi có nói muốn làm 1 kỹ sư tin học thì có 3 hướng đi: 1 là dotNET 2 là Java 3 là open source Rõ ràng là chúng ta thấy ko phải giỏi 1 ngôn ngữ là có thể đi làm, cái chính là phải giỏi 1 công nghệ. Vài lời nhắn nhủ đến những cái đầu nóng tranh cãi vô ích.


VuongChieuQuan

19-04-2008, 21:17

Hix ! Tưởng bạn đi làm rùi rút ra kinh nghiệm, chứ mới chỉ nghe thầy nói thì làm gì mà phán vội thế. Các bác tranh luận trên bạn không thấy toàn bác trình cao đi làm rùi à.

Xin lỗi, nhưng ông thầy tin dạy mình ổng bảo toàn thằng dốt mới phải chịu đi dạy tin thôi, còn những người giỏi họ đi làm ngoài hết rồi, không mấy ai giỏi mà phải chịu đi dạy lấy lương 1 đôi M/tháng.(Trích ý kiến của ông thầy).