So sánh swift và objective c

Objective–C và Swift là hai ngôn ngữ quen thuộc trong lập trình ứng dụng iOS. Tuy nhiên, Swift được Apple - nhà sáng tạo ra nó khẳng định là bước tiến mới, thay thế Objective-C trong ngôn ngữ lập trình ứng dụng iOS. Swift ra đời với mục tiêu mang lại những khác biệt cho người sử dụng ban đầu còn khiến các nhà lập trình ứng dụng cảm thấy ngạc nhiên và bối rối thậm chí hiện nay vẫn còn rất

Apple và IBM đang hướng đến Swift

Sự ra đời của Swift chứng kiến sự hợp tác lịch sử giữa Apple và IBM, đây là sự hợp tác mang lại nhiều lợi ích cho Apple, IBM đặc biệt là các nhà lập trình IOS. Sự tham gia của IBM trong cuộc đầu tư, phát triển Swift được xem là cơ hội tốt để phát triển, khai thác, chia sẻ các nguồn lực của IBM và sử dụng Swift Sandbox để mang lại những trải nghiệm nhanh chóng và tuyệt vời hơn. Trong khi đó, Objective – C nằm ngoài sự hợp tác này dẫn đến việc ngôn ngữ này có rất ít những phiên bản cập nhật có khả năng tương thích cao như Swift.

Những ứng dụng đã được lập trình bằng ngôn ngữ Objective khó có khả năng được viết lại với ngôn ngữ lập trình mới. Nói cách khác, sự thay đổi gần đây nhất của Objective – C để dễ dàng hơn khi chuyển đổi thành Swift. Theo thông báo của Tim Cook gửi đến toàn bộ nhân viên khi hợp tác với IBM: “Sự hợp tác giữa Apple và IBM sẽ kết hợp được khả năng tương tác thân thiện của phần cứng và phần mềm trong các thiết bị của chúng ta với kinh nghiệm cũng như trình độ chuyên môn sâu trong lĩnh vực phân tích dữ liệu của IBM”. Điều này cũng là nền tảng để Craig Federighi của Apple tuyên bố: “Chúng tôi nghĩ Swift sẽ là ngôn ngữ lập trình chủ yếu trong thời gian tới, ngôn ngữ mà mọi người sẽ sử dụng để lập trình trong những thế kỉ tiếp”.

Ít code hơn, ít legacy hơn

cũng ít mã code và legacy hơn. Swift được xem là một ngôn ngữ súc tích để lập trình, điều này giúp Swift có sự sẵn sàng tốt hơn ngôn ngữ khác. Tuy cô đọng nhưng không có nghĩa là Swift đơn giản, thỉnh thoảng ngôn ngữ này rất khó để sử dụng nhưng không thể phủ nhận những lợi ích nó mang lại đặc biệt là có khả năng tái sử dụng cao. Một ví dụ thực tiễn có thể chứng minh được điều này là phần mềm Lyft. Nó được viết theo ngôn ngữ Swift từ những ý tưởng nền tảng. Ý tưởng này khá mạo hiểu bởi vì nhóm tạo ra Lyft bằng việc sử dụng ngôn ngữ Swift từ những ngày đầu Swift ra đời và trong suốt quá trình không ngừng cải tiến. Ứng dụng có 75000 dòng chứa khoảng 25000 mã code. Sự cải tiến của Swift không ảnh hưởng đến sự vận hành của Lyft, không gây khó khăn cho khách hàng trong quá trình sử dụng. Đây là những nhận định về Swift của nhóm sáng lập và khách hàng của ứng dụng Lyft.

Swift ít lỗi hơn

Swift là ngôn ngữ lập trình có thể tránh được nhiều lỗi. Điều này được hỗ trợ bởi cú pháp và ngôn ngữ của Swift có thể loại bỏ được nhiều loại lỗi phổ biến của ngôn ngữ Objective. Sự vận hành ổn định này giúp tránh được những gián đoạn không mong muốn. Tuy không hoàn toàn tránh được những mã xấu nhưng lập trình viên hoàn toàn có thể được bảo vệ để tránh mắc lỗi. Kiểm soát được chất lượng được xem làm một trong những khả năng vượt trội của Swift khiến nó trở thành một ngôn ngữ lập trình an toàn.

