Dự đoán về tương lai của ngành lập trình

IoT cần một bộ các ràng buộc và quy ước.
Minh Cao

(PCWorldVN) Giới chuyên gia từng cho rằng lập trình sẽ tiếp tục giữ được tầm quan trọng trong 5 năm tới. Nhưng với tốc độ phát triển công nghệ hiện nay thì khó có thể đảm bảo dự báo đó trở thành hiện thực.

Thực tế cho thấy khó mà đưa ra được dự đoán về tốc độ thay đổi trong thế giới công nghệ, nhưng điều này có phần khả thi hơn với các kỹ năng và công cụ liên quan.

Bên dưới là danh sách các dự án cho tương lai của ngành lập trình nhằm đáp ứng những xu hướng công nghệ đang nổi lên. Không phải tất cả dự báo này đều sẽ trở thành sự thật, nhưng về cơ bản chúng có thể chỉ ra con đường giúp chúng ta hoạch định được tương lai.

Dự đoán số 1: Kiến trúc phần mềm phổ biến REST dành cho IoT

Giao thức REST (Representational State Transfer) đã được triển khai trên các trang web và đó là các ràng buộc, quy ước cũng như cách thức thực hiện với một hệ thống. Ví dụ, một thiết bị cảm biến nhiệt hay tủ lạnh muốn kết nối với Internet thì cần tuân thủ một bộ các ràng buộc và quy ước.

REST phổ biến nhờ vào sự đơn giản của mình và các lập trình viên dễ dàng nắm bắt những kiến trúc cơ bản của nó và kèm với đó là dữ liệu dưới dạng văn bản, giúp mọi thứ tiện lợi hơn. Không có gì ngạc nhiên khi mà camera an ninh, tủ lạnh kết nối với máy chủ Nginx chạy trên cổng (port) 80, mọi thông tin phản hồi của thiết bị được truyền đi qua giao thức HTML và CSS.

REST là gì
Khái niệm đầu tiên về REST (Representational State Transfer) được đưa ra vào năm 2000, là một bộ các ràng buộc và quy ước để áp dụng vào hệ thống
Máy chủ Nginx
Là một máy chủ proxy ngược mã nguồn mở (open source reverse proxy server) sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3 và IMAP , cũng như dùng làm cân bằng tải (load balancer), HTTP cache và máy chủ web (web server).
Dự đoán số 2: Các giao thức nhị phân trỗi dậy

Giao thức nhị phân sẽ trở lại với giới lập trình.
Truyền dữ liệu bằng định dạng JSON với giao thức REST của các thiết bị có thể đơn giản, ít nhất là so với thế giới đã cũ của dữ liệu XML. Một số lập trình viên lại đặt câu hỏi là tại sao họ phải chuyển đổi dữ liệu nhị phân thành chuỗi để nó hoạt động chính xác trong JSON? Về bản chất thì chỉ để phân tích chuỗi và biến nó trở thành byte. Tại sao không gửi thông tin trực tiếp - đặc biệt khi thiết bị IoT chỉ cần vài byte dữ liệu để gửi đi?

Xây dựng thêm các giao thức nhị phân có thể khiến mọi thứ phức tạp và khó khăn hơn. Các tiêu chuẩn HTTP vốn đã trở thành những căn bản của lập trình viên, trong khi đó giao thức nhị phân độc quyền chỉ có thể được giải nén bằng thư viện độc quyền, đã gây ra không ít phiền toái trước đây. Sự cởi mở của JSON và REST đã chiến thắng, nhưng điều đó không có nghĩa là cách tiếp cận mở cho một giao thức nhị phân không thể mang lại hiệu quả các tiêu chuẩn mở.

IoT sẽ ngày càng tạo ra dữ liệu nhiều hơn bao giờ hết và thiết bị sẽ sử dụng nhiều gói dữ liệu nhỏ với yêu cầu mã hóa chặt chẽ hơn. Và một khi đòi hỏi hiệu suất được ưu tiên, thì các lập trình viên nên cân nhắc đến giao thức nhị phân.
JSON viết tắt của JavaScript Object Notation, là một định dạng hoán vị dữ liệu nhanh. Dạng dữ liệu này tuân theo quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được. JSON có định dạng đơn giản, dễ sử dụng và truy vấn.
Dự đoán số 3: Smartphone sẽ làm tất cả mọi thứ

Ứng dụng biến smartphone trở thành thiết bị đa năng trong đời sống.
Có ai dùng điện thoại thông minh chỉ để nói chuyện? Chúng ta gửi tin nhắn văn bản, đọc email, truy cập trang web… và dường như đó chỉ là khởi đầu. Những chiếc máy có màn hình chữ nhật đã trở thành một phần làm thay đổi đời sống chúng ta trong suốt một thập kỷ qua. Và những thay đổi đang bắt đầu trở nên thú vị khi mà những cảm biến thông minh xuất hiện trên smartphone.

Ví dụ điển hình nhất chính là việc smartphone đang dần trở thành một thiết bị hỗ trợ y tế thường ngày cho chúng ta. Cảm biến của microphone cho thể cho biết nhịp tim, các gia tốc kế có thể giám sát quá trình luyện tập của bạn… Và tất cả dữ liệu này được kết nối với một đám mây để từ đó liên kết với bác sĩ nhằm có những lời khuyên tốt nhất cho sức khỏe cá nhân.

