Lần đầu của tôi...
Trong series  "Lập trình và tán gái" của mình, mình đã nói sẽ dùng Python, nhưng càng nghĩ, mình lại càng thấy nhớ lại thời "rực rỡ" ấy cùng P., phải chăng, vì đó là lần đầu, và cái gì lần đầu thì thường khó quên.
Không liên quan:

Nên đây là một bài ngoài lề về mối tình đầu của mình, Pascal..



Pascal, em là ai?

Bạn chỉ cần search "Pascal là gì" trên google thì sẽ ngay lập tức nhận được khoảng 496.000 kết quả. Nhưng đối với tôi, Pascal không chỉ có nhiêu đó..
Thế Pascal trong tôi là gì?
Pascal trong tôi là những ngày lớp Bốn, lớp Năm, vớ được quyển sách giáo khoa của anh chị nào đó mà vô tình đọc được chữ "Pascal", lúc ấy có biết  gì đâu, chỉ biết đó là một cái gì đó xanh lè có cái gì đó nhay nháy, thỉnh thoảng thì xuất hiện dòng màu đỏ đỏ, mà mãi sau này, tôi mới nhận ra cái dòng đỏ đó là khởi nguồn của biết bao nhiêu lần vò đầu bứt tai...
Năm lớp Tám, tôi chính thức được biết đến Pascal qua những từ như "lập trình", "chương trình dịch", "thuật toán",.... mà lúc ấy, tôi có hiểu những thứ ấy là cái đ' gì đâu... cộng với cả giọng giảng bài như ru ngủ của ông thầy, tôi đâm ra ghét Pascal
Nhưng số phận run rủi thể nào, tôi lại đạt điểm cao nhất tin học năm đó, mà cũng do số phận, tôi lại được chọn đi thi Olympic Tin học....
Dăm ba cái kì thi...
Tôi cày ngày, cày đêm, sáng thuật toán, chiều thuật toán, tối lại thuật toán, tôi cày như trâu, nhưng trâu cày thì nát ruộng, còn tôi cày thì... nát cmn con mắt.
Tôi đi viện..
Và sau bao công sức bỏ ra, tôi đạt được dăm ba cái giải Olympic...
Và rồi tôi đem lòng yêu Pascal
Chính em ấy đã đưa tôi đến với lập trình. Tôi điên cuồng lao vào tìm hiểu những khái niệm, những ngôn ngữ mới, lập trình Web, lập trình phần cứng, phần mềm, hướng đối tượng, blablabla... và tôi nhận ra, có vài lời chê, à không, có rất nhiều lời chê về Pascal, rằng "yếu", "lằng nhằng", "ít được hỗ trợ", và cái thằng tôi, vốn là một thằng cả thèm chóng chán, cộng thêm kiến thức thiếu xót, đã có mới mà nới cũ.
Cũng chính em ấy đã đưa tôi đến với những người bạn mới mà sau này, thính thoảng bọn tôi vẫn liên lạc, nói chuyện, nhưng đó hình như đã vượt qua khuôn khổ của bài viết này rồi, tôi nên dừng lại..
Và tôi tạm biệt Pascal
Cũng trong khoảng thời gian này, tôi nhận ra mình cực kì thích thiết kế bố cục, trang trí màu sắc cho website, nên tôi tìm hiểu và lao ngay vào học thiết kế Web, lúc ấy tôi gần 16 tuổi, cái tuổi mà người đời gọi là "trẻ trâu"
Tôi tìm cho mình ngay một nhóm, bao gồm mấy anh chị trong trường chứ không đâu xa, bọn tôi học về HTML, rồi bố cục CSS, rồi JS, rồi... à, không có sau đó nữa, vì mỗi người bận một công việc riêng nên nhóm đã giải tán... Tôi có một thời gian suy nghĩ "ôi, cái đệt, nhóm mình hoạt động tốt thế này mà, sao lại giải tán???" mà bạn biết, cái thất bại đầu đời ấy, khó tả lắm...
Rồi lên năm lớp 11, mới vài tháng trước đây thôi, tôi lại được tiếp xúc với Pascal. Cầm quyển sách trên tay mà lòng tôi nao nao khó tả, nhớ lại những ngày trước.
"Pascal là ngôn ngữ đặc biệt thích hợp cho kiểu lập trình có cấu trúc. Đó là ngôn ngữ cho phép mô tả thuật toán thuận tiện" - Bộ Giáo Dục said.


Rồi tôi lấy lap ra và viết thử vài dòng Pascal và mở Terminal lên:
$fpc test.pas
The program 'fpc' is currently not installed. You can install it by typing:
sudo apt install fp-compiler-3.0.0
Ôi cái gì vậy, mình đã gỡ em ra từ khi nào, tôi tự trách mình, rồi lại hì hục cài lại "fpc", mất hơn mười phút...
"Cô ơi, cho em tham gia đội bồi dưỡng Tin đi cô", đó là câu tôi nói vài ngày sau đó với cô giáo hướng dẫn, vì sau một thời gian bỏ bê mà quay lại con đường "Pascalling" tôi dường như được khai sáng, rằng ngôn ngữ nào học mà chả có hiểu quả, chỉ có người học như thế nào thôi, tôi quyết định quay lại trả món "nợ" với em ấy. Còn lý do tại sao tôi muốn tham gia thi Tin học thì.... Tại sao không chứ, tôi là thằng hám danh mà :3

