Ngôn ngữ lập trình Swift là gì? Nó có ý nghĩa thế nào với ứng dụng di động?

Discussion in 'Máy tính Windows' started by post, Jun 10, 2014.

  1. post

    post Well-Known Member

    Joined:
    Dec 12, 2013
    Messages:
    1,497
    Likes Received:
    143
    Có một điều đáng ngạc nhiên là có ít nhất 99% fan Táo sẽ không bao giờ đụng tới một trong những sản phẩm lớn nhất được Apple ra mắt tại WWDC năm nay. Nhưng, ngôn ngữ lập trình Swift vẫn sẽ là một phần rất quan trọng trong trải nghiệm sử dụng sản phẩm hệ điều hành của bạn.

    Sau khi Steve Jobs ra mắt iPhone tại WWDC 2007, giới công nghệ đã quên rằng Hội nghị Các nhà phát triển Toàn cầu (Worldwide Developer Conference) của Apple là một sự kiện có trọng tâm là… các nhà phát triển ứng dụng. Đây không phải là sự kiện để Apple tập trung ra mắt các sản phẩm phần cứng, mà là sự kiện để các lập trình viên có thể đến và học hỏi về những "vũ khí" mới của họ trong cuộc chinh phục cộng đồng người dùng iOS và Mac OS X.

    Phải đến năm 2014, Apple mới đưa WWDC trở về với đúng ý nghĩa của mình: đây là sự kiện dành cho phần mềm và những người tạo ra phần mềm.

    Khó có thể phủ nhận được rằng rất nhiều người đã cảm thấy thất vọng vì WWDC năm nay không chứng kiến bất kỳ sản phẩm phần cứng nào (iPhone, iWatch, iPad…) ra mắt cả. Nhưng, những người này cũng quên mất rằng hệ điều hành và các ứng dụng mới là phần quan trọng nhất trong trải nghiệm sử dụng thiết bị hàng ngày. Tất cả các sản phẩm phần mềm được Apple ra mắt tại WWDC đều sẽ giúp cuộc sống của các nhà phát triển ứng dụng trở nên dễ dàng hơn. Và khi cuộc sống của họ trở nên dễ dàng hơn, người dùng sẽ có nhiều ứng dụng hơn, chất lượng của các ứng dụng này cũng sẽ ngày càng hoàn thiện hơn.

    Hé lộ quan trọng nhất tại WWDC năm nay là Swift – một ngôn ngữ lập trình hoàn toàn mới có thể giúp quá trình phát triển ứng dụng trở nên dễ dàng hơn, nhanh hơn và ổn định hơn, tất cả nhằm tạo ra những sản phẩm ứng dụng cho người dùng cuối tốt hết mức có thể. Nói một cách ngắn gọn, Swift được thiết kế để đáp ứng tất cả các nhu cầu của "coder". Điều này liệu có khả thi?

    Dĩ nhiên, chỉ trong vòng 1 tuần lễ, chúng ta chưa thể có câu trả lời chính xác nhất. Nhưng từ những gì Apple đã thể hiện, rõ ràng Swift là một ngôn ngữ lập trình rất giàu tiềm năng. Hãy cùng chúng tôi đi tìm hiểu những ý nghĩa sâu xa của Swift mà không cần phải đọc một dòng code nào cả, để hiểu được tầm nhìn và những chân trời rộng lớn mà các ngôn ngữ lập trình mới như Swift có thể mang lại.

    Ngôn ngữ lập trình bậc thấp và bậc cao


    [​IMG]
    Swift có rất nhiều đặc điểm nổi trội của các ngôn ngữ tân tiến nhất hiện nay

    Có rất nhiều cách để ra lệnh cho một thiết bị thông minh (laptop, máy để bàn, smartphone, tablet…) làm chính xác những gì bạn muốn. Cách chính xác nhất nhưng lại khá phức tạp là viết các dòng lệnh bằng… mã máy (mã nhị phân) hoặc sử dụng viết mã Assembly. Khi viết mã Assembly, bạn sẽ phải viết từng câu lệnh chi tiết cho những hoạt động rất nhỏ, ví dụ như thay đổi một số trên bộ nhớ, thay đổi màu của một pixel trên màn hình… nói cách khác là tất cả các hành động nhỏ nhất mà phần cứng có thể thực hiện.

    Nếu viết mã Assembly (hoặc mã máy), bạn có thể thực hiện những hành vi phức tạp nhất, đúng-với-mong-muốn nhất. Nhưng, hiển nhiên là khi sử dụng các ngôn ngữ bậc thấp (ngôn ngữ bậc thấp: xa với ngôn ngữ người và gần với ngôn ngữ máy) như mã máy hoặc mã Assembly, việc lập trình ứng dụng sẽ trở nên cực kỳ nhàm chán, vất vả và rất dễ mắc phải lỗi. Việc viết ra Safari hay thậm chí là Flappy Bird bằng mã Assembly cũng sẽ là bất khả thi.

    Bởi vậy, bạn sẽ cần tới các ngôn ngữ lập trình bậc cao (high level). Thay vì thực hiện từng dòng lệnh nhỏ nhặt từ người lập trình viên, máy vi tính sẽ nhận một câu lệnh "bậc cao" từ coder và tự thực hiện dòng lệnh này. Các ngôn ngữ bậc cao giống với ngôn ngữ người ở chỗ chúng có cấu trúc ngữ pháp (syntax) rất rõ ràng với các giới hạn cụ thể về vị trí sắp xếp từ ngữ mà người dùng ngôn ngữ cần tuân theo.

    [​IMG]
    Swift có cấu trúc bậc cao: đơn giản, chính xác, không thừa lexic hay operator

    Để hiểu rõ về sự khác biệt giữa ngôn ngữ lập trình bậc cao và ngôn ngữ lập trình bậc thấp, hãy thử tưởng tượng khi bạn nhờ người bạn thân đưa cho mình một lon Coca. Nếu dùng ngôn ngữ lập trình bậc cao, bạn sẽ nói "Ê, ném cho tao lon Coca ở trên bàn!", và người bạn này sẽ biết cách để thực hiện hành vi này. Nếu sử dụng ngôn ngữ Assembly, bạn sẽ phải nói đầy đủ đoạn văn sau: "Ngồi dậy. Đặt 2 chân xuống sàn. Dùng tay làm điểm tựa. Đứng dậy khỏi ghế sofa. Bước một bước bằng chân phải. Bước bằng chân trái. Cầm lon Coca bằng tay phải. Quay về phía tao. Bước một bước bằng chân phải…".

    Nói ngắn gọn, bằng các ngôn ngữ bậc thấp, bạn sẽ phải mô tả tất cả các hành vi độc lập cần thiết để thực hiện toàn bộ tác vụ. Thậm chí, nếu bạn quên không ra lệnh "dùng tay làm điểm tựa", người bạn (máy vi tính) của bạn có thể bị ngã (gặp lỗi) khi thực hiện tác vụ.

    Chính điều này buộc con người phải sử dụng các ngôn ngữ lập trình bậc cao. Trong số các ngôn ngữ lập trình bậc cao, C là ngôn ngữ "kinh điển" nhất. Đây là ông tổ của nhiều ngôn ngữ lập trình phổ biến khác hiện nay, từ C++, Objective-C, C# cho đến cả Java và PHP. Trong số các ngôn ngữ chịu ảnh hưởng/biến thể từ C, Objective-C là lựa chọn truyền thống của Apple và cũng là nền tảng xây dựng nên iOS và Mac OS.

    Nhưng, khi C đã có tuổi đời lên đến 40 năm và khi Objective-C cũng đã có tuổi đời lên đến 30 năm, Apple cần sự thay đổi. Câu trả lời là Swift.

    [​IMG]

    Ngôn ngữ lập trình dạng script


    Script programming language, thường gọi là ngôn ngữ script, đang dần trở nên phổ biến hơn trước đây rất nhiều. Thông thường, các ngôn ngữ lập trình bậc cao sẽ cần được biên dịch (compile) thành mã máy để có thể thực thi. Quá trình biên dịch được thực hiện bởi compiler là khi các câu lệnh bậc cao (ví dụ như "lấy lon Coca") được chuyển thành các lệnh nhỏ, đơn giản mà máy tính có thể thực hiện.

    Dựa trên syntax đặc trưng của ngôn ngữ, các dòng lệnh mà con người (các lập trình viên) có thể đọc được sẽ được chuyển thành mã máy, và nếu như quá trình biên dịch thành công, bạn sẽ nhận được một ứng dụng thực sự. Lưu ý rằng các file mã nguồn chưa qua biên dịch sẽ không có ý nghĩa gì với CPU cả.

    Tuy vậy, quá trình biên dịch mã nguồn có thể sẽ mất rất nhiều thời gian. Như đã nói ở trên, nếu chưa đưa mã nguồn vào compiler, bạn sẽ không thể biết được liệu các dòng code mà bạn đã viết ra có thực sự hoạt động hoàn hảo hay không. Trong rất nhiều trường hợp, các lỗi trong dòng code của bạn sẽ không bị phát hiện cho tới khi compiler thực hiện nhiệm vụ của mình, và thậm chí khi đã biên dịch xong, bạn sẽ phải chạy chương trình để phát hiện nốt những lỗi còn lại. Tất cả những điều này khiến cho quá trình viết ứng dụng phần mềm trở nên rất chậm chạp.

    Ngôn ngữ script khác với các ngôn ngữ này. Bạn có thể chạy các đoạn mã script vừa viết ra ngay lập tức, từ dòng này tới dòng tiếp theo. Bạn có thể kiểm tra kết quả của mình mà không cần chờ đợi quá trình biên dịch. Điều này giúp cho quá trình phát triển ứng dụng nhanh và dễ dàng hơn rất nhiều.

    Song, các ngôn ngữ script cũng có giới hạn của chúng. Giới hạn đầu tiên là về tính năng: chúng không thể làm được các tác vụ phức tạp như các ngôn ngữ compile khác. Tệ hơn, chúng bị giới hạn về hiệu năng xử lý. Điều này khiến các ngôn ngữ script trở nên giới hạn hơn rất nhiều so với các ngôn ngữ compile và không được sử dụng để thực hiện các chương trình đòi hỏi tối ưu sức mạnh phần cứng.

    Swift: Ngôn ngữ lập trình hoàn hảo?


    [​IMG]
    Swift hứa hẹn mang tới hiệu năng cao hơn Objective C tới 35%

    Như vậy, các ngôn ngữ dạng script như Python rất dễ viết và test (kiểm thử), song chúng không mạnh mẽ và cũng không đủ nhanh để thực hiện các tác vụ phức tạp của ứng dụng. Nói cách khác, Python không thực sự phù hợp để viết các game nặng, vốn có yêu cầu phải tận dụng tối đa sức mạnh của thiết bị. Các ngôn ngữ lập trình truyền thống (ví dụ như Objective-C) mang tới hiệu năng khi chạy trên iPhone/iPad, cho phép tạo ra các ứng dụng phức tạp như iMovie hoặc Call of Duty. Song, việc sử dụng Objective-C thường đi kèm với một lượng lớn thời gian compile và test ứng dụng. Việc học cách viết Objective-C cũng là một quá trình dài, có thể gây khó khăn với các lập trình viên ít kinh nghiệm.

    Nếu thực hiện được tất cả các lời hứa của Apple, Swift sẽ mang tất cả các điểm mạnh của cả 2 loại ngôn ngữ script và compile truyền thống. Trong một số thử nghiệm benchmark, Swift cho hiệu năng nhanh hơn Python và thậm chí là nhanh hơn cả Objective-C. Trên bộ IDE (phần mềm lập trình) Xcode của Apple, mã nguồn Swift sẽ được đồ thị hóa dựa trên tính năng playground theo thời gian thực. Điều này có nghĩa rằng lập trình viên có thể chạy và test mã nguồn Swift một cách dễ dàng không kém gì Python cả.

    Trong ví dụ được đưa ra tại WWDC, một lập trình viên đã lên sân khấu để thực hiện cảnh đồ họa bay lên/xuống cho khinh khí cầu theo định kỳ. Để làm được điều này, anh ta cần sử dụng một hàm toán học đơn giản: hàm sin. Sin tạo ra đồ họa hình gợn sóng khá đẹp, và bởi vậy hàm sin sẽ là khá hoàn hảo cho ví dụ của chúng ta.

    [​IMG]

    Trong màn demo trên sân khấu WWDC, lập trình viên Swift đã có thể gán hàm sin vào chuyển động của khinh khí cầu một cách dễ dàng. Anh ta có thể theo dõi giá trị hàm sin thay đổi khi chạy chương trình của mình, dựa trên một biểu đồ đơn giản hiển thị trên Xcode. Điều này giúp cho nhà phát triển có thể dễ dàng hình dung ra chuyển động của quả bóng bay trên.

    Trong các ví dụ tương tự, bạn có thể điều chỉnh các chuyển động một cách rất dễ dàng. Gần đây, một nhà phát triển ứng dụng thậm chí còn sử dụng Swift để tạo ra một phiên bản Flappy Bird sơ khai trong vòng… 17 phút! Thông thường, quá trình phát triển phần mềm đòi hỏi các lập trình viên vừa phải viết code, vừa phải thực hiện biên dịch (thông qua compiler), sau đó chạy chương trình và… nín thở hy vọng. Tùy thuộc vào độ lớn của ứng dụng, quá trình compile và chạy thử ứng dụng có thể mất vài giây, vài phút hoặc lâu hơn nữa.

    Những lợi ích của Swift


    [​IMG]
    Đồ họa ấn tượng trên iOS 8

    Khả năng phát triển ứng dụng di động và kiểm tra thành quả của mình theo thời gian thực sẽ giúp cho quá trình code của các lập trình viên trở nên nhanh và dễ dàng hơn rất nhiều. Ngoài ra, việc không phải chạy chương trình compiler và các chương trình test quá thường xuyên cũng sẽ tiết kiệm được sức mạnh phần cứng cho nhà phát triển. Thay vì tập trung kiểm tra, thử nghiệm các tính năng nhỏ lẻ, lập trình viên Swift có thể dành nhiều thời gian để thực hiện các bài test ở mức độ tích hợp cao hơn một cách kỹ càng hơn.

    Lợi ích thứ 2 của Swift là các dòng code rất ngắn và dễ đọc. Trong bài trình bày của Apple, 3 dòng code Objective C có thể gói gọn vào 1 dòng code Swift. Điều này sẽ đẩy nhanh quá trình phát triển ứng dụng và tăng hiệu quả cho quá trình bảo trì/vá lỗi trong tương lai.

    Cuối cùng và có lẽ là quan trọng nhất, nếu Swift tạo ra các ứng dụng có sức ép phần cứng thấp hơn Objective-C, chúng ta sẽ được tận hưởng trải nghiệm game ấn tượng hơn trên các thiết bị iOS. Khi kết hợp Swift cùng nền tảng Metal mới của Apple, ngay cả vi xử lý A7 cũ kỹ cũng có thể mang tới những trải nghiệm đồ họa ấn tượng nhất.

    [​IMG]

    Điểm yếu của Swift


    Điểm yếu lớn nhất của Swift sẽ là tuổi đời quá trẻ của ngôn ngữ lập trình này. Cụ thể hơn, để sử dụng Swift, các nhà phát triển sẽ phải học lại một ngôn ngữ lập trình hoàn toàn mới. Ngành công nghệ thường thích được làm chủ các công nghệ mới nhất, tuyệt vời nhất. Song, mảng ứng dụng iOS cũng đã trở nên lớn mạnh tới mức có hàng nghìn người đã dành hàng tháng trời để làm chủ Objective-C; đào tạo Objective C cho iOS đã trở thành môyj ngành quan trọng; có những công ty chỉ tập trung vào ngôn ngữ lập trình này (và iOS). Do Swift chắc chắn sẽ thay thế hoàn toàn Objective-C, các nhà phát triển ứng dụng iOS sẽ mất một khoảng thời gian đáng kể để làm chủ ngôn ngữ mới của Apple. Điều này có thể làm giảm tốc độ phát triển của hệ sinh thái ứng dụng Apple.

    Một mối lo ngại khác có thể kể đến là các ứng dụng rác. Do Swift sẽ giúp quá trình phát triển ứng dụng trở nên dễ dàng hơn trước đây rất nhiều, số lượng ứng dụng chất lượng kém xuất hiện trên gian hàng App Store có thể sẽ ra tăng. Song, đây cũng không hẳn là một mối lo ngại thực sự cho Apple và người dùng của Quả táo. Trải qua giai đoạn chuyển tiếp này, Swift sẽ giúp mang các ứng dụng iOS và Mac lên một tầm cao mới.

    "Hello world" cùng Swift


    [​IMG]

    Về mặt lý thuyết, Swift đang hứa hẹn trở thành ngôn ngữ lập trình "hoàn hảo" nhất cho các nhà phát triển ứng dụng. Điều Apple cần làm là đảm bảo những lời hứa của mình sẽ trở thành hiện thực.

    Chúng ta đã quá quen với việc các công ty công nghệ tung ra các con số ấn tượng làm bằng chứng rằng sản phẩm của họ là tuyệt vời nhất, tân tiến hơn tất cả các sản phẩm "đời cũ" và các đối thủ cạnh tranh. Song, trong thế giới lập trình, mọi chuyện không đơn giản như vậy. Sẽ phải mất một thời gian dài các lập trình viên mới có thể kiểm chứng những gì Apple nói. Phải mất một thời gian dài ngành công nghiệp di động mới có thể hiểu được các lợi ích của Swift. Đây là một thay đổi rất lớn, lớn tới mức rằng bạn sẽ không sai khi nói rằng đối với ngành phát triển ứng dụng di động, Swift có ý nghĩa quan trọng không kém gì App Store khi mới ra mắt.

    [Broken External Image]:http://pixel.quantserve.com/pixel/p-89EKCgBk8MZdE.gif

    Theo: Quản trị mạng
     

Share This Page

  • Get Help Fast

    • 0919.47.6686
    • Skype: Vinafix
    • [email protected]
    • www.vinafix.vn
    • www.vinafix.net

    Payment Methods
  • Upgrades

  • Calculate the voltage

    Input V in : V
    R a : Ω
    R b : Ω
    Output V out : V
iHax Community