Tản mạn về ngôn ngữ Swift
Chào các bạn, lâu rồi mình mới lại ngồi viết blog chia sẻ về công nghệ. Trong thời gian này do được làm quen với iOS và cụ thể là ngôn ngữ lập trình Swift nên mình xin mạn phép chia sẻ một vài điều hay ho của ngôn ngữ lập trình này.
I. Một chút sơ qua về sự xuất hiện
Xưa thật là xưa.... mà cũng không xưa lắm
Trong 1 khoảng thời gian dàiiii đổ về trước năm 2014, khi nhắc đến các ứng dụng về iOS là người ta sẽ chỉ biết ngay đến ngôn ngữ lập trình Objective-C. Giới thiệu sơ qua chút, Objective-C là một ngôn ngữ cải tiến từ C , advanced hơn khi được thêm vào hướng đối tượng và dynamic runtime. Mặc dù tính bảo mật cao tuy nhiên Objective C (theo cá nhân mình thấy) cú pháp khá là lằng nhằng. Khiến các lập trình viên khá là điên đầu khi bắt tay vào làm quen. Ơn trời, năm 2014, Apple sau một thời gian phát triển đã cho ra mắt một bộ bí kíp mới, đơn giản hơn - Swift, được miêu tả như "ObjectiveC without the C". :v
Swift về cơ bản, theo lời giới thiệu của Apple khi ra mắt, là một ngôn ngữ nhanh nhẹn, an toàn, hiện đại và cho phép các lập trình viên tương tác tốt hơn với ứng dụng trong quá trình phát triển. Nó có nhiều tính năng mới dễ sử dụng như closures, generics, type inference,... và quan trọng là cú pháp rất đơn giản, được phát triển dựa trên nền tảng Objective-C. Nói nôm na là Objective-C là cha, còn C thì là ông nội vậy :D. vì nó có những gì tinh tuý nhất của 2 ngôn ngữ trên. Với sự hỗ trợ của Cocoa và Cocoa Touch, hai môi trường phát triển phần mềm siêu khổng lồ cho các thiết bị chạy iOS, Swift dần dần định nghĩa lại việc phát triển phần mềm đối với những sản phẩm của Apple và nhanh chóng trở thành một trong những ngôn ngữ được ưa chuộng nhất ngay từ khi ra mắt.
Trong vòng 6 năm tính tới thời điểm hiện tại, Swift đã trải qua rất nhiều phiên bản và cột mốc đáng nhớ. Năm 2015, Apple chính thức biến Swift trở thành một ngôn ngữ open sourced. Làm cho ngôn ngữ này không ngừng được cải tiến và hoàn thiện hơn. Chỉ ngay trong tuần đầu sau thông báo trên, đã có 60000 người download. Đến năm 2017, Swift đã lập kỷ lục khi là ngôn ngữ phát triển nhanh nhất lịch sử. Đến tháng 3 năm 2019, phiên bản Swift 5.0 (hiện tại) ra đời với những cải tiến vượt trội, stable, được tích hợp cho tất cả các thiết bị của Apple.
II. Điểm vượt trội
1. Tốc độ trong quá trình phát triển
Swift rất dễ dàng trong việc đọc hiểu và tường minh trong việc code vì đặc trưng Syntax của nó hướng đến - đơn giản. Nó giảm đi lượng code performing so với Objective-C. Ngoài ra, nó còn hỗ trợ ARC (Automatic Reference Counting), quản lý memory usage của ứng dụng, vì vậy lập trình viên chúng ta không cần phải mất thời gian cho việc đó.
Ngoài ra bản chất Swift , với cú pháp đơn giản và tối ưu trong performance, cũng có tốc độ rất đáng nể. Theo trang chủ của Apple, Swift nhanh hơn 2,6 lần so với Objective-C và 8,4 lần so với Python. :D
2. Mức độ mở rộng project
Cái này thì không thể bàn cãi, vì Apple đã khẳng đinh "Swift là tương lai". Các phiên bản hoàn thiện và nâng cấp được cập nhật đều đặn. Và lập trình viên có thể dễ dàng update những feature mới cho project. Chắc chắn là Apple luôn yêu thương và đầu tư cho Swift hơn rồi :D Vì vậy có thể khẳng định Swift còn được phát triển dài dài.
3. Performance ổn định và bảo mật
Như cái tên của nó, ngôn ngữ Swift là để... swift (nhanh, mượt mà). Cái này mình đã nói ở trên về tốc độ. Mình hay nói nhanh thì ẩu. Tuy nhiên Swift thì trái ngược. Trải qua nhiều năm, rất nhiều các bài tests của các lập trình viên đã chỉ ra về tốc độ và performance của Swift là tuyệt vời, luôn đồng nhất.
Một điểm nữa, mà mình thấy là tốt nhất, đó là vấn đề bảo mật của Swift. Swift hỗ trợ một bộ công cụ handle typing và error rất perfect, giúp ngăn các exception khiến phần mềm bị crash. Ngoài ra, Xcode còn hỗ trợ để phát hiện các lỗi của Swift 1 cách nhanh chóng, làm cho thời gian debug giảm đi rất nhiều.
4. Dễ dàng tích hợp với Objective-C
Swift có thể kết hợp tốt với Objective-C trong cùng 1 project. Vì nó phát triển từ Objective-C. Điều này thật sự hữu ích đối với việc phát triển ứng dụng lớn, hoặc nâng cấp các ứng dựng từ Objective-C.
5. Full-stack và hỗ trợ cross-device
Apple đã và đang hướng Swift như vậy. Tương tự với Javascript. Swift có thể sử dụng ở cả Backend lẫn Frontend để dễ dàng trong việc chia sẻ và reuse code, làm giảm thời gian phát triển và tối ưu mọi mặt.
Ngoài ra, Apple còn hỗ trợ Swift cho tất cả các thiết bị của họ: Mac, MacBooks, iPhones, iPads, Apple TV and Apple Watch. Ngoài ra, Swift còn hỗ trợ cho Linux và cả trên nền tảng Windows như 1 open-source project.
6. Cộng đồng ngày càng đông, dễ học hỏi
Với việc các sản phẩm của Apple quá phổ biến, cùng với sự hợp tác của Apple và IBM, Swift trở thành 1 trào lưu, 1 ngôn ngữ hấp dẫn để học và kiếm việc làm. Các lập trình viên Swift ngày một đông đảo, thúc đẩy việc trao đổi trở nên dễ dàng. Tài liệu về Swift cũng nhiều, và dễ học.
III. Nhược điểm
Với những thứ trên, hầu hết lập trình viên đều thấy hào hứng và cho rằng ngôn ngữ này hoàn hảo để dùng. Tuy nhiên, không có gì là hoàn hảo cả.
1. Trẻ quá
Như mình đã nói, Swift chỉ mới được ra mắt vào năm 2014, lại được bệ đỡ của hội cha chú và thế lực Apple nên trở thành ngôn ngữ phát triển nhanh nhất. Tuy nhiên, việc phát triển cần có thời gian và giục tốc bất đạt. Các ngôn ngữ khác có tuổi đời vài chục năm, qua bao nhiêu thăng trầm mới tới được phiên bản hoàn thiện. Swift cũng tương tự. Có rất nhiều vấn đề mà nó chưa giải quyết được triệt để.
Ngoài ra, do tuổi đời còn ngắn, nên Swift vẫn còn giới hạn về các native library, tool. Các thư viện hỗ trợ thì lại chưa thật sự ổn định sau mỗi lần Swift được cập nhật.
2. Cộng đồng thiếu kinh nghiệm
Cái này là một issue do cái issue trên tạo ra. Mặc dù cộng đồng lập trình viên iOS phát triển nhanh, tuy nhiên nó vẫn còn quá nhỏ bé so với các ngôn ngữ khác đã trải qua hành chục năm phát triển. Theo thống kê của StackOverflow năm 2019, chỉ có 6.6% người tham gia khảo sát làm việc với Swift.
Với số lượng đã ít, người có kinh nghiệm và master lại càng ít hơn. Việc này cần thời gian để bù đắp lại.
3. Vấn đề mỗi khi nâng cấp
Cụ thể, các lập trình viên Swift đều đau đầu mỗi khi Swift được nâng cấp Version. Do các thư viện hỗ trợ ở phiên bản cũ đều không tương thích với các phiên bản mới sau mỗi lần release. Khiến cho project bị crash và đôi khi phải ngồi viết lại rất mất thời gian. Xcode đã giải quyết vấn đề này bằng cách update swift code lên version mới nhưng việc đó không thể giải quyết hết được vấn đề.
4. Không support cho các iOS version thấp
Hiện tại, Swift chỉ tương thích với iOS 7 trở lên. 5% thiết bị trên toàn cầu vẫn đang sử dụng iOS 6 trở xuống. Điều này ảnh hưởng đến một phần cộng đồng sử dụng Apple tuy không lớn.
IV. Lời kết
Bên trên mình đã khái quát một vài đặc điểm, cũng như điểm mạnh, yếu của ngôn ngữ Swift. Hy vọng, các bạn có cái nhìn tổng quan về ngôn ngữ này. Xin chào!
V. References
https://www.quora.com/What-are-the-advantages-of-Swift-programming
https://clearbridgemobile.com/8-advantages-choosing-swift-objective-c-ios/
https://www.altexsoft.com/blog/engineering/the-good-and-the-bad-of-swift-programming-language/
https://developer.apple.com/swift/
http://www.globalnerdy.com/2015/01/16/swiftly-rising-up-the-programming-language-charts/