Tại sao Apple cho ra mắt Swift thay thế cho Objective-C?

      Khi Tim Cook tuyên bố ngôn ngữ lập trình mới của Apple – Swift vào tháng 6/2014 tôi đã vô cùng vui mừng. Cho dù lúc đó trong đầu tôi chưa có một chữ bẻ đôi về lập trình thì tôi vẫn tin rằng đây là cơ hội có một không hai dành cho những người bắt đầu lập trình như mình. Điều này giống như kiểu bạn đang suy nghĩ không biết có nên chạy đua hay không khi mà đã có rất nhiều người đã đi trước, mình còn lâu mới bắt kịp thì bỗng nhiên tất cả chúng ta lại phải trở về với vạch xuất phát và cơ hội đối với “cựu chiến binh” và newbie đầu là như nhau.

Tôi cắm đầu vào đọc quyển ebook về Swift của Apple để rồi nhận ra rằng mình chẳng hiểu gì cả, rõ ràng đây không phải là một cuốn sách dành cho beginner. Đợi thêm một vài tháng để những tut online về swift bắt đầu xuất hiện, tôi nhảy vào học như điên. Càng học swift tôi càng nhận ra rằng quyết định bỏ qua Objective-C của để nhảy thẳng vào Swift của mình có mùi ngộ nhận của kiểu bỏ của CNTB để lên thẳng CNCS. Thực tế thì trong quá trình lập trình, bạn sẽ nhận thấy rằng Swift vẫn còn đang trong quá trình hoàn thiện, nó chưa phải là một ngôn ngữ trưởng thành. Trong quá trình sử dụng Swift bạn sẽ vẫn phải động đến những @, NSArray, NSMutableArray… đặc trưng của Objective-C.

Nắm tay nhau và đi
Nắm tay nhau mà đi 😀

Thêm vào đó, việc học Objective-C hay Swift thì đều để phục vụ cho một mụch đích là lập trình iOS và MacOS mà trong đó bạn sẽ phải dành rất nhiều thời gian để học các framework. Những framework này lại được xây dựng trên cơ sở Objective-C từ rất nhiều năm qua. Nếu không có kiến thức vững chắc về Objective-C, bạn có thể sẽ khóc thét khi nhìn vào màn hình debugger mà không hiểu gì cả. Bạn có thể bảo chỉ cần paste đoạn debugger ném sang google tìm câu trả lời. Đúng, nhưng câu trả lời có sẵn trên mạng phần lớn là dành cho Objective-C. Với quá trình phát triển và hình thành của mình, hầu như mọi vấn đề mà lập trình viên gặp phải với Objective-C đều đã được giải đáp, với Swift thì không.

Dó đó, tôi quyết định đảo ngược quá trình học của mình, Objective-C trước, Swift sau. Càng học Objective-C tôi càng thấy ngôn ngữ này thân thiện và dễ hiểu hơn tôi nghĩ. Giống như sự phát triển của ngôn ngữ viết vậy, người ta có thể nhìn vào những chữ tượng hình mà vẫn lờ mờ hiểu được nội dung, không cần phải học thuộc bảng chữ cái. Swift là ngôn ngữ hiện đại, tính trừu tượng cao hơn, bởi vậy khó học hơn (ít nhất là đối với tôi). 

Điều này khiến tôi đặt ra câu hỏi tại sao Apple lại cho ra mắt Swift? 

Swift với những ưu việt của nó, chắc chắc là sự lựa chọn của tương lai. Apple đã âm thầm phát triển nó trong những năm qua, họ đã nhìn thấy những hạn chế của Objective-C, ngôn ngữ của C vốn đã có hơn 30 năm tuổi. Theo quan điểm của tôi thời điểm ra mắt của Swift là điểm nằm giữa, mà ở một đầu là thời điểm phát tiển Swift còn điểm kia là thời điểm Objective-C sẽ bị thay thế. Từ nay cho đến lúc ấy, chúng ta không thể bỏ quả Objective-C nếu muốn phát triển phần mềm cho Apple. 

Nói tóm lại, câu hỏi không phải là “Tôi nên học Objective-C hay Swift” mà là “Tôi nên lựa chọn lộ trình nào cho phù hợp với thời điểm hiện tại?”, hãy bỏ qua mindset chỉ cần học một ngôn ngữ lập trình “tốt nhất” là đủ dùng. Đối với một lập trình viên, sự học là trọn đời. 

%d bloggers like this: