Nên học lập trình iOS bằng ngôn ngữ Swift hay Objective-C?
Ai nói Swift tốt hơn Objective C?

Nhiều người cho rằng Swift là một ngôn ngữ hết sức tuyệt vời. Theo tôi, điều đó không hoàn toàn đúng, vì thực sự, cả 2 ngôn ngữ đều rất tuyệt.

Tuy nhiên, có vài điểm khác biệt về Swift mà các bạn cần lưu ý nếu như đang phân vân trong việc lựa chọn ngôn ngữ để bắt đầu.

1. Chuyển đổi kiểu dữ liệu (ép kiểu)
Chuyển đổi kiểu dữ liệu sẽ khiến bạn phát điên khi code với Swift, vì bạn sẽ phải làm điều này hàng trăm lần trong code của bạn khi làm việc với objects. 

2. Kiểu Optional
Bạn cần quyết định xem khi nào thì sử dụng, và sử dụng cái gì giữa“?”, “!” và “??”. Thậm chí, ứng dụng của các bạn sẽ bị crash nếu như sử dụng chúng  không đúng cách.

Ngoài ra, bạn sẽ phải kiểm tra giá trị optional rất nhiều bằng cách sử dụng Optional binding, Optional chaining, Downcasting… Điều này là không cần đối với Objective C.

3. Xử lí lỗi trong Swift không phải là một chọn lựa
Bạn sẽ thường xuyên bắt gặp các từ khoá khó chịu như “try”, “catch”, “throw”. Kiểu xử lý lỗi này chỉ nên sử dụng trong quy trình debugging ở tất cả các ngôn ngữ lập trình khác. Nó khiến code của bạn trở nên bừa bộn hơn.

4. Initializer
Initializer có quá nhiều quy tắc phải tuân theo, điều này có thể khiến bạn bị rối.

Trong Objective C, bạn không cần bất kì Initializer nào.

5. Property
Trong Swift, property gắn với Enum, Struct, Initializer và Class.

Bạn cần 3 bước để sử dụng các property.
A.    Tạo 1 Enum, Struct, Initializer hoặc Class.
B.    Khai báo các property.
C.    Gọi Enum, Struct hoặc Class sau đó gọi property

Trong Objective C, chỉ 1 dòng code, bạn sẽ có tất cả getter, setter, instance variable. Ngoài ra, nó trông gọn gàng hơn và project của bạn sẽ dễ hiểu hơn.

6. Không Nil
App của bạn sẽ không compile, thậm chí bị crash khi bắt  gặp giá trị nil khi chạy, trong khi điều này không xảy ra với Objective C.

7. Array & Set phải có cùng kiểu trong Swift. 
Nếu dữ liệu trả về từ Internet có kiểu hỗn tạp, không đồng nhất, ví dụ như kiểu trả về bao gồm cả String lẫn Number, chắc chắn bạn sẽ phải vò đầu, bứt tóc với Swift. 

8.  Nhiều API không cho phép trong Swift.
Điều này có nghĩa là, có nhiều thứ bạn có thể làm dễ dàng với Objective C, nhưng không phải với Swift.

Bản dịch của Hoàng Đăng Trung, lập trình viên iOS tại TechMaster
Link bài viết gốc: https://www.linkedin.com/pulse/who-said-swift-better-than-objective-c-willie-shi

Tham khảo:

Hiện nay tại TechMaster đang có 3 khóa học về lập trình iOS, một khóa dạy bằng ngôn ngữ Objective-C, một khóa bằng ngôn ngữ Swift và một khoá Swift - Kết nối REST Web Service. Hình thức học tập rất linh hoạt cho bạn lựa chọn và sẽ có mức học phí khác nhau tùy theo bạn chọn học online, offline hoặc FlipLearning (kết hợp giữa online và offline). Ngoài ra bạn cũng có thể tham gia thực tập toàn thời gian tại TechMaster để rút ngắn thời gian học và nhanh chóng đi kiếm việc làm.