Ảnh: C-Sharp
C# (đọc là "c sharp") là một ngôn ngữ lập trình đa năng, an toàn kiểu dữ liệu, hướng đối tượng. Ngôn ngữ này được phát triển bởi Anders Hejlsberg cho Microsoft và hiện nay được dẫn dắt bởi Mads Torgersen. Mặc dù C# có thể hoạt động độc lập trên nhiều nền tảng, nhưng nó được tối ưu hóa và thường được sử dụng trong ngữ cảnh của .NET Framework.
Ban đầu, C# phát triển chủ yếu cho hệ điều hành Windows. Tuy nhiên, nhờ có Xamarin, người ta cũng có thể phát triển ứng dụng cho macOS, iOS và Android. Bên cạnh đó, .NET Core cũng cung cấp sự hỗ trợ chính thức cho GNU/Linux và macOS.
C# từng được ECMA và ISO đăng ký làm tiêu chuẩn cho các phiên bản lần lượt từ 1 đến 2. Tuy nhiên, sau đó, Microsoft liên tục giới thiệu các bản mở rộng đáng kể cho ngôn ngữ này. Cùng với việc phát triển trình biên dịch tham khảo như mã nguồn mở (từ 2014), người dùng cũng có thể đóng góp từ cộng đồng.
Lịch sử và tên gọi
Ban đầu, C# được phát triển với tên mã là "Cool", nhưng đã thay đổi thành "C Sharp" vì mục đích tiếp thị. Tên "C Sharp" được lấy cảm hứng từ biểu tượng "sharp" (♯) trong ký hiệu nhạc, đại diện cho việc tăng một nửa nốt cơ bản. "C sharp" là thuật ngữ tiếng Anh để chỉ nốt "cis". Tên này ám chỉ rằng tên gọi của ngôn ngữ lập trình C++ xuất phát từ ký hiệu tăng một đơn vị của một biến. Tuy nhiên, tên "C Sharp" không có ký hiệu "sharp" của nhạc, mà thay vào đó là ký hiệu "hash" (♯), được sử dụng thay thế cho ký hiệu "sharp" bình thường trên bàn phím tiêu chuẩn.
Một số tác phẩm nghệ thuật cũng sử dụng ký hiệu nốt nhạc để phô diễn, nhưng chỉ một số ít được coi là chính xác. Một số nghệ sĩ cũng sử dụng biểu tượng "double dagger" (‡) mỗi khi đề cập đến C Sharp. Tuy nhiên, việc sử dụng biểu tượng này hai lần là không chính xác.
Khái niệm và tổng quan
C# kế thừa các khái niệm từ các ngôn ngữ lập trình như Java, C++, Haskell, C và Delphi. C# là ngôn ngữ lập trình hướng đối tượng và hỗ trợ phát triển cả thành phần độc lập với ngôn ngữ (.NET Components) và các thành phần COM để sử dụng với các ứng dụng Win32.
Một số yếu tố của C++, thường được coi là không an toàn, chẳng hạn như con trỏ, chỉ được sử dụng trong "mã không an toàn" chỉ chạy trong các vùng có giới hạn quyền truy cập. Là một ngôn ngữ .NET, C# cũng hỗ trợ thuộc tính và delegate, trong đó "Thuộc tính" cho phép lưu trữ thông tin về một lớp, một đối tượng hoặc một phương thức có thể được xử lý trong thời gian chạy. "Delegate" có thể tham chiếu đến các phương thức của một lớp. Khái niệm này là một sự phát triển của các con trỏ hàm, được sử dụng trong ngôn ngữ lập trình C, ví dụ như C++.
Kể từ phiên bản 2.0 của C#, được phát hành với .NET Framework 2.0, C# cũng hỗ trợ các đối tượng chỉ định, các phương thức vô danh, các bộ sinh và các lớp một phần. Các đối tượng chỉ định, bộ sinh và các lớp một phần là một phần của .NET Framework 2.0 và do đó cũng có sẵn cho các ngôn ngữ lập trình .NET khác như Visual Basic .NET.
Môi trường phát triển tích hợp (IDEs)
Nền tảng phát triển quan trọng nhất cho C# là Microsoft Visual Studio (dùng trên Windows và macOS, là phần mềm độc quyền). Ngoài ra, còn có một số môi trường phát triển tích hợp khác (IDEs) cho C#, nhưng không luôn hỗ trợ các tiêu chuẩn và môi trường chạy runtime mới nhất (.NET Core).
Các IDE khác bao gồm:
- Visual Studio Code (dùng trên Windows, macOS và Linux)
- JetBrains cung cấp các tiện ích mở rộng cho Visual Studio để nâng cao hiệu suất của nó
- Rider (hỗ trợ Windows, Linux và Mac OS)
- Baltie (dùng trên Windows, là phần mềm độc quyền, dành riêng cho trẻ em)
- MonoDevelop (dùng trên GNU/Linux, là phần mềm tự do)
- Notepad++ (một trình soạn thảo dùng trên Windows, là phần mềm tự do) với plugin CS-Script, cho phép tự động hoàn thành code và debug
- Dự án OmniSharp cho phép nâng cao các tính năng của nhiều trình biên tập phổ biến (như Atom, Adobe Brackets, Emacs, Sublime Text, Vim và Visual Studio Code) đối với C# (là một phần của .NET)
- SharpDevelop (dùng trên Windows, là phần mềm tự do)
Trình biên dịch
Thay vì dịch trực tiếp thành ngôn ngữ máy, trình biên dịch C# thường dịch mã nguồn thành ngôn ngữ trung gian. Khi chạy, một máy ảo được khởi động để hoàn thiện quá trình biên dịch bằng một trình biên dịch Just-In-Time (JIT).
Có tổng cộng bốn trình biên dịch cho C#:
- Trình biên dịch Roslyn do Microsoft phát triển cho các phiên bản mới nhất của C# và Visual Basic .NET (Windows, mã nguồn mở).
- Trình biên dịch mcs của Xamarin cho Mono (Windows, macOS, GNU/Linux; mã nguồn mở). Trước phiên bản C# 7, mcs hỗ trợ tất cả các tính năng, nhưng trên phiên bản C# 7, chỉ hỗ trợ một phần.
- DotGNU (mã nguồn mở), phát triển đã bị ngừng từ năm 2012.
- CoreRT/.Net Native.
Tóm tắt
C# là một ngôn ngữ lập trình đa năng và mạnh mẽ, được phát triển bởi Microsoft cho nền tảng .NET Framework. Với sự phát triển liên tục, C# đã trở thành một ngôn ngữ quan trọng trong lĩnh vực lập trình ứng dụng, hỗ trợ cho nhiều nền tảng khác nhau. Với một số IDE phát triển mạnh mẽ và cộng đồng lập trình viên nhiệt tình, C# có tiềm năng để phát triển ngày càng mạnh mẽ trong tương lai.