Scratch - MakeCode - Blockly
Hỏi: Triết lý của Scratch 3 và PXT-arcade và Blockly khác gì nhau mà chúng ta có các sản phẩm khác nhau - dù chúng chung gốc?
Đáp: Dù Scratch 3, PXT/MakeCode Arcade và Blockly gốc đều có chung gốc rễ (block-based visual programming, Scratch 3.0 và MakeCode đều xây dựng trên nền tảng Blockly của Google), nhưng chúng lại tạo ra các sản phẩm rất khác nhau. Sự khác biệt chủ yếu nằm ở triết lý thiết kế (design philosophy), mục tiêu giáo dục và đối tượng người dùng mà đội ngũ phát triển nhắm đến.
Dưới đây là bảng so sánh rõ ràng các triết lý cốt lõi:
| Tiêu chí | Scratch 3 (MIT Media Lab) | PXT / MakeCode Arcade (Microsoft) | Blockly gốc (Google) |
|---|---|---|---|
| Triết lý giáo dục chính | Constructionism (Seymour Papert/Resnick): Học qua việc tạo ra và chia sẻ sản phẩm ý nghĩa, sáng tạo cá nhân. Tập trung vào "low floor, high ceiling, wide walls" (dễ bắt đầu, không giới hạn, nhiều hướng đi). | Bridging blocks to text/real-world coding: Dạy lập trình như một kỹ năng thực tế, chuyển tiếp mượt mà sang code text (JS/TS), kết nối với phần cứng và ứng dụng thực tế. | Công cụ linh hoạt (library): Không phải môi trường hoàn chỉnh, mà là "engine" để xây dựng editor block-based tùy chỉnh cho bất kỳ mục đích nào (app, game, hardware...). Tập trung vào tính modular và multi-language generation. |
| 4P của Creative Learning (Projects, Passion, Peers, Play) | Rất mạnh: Khuyến khích tinkering (thử nghiệm chơi đùa), personalization (dự án cá nhân), sharing/remixing cộng đồng lớn, play là trung tâm. | Ít nhấn mạnh "play" thuần túy, thay vào đó là structured creativity (sáng tạo có cấu trúc, hướng đến mục tiêu cụ thể như làm game hoặc điều khiển thiết bị). | Không có triết lý giáo dục riêng — chỉ là công cụ kỹ thuật, triết lý phụ thuộc vào người dùng nó (ví dụ: Scratch dùng nó để creative, MakeCode dùng để practical). |
| Mục tiêu chính | Khuyến khích sáng tạo, kể chuyện, nghệ thuật + code, phát triển computational thinking qua dự án mở (stories, animations, games đa dạng). | Tập trung game development (Arcade) hoặc physical computing/hardware (micro:bit, Adafruit...), dạy problem-solving thực tế, dễ chuyển sang lập trình chuyên nghiệp. | Cung cấp nền tảng để tùy chỉnh cao cho các domain cụ thể (puzzle, education, enterprise, robotics...), sinh code ra nhiều ngôn ngữ (JS, Python, Lua...). |
| Tại sao sản phẩm khác nhau? | Scratch là môi trường hoàn chỉnh, cộng đồng-driven, ưu tiên tự do sáng tạo → dẫn đến hàng triệu dự án đa dạng (không chỉ game). | MakeCode Arcade là domain-specific (game retro), với blocks chuyên biệt (sprites, overlap, tilemap), simulator mạnh, dễ deploy → sản phẩm tập trung, polished cho game-making. | Blockly chỉ là thư viện → không có sản phẩm "sẵn", nên khi dùng để xây Scratch → creative & open; dùng cho MakeCode → structured & hardware-oriented. |
| Số lượng blocks & complexity | Ít blocks hơn, versatile (ít nhưng linh hoạt, khuyến khích combine để giải quyết vấn đề). | Nhiều blocks chuyên biệt hơn, tiện lợi nhưng có thể làm người học "search" thay vì "think". | Tùy người implement — có thể ít (demo đơn giản) hoặc nhiều (như MakeCode). |
| Chuyển tiếp sang text code | Không hỗ trợ trực tiếp (có extension nhưng không mượt). | Rất mạnh: Flip giữa blocks ↔ JavaScript ngay lập tức → cầu nối tốt cho học sinh lớn hơn. | Hỗ trợ generator đa ngôn ngữ → tùy target (có thể rất tốt hoặc cơ bản). |
| Cộng đồng & chia sẻ | Cực mạnh (scratch.mit.edu), remix là văn hóa cốt lõi. | Có cộng đồng, nhưng nhỏ hơn; tập trung vào gallery projects/target-specific. | Không có cộng đồng riêng — phụ thuộc vào sản phẩm build trên nó. |
Tóm tắt sự khác biệt cốt lõi khiến sản phẩm "ra khác nhau" dù chung gốc Blockly
- Scratch 3: Ưu tiên sáng tạo tự do, chơi đùa, cộng đồng → giống như "LEGO mở" cho kể chuyện + nghệ thuật + code. Kết quả: Hàng triệu dự án đa dạng, ít "cố định" một domain.
- PXT/MakeCode Arcade: Ưu tiên tập trung domain (game/hardware) + chuyển tiếp thực tế sang code text → giống như "LEGO chuyên game" với hướng dẫn rõ ràng, blocks tiện lợi → sản phẩm polished, dễ đạt kết quả "wow" nhanh (game chạy mượt trên web/handheld).
- Blockly: Chỉ là công cụ nền tảng (engine) → triết lý trung lập, nên sản phẩm cuối cùng phụ thuộc hoàn toàn vào người build (MIT build Scratch → creative; Microsoft build MakeCode → practical/hardware/game-focused).
Nói cách khác: cùng dùng "động cơ Blockly", nhưng MIT "lái" theo hướng nghệ thuật + tự do sáng tạo, Microsoft "lái" theo hướng ứng dụng thực tế + game/hardware, nên sản phẩm mới khác nhau rõ rệt.
Nếu bạn thích Arcade vì cảm giác "game mượt, blocks đẹp, simulator mạnh" thì đó chính là kết quả của triết lý focused + practical của MakeCode. Còn Scratch cho cảm giác "tự do tha hồ remix, kể chuyện" nhờ triết lý constructionist mạnh mẽ hơn.
Bạn thấy triết lý nào gần với mục tiêu dự án của mình hơn (sáng tạo mở hay game/hardware cụ thể)? 😊