Chuyển đến nội dung chính

Lịch sử C#: Từ Java đến J++ và sự ra đời của một ngôn ngữ mới

C# (đọc là "C sharp") là một ngôn ngữ lập trình hiện đại, hướng đối tượng do Microsoft phát triển. Ra đời từ một quá trình phức tạp liên quan đến Java và những tranh chấp pháp lý, C# đã vươn lên trở thành một trong những ngôn ngữ phổ biến nhất thế giới, đặc biệt trong hệ sinh thái .NET.
Anders Hejlsberg

Kiến trúc sư trưởng tài ba

Đứng sau sự thành công của C# là Anders Hejlsberg, một kỹ sư phần mềm lỗi lạc người Đan Mạch. Trước khi gia nhập Microsoft, ông đã tạo nên tên tuổi tại Borland với việc là tác giả của Turbo Pascal, một công cụ đã làm nên cuộc cách mạng cho việc lập trình trên PC. Sau đó, ông tiếp tục là kiến trúc sư trưởng của Delphi, một môi trường phát triển ứng dụng nhanh (RAD) cực kỳ thành công. Với kinh nghiệm dày dặn trong việc thiết kế ngôn ngữ lập trình, Hejlsberg đã được Microsoft tin tưởng giao trọng trách dẫn dắt việc phát triển một ngôn ngữ mới cho nền tảng .NET Framework, và C# đã ra đời từ đó.

Con đường từ Java đến J++

Vào giữa những năm 1990, ngôn ngữ Java của Sun Microsystems nổi lên với triết lý "viết một lần, chạy mọi nơi" (write once, run anywhere), một khái niệm đầy hứa hẹn. Nhận thấy tiềm năng này, Microsoft đã cấp phép Java và tạo ra phiên bản riêng của mình có tên là Visual J++.
Tuy nhiên, Microsoft không chỉ đơn thuần sao chép Java. Họ đã thêm vào J++ các tính năng mở rộng độc quyền, giúp nó tương tác sâu hơn với hệ điều hành Windows. Động thái này đi ngược lại với tính đa nền tảng vốn có của Java, khiến các ứng dụng viết bằng J++ bị "khóa" vào môi trường Windows.

Vụ kiện và sự kết thúc của J++

Hành động của Microsoft đã dẫn đến một cuộc chiến pháp lý. Năm 1997, Sun Microsystems đã kiện Microsoft vì vi phạm hợp đồng cấp phép và làm phân mảnh nền tảng Java. Vụ kiện kéo dài và cuối cùng kết thúc vào năm 2001 với phần thắng thuộc về Sun. Microsoft đã phải trả 20 triệu USD và buộc phải ngừng phát triển J++ cũng như máy ảo Java của riêng mình.

Sự ra đời của C#

Từ những rắc rối pháp lý với J++ và với chiến lược phát triển nền tảng .NET hoàn toàn mới, Microsoft quyết định cần một ngôn ngữ lập trình chủ lực. Thay vì phụ thuộc vào một công nghệ của đối thủ, họ đã tạo ra C#.
C# thừa hưởng nhiều cú pháp và khái niệm quen thuộc từ Java và C++, giúp các lập trình viên dễ dàng tiếp cận. Tuy nhiên, nó được thiết kế từ đầu để tích hợp chặt chẽ với Common Language Runtime (CLR) của .NET, mang lại hiệu suất cao và nhiều tính năng hiện đại. Có thể nói, C# là câu trả lời của Microsoft cho Java: một ngôn ngữ mạnh mẽ, an toàn và được tối ưu hóa cho nền tảng của riêng họ, mở đường cho sự phát triển mạnh mẽ của các ứng dụng Windows, dịch vụ web và game sau này.

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.