Thế hệ tiếp theo của các thiết bị thông minh sẽ mang đến nhiều lợi ích hơn. Các ứng dụng điều hướng sẽ thiết lập đường đi và lên kế hoạch tất cả mọi thứ mà mỗi lái xe cần. Ứng dụng theo dõi tập thể dục là những công cụ theo dõi tất cả nhịp điệu của cơ thể của chúng ta, từ giấc ngủ cho đến lúc hoạt động.

Và smartphone trong tương lai sẽ làm được tất cả mọi thứ, chứ không chỉ là sử dụng để thực hiện cuộc gọi điện thoại.

Dự đoán số 4: Cơ sở dữ liệu là ưu thế

Ứng dụng Waze thu thập dữ liệu từ đám đông
Hiển thị trên công cụ tìm kiếm trước đây được xem là mục tiêu hướng đến của các trang web, nhưng bây giờ dường như cơ sở dữ liệu là đích đến mới của thế giới.

Khi đó, ứng dụng định vị và định hướng trên các dòng xe tự hành sẽ là một trong những điều tạo nên sự khác biệt của cơ sở dữ liệu. Những ứng dụng kiểu như Waze hoạt động chủ yếu bằng cách sử dụng dữ liệu từ phía người dùng để xây dựng nên dữ liệu về lưu lượng giao thông theo thời gian thực.

Waze còn sử dụng cơ chế crowdsourcing (thu thập dữ liệu từ đám đông người dùng) mà không nhiều ứng dụng khác có được. Tài xế sẽ là những người thu thập và tải lên thông tin về mọi sự kiện lên hệ thống, từ hình ảnh đánh dấu địa điểm cho đến các thông tin tai nạn, công trình hay giá xăng dầu.

Ngoài ra ứng dụng này còn cho phép tìm kiếm những người bạn đang ở cùng một địa điểm tương tự như tính năng Nearby Friend của Facebook. Mức độ chi tiết từ cơ sở dữ liệu như thế này sẽ mang đến hiệu quả rất lớn đối với dòng sản phẩm như xe tự hành và lớn nữa là biến thành phố trở nên thông minh.

Dự đoán số 5: JavaScript sẽ chiếm ưu thế, nhưng robot sẽ lập trình

Nếu chúng ta không viết JavaScript thì ai sẽ làm? Đó chính là robot chuyển mã. Các nhà lập trình sẽ viết các đoạn mã bằng bất kỳ ngôn ngữ nào và các robot chuyển mã sẽ tự động thay đổi những dòng lệnh đó để phù hợp với các nền tảng như Node.js hay mọi loại trình duyệt. Hiện nay ngày càng nhiều đoạn mã xuất hiện trên GitHub được biên soạn bởi những robot chuyển mã như thế.

CoffeeScript - biến thể của JavaScipt - cung cấp một cú pháp rõ ràng nên rất hấp dẫn với những người thích Python hay Ruby. Nhưng việc sử dụng quá nhiều dấu chấm câu mang đến những phiền toái đối với các nhà lập trình. Cùng với đó là sự xuất hiện của hành loạt biến thể CoffeeScript như Coco, IcedCoffeeScript, và CoffeeScript II: The Wrath of Khan khiến các nhà phát triển cần đến một công cụ chuyển mã thông minh. Việc lập trình thông minh không chỉ dừng tại các ngôn ngữ kịch bản mà thậm chí còn xuất hiện trên các ngôn ngữ khác như Cobol, Java, Lisp, và C.
GitHub là mạng xã hội của hơn 12 triệu nhà phát triển ứng dụng trên toàn thế giới. GitHub cung cấp dịch vụ thương mại và tài khoản miễn phí cho các dự án nguồn mở.
Dự đoán số 6: Cuộc chiến PHP và Node.js

Ngôn ngữ PHP đang thiếu tính đột biến
Nhưng cuộc chiến này mang mục đích duy trì những ứng dụng lỗi thời được viết lại. Một vài năm trước, sức ảnh hưởng của ngôn ngữ PHP giảm dần trong giới lập trình, còn Node.js và JavaScript lại trở nên hấp dẫn hơn nhờ nhiều tính năng mới.

Các công cụ với phiên bản mới nhất của PHP trong thời gian gần đây như PHP 7 và HipHop Virtual Machine mang đến hiệu suất đáng kể. Điều đó được chứng minh với việc hiệu suất hoạt động của mã nền (codebases) như WordPress hay Drupal tăng hơn 30% so với trước đây. Nhưng dường như điều này không làm thay đổi những lợi thế mà JavaScript cung cấp trên Node.js như hỗ trợ lập trình bất đồng bộ (asynchronous) hay dễ dàng trong viêc phát triển sử dụng ứng dụng bên thứ 3.

Dự đoán số 7: Nhiều người biết một ứng dụng phải làm thế nào nhưng rất ít trong số đó biết lập trình đích thực

Obama viết mã code để chứng minh ai cũng có thể lập trình.
Hồi tháng 12/2014, Tổng thống Obama của nước Mỹ đã bắt tay vào thực hiện vài dòng JavaScript trong chương trình Hour Of Code. Đây là dự án giáo dục nỗ lực nhằm hướng dẫn mọi người làm thế nào để viết một phần mềm.

Tuy nhiên trên thực tế thì rất nhiều người trong số đó sau một thời gian nhận thấy rất khó khăn trong việc sắp xếp những con số, đoạn mã, các API.

Bất cứ ai cũng có thể viết một vòng lặp, nhưng chỉ một số ít có thể lựa chọn đúng các vòng lặp. Giống như việc ai cũng biết cưa gỗ nhưng cuối cùng vẫn phải nhờ thợ mộc đóng bàn ghế cho mình.