Lập trình iOS là gì

0
35

Lập trình iOS là gì? Bạn đã nghe về ngôn ngữ lập trình Swift?

Hé lộ quan trọng nhất tại WWDC năm nay là Swift – một ngôn ngữ lập trình hoàn toàn mới có thể giúp quá trình phát triển ứng dụng trở nên dễ dàng hơn, nhanh hơn và ổn định hơn, tất cả nhằm tạo ra những sản phẩm ứng dụng cho người dùng cuối tốt hết mức có thể. Nói một cách ngắn gọn, Swift được thiết kế để đáp ứng tất cả các nhu cầu của “coder”. Điều này liệu có khả thi?

Dĩ nhiên, chỉ trong vòng 1 tuần lễ, chúng ta chưa thể có câu trả lời chính xác nhất. Nhưng từ những gì Apple đã thể hiện, rõ ràng Swift là một ngôn ngữ lập trình rất giàu tiềm năng. Hãy cùng tìm hiểu những ý nghĩa sâu xa của Swift mà không cần phải đọc một dòng code nào cả, để hiểu được tầm nhìn và những chân trời rộng lớn mà các ngôn ngữ lập trình mới như Swift có thể mang lại.lap-trinh-ios-la-gi

Ngôn ngữ lập trình bậc thấp và bậc cao

Swift có rất nhiều đặc điểm nổi trội của các ngôn ngữ tân tiến nhất hiện nay

Có rất nhiều cách để ra lệnh cho một thiết bị thông minh (laptop, máy để bàn, smartphone, tablet…) làm chính xác những gì bạn muốn. Cách chính xác nhất nhưng lại khá phức tạp là viết các dòng lệnh bằng… mã máy (mã nhị phân) hoặc sử dụng viết mã Assembly. Khi viết mã Assembly, bạn sẽ phải viết từng câu lệnh chi tiết cho những hoạt động rất nhỏ, ví dụ như thay đổi một số trên bộ nhớ, thay đổi màu của một pixel trên màn hình… nói cách khác là tất cả các hành động nhỏ nhất mà phần cứng có thể thực hiện.

Nếu viết mã Assembly (hoặc mã máy), bạn có thể thực hiện những hành vi phức tạp nhất, đúng-với-mong-muốn nhất. Nhưng, hiển nhiên là khi sử dụng các ngôn ngữ bậc thấp (ngôn ngữ bậc thấp: xa với ngôn ngữ người và gần với ngôn ngữ máy) như mã máy hoặc mã Assembly, việc lập trình ứng dụng sẽ trở nên cực kỳ nhàm chán, vất vả và rất dễ mắc phải lỗi. Việc viết ra Safari hay thậm chí là Flappy Bird bằng mã Assembly cũng sẽ là bất khả thi.

Bởi vậy, bạn sẽ cần tới các ngôn ngữ lập trình bậc cao (high level). Thay vì thực hiện từng dòng lệnh nhỏ nhặt từ người lập trình viên, máy vi tính sẽ nhận một câu lệnh “bậc cao” từ coder và tự thực hiện dòng lệnh này. Các ngôn ngữ bậc cao giống với ngôn ngữ người ở chỗ chúng có cấu trúc ngữ pháp (syntax) rất rõ ràng với các giới hạn cụ thể về vị trí sắp xếp từ ngữ mà người dùng ngôn ngữ cần tuân theo.

Swift có cấu trúc bậc cao: đơn giản, chính xác, không thừa lexic hay operator

Nói ngắn gọn, bằng các ngôn ngữ bậc thấp, bạn sẽ phải mô tả tất cả các hành vi độc lập cần thiết để thực hiện toàn bộ tác vụ. Thậm chí, nếu bạn quên không ra lệnh “dùng tay làm điểm tựa”, người bạn (máy vi tính) của bạn có thể bị ngã (gặp lỗi) khi thực hiện tác vụ.

Chính điều này buộc con người phải sử dụng các ngôn ngữ lập trình bậc cao. Trong số các ngôn ngữ lập trình bậc cao, C là ngôn ngữ “kinh điển” nhất. Đây là ông tổ của nhiều ngôn ngữ lập trình phổ biến khác hiện nay, từ C++, Objective-C, C# cho đến cả Java và PHP. Trong số các ngôn ngữ chịu ảnh hưởng/biến thể từ C, Objective-C là lựa chọn truyền thống của Apple và cũng là nền tảng xây dựng nên iOS và Mac OS.

