Thứ Tư, 27 tháng 2, 2013

Những ưu điểm của Delphi với C#

Nhưng ưu điểm của Delphi như sau:
-Không cần nền .NET Famework để chạy ứng dụng như C#
-Đã được học kiến thức Pascal ở cấp THCS và THPT
-Có công nghệ đồ họa giao diện người dùng FireMonkey vô địch. FireMonkey có rất nhiều kiểu đối tượng trên Form hơn C#, kiểu đẹp hơn C# và mạnh mẽ hơn C#(chấp C# + thêm các ứng dụng đồ hạo giao diện luôn :D). Nếu C# + các ứng dụng đồ họa giao diện(trả phí) thì cũng mới bằng công nghệ VCL của Delphi thôi.
-Hỗ trợ lập trình 3D, có thể thiết kế ra các ứng dụng 3D. Còn C# thì không thể thiết kế các ứng dugn5 3D.
-Tương tác với các ngôn ngữ lập trình khác tốt hơn. Thông qua Dynamic Link Library thì Delphi đã có 2 kiểu là ActiveX và Type Library. Người ta thường ví DLL là một thư viện của những ngôn ngữ lập trình cấp cao. DLL chủ yếu được dùng để chia sẻ khả năng của ngôn ngữ này với ngôn ngữ khác, VD như ngôn ngữ A không thể làm được điều này mà ngôn ngữ B có thể làm được thì người ta sẽ dugn2 ngôn ngữ B để viết ra 1 DLL dugn2 cho ngôn ngữ A. Mà thông thường người ta viết DLL bằng Delphi rồi mang sang C# dùng chứ không ai viết DLL bằng C# rồi mang sang Delphi dùng cả, đó là một minh chứng rõ nét nhất về Delphi mạnh hơn C#.
-Delphi hỗ trợ đa nền tảng, với Delphi bạn có thể viết ra Application chạy trên Windows, Mac OS và iOS. Trong khi đó thì C# chỉ có thể viết ra Application chạy trên Windows và Windows Phone. Trên thị trường thì hệ điều hành Windows chiếm nhiều nhất tại thị trường hệ điều hành máy tính cá nhân, nhưng Delphi cũng có thể chạy trên Windows nên => Delphi = C# tại nền Windows trên máy tính. Trên thị trường hệ điều hành điện thoại thông minh thì iOS chiếm thị phần nhiều hơn Windows Phone => Delphi hơn C# tại điểm này(Note: iOS là hệ điều hành chạy trên các thiết bị di động của Apple như IPhone, IPad. Ai không biết đến IPhone hay IPad thì chịu! :( ) Ngoài ra thì Delphi còn có thể chạy trên hệ điều hành Mac OS X nữa, Mac OS là hệ điều hành chạy trên các thiết bị máy tính xách tay cảu Apple đó, VD như MacBook và MacBook Pro(chỉ sợ ko có tiền mua thôi). => kết quả chung cuộc thuộc về Delphi tại điểm này!
-Delphi có thư viện rộng hơn C#. Nói đến Library thì không cần phải bàn cãi gì nữa, nó viết ra được DLL tốt hơn thì có thư viện tốt hơn. Nhưng đó chỉ là ý kiến cá nhân đánh giá thôi. Bây giờ tớ sẽ phân tích theo hướng khác quan! C# có các hàm API rất mạnh trên Windows thì Delphi cũng có các hàm API(có một thư viện khổng lồ hẳn hoi), C# hỗ trợ nền NET Famework thì Delphi cũng hỗ trợ nền NET Famework! Và thư viện của C# tới đó là hết vì C# chủ yếu dựa vào nền .NET Famework là chính, trong khí đó Delphi có sẵn các Library của bản thân nó được phát triển từ rất lâu rồi, có thư viện Media, Graphic,..... Ngoài ra Delphi còn có nhiều Packages hơn C#.
-Delphi hợ trợ nhiều loại Database hơn C#. Khả năng kết nối tới Database cảu Delphi tốt hơn C# rất nhiều hi hỗ trợ nhiều loại Database. Những loại Data C# có hỗ trợ thì Delphi đều có hỗ trợ, nhưng những loại Data Delphi có hỗ trợ thì C# chưa chắc đã có hỗ trợ.
-LiveBinding của Delphi hơn hẳn C#, nó hơn thì là do đã hỗ trợ nhiều loại Data hơn C# là một, mà còn có khả năng chuyển hóa các nguồn dữ liệu nhập vào, cái mà C# không thể!
-Delphi có ít Example hơn C# nhưng Example lại chất hơn C#. C# tập trung vào số lượng từ thư viện cảu MS thì Delphi lại tập trung về chất lượng từ Embarcadero. Cái này rất khó phân tích tùy vào nhận xét của từng người.
-Các Tút C# thường rất ngắn trên MS thì Delphi có thể nói là rất dài, dài mà chất nữa chứ, chỉ bảo rất chi tiết. Tuy Emxaple cảu C# nhiều hơn Delphi nhưng số Tut của C# lại ít hơn Delphi. Số liệu này tớ không lấy tại VN mà lấy tại trang chủ của từng IDE nhé. MS có Library thì Embarcadero có Doc Wiki.

