07/09/2018, 15:30

Swift Open Source

Ngày hôm nay, Apple vừa công bố bản Swift open source đúng như họ đã hứa hồi WWDC 2015 tháng 6. Phiên bản mới này hỗ trợ các hệ điều hành: iOS , Mac OS X và Linux ! Như vậy, Swift bây giờ không chỉ là ngôn ngữ dành riêng cho dân lập trình iOS nữa, mà nó đã trở thành một ngôn ngữ đa dụng ...

Ngày hôm nay, Apple vừa công bố bản Swift open source đúng như họ đã hứa hồi WWDC 2015 tháng 6. Phiên bản mới này hỗ trợ các hệ điều hành: iOS, Mac OS XLinux!

Như vậy, Swift bây giờ không chỉ là ngôn ngữ dành riêng cho dân lập trình iOS nữa, mà nó đã trở thành một ngôn ngữ đa dụng (general purpose), đặt mục tiêu (tham vọng) thay thế luôn cả các ngôn ngữ C-like.

alt text

Với việc open source Swift cũng như công bố phiên bản Linux, kể từ bây giờ cộng đồng lập trình viên có thể thoải mái sử dụng Swift vào mọi lĩnh vực, điển hình là mảng lập trình server side. Việc sử dụng Swift để thay thế cho NodeJS hay Ruby on Rails, PHP không còn là giấc mơ xa vời nữa.

Apple cũng để ngõ khả năng port Swift lên các hệ điều hành khác (như Windows chẳng hạn), và kêu gọi cộng đồng lập trình viên cùng xắn tay áo lên thực hiện điều đó.

Các thành phần cơ bản của Swift đước Apple open source gồm có:

  • Swift compiler: trình biên dịch swift
  • Bộ thư viện chuẩn (Standard Library) - Giống như stdlib của C++ vậy
  • Core libraries - Các thư viện nền tảng của Swift, hiện tại có: Foundation, libdispatch và XCTest
  • REPL và LLDB Debugger - Công cụ command line tương tác (giống như node, python, ruby) và Debugger
  • Swift package manager - (một công cụ giúp quản lý packages, modules,... vẫn còn đang phát triển tiếp)

Nói chung đây là một động thái đầy tham vọng của Apple, muốn thôn tính luôn mảng lập trình server side, và trong tương lai thì ko biết còn muốn đánh đến đâu nữa đây.

Vậy đối với giới mobile developer, việc open source Swift có ý nghĩa như thế nào?

alt text

iOS developers

Đối với các iOS developer, mình nghĩ ko có gì khác biệt vì hiện tại Apple vẫn đang phát triển Swift cho nền tảng này khá tốt cụ thể sắp tới khả năng sẽ ra tiếp bản Swift 3. Tuy nhiên tốc độ phát triển của Swift sẽ còn nhanh hơn khi cộng đồng lập trình viên bắt đầu contribute cho dự án. Mấu chốt quan trọng của sự kiện này là các bạn sẽ không còn được "quyền" chê Swift nữa. Vì một khi nó đã Open Source, thay vì chê bai nó lỗi hay thiếu chức năng gì đó cho bạn, bạn có thể xắn tay lên mà thực hiện nó rồi đóng góp lại cho cộng đồng.

Phần còn lại của thế giới

Đối với các Android Developer, Windows Phone Developer,... các bạn có quyền hy vọng một ngày nào đó có thể từ bỏ Java hoặc C# và đi theo tiếng gọi của Swift =)) Chưa biết là khi nào, nhưng chắc chắn đâu đó cũng đã có một vài người bắt đầu nghiên cứu tìm cách đưa Swift lên các nền tảng này rồi.

Hybrid? Crossplatform?

Rất có thể. Biết đâu Swift sẽ là một cái tên mới thay thế vị trí của JavaScript, React Native, NativeScript,... để trở thành ông vua mới của mảng crossplatform mobile.

alt text

Mảng game vốn đã rất đông đúc với đủ mọi thể loại giải pháp crossplatform rồi, như là Unity, Cocos2d-x, Unreal Engine,... và tất cả đều dùng C++ hoặc C#. Vậy nên nếu chúng ta có quyền hy vọng, thì trong tương lai có thể các engine trên sẽ bổ sung Swift danh sách các ngôn ngữ hỗ trợ. Tuy nhiên thực sự mình chưa thấy nó cần thiết lắm.

Cái này thì rõ ràng quá rồi.

alt text

Hiện tại đã có một vài framework sử dụng Swift để hỗ trợ lập trình server side rất đầy đủ, ví dụ như Perfect

Câu trả lời là KHÔNG. Hiện tại Swift chưa được hỗ trợ trên trình duyệt, và mảnh đất này vốn đã là một chiến trường "đẫm máu" lắm rồi, mình khuyên các bạn đừng đưa Swift vào cuộc chiến này =)))) Tuy nhiên đâu đó có thể vẫn có một vài anh developer nuôi tham vọng đưa Swift lên trình duyệt để thay thế JavaScript không biết chừng.

Câu hỏi cũ quá quen thuộc trong giới iOS developers, và bây giờ thì càng có thêm 1 lý do để bạn chọn học nó nữa, lần này thì lợi ích đã tăng lên gấp bội, bạn có thể trở thành một Full Stack Developer đúng nghĩa nếu sử dụng Swift. Vậy thì tại sao không học?

Đến thời điểm này, cuộc chơi ngày càng nhộn nhịp hơn rồi, lập trình đã trở thành một lĩnh vực đầy cạm bẫy với đủ thứ công nghệ, việc chọn ngôn ngữ nào cho phù hợp giờ đây đòi hỏi lập trình viên phải có thần kinh thép mới trụ vững được.

Qua bài viết này, mình hy vọng đã góp phần làm lung lạc ý chí của các bạn Java, Ruby, .NET, NodeJS developer. Nếu đọc xong bài này các bạn vẫn không có ý định thử nghiên cứu Swift thì xin chúc mừng, các bạn đã trở thành một lập trình viên khá là cứng đầu (không tốt đâu :trollface:)

Hẹn gặp lại các bạn trong bài viết tiếp theo, chúng ta sẽ cùng nghiên cứu cách cài đặt Swift lên môi trường Linux và build một ứng dụng web đơn giản.

0