Bài viết được dịch từ trang web Big Nerd Ranch

Khi hãng Apple giới thiệu ra công chúng ngôn ngữ lập trình Swift, tôi đã nghe thấy một số người nói rằng "Hoan hô! Giờ đây tôi có thể trở thành một lập trình viên iOS mà chẳng cần phải học ngôn ngữ Objective-C!". Tôi xin có 3 thông điệp gửi đến những người đó như sau: 

  • Nếu bạn muốn trở thành một lập trình viên iOS thì bạn sẽ vẫn cần biết về ngôn ngữ lập trình Objective-C.
  • Objective-C là ngôn ngữ dễ học hơn Swift.
  • Một khi bạn đã biết về Objective-C thì việc chuyển sang học Swift sẽ rất dễ dàng.

Trước khi tiếp tục, hãy để tôi được nói trước rằng bản thân tôi rất yêu thích ngôn ngữ lập trình Swift. Cú pháp của nó thật sáng sủa. Trình biên dịch Swift sẽ bắt rất nhiều lỗi cho chúng ta; tôi chắc chắn vào điều đó bởi vì các ứng dụng viết bằng Swift có độ tin cậy tăng lên một cách đáng kể. Swift là một bước tiến lớn cho toàn bộ hệ sinh thái iOS và Mac OS X. Nhưng...

Lập trình viên iOS cần biết ngôn ngữ Objective-C
Lập trình viên iOS vẫn cần biết ngôn ngữ lập trình Objective-C

Nếu bạn muốn trở thành một lập trình viên iOS thì bạn sẽ vẫn cần biết về ngôn ngữ lập trình Objective-C.

  • Bạn không thể làm mọi thứ trong Swift. Ví dụ, nếu bạn muốn sử dụng một thư viện code C++ trong ứng dụng của bạn, bạn sẽ cần "nói chuyện" với các đối tượng C++ từ Objective-C. Swift có thể gọi các function C, nhưng tôi tin rằng nếu bạn đang làm việc với rất nhiều function và type của C thì bạn sẽ muốn viết code bằng Objective-C.
  • Cộng đồng đang nói chuyện bằng ngôn ngữ Objective-C. Có hàng ngàn đoạn code hữu ích viết bằng Objective-C trên StackOverflow và ở khắp nơi trên các blog của các lập trình viên iOS. Objective-C là ngôn ngữ chúng ta đã sử dụng trong 6 năm vừa qua để làm việc với các thư viện Cocoa Touch. Nếu bạn không thể đọc code Objective-C, bạn sẽ không có khả năng hiểu được những nguồn kiến thức quý báu đó.
  • Các framework được viết bằng Objective-C. Khi bạn có một bug, nó thường không lộ diện cho tới khi thực thi ở mức sâu trong code của Apple. Nếu bạn muốn hiểu điều mà trình debugger đang nói với bạn, thì bạn sẽ cần phải hiểu Objective-C.
  • Objective-C rất ổn định và đã được kiểm thử kỹ càng. Swift trông rất tuyệt, nhưng ngôn ngữ này đang trong quá trình phát triển và trình biên dịch thì chưa thực sự chín muồi. Nếu tôi đang đặt cược lớn vào việc phát triển một ứng dụng trong năm nay, thì tôi vẫn sẽ sử dụng Objective-C.

Objective-C là ngôn ngữ dễ học hơn Swift.

  • C là một ngôn ngữ lập trình thực sự khá đơn giản, và Objective-C là một sự mở rộng của ngôn ngữ C. Swift có nhiều quy tắc mà Objective-C không có. (Tôi với tư cách là một giảng viên, cũng đang cố gắng để tìm cách làm thế nào để giải thích về những quy tắc xung quanh các biến tùy chọn). Những quy tắc mở rộng đó làm cho trình biên dịch trở nên khá màu mè trong việc ép buộc viết code tốt, nhưng nó cũng đồng nghĩa bạn sẽ cần nhiều thời gian hơn để học về ngôn ngữ này.
  • Objective-C yêu cầu các lập trình viên phải rõ ràng. Ngôn ngữ Swift cho phép trình biên dịch làm nhiều công việc hỗ trợ cho lập trình viên. Điều này thì rất tuyệt - các lập trình viên sẽ phải gõ code ít đi, đúng không? - nhưng nó cũng đồng nghĩa rằng khi bạn nhìn vào một dòng code, nó sẽ không có ý nghĩa nhiều nếu thiếu một sự hiểu biết sâu sắc về ngữ cảnh mà đoạn code ở trong đó. Các ngôn ngữ lập trình rõ ràng thì dễ hiểu hơn đối với người mới bắt đầu.
  • Swift có một số construct mà Objective-C không có. Ví dụ, generic làm việc kiểm tra kiểu (type checking) thì tốt hơn trong Swift, nhưng nó khiến cho ngôn ngữ này trở nên phức tạp hơn đáng kể.

Một khi bạn đã biết về Objective-C thì việc chuyển sang học Swift sẽ rất dễ dàng.

  • Để Swift có thể hoán đổi qua lại với Objective-C, thì hãng Apple đã tạo Swift giống Objective-C rất nhiều. Các đối tượng, tham chiếu strong và weak, kế thừa thì giống hệt như trong Swift - chúng chỉ sử dụng cú pháp diễn đạt khác nhau mà thôi.

Thành thật mà nói, việc bạn học ngôn ngữ nào đầu tiên không quan trọng lắm; điều quan trọng là cuối cùng bạn sẽ biết cả hai ngôn ngữ. Và bạn sẽ cần học ngôn ngữ Objective-C.

Về tác giả bài viết:

Aaron Hillegass là người sáng lập ra trang web Big Nerd Ranch và là cựu nhân viên tại các công ty NeXT và Apple. Anh có gần 20 năm kinh nghiệm lập trình và giảng dạy về Objective-C, Cocoa, và gần đây nhất là iOS.

Khóa học lập trình di động tại Techmaster:

Để cài đặt MacOSX lên phần cứng không phải Apple liên hệ chuyên gia cài Hackintosh:

  • Nguyễn Minh Sơn: 01287065634
  • Huỳnh Minh Sơn: 0936225565
  • Website: caidatmacos.com

Tham khảo:

Hiện tại ở TechMaster đang có 2 khóa học về lập trình ứng dụng iOS là "Lập trình iOS Objective-C""Lập trình iOS Swift". Mỗi bài học là một ứng dụng cụ thể. Học viên có toàn bộ mã nguồn và được hướng dẫn từng bước để thực hiện. Học viên đăng ký học được xem học liệu vĩnh viễn. Khóa học liên tục được cập nhật bài giảng mới, công nghệ mới khi có.