Đó là những gì mình biết. Sau này sẽ có bổ xung! AE cứ nêu ra quan điểm của mình nhé! :) Các bạn bên C# thì cũng cứ tự nhiên nêu ra quan điểm của mình! :)

 

Khi đang dùng Delphi7->Delphi2007 thì thiên hạ đổ đi làm .NET (một trong các lý do chính là vì hỗ trợ unicode). Mình hoang mang và cũng thử xem đồ .NET thế nào, thế rồi tìm ra C# có thể chọn làm ngôn ngữ phát triển chính. Trong lúc dang dở thì nhận được tin Delphi2009 có hõ trợ unicode, mừng quá vì lúc đó chọn .NET vì cay cú nhất unicode (mình có thể làm được với Delphi 7 nhưng vất vả quá). Thế là bye bye C# là vì:
+ C# phải dựa vào .NET framework - to vật. Tôi làm ửng dụng nhỏ khoảng 2MB thì phải cài trên máy người ta .NET 180 MB (không nhớ rõ dung lượng)
+ Viết các dll - add-in cho Office thì khởi động nặng nề.
+ Tốc độ chạy trên Delphi nhanh theo cảm nhận và cái tôi viết (vấn đề này đang tranh cãi nhiều diễn đàn).
+ Ứng dụng (APP), thư viện DLL viết bởi Delphi chạy độc lập không cần cõng theo cài gì nếu không chủ ý đụng chạm DLL của hãng thứ 3. Copy vào USB mang đi máy nào cũng chạy ;).
+ Delphi cung cấp gần như toàn bộ mã nguồn trong bộ VCL (với Visual Studio thì nó tương đương với .NET framework), tôi tự học được Delphi từ bộ mã nguồn này. Bạn muốn biết người ta tạo ra menu, form, các controls như thế nào chỉ cần giữ CTRL nhấn chuột vào tên các property là mở hết cho bạn xem và học. Trong khi .NET thì giống VB6 đóng cửa im ỉm. Nói chung cái gì của Microsoft thì hiếm có đồ Opensource.
+ Các component/controls của các hãng thứ 3 cũng cấp cho Delphi, khi ta xây dựng ứng dụng, biên dịch thì toàn bộ các mã trong component (VCL) đó được biên dịch thẳng vào ứng dụng của mình. Tức là khi đem ra máy khác chạy vẫn chỉ cần 1 file của mình mà thôi. Còn .NET thì phải cõng theo DLL của bên thứ 3, trừ khi họ cung cấp sourcecode.
+ Tôi thích làm các dll tích hợp vào các hệ thống khác nên, tiêu trí nhỏ gọn, độc lập nên Delphi là lựa chọn.

Còn thời tôi tìm hiểu C# thì công nhận bộ Editor của nó chạy cực mịn và sáng sủa, hỗ trợ việc lập trình nhiều vì nó tự sinh code đỡ cho người dùng, đang làm Delphi chuyển học C#, .NET rất nhanh vì các thành phần rất giống với VCL của Delphi, từ tên các property vì chúng cùng một mẹ làm ra. Nhưng những cái này tôi không hứng thú. Còn cái gì khác cao hơn tôi không biết vì không còn tìm hiểu nó nữa.

Và khi DelphiXE2 ra đời bắt đầu hỗ trợ, Linux, Mac OS, sau này thêm cả iOS, Android, Windows 8 ARM (máy tính bảng Surface của Microsoft đang chạy) thì tôi càng yên tâm ngôn ngữ mà mình chọn. Lý do làm ứng dụng đa môi trường vì thế giới không chỉ có Microsoft, ảnh hưởng của các hãng khác cũng lớn dần. Bạn làm ra một game chạy cho các điện thoại Android, iPhone sẽ có nhiều tiền hơn nếu chỉ làm cho Windows Mobile :). Các doanh nghiệp họ có thể không phải bỏ tiền để mua HĐH Windows, Office và chỉ dùng Linux và OpenOffice sẽ tiết kiệm được rất nhiều tiền, ta cung cấp phần mềm quản lý kho, kế toán, bán hàng, nhân sự chạy được trên này với CSDL mã mở MySQL có phải một sự cạnh tranh về chi phí đầu tư?

Các bạn để ý thì các phần mềm nổi tiến các bạn đang sử dụng hiện nay không phải làm trên .NET đâu nhé. Ngay cả bộ Office của Microsoft cũng không dùng .NET (tấc nhiều dùng bộ thư viện đã có của họ), Yahoo, Skype, các phần mềm Media,...Đặc biệt các phần mềm lớn của các doanh nghiệp nước ngoài (MYOB, SAP, Oracle, ....) không thấy dùng .NET.

Trên chỉ là hiện tượng và cảm nhận mà cá nhân tôi biết, có thể chưa hiểu biết rộng nên chưa trình bầy được đầy đủ.

2 nhận xét:

  1. Em đang học pascal và cũng rất muốn tìm hiểu về delphi (cũng vì muốn viết chương trình có giao diện chạy trên windows). Anh có thể chỉ cho em một số tài liệu về delphi được không ạ?

    Trả lờiXóa
    Trả lời
    1. Em tham khảo các bài viết về delphi trong blog của a nhé.
      Có sách hướng dẫn viết chương trình đó em
      http://vusonbk.blogspot.com/search/label/delphi

      Xóa