Vòng lặp Vê-Bê-A ra sao nhỉ?

Liên hệ QC

VetMini

Ăn cùng góc phố
Tham gia
21/12/12
Bài viết
16,947
Được thích
23,329

1630919042178.png

Tôi trả lời cho bạn này (bài #4) vì thớt kia đã khoá nên phải mở thớt mới.
Vòng lặp theo VBA nó có nhiều điểm về căn bản khác hẳn C.
C có tới mấy điểm khác VBA:
1. VBA là interpreter language, chạy đến đâu dịch đến đó. C là compiler language, dịch cả cụm rồi mới nói và chạy được.
2. C được cha đẻ của nó cố tình viết theo 2 tiêu chí (tiêu chí chứ không phải tiêu chuẩn):
2.1. giảm tối thiểu số từ khoá
2.2. gần với ngôn ngữ macro của máy tính.
3. Xuất thân của C từ B (Unix), xuất thân của VBA là VB, QBasic (DOS). Khái niệm về piping của Unix rõ hơn DOS. Cho nên C hỗ trợ piping trong khi VBA thì không. Trênn thựcn tế, dân không biết pipe thì nói chuyện C chỉ thêm mắc cở.

Chú: ADA là ngôn ngữ hướng đối tượng ngày xưa. Khi Modula 3 ra đời thì ADA chỉ còn dùng trong lĩnh vực quân sự.
Tôi có làm việc với vài người xưng là "giỏi ADA" rồi: khi bước qua C++ (không phải C) thì dân Modula dễ nói chuyện hơn ADA.
Nhận xét riêng củab tôi thì do ADA hơn khó viết cho nên dân đã học cái này hay coi rẻ các ngôn ngữ khác là dễ, và kết quả là học lướt qua, sót căn bản cả đống.
 

View attachment 265528

Tôi trả lời cho bạn này (bài #4) vì thớt kia đã khoá nên phải mở thớt mới.
Vòng lặp theo VBA nó có nhiều điểm về căn bản khác hẳn C.
C có tới mấy điểm khác VBA:
1. VBA là interpreter language, chạy đến đâu dịch đến đó. C là compiler language, dịch cả cụm rồi mới nói và chạy được.
2. C được cha đẻ của nó cố tình viết theo 2 tiêu chí (tiêu chí chứ không phải tiêu chuẩn):
2.1. giảm tối thiểu số từ khoá
2.2. gần với ngôn ngữ macro của máy tính.
3. Xuất thân của C từ B (Unix), xuất thân của VBA là VB, QBasic (DOS). Khái niệm về piping của Unix rõ hơn DOS. Cho nên C hỗ trợ piping trong khi VBA thì không. Trênn thựcn tế, dân không biết pipe thì nói chuyện C chỉ thêm mắc cở.

Chú: ADA là ngôn ngữ hướng đối tượng ngày xưa. Khi Modula 3 ra đời thì ADA chỉ còn dùng trong lĩnh vực quân sự.
Tôi có làm việc với vài người xưng là "giỏi ADA" rồi: khi bước qua C++ (không phải C) thì dân Modula dễ nói chuyện hơn ADA.
Nhận xét riêng củab tôi thì do ADA hơn khó viết cho nên dân đã học cái này hay coi rẻ các ngôn ngữ khác là dễ, và kết quả là học lướt qua, sót căn bản cả đống.
Dạ. Rất cảm ơn bác. Nhưng dù sao cái thắc mắc kia vẫn chưa được giải đáp nên vẫn phải hỏi lại bác.

Tôi thắc mắc thiên về ngữ nghĩa chữ 'khó' của bạn ấy về vòng lặp chứ không phải về lập trình vì tôi đâu biết C ất giáp mô tê gì. Bác có thể nói rõ hơn về chỗ đó chút để biết 'khó' của bạn ấy là thật hay không thật (của 1 người đã biết 1 ngôn ngữ lập trình). Và có 1 chỗ bạn ấy chê VBA vì cái 'khó' đó mà không giải thích nên tôi không thỏa mãn.
 
Upvote 0
Mạn phép trở lại chỗ này:
1630931522514.png

Người này chỉ nói là C chứ không phải là C++ cho nên khi bước vào VBA thì không biết cách tìm các đối tượng liênl ạc giữa VBA và Excel.
Và C là ngôn ngữ lập trình tổng quát đa nền tảng (tuy rằng người ta hay dùng để viết code chèn). Trong đó VBA là ngôn ngữ lập trình ứng dụng có nền tảng đặc thù. Cho nên đem so sánh suông mà khong nêu rõ trường hợp thfi là so sánh khập khểnh.
 
Upvote 0
Dạ. Rất cảm ơn bác. Nhưng dù sao cái thắc mắc kia vẫn chưa được giải đáp nên vẫn phải hỏi lại bác.

Tôi thắc mắc thiên về ngữ nghĩa chữ 'khó' của bạn ấy về vòng lặp chứ không phải về lập trình vì tôi đâu biết C ất giáp mô tê gì. Bác có thể nói rõ hơn về chỗ đó chút để biết 'khó' của bạn ấy là thật hay không thật (của 1 người đã biết 1 ngôn ngữ lập trình). Và có 1 chỗ bạn ấy chê VBA vì cái 'khó' đó mà không giải thích nên tôi không thỏa mãn.
'khó' thì tôi nhìn nhận ADA và Angol 60 khó thật.
Bởi vậy khi Modula 3 ra đời thì ADA hết cửa. Và Pascal nguồn gốc của nó là ngôn ngữ dùng để dạy Angol 60.

C/C++ có khó gì đâu mà hỏi tôi. Hai ngôn ngữ này lên mạng tìm code có cả đống. Lại còn dễ tìm mấy bài giải thích tiêu chuẩn, các thư viện.
Tôi thử vào Delphi xem code Ọbject Pascal còn khó hơn nhiều.

Cái mà người ta muốn phê phán về vòng lặp ở trên có lẽ là họ muốn nói cú pháp for. Mỗi ngôn ngữ có cách thể hiện vòng lặp for căn bản khác nhau. Chứ các loại vòng lặp khác thì cũng như nhau.

VBA không cho thay đổi giá trị cuối cùng (giá trị To).
Pascal không cho thay đổi biến điều khiển vòng lặp bên trong vòng lặp (For i :=...)
C tự do, muốn làm gì thì làm. Tuy nhiên, muốn thực sự lợi dụng ưu điểm của điều 'tự do' này thì phải khá giỏi về piping và thứ tự tính trị từng biểu thức con, và điều kiện của các toán tử,...

Chú: về vòng lặp thì tôi nhìn nhận VBA có khái niệm về code block không chặt chẽ cho nên không áp dụng lệnh continue như các ngôn ngữ khác được.
Các ngôn ngữ về sau này dùng lệnh continue để chuyển về đầu vòng lặp. VBA chỉ có lệnh Exit để nhảy ra thôi. Muốn chuyển về đầu vòng lặp thì phải dùng lệnh goto và label (thường thì người ta đặt label ở cuối vòng lặp và 'goto' chỗ ấy thì cũng tương đương với đầu vòng lặp.
 
Upvote 0
Theo tôi chủ thớt kia muốn "gây sự" thôi. :D

Tất nhiên là các ngôn ngữ có những điểm khác nhau, nếu không thì là 1 ngôn ngữ duy nhất rồi. Và có những "cái" mà trong mỗi ngôn ngữ có thể người ta giải quyết theo cách khác, với thuật toán khác. Cũng giống như lập trình nói chung. Công cụ của anh A giải quyết một vấn đề mất vài phút trong khi cũng vấn đề đó công cụ của anh B chỉ làm trong vài giây, bởi anh B dùng thuật toán "độc". Người ta hơn nhau ở công nghệ, ở thuật toán. Mọi cấu trúc ngôn ngữ như Do ... Loop, For, IF ELSE v...v trong mọi ngôn ngữ là như nhau về triết lý. Chỉ khác nhau ở những điểm nhỏ. Vd. triết lý, cách thức hoạt động của FOR i ... trong Delphi và VBA là như nhau. Nhưng trong VBA sau vòng For có thể sử dụng giá trị của biến i còn Delphi không cam kết là i sẽ có giá trị chuẩn. Tức có thể có giá trị như khi dùng trong VBA mà cũng có thể là giá trị từ trên trời. Ai dùng thì tự chịu trách nhiệm, Delphi không cam kết là i sau vòng FOR sẽ có giá trị chuẩn. Bản thân cách giải quyết vòng FOR (implement) có thể khác nhau trong mỗi ngôn ngữ, nhưng triết lý, cách hoạt động thì thường như nhau.
Tất cả những cái khác nhau về implement là quan trọng và đáng nghiên cứu bởi nhà lý thuyết. Còn nhà thực hành chỉ cần hiểu triết lý của của mỗi cấu trúc ngôn ngữ, cấu trúc dữ liệu (vd. mảng), mà những cái này gần như là như nhau trong mọi ngôn ngữ.
Một người từng lập trình vd. trong Delphi, hiểu cách vận hành của FOR mà khi đọc VBA lại kêu là không hiểu thì vô lý. Từng lập trình trong Delphi thì ắt phải có khái niệm về đối tượng, và cách thức "vận hành" cái gọi là đối tượng. Thực ra lập trình hướng đối tượng nói ngắn gọn nhất thì chỉ là truy cập tới đối tượng (tức tạo ra đối tượng nếu chưa có, vd. dictionary, hoặc truy cập tới đối tượng đã tồn tại, vd. workbook, worksheet, range ...) và thực hiện các thuộc tính, các phương thức của đối tượng đó. Vd. tô mầu vùng xyz trong sheet A trong workbook B. Thế thì truy cập tới đối tượng Workbooks là thuộc tính của đối tượng Application, rồi tới workbook B, rồi từ đối tượng workbook B truy cập tới đối tượng Worksheets là thuộc tính của nó, rồi xác định đối tượng Worksheet A, có đối tượng Worksheet A rồi thì truy cập tới đối tượng Range xyz là thuộc tính của nó. Có đối tượng Range xyz rồi thì truy cập tới đối tượng Interior là thuộc tính của nó. Có trong tay đối tượng Interior rồi thì thiết lập thuộc tính Color của nó thôi. Xóa dữ liệu 1 vùng? Thì truy cập tới đối tượng Range rồi gọi phương thức Clear của nó thôi. Cái cần tìm hiểu chính là "hệ thống các đối tượng trong Excel, từ "trung ương" cho tới từng tổ dân phố, tới từng nhà". Thế thôi.

Hiểu đối tượng là gì, biết lập trình hướng đối tượng là gì mà khi học ngôn ngữ khác lại nói tôi không hiểu đối tượng là gì thì cũng là vô lý, xạo nâng lên lũy thừa n.

Nhà thực hành không cần biết Excel được viết bằng ngôn ngữ gì, VBA có ưu khuyết điểm gì so với các ngôn ngữ khác. Những việc đó là việc của nhà lý thuyết.
 
Lần chỉnh sửa cuối:
Upvote 0
'khó' thì tôi nhìn nhận ADA và Angol 60 khó thật.
Bởi vậy khi Modula 3 ra đời thì ADA hết cửa. Và Pascal nguồn gốc của nó là ngôn ngữ dùng để dạy Angol 60.

C/C++ có khó gì đâu mà hỏi tôi. Hai ngôn ngữ này lên mạng tìm code có cả đống. Lại còn dễ tìm mấy bài giải thích tiêu chuẩn, các thư viện.
Tôi thử vào Delphi xem code Ọbject Pascal còn khó hơn nhiều.

Cái mà người ta muốn phê phán về vòng lặp ở trên có lẽ là họ muốn nói cú pháp for. Mỗi ngôn ngữ có cách thể hiện vòng lặp for căn bản khác nhau. Chứ các loại vòng lặp khác thì cũng như nhau.

VBA không cho thay đổi giá trị cuối cùng (giá trị To).
Pascal không cho thay đổi biến điều khiển vòng lặp bên trong vòng lặp (For i :=...)
C tự do, muốn làm gì thì làm. Tuy nhiên, muốn thực sự lợi dụng ưu điểm của điều 'tự do' này thì phải khá giỏi về piping và thứ tự tính trị từng biểu thức con, và điều kiện của các toán tử,...

Chú: về vòng lặp thì tôi nhìn nhận VBA có khái niệm về code block không chặt chẽ cho nên không áp dụng lệnh continue như các ngôn ngữ khác được.
Các ngôn ngữ về sau này dùng lệnh continue để chuyển về đầu vòng lặp. VBA chỉ có lệnh Exit để nhảy ra thôi. Muốn chuyển về đầu vòng lặp thì phải dùng lệnh goto và label (thường thì người ta đặt label ở cuối vòng lặp và 'goto' chỗ ấy thì cũng tương đương với đầu vòng lặp.
Tôi nghĩ rằng khi giải quyết 1 vấn đề khó nhằn thì mới gọi là khó chứ cái cú pháp của từng ngôn ngữ chưa hẳn đã là vấn đề gì lớn. Thực tình là trước đây tôi đã từng viết PHP theo kiểu hướng thủ tục để xử lý cơ sở dữ liệu (chứ đối tượng thì tôi chưa biết gì) thì thấy rằng cái vòng lặp for hắn cũng dễ viết, ngoại trừ không có chữ next thôi.

Mới viết đến đây thì thấy bài của bác batman1, kết hợp lại thì tôi thấy cái chuyện vòng lặp chẳng có gì gọi là khó. Chẳng qua là không có giải thuật đúng thì lặp hoài chẳng ra kết quả. Các bác nhỉ!?
 
Upvote 0
Xin lỗi các Bác cao thủ trên GPE mong hiểu ý em, em nghe giọng văn kiểu này là thấy ớn rồi.
Đại đa số thành viên chúng ta chỉ là người dùng Excel thuần túy, cố gắng tận dụng tối đa khả năng có thể của Excel phục vụ công việc của mình là tốt rồi. Chúng em chỉ ưa thủ túi lọ dầu gió: Nhức đầu cũng bôi, ngã trầy cũng bôi, còn khám chữa lôi thôi thì dành cho bác sỹ. Muốn kê đơn bốc thuốc giỏi thì tốt nhất là làm bác sỹ, chứ nửa mùa thì có ngày ma bắt cả thày.
Nói tóm lại cao siêu thì mua phần mềm, vì Exc hỗ trợ tốt công việc của mình nên cố gắng nắm bắt sử dụng cho các công việc bổ trợ. Thời buổi dịch dã cơm áo gạo tiền máy ai học nhiều cho vui, phải không các Bác
 
Upvote 0
Tôi nghĩ rằng khi giải quyết 1 vấn đề khó nhằn thì mới gọi là khó chứ cái cú pháp của từng ngôn ngữ chưa hẳn đã là vấn đề gì lớn. Thực tình là trước đây tôi đã từng viết PHP theo kiểu hướng thủ tục để xử lý cơ sở dữ liệu (chứ đối tượng thì tôi chưa biết gì) thì thấy rằng cái vòng lặp for hắn cũng dễ viết, ngoại trừ không có chữ next thôi.

Mới viết đến đây thì thấy bài của bác batman1, kết hợp lại thì tôi thấy cái chuyện vòng lặp chẳng có gì gọi là khó. Chẳng qua là không có giải thuật đúng thì lặp hoài chẳng ra kết quả. Các bác nhỉ!?
Có thể lúc dùng PHP bạn cũng chưa nắm vững 'lý thuyết' về vòng lặp for của nó.

VBA:

For (lệnh gán biến vòng lặp) To (biểu thức để biến vòng lặp có thể so sánh trị) Step (bước tăng biến vòng lăp)

Trong đó, (biểu thức để biến vòng lặp có thể so sánh trị)(bước tăng biến vòng lăp) chỉ tính 1 lần trước khi bước vào vòng lặp, và nếu trong vòng lặp bạn làm gì đi nữa thì các trị này vẫn không thay đổi.
(vì vậy, một trong những mẹo VBA là xét biến vòng lặp sau khi thoát đẻ biết xem nó thoát sớm hay đúng số vòng)

Các ngôn ngữ dòng họ C (PHP là một kẻ lỡ mang dòng này):

for (
lệnh 1; lệnh 2; lệnh 3 ) // trong đó lệnh 2 là lệnh xét diều kiện nhảy vào hay chạy tiếp vòng lặp (gần như tương đương với while)
lệnh 1 là cơ hội để code chuẩn bị trước cho vòng lặp. Khác hẳn với các ngôn ngữ còn lại, sự chuẩn bị này có thể chả liên quan gì đến lệnh 2 hay lệnh 3.
lệnh 2 là cái gì cũng được, miễn trị của nó có thể ép về kiểu True/False
lệnh 3 là cái gì cũng được, theo luật thì chả bắt buộc phải liên quan đến lệnh 2. Nó đơn giản chỉ là một lệnh được thi hành lúc cuối vòng lăp, trước khi vòng lặp lượn về xét lệnh 2.
Nói cách khác, 3 cái lệnh này có thể hoàn toàn độc lập với nhau.
Bởi vì hầu hết nó được dùng ở dạng "for (int i = 0; i < n; i++)" cho nên người ta không chịu khó tìm hiểu căn bản (tức là các dạng khác).
Điển hình, tôi có thể viết "for (int i = -1; ++i < n; )" hoàn toàn tương đương với code trên. Bỏ được một lệnh.
(từ int là code C. Bọn PHP, JavaScript, C# dùng var)

Chú thích: vì tính chất 'pipe' mà tôi vẫn lải nhải ở trên, những lệnh trong C đều có trả về giả trị, kể cả giá trị void. Nói theo đúng từ ngữ C thì chỉ riêng việc tôi gọi nó là 'lệnh' cũng có người tôn sùng C phản đối rồi. Vì vậy, ở đây tôi nói trước là tôi chỉ gọi thế trong môi trường VBA; nói theo ngữ pháp GCC hơi khó hiểu.
 
Lần chỉnh sửa cuối:
Upvote 0
Có thể lúc dùng PHP bạn cũng chưa nắm vững 'lý thuyết' về vòng lặp for của nó.

VBA:

For (lệnh gán biến vòng lặp) To (biểu thức để biến vòng lặp có thể so sánh trị) Step (bước tăng biến vòng lăp)
Trong đó, (biểu thức để biến vòng lặp có thể so sánh trị) và (bước tăng biến vòng lăp) chỉ tính 1 lần trước khi bước vào vòng lặp, và nếu trong vòng lặp bạn làm gì đi nữa thì các trị này vẫn không thay đổi.
(vì vậy, một trong những mẹo VBA là xét biến vòng lặp sau khi thoát đẻ biết xem nó thoát sớm hay đúng số vòng)

Các ngôn ngữ dòng họ C (PHP là một kẻ lỡ mang dòng này):

for ( lệnh 1; lệnh 2; lệnh 3 ) // trong đó lệnh 2 là lệnh xét diều kiện nhảy vào hay chạy tiếp vòng lặp (gần như tương đương với while)
lệnh 1 là cơ hội để code chuẩn bị trước cho vòng lặp. Khác hẳn với các ngôn ngữ còn lại, sự chuẩn bị này có thể chả liên quan gì đến lệnh 2 hay lệnh 3.
lệnh 2 là cái gì cũng được, miễn trị của nó có thể ép về kiểu True/False
lệnh 3 là cái gì cũng được, theo luật thì chả bắt buộc phải liên quan đến lệnh 2. Nó đơn giản chỉ là một lệnh được thi hành lúc cuối vòng lăp, trước khi vòng lặp lượn về xét lệnh 2.
Nói cách khác, 3 cái lệnh này có thể hoàn toàn độc lập với nhau.
Bởi vì hầu hết nó được dùng ở dạng "for (int i = 0; i < n; i++)" cho nên người ta không chịu khó tìm hiểu căn bản (tức là các dạng khác).
Điển hình, tôi có thể viết "for (int i = -1; ++i < n; )" hoàn toàn tương đương với code trên. Bỏ được một lệnh.
(từ int là code C. Bọn PHP, JavaScript, C# dùng var)
Bác nói đúng về việc tôi dùng PHP. Lúc đó tôi sẵn có cái web thử nghiệm và 1 tài khoản admin nên viết chơi mấy cái báo cáo kế toán đưa lên web. Tôi cứ công thức mà làm, cứ i chạy từ Lbound đến Ubound để tổng hợp và nó chạy đúng là được, chứ đâu cần biết nó có ý nghĩa gì.
 
Upvote 0
Theo tôi chủ thớt kia muốn "gây sự" thôi. :D
...
Hiểu đối tượng là gì, biết lập trình hướng đối tượng là gì mà khi học ngôn ngữ khác lại nói tôi không hiểu đối tượng là gì thì cũng là vô lý, xạo nâng lên lũy thừa n.

Nhà thực hành không cần biết Excel được viết bằng ngôn ngữ gì, VBA có ưu khuyết điểm gì so với các ngôn ngữ khác. Những việc đó là việc của nhà lý thuyết.
Đồng ý. Bản thân tôi cũng nghĩ là người ta nói dóc.
Tôi không tin là người ta biết cái lý thuyết mà tôi nêu lên ở bài #8.
Không phải là do lý thuyết ấy nó khó khăn gì, muốn thì tìm học thôi.

Nhưng lý do chính là người hiểu biết lý thuyết ngôn ngữ lập trình không bao giờ so sánh khập khiểng như vậy.
Dân 'sư' lý thuyết, dẫu có tin cái này vượt trội cái kia thì cũng đưa chúng về đúng chỗ có thể so sánh. Tỷ dụ cho điểm ưu thế này, trừ điểm nhược thế kia; sau đó cộng lại và so điểm.
 
Upvote 0
Ngẫm lại thì tôi khoá chủ đề kia là đúng. Vì nhờ đó mà có chủ đề này và một số người trong đó có tôi biết thêm được một số kiến thức. Chứ những bàn luận hay ho này mà nối vào cái chủ đề vừa vô duyên vừa xạo kia thì uổng lắm.
 
Upvote 0
Ngẫm lại thì tôi khoá chủ đề kia là đúng. Vì nhờ đó mà có chủ đề này và một số người trong đó có tôi biết thêm được một số kiến thức. Chứ những bàn luận hay ho này mà nối vào cái chủ đề vừa vô duyên vừa xạo kia thì uổng lắm.
Bạn may mắn gặp lúc tôi "lên cơn lì" (*1) thôi. Đang gió phất cờ thì tự cao chút tí :p:p:p, rõ ràng lúc này tôi thấy "tự cao bằng 3 lần khiêm nhường" (*2).

(*1) tôi mở bài xây-giô-na-ra bên kia là cốt xem, nếu trên 75% số người tôi coi là bạn vui vẻ thì tôi trở lại. Nếu dưới con số ấy thì tôi coi như không xứng đáng phải cúi mặt. (bạn tôi không coi như bình đẳng nhau, có người đếm là 3 những cũng có người chỉ là 1)

(*2) tôi vẫn quan niệm Zen: "tự cao đúng lúc đúng chỗ thì có ích cho người, còn khiêm nhường thì phần lớn chỉ là hành động ích lợi cá nhân"
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Các bác có nghĩ lúc nào đó, người ta bỏ luôn ngôn ngữ lập trình đi không?
Lúc đó người dùng cuối chỉ kéo thả là đạt nguyện vọng
Còn ngôn ngữ lập trình nếu còn -- Chỉ còn lại dùng cho lực lượng thật chuyên, sáng tạo và lập các hệ thống môi trường kéo thả trên ---> thế là đỡ rối và làm khó người dùng thuần - như customer/user của Excel chẳng hạn, và chuyên nghiệp hơn
 
Upvote 0
Các bác có nghĩ lúc nào đó, người ta bỏ luôn ngôn ngữ lập trình đi không?
Lúc đó người dùng cuối chỉ kéo thả là đạt nguyện vọng
Còn ngôn ngữ lập trình nếu còn -- Chỉ còn lại dùng cho lực lượng thật chuyên, sáng tạo và lập các hệ thống môi trường kéo thả trên ---> thế là đỡ rối và làm khó người dùng thuần - như customer/user của Excel chẳng hạn, và chuyên nghiệp hơn
Lúc mà AI đến tuyệt đỉnh thì sẽ như vậy. Lúc đó lập trình sẽ bằng giao tiếp ngôn ngữ thông thường. Ví dụ:
- Nè, nếu nói 'Xóa 1 - 100' thì xóa từ dòng 1 đến dòng 100 đi nghe!
- Xin lỗi! Nói bằng miệng không được, phải có văn bản mới ghi vào tập lệnh được.

Lúc đó thì phải đi xin văn bản duyệt. @!>><
 
Upvote 0
Các bác có nghĩ lúc nào đó, người ta bỏ luôn ngôn ngữ lập trình đi không?
Lúc đó người dùng cuối chỉ kéo thả là đạt nguyện vọng
Còn ngôn ngữ lập trình nếu còn -- Chỉ còn lại dùng cho lực lượng thật chuyên, sáng tạo và lập các hệ thống môi trường kéo thả trên ---> thế là đỡ rối và làm khó người dùng thuần - như customer/user của Excel chẳng hạn, và chuyên nghiệp hơn
Hồi đầu thập niên 1990's đã có mấy cái này rồi, gọi là ngôn ngữ lập trình thế hệ 4 và 5 (ngôn ngữ hiện tại vẫn còn là thế hẹ 3). Cái khổ là những chỗ người dùng kéo thả nó không lô gic lắm, và không phù hợp với nhau, cho nên cuối cùng cũng ra nát bét.

Mấy cái như MVP cuaqrn Dot Net là hình thức này, theo nguyên tắc thì lập trình viên cái này chỉ phải viết một chút code. Vấn đề là thiết kế và điều chế được cách liên lạc giữa Model và View thì đã là dân xịn về IT lắm rồi. Không biết cách thiết kế Model thì cũng ra một đống rác thôi. Điển hình là mấy cái File Excel mà bà con đưa lên đây nhờ giải, có đến hơn 90% thiết kế như hạch.
 
Upvote 0
Các bác có nghĩ lúc nào đó, người ta bỏ luôn ngôn ngữ lập trình đi không?
Lúc đó người dùng cuối chỉ kéo thả là đạt nguyện vọng
Còn ngôn ngữ lập trình nếu còn -- Chỉ còn lại dùng cho lực lượng thật chuyên, sáng tạo và lập các hệ thống môi trường kéo thả trên ---> thế là đỡ rối và làm khó người dùng thuần - như customer/user của Excel chẳng hạn, và chuyên nghiệp hơn
Có lâu rồi anh.
Ví dụ Node-RED, hiện tại rất phát triển và phổ biến, được tích hợp vào nhiều nền tảng.
Có vài cái cho trẻ em nữa mà tạm thời em chưa nhớ ra. Cơ bản là giống kiểu Node-RED, kéo thả các khối logic là được kết quả
 
Upvote 0
Web KT
Back
Top Bottom