Điểm nổi bật, hạn chế và sự thay đổi lớn nhất trong phát triển Swift của iOS
Tháng 10 năm 2018, Swift chính thức được đưa vào một trong top 10 ngôn ngữ lập trình trong TIOBE Index, một thành tựu đáng kể trtrong hai năm kể từ khi nó ra mắt. Từ khi Apple ra mắt ngôn ngữ lập trình này vào năm 2004, Swift đã phát triển nhanh có sức hấp dẫn và được gọi là "Objective-C ...
Tháng 10 năm 2018, Swift chính thức được đưa vào một trong top 10 ngôn ngữ lập trình trong TIOBE Index, một thành tựu đáng kể trtrong hai năm kể từ khi nó ra mắt. Từ khi Apple ra mắt ngôn ngữ lập trình này vào năm 2004, Swift đã phát triển nhanh có sức hấp dẫn và được gọi là "Objective-C without C"
Theo mỗi thông báo của Apple tại WWDC năm 2014, toàn bộ mục đích của ngôn ngữ lập trình Swift là làm các nhiệm vụ phát triển dễ dàng hơn giúp các lập trình viên tạo các app iOS. Bản chất của ngôn ngữ lập trình này là cho phéphép lập trình viên code nhanh hơn với Objective-C. Ý tưởng là kết hợp những điểm nổi bật của C và Objective-C, tuy nhiên lại bỏ những vấn đề tương thích đã tồn tại trước đó.
Đội ngũ lập trình viên của Apple mất khoảng bốn năm để tạo ra và ra mắt Swift. Tuy nhiên đối với sự bất ngờ của thế giới thì không một ai bên ngoài biết đến nó cho đến khi Apple ra mắt. Và khi mà cả thế giới khám phá ra cách phát triển iOS với Swift thì thật vui là Apple đã làm ra điều đó.
Những thương hiệu lớn như LinkedIn, Twitter, Fibit, Coursera, Lyft, vân vân đều đã và đang sử dụng Swift. Tuy nhiên, những gì mà ngôn ngữ này có trước mắt là sự cạnh tranh gay gắt của những đơn vị lớn khác muốn gây sức ảnh hưởng đến thị trường. Hãy cùng khám phá xem những điểm nổi bật, hạn chế và những hạn chế của Swift là gì nhé.
Trước tiên bắt đầu với phát triển Swift.
Swift là gì?
Wikipedia giải thích Swift là
"đa mục đích, đa mô hình, ngôn ngữ lập trình tuân theo được Apple Inc phát triển cho iOS, macOS, watchOS, tvOS, Linux và z/OS"
Swift hiện tại là một ngôn ngữ lập trình mã nguồn mở. Mục đích là tạo một ngôn ngữ lập trình âm thanh bằng cách mở rộng công nghệ đến tất cả. Do đó chỉ với 3 năm ra mắt, Swift có thể tự hào nắm giữ được một cộng đồng lớn và một loạt các công cụ của bên thứ ba.
Không giống như Objective-C, Swift thân thiện với những lập trình viên mới vào nghề hơn. Nó tương thích với các thiết bị có hệ điều hành iOS7, OSX10.9 và cao hơn.
Giá trị cốt lõi mà Swift hướng đến là an toàn và làm cho các dòng code trở nên tự nhiên hơn.
Sự đi lên của Swift trong phát triển Swift cho iOS.
Sáng tạo và ra mắt.
Đây là Chris Lattner, Giám đốc cấp cao của phòng công cụ lập trình viên của Apple, chính là người đã bắt đầu phát triển ngôn ngữ lập trình Swift từ năm 2010 cũng là một phương án thay thế cho Objective-C. Sau bốn năm nghiên cứu miệt mài và bí mật, Apple cũng đã giới thiệu ngôn ngữ này với thế giới tại Hội nghị các nhà phát triển toàn cầu năm 2014.
Tất cả các lập trình viên iOS phải chuyển sang dùng ngôn ngữ lập trình mới này vì sợ gây ra gián đoạn lớn. Apple vẫn tiếp tục đầu tư vào Objective-C và cứ tiếp tục như thế cho đến khi nó sẵn sàng ra mặt một ngôn ngữ phát triển mobile iOS an toàn hơn Objective-C.
Sau này, tháng 1 năm 2017. Lattner thậm chí đã phát triển ttrên tờ Accidental Tech Podcast rằng:
"Ban đầu, thực sự chỉ có tôi loay hoay và không ai biết bởi vì nó chưa là thứ gì để có thể biết đến cả. Nhưng cuối cùng thì cũng đã nghiêm túc hơn một chút [...] Chúng tôi có một vài người nghiên cứu bán thời gian và tôi đã thuyết phục quản lý của mình rằng việc này sẽ thật thú vị nếu như chúng tôi có một vài người nghiên cứu về nó như vậy"
Đến năm 2014, những lập trình viên đã cho ra phiên bản beta. Chỉ trong một tháng ra mắt, tờ Tim Cook thông báo rằng có 11 triệu lượt tải xuống đã được thực hiện.
Phản hồi
Trong khi các phản hồi ban đầu là của một phần mềm hỗn hợp, ngôn ngữ vẫn đang trên đường phát triển, giới thiệu các cải tiến bằng cách phát hành. Sau đó, năm 2015 đã chứng kiến nó trở thành ngôn ngữ "được yêu thích nhất" dành cho phát triển app iOS.
Từ sự thúc đẩy này, Apple đã khiến Swift thành mã nguồn mở trong cùng năm. Kết quả, năm 2017, Swift trở thành ngôn ngữ phát triển nhanh nhất trong lịch sử của TIOBE Index, tiến vào danh sách top 10 vào tháng 3 năm 2017. Ngay cả sau khi phát hành Swift 4.0 vào tháng 9 năm 2017 và Swift 4.2 tháng 9 năm 2018, nó vẫn duy trì ở #10 cho đến năm 2018.
Tuy nhiên, năm 2019 thì nó lại tụt xuống 4 bậc vì những lý do mà chúng tôi sẽ thảo luận sau này trong blog.
Tìm hiểu thêm khóa học lập trình iOS Swift 12 buổi và Swift mobile 6 tháng tại Techmaster Việt Nam
Những điểm nổi bật của Swift
Khi chúng ta nhắc đến tất cả những điểm nổi bật trong việc phát triển app với Swift thì chủ yếu đều là so sánh với Objective-C. Hãy cùng tìm hiểu nhé.
Quy trình phát triển nhanh hơn
Swift là ngôn ngữ đơn giản, rõ ràng, có ý tính tương tác, ngữ pháp và cú pháp đơn giản hóa của nó giúp việc đọc và viết dễ dàng hơn bao giờ hết. Ưu điểm ngắn gọn của nó rút ngắn thời gian phát triển do một khối ít hơn code có thể thực hiện cùng tác vụ như Objective-C dùng để thực hiện các đoạn code dài hơn.
Nhờ có ARC - Automatic Reference Counting - việc sử dụng bộ nhớ của Swift được quản lý tốt hơn nên tiết kiệm công sức cho người viết code khi phải làm thủ công rất nhiều.
Cải thiện an toàn
An toàn luôn là một ý tưởng cốt lõi sau phần giới thiệu của Swift đến các lập trình viên iOS. Chắc chắn ít lỗi hơn nhờ khả năng xử lý lỗi và nâng cấp hệ thống gõ. Do đó có ít sự cố code hơn so với Objective-C.
Các lập trình viên Swift có thể ngay lập tức nhận ra những lỗi code và khắc chúng luôn vì có vòng lặp phản hồi ngắn. Sửa lỗi cần mất một khoảng thời gian ngắn và ngăn chặn việc triển khai code chất lượng thấp.
Hiệu suất tốt hơn
Swift (tiếng anh nghĩa là "nhanh") đúng là tên dành cho ngôn ngữ lập trình này đối với việc phát triển ứng dụng iOS. Ngôn ngữ này rất tập trung vào tốc độ và hiệu suất tốt hơn nữa. Thực tế, bản phát hành đầu tiên của Swift đã khẳng định hiệu suất tăng đến 40% so với những gì Ọective-C đạt được trước đó. Và điều này đúng phần lớn với những gì mà ngôn ngữ lập trình này hứa hẹn sẽ thực hiện được.
Dấu chân bộ nhớ ít hơn với các thư viện động
Swift cho phép bạn giảm nhẹ bộ nhớ thông qua các thư viện động. Bộ nhớ sẽ không bao giờ bị tắc nghẽn do không có các thư viện tĩnh. Vì các thư viện động chỉ có một bản copy trong một tệp, việc giảm các dấu chân sẽ có lợi cho bạn khi bạn sử dụng một điểm của bên thứ ba code để xây dựng một ứng dụng Swift.
Hỗ trợ nhiều thiết bị
Ngôn ngữ này không chỉ dành cho việc phát triển iOS của iPhone và iPad. Nó có nghĩa là hỗ trợ tất cả các thiết bị của Apple (như Mac, Apple Watch, và Apple TV). Bên cạnh đó còn hỗ trợ Linux nữa.
Có một khoảng thời gian cũng tôi nghe đồn bị ấn tượng với Swift, thậm chí Google còn dùng Swift để phát triển App thay cho Java. Tuy nhiên bây giờ tất cả chúng ta đều biết là Kotlin chính là tương lai của phát triển app android.
Các khả năng full stack
Swift dành chcho máy đầu cuối, hợp nhất các công nghệ backend mà những lập trình viên cần. Đây chính là những gì mà đám mây có thể mang lại cho bảng. Sử dụng Swift cũng chỉ giống như Java cho các ứng dụng backend cũng như frontend đều có thể giúp bạn chia sẻ và tái sử dụng mã rộng rãi. Kết quả là thờthời gian phát triển ngắn hơn và ít mất công sức hơn ở những phần mã hóa.
Cộng đồng hỗ trợ mã nguồn mở rộng lớn
Từ khi Swift chuyển sang mã nguồn mở vào ngày 03 tháng 12 năm 2015, một cộng đồng lập trình viên lớn và sôi động hơn bao giờ hết đã hình thành xung quanh loại ngôn ngữ lập trình này. Và điều này khiến cho ngôn ngữ này dễ dàng học hỏi và lớn mạnh hơn vì có nhiều hỗ trợ mà những lập trình viên mới cần thiết.
Do đó, ngôn ngữ này sự đóng góp lớn từ những lập trình viên cho việc sửa lỗi, nâng cấp ngôn ngữ và thậm chí là thêm nhiều tính năng hữu ích hơn nữa.
Khả năng tương thích với Objective-C
Như tình huống hiện tại thì chúng ta đang thấy sự đồng tồn tại của Objective-C và Swift trong phát triển iOS. Thật ra có hai khả năng xảy ra; bạn không chỉ thêm các tính năng với Swift vào một mã đã được viết với Objective-C và ngược lại. Cả hai đều có thể dùng thay thế cho nhau trong cùng một dự án, khả năng tương thích giúp chúng tránh được rủi ro.
Khả năng học hỏi với Playgrounds
Người dùng có thể học một ngôn ngữ mới như Swift với một ứng dụng tên là Playgrounds. Ngay cả khi với một người không có kiến thức chuyên sâu về Swift thì vẫn có thể dễ dàng học ngôn ngữ này với Playgrounds.
Các lập trình viên Swift mới hơn dùng ứng dụng này để hỗ trợ họ trong việc viết cũng như thử nghiệm code của họ mà không cần tạo ra cả một app. Đây không chỉ rút ngắn thời gian học tập mà còn cả chu kỳ phát triển.
Hạn chế của Swift
Theo quy luật của tự nhiên, không có gì là hoàn hảo. Swift cũng có một số thách thức theo cách của nó, đó là cộng đồng xung quanh liên tục làm việc để giải quyết vấn đề.
Vẫn là một ngôn ngữ trẻ
Không thể phủ nhận sự thật là ngôn ngữ này đang phát triển lên toàn diện, nhưng cũng không bỏ qua sự thật rằng đây vẫn là một ngôn ngữ trẻ, đặc biệt là liên quan đến Objective-C. Đây ccũng là lý do vì sao các vấn đề cứ tiếp tục tăng lên theo thời gian và cần giải quyết.
Hơn nữa, Swift vẫn có một số lượng các thư viện và công cụ "riêng" rất hạn chế: Nhiều tài nguyên và công cụ có sẵn dành riêng cho các phiên bản Swift trước đó trở nên vô dụng đối với những bản phát hành sau này.
Rất ít thư viện và công cụ riêng
Bốn năm kể từ khi ra mắt và Swift vẫn không thể tự tin về một số lượng lớn thư viện riêng của chính mình. Trong đó trình quản lý bộ nhớ với những thư viện động giúp ích rất nhiều cho các lập trình viên thì thư viện riêng là mất vấn đề rất quan trọng.
Vấn đề tương tự như vậy cũng xảy ra với các công cụ riêng, làm cho Swift phải phụ thuộc vào các công cụ của bên thứ ba rất nhiều, theo đó phát sinh ra các vấn đề tương thích. Vấn đề lần này cũng là việc những tài nguyên có sẵn dành cho các phiên bản trước của Swift lại trở nên vô dụng với những bản phát hành sau này.
Talent Pool mới
Cộng đồng đang phát triển mạnh mẽ. Đúng vậy. Tuy nhiên, nếu chúng ta nhìn sang các cộng đồng lập trình viên khác thì cộng đồng này dường như vẫn là một talent pool đang ở những bước phát triển đầu tiên.
Tuy nhiên, nhu cầu đối với các lập trình viên Swift dường như chỉ tăng lên theo mức độ phổ biến ccủa nó. Do đó, vấn đề còn là khoảng cách talent nữa.
Không hỗ trợ cho các phiên bản cũ hơn của các hệ điều hành.
Swift chỉ dành cho phát triển app iOS chỉ từ iOS7, OSX10.9 và các phiên bản cao hơn. Do đó việc sử dụng nó cho các project cũ chạy trên những phiên bản OS cũ thực không khả dụng.
Tuy nhiên, hiện tại chỉ có khoảng 5% thiết bị đang dùng iOS6 và các hệ điều hành cũ nên vấn đề này sẽ sớm trở thành vấn đề không đáng phải lo ngại nữa.
Khả năng tương thích kém với các IDE và các công cụ của bên thứ ba
Như chúng tôi đã đề cập trước đó, Swift có khả năng tương thích kém với công cụ của bên thứ ba là do các bản cập nhật thường xuyên làm do tính thương tích với công cụ cũ không còn tồn tại. Điều này khiến cho việc tìm ra các công cụ đúng trở nên rất khó khăn.
Xcode, IDE chính thức của Apple là một công cụ tuyệt vời khi đi kèm với những công cụ và hỗ trợ riêng. Ngoài ra, các lập trình viên còn phải đối mặt cùng các vấn đề với trình biên dịch, cú pháp, highlighting, autocomplete, hay thậm chí là các công cụ refactoring.
Sự thay đổi lớn nhất trong Swift - Swift 4.2
Ngày 30 tháng 10 năm 2018, Swift 4.2 chính thức được ra mắt như một phiên bản ổn định. Đây là một bản phát hành chính cho ngôn ngữ lập trình và đã giới thiệu một số thay đổi lớn cho Swift. Hãy cùng xem có gì mới trong bản Swift này nhé
Các thay đổi về Generics
Swift 4.2 đã thực thi generics do đó có thể đề xuất hỗ trợ tốt hơn. Kết quả là số lượng yêu cầu bipolerate giảm làm cho code có thể được sử dụng nhiều hơn.
Các nâng cấp trong thư viện tiêu chuẩn
Bây giờ thư viện tiêu chuẩn có một loạt các tính năng mới như những cải tiến trong giao thức Hashable và một bộ giao thức ngẫu nhiên hoàn toàn mới cũng như các hàm.
Các cải tiến tương thích nhị phân
Bây giờ Swift gần nhất với một ABI ổn định mà nó từng có. Hiện tại nó đã được kích hoạt tương thích nhị phân đối với mọi bản phát hành ngôn ngữ trong tương lai.
Hỗ trợ chế độ biên dịch theo bó
Bây giờ Swift có chế độ biên dịch theo bó. Điều này dẫn đến thời gian xây dựng nhanh hơn. Ngoài ra cũng có những thay đổi trong quy ước gọi chu kỳ giữ/ phát hành. Vì vậy, kích thước mã giảm và thời gian chạy thì nhanh hơn.
Các nâng cấp trong Package Manager
Các mục tiêu Swift 4.2 được biên dịch theo chế độ bó của Swift. Tùy chọn đồng hồ mới trong dự án generate -Xcode cho phép bạn xem hệ thống tệp và nếu được yêu cầu thì tự động tạo dự án Xcode. Nó cũng đã thực hiện các cải tiến cho kế hoạch logic.
Liệu Swift 5.0 có gần với Corner?
Mặc dù trước đó có một bản phát hành được dự đoán là vào cuối năm 2018, bây giờ đầu/ giữa năm 2019 chúng ta sẽ được gặp lại Swift 5.0
Theo Dice:
"Sự ổn định ABI có nghĩa là ngôn ngữ này sẽ hỗ trợ những phiên bản cũ chứ không giải quyết hoàn toàn. Đội ngũ nghiên cứu cho rằng phiên bản 4.2 "nên" biên dịch với phiên bản 5, nhưng lưu ý bản phát hành 4.2 sẽ là bản cuối hỗ trợ Swift 3"
Kết luận
Sự phát triển của Swift trong bốn năm kể từ khi ra mắt thực sự đầy hứa hẹn và khích lệ. Các tính năng của nó dễ đọc và viết hơn, gọn gàng hơn, hình thức và cú pháp súc tích hơn. quy trình phát triển ngắn hơn, vân vân... làm cho nó trở thành một ứng cử viên tuyệt vời đối với Objective-C.
Các ưu điểm của nó rất nhiều, rất lớn làm lu mờ cả những khuyết điểm. Tuy nhiên về phần khuyết điểm, chúng tôi nghĩ vấn đề chỉ là thời gian mà thôi. Đã có nhiều thứ được cải tiến từ phiên bản Swift 4.2. Nên bây giờ chúng ta hãy chờ xem Swift 5 có gì mới nhé.