Cũng xin nói lại với các bạn lần nữa về đặc điểm phần mềm, thư viện (dll, ocx,..) biên dịch và thông dịch.
Phần mềm hay thư viện (dll, ocx,..) được biên dịch là ra mã máy. Nó được chuyển cho hệ điều hành chạy ngay. Vì thế tốc độ là siêu nhanh. Các phần mềm mà tôi biết để biên dịch là C, C++, Delphi, Swift (của Apple lập trình cho iOS).
Phân phối sản phẩm: bạn chỉ mang đúng các file bạn tạo đi ra máy khác là chạy (trong trường hợp bạn không tham chiếu đến thư viện ngoài những cái đã có của HĐH).
Phần mềm hay thư viện (dll, ocx,..) được thông dịch là được trình biên dịch ra mã trung gian, để chạy phần mềm và thư viên loại này hệ điều hành (Windows, Linux,...) phải chạy ngầm một ứng dụng ngầm khác đón nhận thằng thông dịch này rồi mới thực thi. Về mặt vật lý các bạn nhận thấy có sự chuyển giao hai công đoạn. Các trình biên dịch cũng như ngôn ngữ thường thấy cho loại này là: VB6, VBA, Java, C#.NET, VB.NET...*.NET, VFP, Python, Ruby,... Nên cùng một thuật toán khi viết hàm hay ứng dụng thì phần mềm hay thư viện viết dạng này thì tốc độ bao giờ cũng chậm.
Phân phối sản phẩm: bạn phải cài trình thông dịch cho ứng dụng của bạn. Ví dụ phải cài Framework.NET, thư viện VB6 là msvbvm60.dll, Java thì phải cài JVM (Java virtual machine). Hệ điều hành đôi khi hỗ trợ cài sẵn những thứ này, nhưng không phải chính xác với phiên bản mà ứng dụng bạn biên dịch yêu cầu (Ví dụ trong hệ điều hành đã tự cài .NET 2.0 nhưng ứng dụng của bạn lại cần .NET 3.5,...) . Ưu điểm rõ nhất với trình thông dịch phần lớn chúng đều dễ lập trình hơn so với C, C++. Nhưng với Delphi lại không phải so sánh dễ hay khó vì Delphi được viết rất dễ hiểu với ngôn ngữ dạy đại trà trong các trường học là Pascal. Đoạn sau nói sẽ nói về ý này nữa.
Việc chọn ngôn ngữ gì để viết sẽ phụ thuộc vào mục đích phân phối của dụng và nhân sự triển khai. Năng lực học và tư liệu hỗ trợ là quan trọng nhưng đôi khi khía cạnh nhìn nhận khá chủ quan. Ví dụ khi tôi chọn Delphi thì thấy rất dễ vì tôi đã học Pascal và tài liệu tôi có thể đọc được tiếng Anh, tiếng Việt cũng có nhưng phần lớn để học căn bản. Nhưng tôi chắc chắn dù bạn chọn ngôn ngữ gì thì bạn không thể không học tiếng Anh để tìm tư liệu trên thế giới. Mỗi ngày học một vài từ thì bạn sẽ có vốn thôi - Theo dạng dịch hiểu. Tài liệu tìm ở đâu? Rất rất nhiều:
https://stackoverflow.com
http://docwiki.embarcadero.com
...
Và điều quan trọng sau khi đã có căn bản, chúng ta hãy xem các ví dụ trọng bộ cài đặt của các phần mềm lập trình. Hãy chạy rồi quan sát, cắt đoạn để thí nghiệm.
Bây giờ nói về dễ và khó, hỗ trợ nhiều hay ít từ hệ thống. Ngày nay các hãng phát triển công nghệ họ đều hỗ trợ rất nhiều các tool, component, thư viện để bạn làm. .NET hay Delphi, Java đều có tất cả. Có người hỏi tôi, em thấy VSTO là của Microsoft có thể lập trình cho Excel hay Office dễ dàng hơn vì đó là cùng một lò. Cái này đúng một vế. Tại sao tôi lại làm được tất cả mọi thứ với Excel và Office với Delphi dù nó khác lò (XLL, OCX, DLL, Add-in, ...)? Câu trả lời là mọi công nghệ tạo ra nó đều phải đạt chuẩn theo hệ điều hành, nó đều có nguyên tắc giao tiếp với nhau. Hiểu đơn giản mọi thiết bị muốn cắm vào nhau thì đều có cổng USB (ví dụ vậy). Nó phải có chuẩn giao tiếp. Trong lập trình thì nó là API, COM, Automation,...
Có người cũng tâm đắc khen soạn thảo code trên .NET nhẹ và mượt. Đúng là rất tuyệt. Tôi đã làm quen với .NET từ Visual Studio 2003 nên rất hiểu. Và ngay bản thân trong .NET thì C# bao giờ cũng ngon nghẻ hơn các thứ khác. Có thể coi C# là ngôn ngữ chuẩn của .NET (cha đẻ của .NET cũng là cha đẻ Delphi. Delphi là anh trai cùng cha khác mẹ). Vấn đề này chỉ quan trọng với người mới học, còn những người đã quen rồi thì họ sẽ biết cài các tool để hỗ trợ hoặc tự tạo ra. Thực tế để làm một phần mềm thì ngôn ngữ lập trình chỉ là sơ cấp để tạo ra các object, thủ tục , hàm con, phục vụ cho các thủ tục chính thừa kế gọi nó. Nếu ai đã lập trình hoàn chỉnh một phần mềm nhìn lại code, trong hàm hay thủ tục chính, chỉ thấy các hàm và thủ tục con bạn đã tạo trong thư viện của bạn. Công việc nói hơi thô là copy và paste là nhiều. Thời gian chủ yếu dành cho tư duy về nghiệp vụ, giải thuật chứ không phải lúc code.
Bây giờ cho tôi sẽ show cho các bạn một nền tảng lập trình phần mềm mà tôi tạo ra từ Delphi để các lập trình viên viết phần mềm không phải code từ con số không. Công nghệ này tôi viết dành cho công ty tôi chuyên sản xuất phần mềm nhanh gọn và đồng nhất, đội lập trình dễ kiểm soát vì cùng thống nhất với kiến trúc chung.
Nội dùng chia sẻ trên tôi chỉ chia sẻ đôi chút về kiến thức mình có để các bạn thêm hiểu về lập trình đa môi trường cũng như vấn đề chọn công cụ lập trình. Và tôi nhấn mạnh lại, mỗi ngôn ngữ lập trình đều có ưu điểm riêng, việc chọn nó để làm sản phẩm cũng do nhu cầu phân phối. Còn dễ hay khó, học ở đâu thì không phải vấn đề đáng bàn nữa.