Tại sao các ứng dụng lớn vẫn chưa chuyển qua Swift?

0
47

Tôi luôn tin rằng Swift là tương lai của lập trình iOS. Vấn đề chỉ là thời điểm và nguyên nhân cản trở chính là tốc độ phát triển chóng mặt của Swift. Đối với các ứng dụng nhỏ thì Swift là ngôn ngữ lý tưởng, nhưng với ứng dụng lớn, sẽ tốn ít nhất 1 năm nữa để Swift thể hiện được vai trò của mình.

Từ “ứng dụng lớn” mà tôi sử dụng ở đây dành cho những hạng mục khác nhau, từ các dòng code, đến số lượng lập trình viên, mức độ phức tạp của ứng dụng hoặc khả năng chịu đựng thấp trước các vấn đề. Đầu năm nay, chuyên gia Ryan Olson, sau khi phân tích biểu đồ Top 100 apps miễn phí trên App Store, chỉ ra rằng 89% ứng dụng không dùng đến Swift. Điều này không đồng nghĩa là chỉ có 11% còn lại đã chấp nhận Swift. Một đội ngũ lập trình ứng dụng mà tôi từng nói chuyện cũng đã bắt đầu thử nghiệm với Swift nhưng ngôn ngữ mặc định trong hầu hết công việc của họ vẫn là Objective-C.
Nếu bạn đang lập trình 1 ứng dụng nhỏ thì có thể ngưng đọc tại đây vì ưu điểm của Swift 3.0 vẫn vượt trội hơn những nguy cơ mà nó gây ra. Tuy nhiên, nếu bạn đang tò mò về những thách thức của các doanh nghiệp lớn, các codebases lớn và các dependencies phức tạp thì bài viết này sẽ giải thích lý do tại sao các dự án vẫn còn đang ngập ngừng trước lựa chọn Swift.

Language Churn

Mỗi cập nhật của Xcode lại dẫn đến những thay đổi về ngôn ngữ và phá đi các dòng code. Thỉnh thoảng bạn để code migrator làm việc, thỉnh thoảng bạn phải chỉnh sửa thủ công. Bạn chỉ có thể quản lý được việc này nếu có dưới 30.000 dòng codes, nhưng hầu hết các ứng dụng trên thế giới lại không như thế. Chẳng hạn, ứng dụng Facebook có 18.000 classes, tương đương với hàng triệu dòng code.

nrplisinthw

Tuy điều này không liên quan nhiều đến ABI, nhưng tính ổn định của ABI vẫn là 1 rào cản.

Khả năng tích hợp hỗ trợ framework

Để gói gọn phần diễn giải về ABI, tôi sẽ không chỉ tập trung vào những điểm bất lợi. ABI ổn định có thể giảm thiểu các rào cản và tình trạng language churn.

Một chiến lược mà tôi từng thấy ở các ứng dụng lớn là dù code không được sử dụng trong bất kì ứng dụng nào khác, phân giải ứng dụng thành các frameworks. Frameworks hỗ trợ testing dễ dàng hơn và làm rõ quyền sở hữu code.

Với 1 ABI ổn định, bạn có thể giữ các frameworks này ở phiên bản Swift cũ và tích hợp chúng từng bước một. Mỗi đội ngũ sẽ chịu trách nhiệm chuyển đổi code của mình.

Kết

Bài viết này không phải để bêu xấu đội ngũ Swift. Đội ngũ Swift đã ưu tiên phát triển ngôn ngữ và hệ sinh thái, thay vì tập trung vào tính ổn định và giải quyết các trường hợp nhỏ nhặt. Đó là sự trả giá hoàn toàn hợp lý.

Mặc dù platform ổn định, các công ty lớn chuyển đổi platforms với tốc độ rất chậm. Adobe tốn 1 thập kỉ để chuyển từ Photoshop từ Carbon sang Cocoa. Thay vì nghiên cứu những ứng dụng lớn, bạn sẽ có được những lời khuyên tốt từ những người chuyển đổi sớm hơn và sẽ không bị ràng buộc bởi cam kết nhiều năm với tính năng ổn định.

Điều quan trọng nữa tôi muốn nhắc lại là: hầu hết những điều tôi đã đề cập có khả năng không phù hợp với trường hợp của bạn. Có thể bạn đang làm việc với 1 codebase nhỏ hơn, các dependencies đơn giản hơn. Nên nhớ, lợi ích Swift 3.0 mang đến luôn lớn những điểm bất lợi..
Trích nguồn: techtalk.

6 Khóa học đang được dân IT truy lùng tại Edumall

 

Facebook Comments