Low-code là đề tài đang nhận được nhiều sự hứng khởi hiện nay được khuấy động bởi các công ty nghiên cứu thị trường và được xác nhận bởi các nhà cung cấp đua nhau để om sòm nhận danh hiệu này. Nhưng ý nghĩa của lập trình low-code hơi huyền bí, chưa kể đến cách nó hoạt động. Hơn nữa, trong tài liệu khoa học, thuật ngữ này hiếm khi được sử dụng. Chúng ta có thể giải mã thuật ngữ này bằng cách phân tích thành các thành phần của nó. Lập trình có nghĩa là phát triển các chương trình máy tính, bao gồm các hướng dẫn để máy tính thực hiện. Theo truyền thống, lập trình đồng nghĩa với việc viết mã trong một ngôn ngữ lập trình văn bản (textual programming language), như C, Java hoặc Python. Ngược lại, lập trình low-code giảm thiểu việc sử dụng ngôn ngữ lập trình văn bản. Thay vào đó, nó nhằm mục tiêu sử dụng các kỹ thuật thay thế gần hơn với cách người dùng tự nhiên nghĩ về công việc của họ.

Người sử dụng low-code đa dạng từ những nhà phát triển chuyên nghiệp (professional developers) đến những người được gọi là nhà phát triển dân sự (citizen developers). Một nhà phát triển dân sự là một lập trình viên không chuyên nghiệp với ít kiến thức về lập trình chuyên nghiệp. Những người này, đã chọn nghề nghiệp khác ngoài lập trình, thường có nhiều kiến thức chuyên môn về một lĩnh vực cụ thể. Low-code giúp các chuyên gia về lĩnh vực trở thành những nhà phát triển dân sự. Đồng thời, các nền tảng low-code cũng nên cố gắng làm cho những nhà phát triển chuyên nghiệp (những người có kiến thức hoặc sự nghiệp trong phát triển phần mềm) trở nên hiệu quả hơn.

Dù được sử dụng bởi một nhà phát triển dân sự hay một nhà phát triển chuyên nghiệp, lập trình low-code nhằm mục tiêu tiết kiệm thời gian và công sức của việc thực hiện một công việc bằng tay. Động lực tiếp theo cho cá nhân đến từ niềm vui của việc tạo ra một thứ gì đó hữu ích, suy nghĩ về các công việc theo cách tính toán và học được kỹ năng lập trình có thể thúc đẩy sự nghiệp của họ. Doanh nghiệp có thể có động lực riêng để áp dụng các nền tảng low-code, những nền tảng này có thể giảm bớt thiếu hụt những nhà phát triển chuyên nghiệp, giảm lỗi trong các công việc thủ công đơn điệu và nhân đôi sự tiết kiệm thời gian từ chương trình low-code của một người lên đến đồng nghiệp của họ. Một yếu tố khác đang thúc đẩy sự phát triển của low-code là sự gia tăng của các phần mềm dựa trên đám mây dưới dạng dịch vụ, cung cấp cả giao diện để tự động hóa và một nền tảng để triển khai các tự động hóa.

Một số khái niệm gắn liền với lập trình low-code. Lập trình không mã (No-code programming) là một hướng tiếp cận tinh khiết hơn, không sử dụng bất kỳ mã lập trình văn bản nào được viết thủ công. Lập trình của người dùng cuối (End-user programming – EUP) tập trung vào người đang thực hiện lập trình (người dùng cuối như nhà phát triển dân sự) thay vì cách họ không thực hiện lập trình của họ (không sử dụng mã văn bản). Thuật ngữ này thường xuất hiện trong tài liệu học thuật và gần giống với low-code, nhưng không loại trừ việc sử dụng ngôn ngữ lập trình văn bản. Một khoảng trống khác giữa EUP và low-code là low-code nhằm mục tiêu phục vụ không chỉ người dùng cuối mà còn các nhà phát triển chuyên nghiệp.

Bock và Frank cùng với Sahay và cộng sự gần đây đã so sánh các nền tảng low-code thương mại, và Barricelli cùng đồng nghiệp gần đây đã đã lập bản đồ tài liệu EUP. Ngược lại, bài viết này kết nối khoảng cách giữa low-code và tài liệu học thuật, đồng thời bổ sung các chi tiết và quan điểm thiếu sót. Low-code bao gồm các kỹ thuật chuyên sâu hơn, chẳng hạn như ngôn ngữ lập trình trực quan (visual programming languages – VPLs), lập trình bằng minh họa (programming by demonstration – PBD), lập trình theo ví dụ (programming by example – PBE), tự động hóa quy trình robot (robotic process automation – RPA), lập trình bằng ngôn ngữ tự nhiên (programming by natural language – PBNL), và những kỹ thuật khác. Các cuộc khảo sát về những kỹ thuật này thường cụ thể và thường đã lỗi thời. Ngược lại, bài viết này xem xét các tài liệu gần đây trên tất cả các kỹ thuật này.

Bài viết này khám phá low-code từ góc độ của các mô hình lập trình, với việc low-code cung cấp cho nhà phát triển dân sự một mô hình để tạo ra các chương trình máy tính. Một mô hình lập trình là một tập hợp các trừu tượng hóa hỗ trợ việc phát triển các chương trình máy tính. Mô hình lập trình có thể là low-code hoặc không, và chúng có thể chuyên biệt cho một lĩnh vực cụ thể hoặc sử dụng chung. Một số mô hình lập trình là các ngôn ngữ; ví dụ, Java là một ngôn ngữ chung và SQL chuyên biệt cho lĩnh vực, và cả hai đều không phải là low-code. Scratch là một mô hình lập trình low-code dành cho trẻ em tập trung vào truyền thông, làm cho nó chuyên biệt cho lĩnh vực đó. Góc nhìn từ mô hình lập trình giúp nhấn mạnh các kỹ thuật chung cho việc viết, đọc và thực thi các chương trình, và giúp liên kết low-code với nghiên cứu về tổng hợp chương trình và ngôn ngữ chuyên biệt cho từng lĩnh vực.

Bài viết này đi sâu vào ba kỹ thuật low-code nổi bật: lập trình trực quan (VPL), lập trình bằng minh họa (PBD) và lập trình bằng ngôn ngữ tự nhiên (PBNL). Phần đi sâu tập trung vào các khối xây dựng cơ bản và một khung nhất quán chung cho cả ba kỹ thuật. Các tài liệu tham khảo trong bài viết này bao gồm cả công trình nghiên cứu gốc và các tiến bộ gần đây trong các mô hình lập trình low-code, chẳng hạn dựa trên trí tuệ nhân tạo. Hơn nữa, bài viết này nhằm mục tiêu loại bỏ những lời đồn đại xoay quanh low-code để tiết lộ các nền tảng kỹ thuật bên dưới. Hy vọng rằng việc làm này sẽ khuyến khích sự phát triển tốt hơn của lĩnh vực này thông qua việc nhận thức về các nghiên cứu hiện có (mặc dù phân tán) và cuối cùng sẽ dẫn đến sức mạnh lớn hơn cho người dùng cuối.

Chi tiết bài báo >

Posted in , , ,