Swift nhanh hơn

Về tốc độ, Swift nhanh hơn với sự hỗ trợ của thuật toán C++. Báo cáo của một nghiên cứu về Swift và hiệu suất C++ cho thấy để tạo nên một câu chuyện dài súc tích hơn, Swift 1.2 chỉ chậm hơn không đáng kể so với những đối thủ cạnh tranh. Tuy nhiên, Apple đang không ngừng nỗ lực để cải thiện tốc độ của Swift và hiện nay đã tạo nên được những khác biệt trong những phiên bản Swift sau này. Swift 2.0 đã đánh bại được C++ trong nhiều thuật toán máy tính như Mandelbrot. Objective-C chậm hơn vì nó chứa C API legacy.

Chính thức được Apple giới thiệu tại hội nghị WWDC 2014, Swift là ngôn ngữ lập trình hoàn toàn mới, được phát triển với định hướng sẽ thay thế cho bậc tiền bối của mình - Objective-C. Đến nay, sau 2 năm ra mắt, Apple đã chính thức đưa ngôn ngữ đầy tiềm năng này trở thành ngôn ngữ mã nguồn mở, tạo nhiều thuận lợi hơn cho các lập trình viên iOS.

Dễ nhận thấy, tuy Swift là một ngôn ngữ mới nhưng lại có nhiều ưu điểm vượt trội hơn, đặc biệt ở khoản nhanh, đơn giản và hiệu năng xử lý tốt hơn so với Objective-C rất nhiều. Và một điểm mạnh không thể nhắc tới đó là tính năng Xcode Playgrounds, giúp các lập trình viên (LTV) có thể xem nhanh kết quả ở màn hình kế bên theo thời gian thực, giúp đẩy nhanh quá trình tạo ra ứng dụng.

Swift và Objective-C – Chọn bên nào, bỏ bên nào?

Theo Ông Craig Federighi - phó chủ tịch kĩ thuật phần mềm Apple cho biết "Chúng tôi nghĩ Swift là một ngôn ngữ lập trình lớn kế tiếp, thứ sẽ được tất cả chúng ta dùng để phát triển ứng dụng và cả lập trình hệ thống trong vòng 20 năm tới. Chúng tôi nghĩ rằng Swift nên có mặt ở mọi nơi và cho mọi người".

So sánh swift và objective c

Vậy với định hướng này, các lập trình viên iOS tương lai nên chọn hướng tiếp cận nào (học Objective-C hay Swift hay cả 2) mới là phù hợp? Thật không thể phủ nhận những ưu thế nổi trội của Swift, tuy nhiên với tuổi đời còn khá trẻ nên cần nhiều thời gian để phát triển cộng đồng, do đó, khoảng thời gian để Swift có thể thay thế hoàn toàn Objective-C sẽ còn mất một thời gian dài.

Ngoài ra, phần lớn các ứng dụng iOS trong nước hiện nay đều viết bằng ngôn ngữ Objective-C và các LTV còn phải tiếp tục duy trì và cải tiến các ứng dụng đó. Trong khi chỉ số ít công ty sử dụng Swift cho một vài dự án, vậy thì gần như các công việc trong lĩnh vực lập trình iOS hiện nay đều dành cho các LTV sử dụng thành thạo ngôn ngữ Objective-C. Và đương nhiên, nhu cầu tuyển dụng LTV iOS thành thạo Objective-C vẫn chiếm đa số.

Thiết nghĩ, để có sự chuẩn bị tốt nhất, các LTV iOS tương lai nên tiếp cận Objective-C trước và bổ sung thêm kiến thức Swift. Việc này giúp tạo lợi thế trong công việc và khi ứng tuyển, ngoài ra, vững cả 2 ngôn ngữ này giúp cho các LTV đáp ứng được nhu cầu thị trường hiện tại và sẵn sàng khi thời đại của ngôn ngữ Swift lên ngôi.

(Tham khảo: 9to5mac.com, makeuseof.com, skilledup.com,...)


So sánh swift và objective c
Bạn có biết?

Hiện nay có 2 hình thức học Swift phổ biến:

  1. Tự học qua các nguồn tài nguyên có sẵn, cách này đòi hỏi cao tính tự giác, chủ động. Xem các nguồn tài nguyên tự học tại đây.