Source code là gì? Có thể không phải là lập trình viên, nhưng chắc hẳn bạn đã từng nghe các anh lập trình viên ngồi quán cà phê, trà đá nói gì đó về Source code. Qua bài viết này, bạn sẽ biết được Source code là gì, mục đích, lịch sử phát triển và tầm quan trọng của Source code trong việc lập trình.
Source code là gì?
Source code hay mã nguồn, là thành phần cơ bản của một chương trình máy tính chứa các mã lệnh thực thi và được tạo ra bởi các lập trình viên. Hay giải thích một cách khác thì mã nguồn, là những kí tự được con người nhập vào máy tính dưới dạng một văn bản thuần túy.
Mở rộng ra, Source code bao gồm cả mã máy (ngôn ngữ bao gồm 2 kí hiệu 0 và 1) và các kí hiệu trong ngôn ngữ đồ hoạ (ngôn ngữ gần gũi với con người), cả hai thứ trên đều không phải là văn bản.
Con người bình thường có thể đọc và hiểu được mã nguồn, khi lập trình viên sử dụng ngôn ngữ lập trình để viết ra những câu lệnh. Những câu lệnh được viết ra và lưu lại trong một nào đó như tệp notepad chẳng hạn, nó sẽ được gọi là tệp chứa mã nguồn.
Lập trình viên có thể sử dụng phần mềm gõ văn bản thông thường hoặc một bộ công cụ trực quan chuyên cho code, một môi trường phát triển tích hợp IDE (Integrated Development Environment); và cũng có thể là một bộ phát triển phần mềm SDK (Software Development Kit) để phát triển mã nguồn.
Lịch sử phát triển của Source code
Ở giai đoạn đầu khoản thập niên 1940, mã nguồn được lưu dưới dạng nhị phân bao gồm 2 kí tự 0 và 1 thông qua các bản điều khiển của máy tính. Ngôn ngữ lập trình thế hệ đầu tiên này không có sự phân biệt giữa mã nguồn và mã máy.
Trong giai đoạn này source code rất khó khăn để hiểu, nhớ và viết. Một trong những mã nguồn đầu tiên có thể được thực hiện bởi Tom Kilburn, một nhà khoa học máy tính tiên phong. Ông đã thành công khi lưu được chương trình số đầu tiên trong bộ nhớ máy tính vào 1948, và phần mềm này giải được một chương trình toán học.
Vào khoản thập niên 50 và 60 của thế kỉ trước, mã nguồn đã được phát triển, tuy nhiên chúng được phát hành miễn phí. Ví dụ điển hình như IBM họ phân phối miễn phí bản quyền phần mềm, họ chỉ tính tiền phần cứng. Cho đến 1983, IBM bắt đầu tính cả phí sử dụng phần mềm.
Những tạp chí điện tử vào thời đó sẽ viết, in mã nguồn lên giấy. Khi người dùng muốn sử dụng thì họ phải gõ lại những kí tự đó để có thể sử dụng phần mềm. Sau đó đĩa mềm đã được phát triển với giá cả phải chăng cho việc chia sẻ mã nguồn trở nên dễ dàng hơn. Ở thời điểm hiện tại của chúng ta Internet đã làm việc chia sẻ mã nguồn không còn một rào cản nào nữa.
Khi trước mã nguồn được công khai và chia sẻ miễn phí. Tuy nhiên hiện tại thì phần lớn các ứng dụng mà bạn sử dụng rất hiếm được chia sẻ mã nguồn vì nó sẽ liên quan đến bản quyền và bảo mật.
Ví dụ điển hình: Bạn sử dụng hệ điều hành Windows, Mac OS nhưng có bao giờ bạn thấy mã nguồn của chúng không? Bạn sử dụng các ứng dụng điện thoại chẳng hạn, bạn cũng không thể thấy được chúng.
Vậy mục đích của mã nguồn là gì? Và phần mềm khi đến tay của bạn sử dụng có còn được gọi là mã nguồn hay không?
Mục đích của mã nguồn
Mục đích chính của mã nguồn là làm nền tảng để tạo ra các phần mềm. Ngoài ra mã nguồn còn có nhiều mục đích khác như: hạn chế cho những người có kĩ năng mới có thể truy cập, những người có quyền hạn với mã nguồn mới có thể truy cập, điều chỉnh và cài đặt phần mềm.
Một mục đích khác nữa là giúp các nhà phát triển, lập trình viên khác có thể tiếp tục xây dựng chương trình tương tự trên các hệ điều hành khác, hoặc nâng cấp phiên bản hiện tại lên.
Tuy nhiên cũng là một bài toán, với lập trình thì sẽ có vô vàn cách giải quyết, thế nên việc ghi chú lại mục đích của dòng mã là rất cần thiết. Để các lập trình viên, các nhà phát triển khác hiểu người đi trước đã làm gì, sau đó họ sẽ tiếp bước thực hiện công việc.
Tầm quan trọng của mã nguồn
Việc xây dựng hình ảnh một website chuyên nghiệp trong thời đại công nghệ số ngày càng quan trọng. Điều này dẫn đến việc tầm quan trọng của mã nguồn – source code cũng được tăng cao. Không chỉ xây dựng một website với giao diện thân thiện, thao tác dễ dàng, tiện lợi với người dùng, mã nguồn còn giúp trang web của bạn tối ưu hóa công cụ tìm kiếm chuẩn SEO.
Mã nguồn còn ảnh hưởng lớn đến sự tồn tại website của bạn. Việc bỏ ra chi phí đắt đỏ để có được mNSeột thiết kế web ưng ý không phải là lựa chọn của hầu hết của các công ty. Đối với doanh nghiệp vừa và nhỏ, họ sẽ rất ngại việc thuê một lập trình viên chuyên nghiệp cùng số tiền khổng lồ. Nhưng các nhà lãnh đạo họ cũng ý thức được rằng nếu mã nguồn không rõ xuất xứ sẽ dẫn đến đêm dài lắm mộng vì chẳng biết khi nào quả bom nổ chậm này sẽ tự dưng phát nổ. Hoặc khi dùng “đồ lậu”, bản crack, bạn sẽ dễ bị đánh cắp thông tin, cài mã độc bởi các hacker vì lỗ hổng của mã nguồn không rõ nguồn gốc ngọn ngành.
Nếu bạn trình bài ý tưởng cho bên thiết kế, hãy cố gắng thỏa thuận với họ về việc nắm giữ mã nguồn. Các doanh nghiệp lớn vì tránh đi nỗi lo không biết web mình ra đi khi nào, họ thường nhất quán với nhau về việc bàn giao source code. Tuy vậy, vẫn có rất nhiều tổ chức không đồng ý việc chuyển giao mã nguồn cho doanh nghiệp vì khi làm vậy, họ sẽ mất đi tầm ảnh hưởng và tiếng nói của mình. Phía website họ sẽ ít phụ thuộc hơn vì giờ đây mã nguồn đã nằm trong tay họ. Thế nên, tránh việc giảm đi tầm quan trọng của mình, nhiều lập trình viên sẽ không giao cho bạn. Khi đấy, bạn sẽ buộc lòng mua những gói trả phí đắt hơn.
Các loại mã nguồn (source code)
Có 2 loại mã nguồn là mã nguồn đóng và mã nguồn mở. Điểm khác biệt chính giữa chúng là chi phí cho bản quyền và mục đích thực hiện.
Mã nguồn mở
Với mã nguồn mở, cộng đồng có thể tham gia vào chỉnh sửa, đóng góp sao cho phần mềm, ứng dụng đó tốt hơn; hoặc tuỳ chỉnh để phù hợp với mục đích sử dụng.
Mã nguồn mở giúp cho các sinh viên, học sinh và những người muốn tìm hiểu về lập trình có một bộ mã hoàn chỉnh để tham khảo cũng như phục vụ mục đích học tập.
Mã nguồn mở và phần mềm mã nguồn mở thường được phát hành dưới giấy phép như GNU General Public License. Để người dùng có thể tải về sử dụng, tuỳ biến một cách hoàn toàn hợp pháp.
Mã nguồn đóng
Mã nguồn đóng ở xung quanh bạn, chúng là những ứng dụng, phần mềm bạn đang sử dụng như: Windows, Office, Photoshop,… Chúng là những phần mềm có bản quyền và được đóng gói lại, khi đến tay bạn chúng chỉ có các lệnh thực thi chứ không có mã nguồn.
Có nhiều lý do những nhà phát triển đó không giao mã nguồn cho bạn, trong đó có 2 lý do chính là:
- Bảo vệ quyền sở hữu trí tuệ.
- Ngăn chặn khách hàng sử đổi mã nguồn gây hư hại phần mềm hoặc tạo ra những cuộc tấn công có quy mô.
Với giấy phép độc quyền mã nguồn, đồng nghĩa các hành vi cố tình xem mã nguồn để khám phá hoặc cố ý sửa đổi mã nguồn là phạm pháp. Nhờ các công nghệ mã hoá mã nguồn ngày một hiện đại sẽ làm việc xem hay tác động sẽ trở nên cực kì khó khăn, và đôi khi là không thể ở một số thời điểm.
Cấu trúc của mã nguồn
Mỗi một chương trình sẽ có một bộ mã nguồn riêng. Chúng có thể được lưu trong một hoặc nhiều file khác nhau. Thông thường với những chương trình phức tạp mã nguồn sẽ được lưu riêng biệt từng tệp với từng chức năng tạo thành một cây khổng lồ được gọi là cây nguồn (tree source).
Mã nguồn thường sẽ được lưu trong ổ cứng của máy tính, usb, đĩa hoặc bất cứ nơi nào có thể lưu trữ dữ liệu một cách an toàn.
Một số tiêu chí so sánh giữa hai loại mã nguồn
Để bạn có thể chọn một loại mã nguồn phù hợp với dự án của mình, Tino Group sẽ đưa ra một số tiêu chí bao gồm: chi phí, sự hỗ trợ, mức độ bảo mật và khả năng nâng cấp của 2 loại mã nguồn nhé!
Chi phí
- Mã nguồn mở: miễn phí nhưng đơn giản. Bạn không thể điều chỉnh quá nhiều theo ý kiến riêng của bản thân. Riêng trong lĩnh vực công nghệ, cái rẻ thường là cái không bền hoặc kém chất lượng. Và đặc biệt là mã nguồn mở khá ít chức năng.
- Mã nguồn đóng: chi phí đắt đỏ hơn nhưng chất lượng đi đôi với đồng tiền. Website của bạn sẽ sở hữu những chức năng đa dạng, trải nghiệm mượt mà, thân thiện với người dùng. Hơn hết, với các phiên bản thay đổi chỉnh sửa sau, chi phí phát sinh là không cao vì lập trình viên đã quen với kết cấu nguồn của bạn.
Hỗ trợ
- Mã nguồn mở: bạn sẽ gặp khó khăn trong việc được tư vấn hỗ trợ vì sử dụng source miễn phí. Thế nên, trong suốt quá trình hoạt động sẽ có đôi chút chật vật yêu cầu bạn phải biết tự xử lý các vấn đề phát sinh.
- Mã nguồn đóng: nhà thiết kế sẽ chịu trách nhiệm hỗ trợ, tư vấn cho bạn vì chính họ là người làm ra và hơn hết, bạn là khách hàng tiềm năng của họ
Độ bảo mật
- Mã nguồn mở: được viết và kiểm duyệt bởi một đội ngũ chuyên nghiệp nhưng mã nguồn mở vẫn có thể bị tấn công bởi các hacker vì thiếu bảo mật tuyệt đối. Thông tin của bạn có thể bị đánh mất và phát tán một cách tương đối dễ dàng.
- Mã nguồn đóng: đây là mã nguồn bản quyền, nghĩa là mã nguồn này được thiết kế theo ý kiến riêng của bạn vì thế cũng sẽ được bảo mật theo chính sách riêng. Mã nguồn này thường do các nhà lập trình nắm giữ nên họ sẽ có cách bảo vệ sản phẩm mình.
Nâng cấp
Cả hai đều sẽ được nâng cấp sau khi thỏa các điều kiện của nhà sản xuất. Có phần chủ động hơn trong việc tiến hành nhưng dù là mã nguồn mở hay đóng thì đều phải tuân thủ quy định nâng cấp.
Trên đây là tổng quan về kiến thức về mã nguồn. Hy vọng, qua bài viết bạn sẽ lựa chọn được mã nguồn phù hợp với nhu cầu và khả năng tài chính của mình. Hơn hết là tránh mắc những lỗi không đáng có và Tino Group chúc bạn sẽ có thể xây dựng một bộ source chất lượng giúp phần mềm/ website của mình “chất lừ” nhé!
Cách mã nguồn thực thi lệnh
Để có thể hiểu được cách giao tiếp giữa mã nguồn với máy tính, ta cần phải tìm hiểu thêm về mã máy.
Mã máy là gì?
Mã máy hay machine code là một loại ngôn ngữ được sử dụng để “nói chuyện” với CPU và “giao việc” cho CPU thực hiện. CPU chỉ có thể hiểu được duy nhất loại ngôn ngữ này, có 2 hệ mà CPU có thể hiểu là hệ nhị phân chỉ gồm 0 và 1; hệ cơ số 16 Hexadecimal bao gồm 0123456789ABCDEF.
CPU có thể hiểu ngay tức khắc và thực thi mã này mà không cần một quá trình trung gian nào cả. Để viết chương trình bằng loại mã như thế này thật sự rất khó, chúng không hề thân thiện với con mắt và bộ não của chúng ta.
Do đó, chúng ta có mã nguồn, nhưng CPU lại không đọc được mã nguồn.
Cách mã nguồn được CPU thực thi
Một trình biên dịch (compiler) được dựng nên để trở thành “thông dịch viên” biến mã nguồn được thực hiện bằng một ngôn ngữ lập trình sang một chương trình tương đương ở dạng ngôn ngữ máy để CPU có thể hiểu được.
Qua bài viết, chắc bạn cũng đã biết thêm về mã nguồn và những kiến thức mở nguồn đóng, mã nguồn mở. Hi vọng bạn sẽ tìm thêm được nhiều điều mới khác trong cuộc sống nhé.
Những câu hỏi thường gặp
Làm sao để đánh giá được mã nguồn có chất lượng hay không?
Có rất nhiều tiêu chí để đánh giá mã nguồn đó có chất lượng hay không. Ví dụ: mã nguồn đó có làm chính người viết khó khăn trong việc bảo trì, sửa lỗi hay không các quy ước về mã hoá và những quy ước riêng của ngôn ngữ lập trình; quy ước riêng về các biến của người viết mã đó,…
Làm thế nào để xem mã nguồn của các phần mềm tôi mua về sử dụng?
Câu trả lời tuỳ thuộc vào phần mềm bạn sử dụng. Nếu bạn mua bản quyền để sử dụng các phần mềm được thì khả năng rất cao bạn sẽ không thể xem mã nguồn của phần mềm đó, lý do là vì họ đã mã hoá mã nguồn và chỉ để lại những phần đủ để thực hiện nhiệm vụ phục vụ người dùng.
Nếu phần mềm đó được ghi là mã nguồn mở hoặc bạn tìm thấy chúng trên Github hoặc Gitlab thì chúc mừng, tỉ lệ cao là bạn sẽ có thể xem và chỉnh sửa mã nguồn đó tuỳ vào mục đích của bạn.
Tại sao mã nguồn mở được sử dụng phổ biến?
Có nhiều lý do để doanh nghiệp chọn mã mở, tiết kiệm chi phí là một trong số đó. Rõ ràng khoảng tiền chênh lệch giữa hai loại mã nguồn cũng là không nhỏ, chưa kể các chi phí phát sinh trong quá trình thực hiện. Lý do thứ hai có thể vì họ không muốn mạo hiểm. Lần đầu họ đầu tư cho việc xây dựng web nên không tránh khỏi việc dè chứng, e ngại. Lý do cuối cùng có thể xuất phát từ việc những lợi ích của hai mã nguồn chưa thực sự tạo ra được một khác biệt to lớn. Họ cảm thấy việc chênh lệch số tiền không tạo ra được khoảng cách giá trị xứng đáng mà họ muốn nhận được.
Ngôn ngữ lập trình cấp cao là gì? Ngôn ngữ lập trình cấp thấp là gì?
Ngôn ngữ lập trình cấp cao hay ngôn ngữ lập trình bậc cao là những ngôn có hình thức gần với ngôn ngữ tự nhiên của con người nhất, có tính độc lập cao và ít phụ thuộc vào các loại thiết bị hay trình biên dịch.
Hiện tại có hơn 245 ngôn ngữ lập trình bậc cao và nó vẫn đang tiếp tục tăng lên.
Ngôn ngữ lập trình cấp thấp hay ngôn ngữ lập trình bậc thấp được sử dụng để phát triển hệ điều hành mới hay sử dụng trong viết mã chương trình cơ sở, CPU máy tính chỉ có thể hiểu duy nhất loại ngôn ngữ này.
Có những loại mã nguồn nào khi viết website?
Khi làm website, các doanh nghiệp có xu hướng dùng mã nguồn mở hơn. Bảy cái tên được sử dụng nhiều nhất khi lập trình website bao gồm: WooCommerce, OpenCart, Magento, Drupal, Joomla, WordPress.