Năm 2011 đã trôi qua, nhiều ngôn ngữ lập trình mới xuất hiện và đang phát triển với tốc độ khá nhanh. Theo cập nhật trên Wikipedia thì ngôn ngữ lập trình mới nhất do Google phát triển có tên là Dart. Đây là một ngôn ngữ lập trình web và mặc dù “sinh sau đẻ muộn”, nhưng nó đã nằm trong nhóm 100 ngôn ngữ lập trình đứng đầu theo thống kê của trang TIOBE.com. Chỉ số TIOBE là một tiêu chí để đánh giá độ phổ biến của các ngôn ngữ lập trình, chỉ số này được cập nhật hàng tháng. Cách đánh giá dựa trên số lượng lập trình viên sử dụng một ngôn ngữ lập trình nào đó. Nói cách khác nó sẽ cho ta biết xu hướng tuyển dụng cũng như nhu cầu công việc đối với một ngôn ngữ lập trình nào đó. Tỉ lệ này được xác định dựa trên chuyên gia trên khắp thế giới. Các công cụ tìm kiếm phổ biến như Google, Bing, Yahoo!, Youtube, Baidu cũng được dùng để tính toán tỉ lệ này.
Từ khi chỉ số TIOBE được bắt đầu được dùng để thống kê từ năm 2001, C++ vẫn giữ ngôi vị thứ 3 trong biểu đồ. Perl, Visual Basic và PHP cũng từng giữ vị trí này nhưng chỉ được vài tháng. C# xuất hiện và nhanh chóng trở nên một ngôn ngữ phổ biến đứng ngay sau C++.
Bảng 1.1. Bảng xếp hạng các ngôn ngữ lập trình tháng 02/2012 [25] Thứ hạng 2/2012 Thứ hạng 2/2011 Độ chênh lệch thứ hạng Ngôn ngữ lập trình Tốc độ 2/2012 Độ chênh so với 2/2011 Xếp hạng 1 1 Java 17.050% -1.43% A 2 2 C 16.523% +1.54% A 3 6 C# 8.653% +1.84% A 4 3 C++ 7.853% -0.33% A 5 8 Objective-C 7.062% +4.49% A 6 5 PHP 5.641% -1.33% A
7 7 (Visual) Basic 4.315% -0.61% A 8 4 Python 3.148% -3.89% A 9 10 Perl 2.931% +1.02% A 10 9 JavaScript 2.465% -0.09% A 11 13 Delphi/Object Pascal 1.964% +0.90% A 12 11 Ruby 1.558% -0.06% A 13 14 Lisp 0.905% -0.05% A 14 26 Transact-SQL 0.846% +0.29% A 15 17 Pascal 0.813% +0.08% A
16 22 Visual Basic .NET 0.796% +0.21% A–
17 32 PL/SQL 0.792% +0.38% A
18 24 Logo 0.677% +0.10% B
19 16 Ada 0.632% -0.17% B
20 25 R 0.623% +0.06% B
Qua trên, chúng tôi chọn ngôn ngữ lập trình C# với các đặc điểm sau đây :
C# là ngôn ngữ đơn giản
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và C++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class).
Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ này đơn giản hơn. Một vài sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi. Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là “::”, “.”, và “->”. Để biết khi nào dùng ba toán tử này cũng phức tạp và dễ nhầm lẫn. Trong C#, chúng được thay thế với một toán tử duy nhất gọi là “.(dot)”. Đối với người mới học thì điều này và một số cải tiến khác làm bớt nhầm lẫn và đơn giản hơn. Hầu hết mọi người vẫn nghĩ Java đơn giản, tuy nhiên thực tế C# lại dễ sử dụng hơn Java và C++. Ngoài ra trong C++, con trỏ được tích hợp vào ngôn ngữ này, cũng là nguyên nhân gây ra những rắc rối cho
C++. C# loại bỏ những phức tạp và rắc rối phát sinh bởi con trỏ. Đồng thời, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn được tích hợp vào C#, sẽ loại bỏ những vấn đề rắc rối của C++.
C# là ngôn ngữ hiện đại
Điều gì làm nên một ngôn ngữ hiện đại? Những đặc tính như xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên. Người mới học lập trình có thể sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu nhưng khi hiểu được thì sẽ dễ dàng nhận thấy C# đáp ứng đầy đủ những đặc tính trên.
C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism). C# hỗ trợ tất cả những đặc tính trên.
C# là ngôn ngữ vừa mạnh mẽ vừa mềm dẻo
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản thân hay là trí tưởng tượng của chúng ta. Ngôn ngữ này không đặt những ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bảng tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác.
C# là ngôn ngữ ít từ khóa
Ngôn ngữ C# sử dụng giới hạn những từ khóa, phần lớn từ khóa được sử dụng để mô tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn. Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, mặc dù ít từ khoá nhưng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào.
C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong những phần được gọi là lớp. Những lớp này chứa các phương thức thành viên của nó. Những lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác. Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả.
C# là một trong những ngôn ngữ lập trình ra đời trễ hơn so với C++. Tuy nhiên nó lại trở nên phổ biến hơn C++ bởi nhiều lí do. Một trong những lý do chính là Microsoft và sự cam kết của .NET Microsoft muốn ngôn ngữ C# trở nên phổ biến. Mặc dù một công ty không thể làm sản phẩm trở nên phổ biến, nhưng nó có thể được hỗ trợ. Cách đây không lâu, Microsoft đã gặp sự thất bại về hệ điều hành Microsoft Bob. Mặc dù Microsoft muốn Bob trở nên phổ biến nhưng thất bại. C# thay thế tốt hơn để đem đến thành công so với Bob. Thật sự là không biết khi nào mọi người trong công ty Microsoft sử dụng Bob trong công việc hằng ngày của họ. Tuy nhên, với C# thì khác, nó được sử dụng bởi Microsoft. Nhiều sản phẩm của công ty này đã chuyển đổi và viết lại bằng C#. Bằng cách sử dụng ngôn ngữ này, Microsoft đã xác nhận khả năng của C# cần thiết cho những người lập trình. Micorosoft .NET là một lý do khác để đem đến sự thành công của C#. .NET là một sự thay đổi trong cách tạo và thực thi những ứng dụng. Ngoài hai lý do trên ngôn ngữ C# cũng sẽ trở nên phổ biến do những ưu điểm của ngôn ngữ này được đề cập trong mục trước.