Nhưng, khi C đã có tuổi đời lên đến 40 năm và khi Objective-C cũng đã có tuổi đời lên đến 30 năm, Apple cần sự thay đổi. Câu trả lời là Swift.

Ngôn ngữ lập trình dạng script

Script programming language, thường gọi là ngôn ngữ script, đang dần trở nên phổ biến hơn trước đây rất nhiều. Thông thường, các ngôn ngữ lập trình bậc cao sẽ cần được biên dịch (compile) thành mã máy để có thể thực thi. Quá trình biên dịch được thực hiện bởi compiler là khi các câu lệnh bậc cao (ví dụ như “lấy lon Coca”) được chuyển thành các lệnh nhỏ, đơn giản mà máy tính có thể thực hiện.

Dựa trên syntax đặc trưng của ngôn ngữ, các dòng lệnh mà con người (các lập trình viên) có thể đọc được sẽ được chuyển thành mã máy, và nếu như quá trình biên dịch thành công, bạn sẽ nhận được một ứng dụng thực sự. Lưu ý rằng các file mã nguồn chưa qua biên dịch sẽ không có ý nghĩa gì với CPU cả.

Tuy vậy, quá trình biên dịch mã nguồn có thể sẽ mất rất nhiều thời gian. Như đã nói ở trên, nếu chưa đưa mã nguồn vào compiler, bạn sẽ không thể biết được liệu các dòng code mà bạn đã viết ra có thực sự hoạt động hoàn hảo hay không. Trong rất nhiều trường hợp, các lỗi trong dòng code của bạn sẽ không bị phát hiện cho tới khi compiler thực hiện nhiệm vụ của mình, và thậm chí khi đã biên dịch xong, bạn sẽ phải chạy chương trình để phát hiện nốt những lỗi còn lại. Tất cả những điều này khiến cho quá trình viết ứng dụng phần mềm trở nên rất chậm chạp.

Ngôn ngữ script khác với các ngôn ngữ này. Bạn có thể chạy các đoạn mã script vừa viết ra ngay lập tức, từ dòng này tới dòng tiếp theo. Bạn có thể kiểm tra kết quả của mình mà không cần chờ đợi quá trình biên dịch. Điều này giúp cho quá trình phát triển ứng dụng nhanh và dễ dàng hơn rất nhiều.

Song, các ngôn ngữ script cũng có giới hạn của chúng. Giới hạn đầu tiên là về tính năng: chúng không thể làm được các tác vụ phức tạp như các ngôn ngữ compile khác. Tệ hơn, chúng bị giới hạn về hiệu năng xử lý. Điều này khiến các ngôn ngữ script trở nên giới hạn hơn rất nhiều so với các ngôn ngữ compile và không được sử dụng để thực hiện các chương trình đòi hỏi tối ưu sức mạnh phần cứng.

Như vậy, các ngôn ngữ dạng script như Python rất dễ viết và test (kiểm thử), song chúng không mạnh mẽ và cũng không đủ nhanh để thực hiện các tác vụ phức tạp của ứng dụng. Nói cách khác, Python không thực sự phù hợp để viết các game nặng, vốn có yêu cầu phải tận dụng tối đa sức mạnh của thiết bị. Các ngôn ngữ lập trình truyền thống (ví dụ như Objective-C) mang tới hiệu năng khi chạy trên iPhone/iPad, cho phép tạo ra các ứng dụng phức tạp như iMovie hoặc Call of Duty. Song, việc sử dụng Objective-C thường đi kèm với một lượng lớn thời gian compile và test ứng dụng. Việc học cách viết Objective-C cũng là một quá trình dài, có thể gây khó khăn với các lập trình viên ít kinh nghiệm.

Nếu thực hiện được tất cả các lời hứa của Apple, Swift sẽ mang tất cả các điểm mạnh của cả 2 loại ngôn ngữ script và compile truyền thống. Trong một số thử nghiệm benchmark, Swift cho hiệu năng nhanh hơn Python và thậm chí là nhanh hơn cả Objective-C. Trên bộ IDE (phần mềm lập trình) Xcode của Apple, mã nguồn Swift sẽ được đồ thị hóa dựa trên tính năng playground theo thời gian thực. Điều này có nghĩa rằng lập trình viên có thể chạy và test mã nguồn Swift một cách dễ dàng không kém gì Python cả.

Facebook Comments