Tương lai nào cho Swift

November 26, 2016
Categories:
Tags:

Swift là một trong các ngôn ngữ lập trình mình có "cảm tình" nhất. Mình rất khuyến khích các bạn nên thử nó một lần. Tuy nhiên khi học một ngôn ngữ, ta thường quan tâm về "hệ sinh thái" có thể vận dụng được nó. Chẳng hạn học C++ có thể theo làm game Cocos2dx, Unreal, vv. C# thì có thể làm web, game, ứng dụng desktop  với sự hỗ trợ mạnh mẽ của .NET framework. Học R, Python có thể theo hướng data science,vv

Vậy học Swift có thể mần ăn gì được, có tương lai hay không? Cùng theo dõi tiếp nhé!

Tổng quan về ngôn ngữ:

Mình từng đọc một blog kể về chuyện ra đời của Swift là tâm nguyện của bác Steve Jobs. Ông muốn Apple có một ngôn ngữ lập trình riêng. Ông nhấn mạnh là ngôn ngữ này già, trẻ, trai, gái, phụ nữ có thai hay cho con bú đều học được một cách dễ dàng. Đó là lý do Swift được ra đời. Cái trên là mình chém đó, còn đây mới là những gì Steve Jobs nói tại WWDC 1997:

The way you get programmer productivity is not by increasing the line of code per programmer per day. That doesn't work. The way you get programmer productivity is by eliminating lines of code you have to write. The line of code that is the fastest to write, that never breaks, that never needs maintenance is the line that you never have to write. The goal here is to eliminate 80% of the code that you have to write for your app. That's the goal.

À ngoài lề chút, bác Steve Jobs này không biết viết code nhiều không nhưng chém gió công nhận rất hay.

Thực tế khi mình học Swift hồi đầu tháng 8, đến giờ cũng được vài tháng. Mình cũng có chat với nhiều anh em trên mạng thì đa số mọi người đều nhận xét Swift khá dễ học, cú pháp mạch lạc, "trong sáng", viết code mà như đang viết tiếng Anh vậy đó. Trong sáng ở đây là beginner nhìn vô đọc được ngay, không tùm lum tà la. Như ví dụ dưới đây là một đoạn code có cùng chức năng được viết bằng Objective-C và Swift:

Objective - C

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(tableView == firstTableView)
{
//code for first table view
[cell.contentView addSubview: someView];
}
if(tableview == secondTableView)
{
//code for secondTableView
[cell.contentView addSubview: someView];
}
return cell;
}
view raw Objective-C Demo hosted with ❤ by GitHub

Swift

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell:UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as UITableViewCell!
if(tableView == firstTableView) {
//code for first table view
}
if(tableview == secondTableView) {
//code for secondTableView
}
return cell
}
view raw Swift Demo hosted with ❤ by GitHub

Được sinh sau đẻ muộn, dễ hiểu là Swift kế thừa được rất nhiều cái hay từ ngôn ngữ tiền nhiệm là Objective-C cũng như các ngôn ngữ script khác như Python, Ruby.

Các tính năng hay của Swift như :

  • Closures, generics, operator overloading.
  • Tuples and multiple return values
  • Notably dynamic dispatch, widespread late binding, extensible programming
  • Optional
  • Protocol-oriented programming
  • Functional programming patterns
  • Error handling với guard, defer

......

Với một blog post giới thiệu về tương lai nào cho nào cho Swift, mình không thể nêu hết tính năng của Swift được, với lại còn nhiều tính năng mà mình chưa biết. Thời gian tới mình sẽ viết tiếp là link về bài post này nha!

Học Swift thì làm được trò trống gì?

Khi học một ngôn ngữ mới, mình luôn tìm hiểu xem làm được gì với nó, có framework nào hỗ trợ. Hiện tại mình khá hài lòng về những gì Swift có thể mần được

Lập trình di động IOS

Đương nhiên ngôn ngữ Apple làm ra thì được dùng để phát triển ứng dụng IOS rồi. Lập trình IOS chỉ cần Xcode + Swift là được. Năm ngoái cũng có tin là Google sẽ dùng Swift để viết app cho Android, tuy nhiên, mình nhận định đây chỉ là hành động thả thính của Google thôi, chứ viễn cảnh này rất khó xảy ra lắm bởi lẽ Google cũng có ngôn ngữ riêng của mình, mắc gì lại phải dính tới Apple làm gì cho thêm rắc rối!

Lập trình ứng dụng cho OS X ( Mac app )

Ngoài lập trình IOS, chúng ta có thể viết ứng dụng cho máy Mac với Swift

tương lai swift Viết được ứng dụng như Final Cut Pro thì tiền không có chỗ để luôn :)

Lập trình web

Trong quá khứ, bạn đã có thể lập trình web dùng Swift với các framework như Perfect. Gần đây, IBM công bố hỗ trợ các nền tảng để có thể viết, build và run server side code bằng Swift với sự ra đời của web framework mới là Kitura. Nói chung phần lập trình web với Swift này mình cũng chưa thử nên không thể chém gió bậy bạ được. Khi nào mình đụng nó mình sẽ viết tiếp các bài mới về framework Kitura này cho mọi người!

tương lai nào cho Swift

Kết luận:

Swift là ngôn ngữ tinh tế, dễ học, hay nói thẳng ra là ai cũng có thể học được. Còn về mặt ứng dụng bạn không cần lo nữa vì tương lai của Swift khá sáng lạng. Apple cho open source Swift nên được sự hỗ trợ rất lớn từ cộng đồng dev. Vì thế bạn không nhất thiết phải có MacBook hay phải lập trình trình IOS mới nên học Swift. Bạn hoàn toàn có thể viết web app với Swift!

Author: Khoa Nguyen
https://niviki.com
Thất nghiệp. Đang rủ rê nhiều người thất nghiệp. Nhận làm ứng dụng MVP để nhiều người bỏ việc. Hy vọng với NIVIKI.COM có thể lan toả tinh thần thất nghiệp đến với nhiều người hơn nữa.