Sao người đời lại ghét em chứ?

Quả thật em có nhiều hạn chế, khuyết điểm, nhưng dường như những khuyết điểm của em đã bị người đời làm quá lên, tôi cảm thấy buồn vì điều đó...
Pascal không còn thông dụng?
Có thể mục đích của ông chú Niklaus Wirth khi phát triển Pascal là một thứ gì đó "ngầu" hơn là chỉ "đưa vào hệ thống giáo dục". Nhưng không thể phủ phận rằng Pascal đang được đưa vào giảng dạy trên rất nhiều trường THCS và THPT (ít nhất là ở Việt Nam), vậy tại sao không thể yêu em dù chỉ một lần? Và đối với học sinh cấp 2,  cấp 3 thì công việc chính là rèn luyện tư duy lập trình chứ không phải rèn luyện các bạn thành "fây búc hắc cờ" hay "viết phần mềm triệu đô" đâu. Vì sao Pascal lại tốt với tư duy lập trình thì tôi sẽ nói ở phần sau.
Pascal khó học?
Khi mấy bạn newbie tìm hiểu "ngôn ngữ nào tốt hơn" thì (thường) sẽ so sánh bằng chương trình "Hello, World" giữa các ngôn ngữ với nhau, cụ thể:
Ôi cái chương trình Python sao chỉ có một dòng mà sao Pascal nó rắc rồi thế @@
Thế mới có  định nghĩa là "thông dịch" và "biên dịch" đó bạn 
Hay:
Chương trình đơn giản thôi mà cũng mất từng ấy dòng thì viết chương trình phức tạp hơn sẽ như thế nào 
Học cả hai đi rồi biết, bro.

Pascal không được hỗ trợ rộng rãi?
Lại quay về ý đầu tiên, đối với "mục đích giáo dục phổ thông" thì không nhất thiết phải có những thư viện, framework đồ sộ.

Tại sao tôi thích Pascal?

Pascal ít thư viện
Đúng vậy, mà đối với những bạn mới bắt đầu (như tôi) thì việc này rất cần thiết. Để rèn luyện tư duy lập trình thì sự thiếu thốn của Pascal lại là một lợi thế. Ở đây tôi không nói đến những anh chị đi làm, tôi chỉ nói đến học sinh phổ thông (lại một lần nữa, là tôi). Sự thiếu thốn ấy sẽ giúp bạn động não và tăng cường sự sáng tạo. Ví dụ nhé, chỉ là ví dụ thôi, nếu đặt bạn ở nơi chỉ có những dụng cụ ở bản như dao, kéo, búa, liềm, vài bao lúa,... và bảo bạn trồng lúa thì để tăng cường năng suất lao động bạn phải tự động não tạo ra các thứ như xe đẩy, thùng đựng, máy gặt, và cả kho để bảo quản nữa,... dần dàn bạn sẽ hiểu bản chất của những vật ấy. Còn nếu bạn được đặt ở nơi đầy đủ tiện nghi, máy móc hiện đại thì tuy năng suất bạn tạo ra có lớn hơn thật đấy, nhưng nếu lỡ một ngày trời sập... thì bạn có biết cách gầy dựng lại không. Việc này giải thích cho việc trẻ em tự trải nghiệm, học tập từ môi trường xung quanh sẽ có nhiều kinh nghiệm sống hơn những đứa trẻ từ lớn tới nhỏ chỉ biết sống trong bốn bức tường, đầy đủ tiện nghi, ấm cúm.
Quay lại thì tôi lấy ví dụ, để viết hàm sắp xếp thì đối với Pascal, không có cách nào khác là.. vác tay lên và code, từ BubbleSort cho tới QuickSort,  HeapSort,.... phải học
Còn đối với Python thì chỉ cần 1 dòng code thôi
(chết, dòng code gì đó tôi quên rồi)
Về cơ bản là "sort" trong Python đã được viết sẵn, cho nên người lập trình chỉ cần viết cú pháp và *đính đoong*, việc này rất hiệu quả cho những người đã am hiểu về các thuật toán "sort" nhưng đối với newbie thì...
Mảng bắt đầu từ 0, hay 1,... sao phải xoắn
Về hình thức thì mảng của Pascal có thể bắt đầu từ bất kì số nguyên nào.
Tôi không đùa đâu, không tin thì thử đi!!
a : array[-10..100] of integer;
Thôi, tạm bao nhiêu đấy là đủ rồi.....
Vì "Yêu nhau yêu cả đường đi/ Ghét nhau ghét cả tông chi họ hàng mà"
Còn bây giờ, một thằng con trai sắp bước qua tuổi 17 như tôi, ch.... À mà thôi, dừng lại được rồi, tôi đi luyện thuật toán tiếp đây...


Bài này mình không có ý định áp đặt ý tưởng "Pascal là tốt" "Pascal tuyệt vời" lên các bạn, vì sự đời vốn có gì hoàn hảo, mình chỉ đưa ra một góc nhìn khác về Pascal, và... không có thứ gì thực sự tốt, cũng không có thứ gì thực sự xấu.
Còn về việc tại sao tôi yêu Pascal thế mà không sử dụng Pascal trong series kia thì.. tại "Lập trình và tán gái" là một series "truyền cảm hứng" cho việc học lập trình và giúp thư giãn, xả stress chứ không hề mang tính học thuật cao, vì vậy dùng Python là hợp lý...
Chúc một ngày vui.