Scratch (ngôn ngữ lập trình)

Bách khoa toàn thư mở Wikipedia
Buớc tưới chuyển hướng Bước tới tìm kiếm
Scratch (ngôn ngữ lập trình)
Scratchlogo.svg
Logo của Scratch
Xuất hiện lần đầu2002 (2002) (Scratch 1.0)
2005 (2005) (Scratch 1.4)
8 tháng 1 năm 2007; 13 năm trước (2007-01-08) (ra mắt)
9 tháng 5 năm 2013; 7 năm trước (2013-05-09) (Scratch 2.0)
2 tháng 1 năm 2019; 16 tháng trước (2019-01-02) (Scratch 3.0)
Phiên bản ổn định
Scratch 3.0
Ngôn ngữ thực thiSqueak (Scratch 0.x, 1.x)
ActionScript (Scratch 2.0)
JavaScript (Scratch 3.0)
Hệ điều hànhWindows, macOS, Linux (chạy trên hầu hết các trình duyệt)
Giấy phépGPLv2 và Giấy phép mã nguồn Scratch
Trang mạngscratch.mit.edu
Ảnh hưởng bởi
Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, AgentCubes, Etoys
Ảnh hưởng tới
ScratchJr, Snap!, CoderZ
"Scratch Cat" (Mèo Scratch) Linh vật của trang web.

Scratch là một ngôn ngữ lập trình trực quan cộng cộng trực tuyến nhắm mục tiêu chủ yếu vào trẻ em. Người dùng của trang web có thể tạo các dự án trực tuyến bằng giao diện giống như khối. Dịch vụ được phát triển bởi MIT Media Lab, đã được dịch sang hơn 70 ngôn ngữ và được sử dụng ở hầu hết các nơi trên thế giới. Scratch được dạy và sử dụng trong các trung tâm, trường học và cao đẳng sau giờ học, cũng như các tổ chức tri thức công cộng khác. Tính đến tháng 5 năm 2019, số liệu thống kê của cộng đồng trên trang web chính thức của ngôn ngữ cho thấy hơn 40 triệu dự án được chia sẻ bởi hơn 40 triệu người dùng và gần 40 triệu lượt truy cập trang web hàng tháng.

Scratch lấy tên từ một kỹ thuật được sử dụng bởi các trò chơi đĩa như DJ được gọi là "scratching", trong đó các bản ghi vinyl được ghép lại với nhau và thao tác trên bàn xoay để tạo ra các hiệu ứng âm thanh và âm nhạc khác nhau. Giống như scratching, trang web cho phép người dùng trộn lẫn các phương tiện khác nhau (bao gồm đồ họa, âm thanh và các chương trình khác) theo cách sáng tạo bằng cách "phối lại" các dự án.

Triết lý[sửa | sửa mã nguồn]

Scratch khuyến khích chia sẻ, tái sử dụng và kết hợp mã, như được biểu thị bằng khẩu hiệu của họ, "Tưởng tượng, Chương trình, Chia sẻ". Người dùng có thể tạo dự án của riêng mình hoặc họ có thể chọn "phối lại" dự án của người khác. Các dự án được tạo và phối lại với Scratch được cấp phép theo Giấy phép Chia sẻ Chia sẻ Ghi nhận tác giả Creative Commons. Scratch tự động cung cấp tín dụng cho người dùng đã tạo dự án và chương trình ban đầu.

Đây là một phần của nghiên cứu nhằm thiết kế các công nghệ mới để tăng cường học tập tại các trung tâm sau giờ học và các môi trường giáo dục không chính thức khác, đồng thời mở rộng cơ hội cho thanh thiếu niên có thể trở thành nhà thiết kế và nhà phát minh. Scratch được phát triển dựa trên sự tương tác liên tục với thanh niên và nhân viên tại Computer Clubhouses. Việc sử dụng Scratch tại Computer Clubhouses được dùng làm mô hình cho các trung tâm sau giờ học khác cho thấy cách các thiết lập học tập không chính thức có thể hỗ trợ sự phát triển của sự lưu loát công nghệ.

Lịch sử[sửa | sửa mã nguồn]

Giao diện trang chủ Scratch 2.0.

Nhóm mẫu giáo trọn đời của MIT Media Lab, do Mitchel Resnick dẫn đầu, hợp tác với công ty tư vấn có trụ sở tại Montreal, Công ty Playful Inocate, do Brian Silverman và Paula Bonta đồng sáng lập, đã cùng nhau phát triển phiên bản Scratch duy nhất dành cho máy tính để bàn vào năm 2003. Nó bắt đầu như một ngôn ngữ mã hóa cơ bản, không có danh mục được dán nhãn và không có cờ xanh. Scratch được thực hiện với mục đích dạy trẻ em viết mã.

Vào ngày 6 tháng 5 năm 2013, Scratch đã đóng cửa trong ba ngày để cập nhật lên Scratch 2.0 và được phát hành vào ngày 9 tháng 5 năm 2013. Bản cập nhật đã thay đổi giao diện của trang web và bao gồm một trình chỉnh sửa dự án trực tuyến. Một trình soạn thảo Scratch 2 ngoại tuyến cũng có sẵn. Với phần giới thiệu, các khối tùy chỉnh có thể được xác định trong các dự án, cùng với một số cải tiến khác.

Vào năm 2017, Scratch 2.0 đã có sẵn trực tuyến và dưới dạng một ứng dụng cho Windows, macOS, Linux (bắt buộc phải có Adobe Air) và không chính thức cho Android dưới dạng tệp APK. Trình chỉnh sửa ngoại tuyến Scratch 2.0 có thể được tải xuống cho Windows, Mac và Linux trực tiếp từ trang web của Scratch nhưng sau đó, hỗ trợ cho Linux đã bị loại bỏ. Phiên bản di động không chính thức phải được tải xuống từ các diễn đàn Scratch.

Scratch 3.0[sửa | sửa mã nguồn]

Giao diện trang chủ Scratch 3.0.

Scratch 3 được Scratch Team công bố lần đầu tiên vào năm 2016. Một số phiên bản alpha công khai đã được phát hành trong khoảng thời gian từ đó đến tháng 1 năm 2018, sau đó các phiên bản "Preview" tiền beta được phát hành. Phiên bản beta của Scratch 3 đã được phát hành vào ngày 1 tháng 8 năm 2018, thay thế "bản xem trước" beta trước đó và có sẵn để sử dụng trên hầu hết các trình duyệt, ngoại trừ đáng chú ý là Internet Explorer. Phiên bản phát hành đầu tiên của Scratch 3.0 được phát hành vào ngày 2 tháng 1 năm 2019. Sự khác biệt đáng chú ý nhất giữa 3.0 và các lần lặp trước đó là một thiết kế "vật liệu" trải dài trên toàn bộ giao diện. Phần "trình phát dự án" của trang web cũng được cập nhật lên thiết kế này khi phát hành Scratch 3.0, vì trang web đã được cập nhật chậm từ năm 2016 sang thiết kế vật liệu.

Scratch 3.0 không dựa trên 2.0 - thay vào đó, nó là một cơ sở mã dựa trên JavaScript hoàn toàn mới được tạo thành từ nhiều thành phần như "Scratch-GUI", phần chính của chương trình, "Scratch-VM", phiên dịch mã và "Scratch-Render", công cụ kết xuất.

Trong 3.0, sự hiện diện của sân khấu cũng được đặt trở lại ở phía bên phải màn hình như trong các phiên bản 1.14, thay vì bên trái như đã thấy trong các phiên bản 2.0. Các tính năng khác bao gồm dịch ngôn ngữ, chuyển văn bản thành giọng nói và khả năng tương thích với một số phần công nghệ vật lý như micro-bit của BBC; các tính năng này khả dụng thông qua các plugin tích hợp được gọi là "tiện ích mở rộng". Người dùng cũng có thể tạo các tiện ích mở rộng của riêng mình cho Scratch 3.0 bằng Javascript, tương tự như cách người dùng cũng có thể tạo tiện ích mở rộng bằng JavaScript cho phiên bản Scratch 2.0 đặc biệt có tên là "Scratch 2" (bản thân nó không còn được hỗ trợ do phát hành 3.0). Các tiện ích mở rộng khác đã được thêm vào bao gồm Makey Makey,Chuyển văn bản thành giọng nói, LEGO MINDSTORMS EV3, LEGO Education WeDo 2.0 và BB3. Ngoài ra, một số tính năng của Scratch 2.0 đã được chuyển sang các tiện ích mở rộng, bao gồm âm nhạc, cảm biến video và bút.

Không giống như Scratch 2.0, Scratch 3 tuân theo phiên bản ngữ nghĩa, do đó, số "phụ" của số phiên bản thay đổi, thay vì chỉ thay đổi số "bản vá". Tuy nhiên, hiện tại, không có phần nào trong mã Scratch 3 thực sự chứa số phiên bản và hiện tại không có hộp thoại "Giới thiệu" để báo cáo số phiên bản.

Scratch 3.0 được MIT phát hành chính thức vào ngày 2 tháng 1 năm 2019.

Sử dụng giáo dục[sửa | sửa mã nguồn]

Scratch đã phổ biến ở Vương quốc Anh thông qua các Câu lạc bộ Code. Scratch được sử dụng làm ngôn ngữ giới thiệu vì việc tạo ra các chương trình thú vị tương đối dễ dàng và các kỹ năng học được có thể được áp dụng cho các ngôn ngữ lập trình khác như Python và Java.

Scratch không dành riêng cho việc tạo trò chơi. Với hình ảnh được cung cấp, lập trình viên có thể tạo hình ảnh động, văn bản, câu chuyện, âm nhạc và nhiều hơn nữa. Đã có nhiều chương trình mà học sinh có thể sử dụng để học các chủ đề về toán, lịch sử và thậm chí là nhiếp ảnh. Scratch cho phép giáo viên tạo ra các bài học về khái niệm và hình ảnh và bài tập trong phòng thí nghiệm khoa học với hình ảnh động giúp trực quan hóa các khái niệm khó khăn. Trong khoa học xã hội, người hướng dẫn có thể tạo ra các câu đố, trò chơi và hướng dẫn với các yếu tố tương tác. Sử dụng Scratch cho phép những người trẻ hiểu logic của lập trình và cách xây dựng và cộng tác một cách sáng tạo.

Scratch được dạy cho hơn 800 trường học và 70 trường cao đẳng của tổ chức DAV ở Ấn Độ và trên toàn thế giới.

Giảng viên Đại học Harvard, Tiến sĩ David J. Malan thích sử dụng Scratch hơn các ngôn ngữ lập trình giới thiệu thường được sử dụng, như Java hoặc C, trong khóa học khoa học máy tính giới thiệu của mình. Tuy nhiên, có một lợi ích hạn chế trong giáo dục trình độ đại học. Malan chuyển ngôn ngữ khóa học của mình sang C sau tuần đầu tiên.

Phê bình[sửa | sửa mã nguồn]

Đã có một lượng đáng kể những lời chỉ trích[ai?] của Scratch như một ngôn ngữ lập trình giới thiệu do phong cách kéo và thả của nó có khả năng mang đến cho trẻ em (đối tượng mục tiêu của nó) ý tưởng sai về lập trình và quá "phủ đường" hoặc xuống nước so với các ngôn ngữ lập trình khác như C++, C, Java hoặc JavaScriptt. Tuy nhiên, một cơ sở dữ liệu có thể được mô phỏng với một biến đám mây.

Đã có những chỉ trích về Scratch 2 rằng nó dựa trên công nghệ Adobe, với một số giả định rằng nó dựa trên Adobe Flash đã lỗi thời từ ngày 9 tháng 4 năm 2019. Sự phụ thuộc chính của Scratch 2 là vào Adobe AIR, mặc dù chỉ có sẵn cho các hoạt động của máy khách trên Microsoft Windows và Apple Mac.

Nền tảng lập trình dựa trên web của Scratch 2 có thể rất chậm.

Tuy nhiên, Scratch 3.0 sử dụng JavaScript bao gồm WebGL, một nền tảng cập nhật hơn cũng hoạt động trên thiết bị di động.

Khi phiên bản đầu tiên của Scratch 3 được phát hành, nó đã nhận được phản ứng trái chiều từ cộng đồng. Mặc dù một số kháng cự được quy cho sự thay đổi nói chung, các khiếu nại đã được đưa ra rằng thiết kế lại trông không chuyên nghiệp và trẻ con. Scratch 3.0 cũng đã bị chỉ trích vì có khả năng tương thích ngược kém với các dự án được thực hiện bằng các phiên bản cũ hơn của Scratch, bao gồm các lỗi và dự án không tải.

Giao diện người dùng[sửa | sửa mã nguồn]

Giao diện Scratch có ba phần chính: khu vực sân khấu, bảng khối và khu vực mã hóa để đặt và sắp xếp các khối thành các tập lệnh có thể chạy được.

Khu vực sân khấu có các kết quả (ví dụ: hình động, đồ họa rùa, v.v., ở kích thước nhỏ hoặc bình thường, với toàn màn hình cũng có sẵn) và tất cả các hình thu nhỏ được liệt kê ở khu vực dưới cùng. Giai đoạn sử dụng tọa độ x và y, với 0,0 là tâm sân khấu; sân khấu rộng 480 pixel và cao 360 pixel, x: 240 là ngoài cùng bên phải, x: -240 là phía xa bên trái, y: 180 là trên cùng và y: -180 là dưới cùng.Với một sprite được chọn ở dưới cùng của khu vực tổ chức, các khối lệnh có thể được áp dụng cho nó bằng cách kéo chúng từ bảng khối vào khu vực mã hóa, chứa tất cả các tập lệnh được liên kết với sprite đã chọn. Mỗi cũng có thể được kiểm tra riêng trong các điều kiện và thông số khác nhau thông qua một cú nhấp đúp. Trong tab ScScript, tất cả các khối có sẵn được liệt kê và phân loại. Ngoài ra còn có một tab mở rộng cho phép các khối khác được thêm vào.

Bên cạnh tab ScScript, có tab Trang phục, nơi người dùng có thể thay đổi giao diện của sprite để tạo các hiệu ứng khác nhau, bao gồm cả hoạt hình. Tab cuối cùng là tab Âm thanh, nơi người dùng chèn âm thanh và nhạc vào một sprite.

Khi tạo các họa tiết và hình nền, người dùng có thể tự vẽ sprite bằng tay với "Paint Editor" do Scratch cung cấp, chọn Sprite từ thư viện hoặc tải lên hình ảnh.

Scratch 3.0[sửa | sửa mã nguồn]

Môi trường phát triển Scratch 3.0 khi khởi động.

Giao diện người dùng cho Scratch 3.x được thiết kế với giao diện phẳng, với bảng khối ở bên trái, khu vực tập lệnh ở giữa và sân khấu ở bên phải. Bảng khối được thiết kế dưới dạng một giao diện có thể cuộn, với các phần được gắn nhãn đưa người dùng đến các phần khác nhau của nó. Ở phía dưới bên trái là các phần mở rộng; khi được bấm, nó sẽ hiển thị một danh sách các phần mở rộng Scratch có thể được thêm vào bảng khối dưới dạng các phần mới. Các khối lớn hơn trong khu vực mã hóa được thiết kế để hoạt động trên các thiết bị cảm ứng.

Bảng bên dưới hiển thị các danh mục của bảng khối trong Scratch 3.x (một số danh mục được thấy trước đây trong 2.0 hiện là tiện ích mở rộng và do đó không được liệt kê):

thể loại Ghi chú thể loại Ghi chú
Chuyển động Di chuyển các họa tiết, thay đổi góc và thay đổi giá trị X và Y. Cảm biến Sprites có thể tương tác với môi trường xung quanh mà người dùng đã tạo
Hiển thị Kiểm soát hình ảnh của sprite; đính kèm bong bóng lời nói hoặc suy nghĩ, thay đổi nền, phóng to hoặc thu nhỏ, trong suốt, bóng râm Các phép toán Toán tử toán học, trình tạo số ngẫu nhiên và - hoặc câu lệnh so sánh các vị trí sprite
Âm thanh Phát tập tin âm thanh và hiệu ứng. Trình tự lập trình hiện có sẵn dưới dạng danh mục mở rộng có tên "Âm nhạc". Các biến số Biến và sử dụng danh sách và chuyển nhượng
Sự kiện Chứa các trình xử lý sự kiện được đặt trên đầu của mỗi nhóm khối Khối của tôi Thủ tục tùy chỉnh (khối).
Điều khiển Câu lệnh if-other có điều kiện, "mãi mãi", "lặp lại" và "dừng lại", v.v.

Scratch 2.0[sửa | sửa mã nguồn]

Môi trường phát triển Scratch 2.0 và các lĩnh vực khác nhau khi khởi động

Web Scratch 2.0

Chào thế giới! trong Scratch 2.0

Trong Scratch 2.0, khu vực sân khấu nằm ở phía bên trái, với bảng khối ở giữa. Trái ngược với 3.0, bảng khối được

tạo thành từ các phần riêng biệt không thể cuộn từ phần này sang phần kế tiếp. Ở phía bên phải là khu vực mã hóa. Trong Scatch 2.0, các tiện ích mở rộng được nộp bên trong phần "nhiều khối" hơn trong bảng khối

So với các phiên bản trước của Scratch, các khu vực đã được sắp xếp lại trong phiên bản 2.0, vì trước đó bảng khối nằm ở khu vực bên trái, khu vực sprite được chọn và khu vực script được liên kết với một sprite được chọn nằm ở giữa màn hình và khu vực sân khấu với hình thu nhỏ được liệt kê bên dưới nó nằm ở khu vực bên phải của màn hình.

Bảng bên dưới hiển thị các phần khác nhau của bảng khối trong Scratch 2.0:

Thể loại Ghi chú Thể loại Ghi chú
Chuyển động Di chuyển các họa tiết, thay đổi góc và thay đổi giá trị X và Y. Sự kiện Chứa các trình xử lý sự kiện được đặt trên đầu của mỗi nhóm khối
Hình ảnh Kiểm soát hình ảnh của sprite; đính kèm bong bóng lời nói hoặc suy nghĩ, thay đổi nền, phóng to hoặc thu nhỏ, trong suốt, bóng râm Điều khiển Câu lệnh if-other có điều kiện, "mãi mãi", "lặp lại" và "dừng lại", v.v.
Âm thanh Phát tệp âm thanh và trình tự lập trình Cảm biến Các sprite có thể tương tác với môi trường xung quanh mà người dùng đã tạo
Bút Vẽ trên khung vẽ bằng cách kiểm soát chiều rộng bút, màu sắc và bóng râm. Cho phép đồ họa rùa. Người vận hành Toán tử toán học, trình tạo số ngẫu nhiên và - hoặc câu lệnh so sánh các vị trí sprite
Dữ liệu Biến và sử dụng danh sách và chuyển nhượng Nhiều khối hơn Quy trình tùy chỉnh (khối) và điều khiển thiết bị bên ngoài và có thể nhập từ PicoBoard hoặc Lego WeDo 1.0 / 2.0

Tiện ích mở rộng[sửa | sửa mã nguồn]

Scratch 2 và 3 đều hỗ trợ các tiện ích mở rộng, có thêm các khối và tính năng bổ sung có thể được sử dụng trong các dự án. Trong Scratch 2, các tiện ích mở rộng đều dựa trên phần cứng, nhưng các tiện ích mở rộng dựa trên phần mềm đã được thêm vào Scratch 3. Ngoài việc thêm các tiện ích mở rộng mới, Scratch 3 cũng đã chuyển một số khối mặc định trong Scratch 2.0 vào phần tiện ích mở rộng, như Music và Pen. Kể từ Scratch 3.0, nhóm Scratch có kế hoạch thường xuyên thêm các tiện ích mở rộng mới.

Vật lý[sửa | sửa mã nguồn]

  • EV3 - điều khiển động cơ và nhận dữ liệu cảm biến từ LEGO EV3
  • Makey Makey - sử dụng Makey Makey để kiểm soát các dự án của bạn
  • LEGO Education WeDo 2.0 - điều khiển động cơ và nhận dữ liệu cảm biến từ LEGO WeDo
  • BBC micro: bit - sử dụng BBC micro: bit để kiểm soát các dự án

Kỹ thuật số[sửa | sửa mã nguồn]

Nhiều tiện ích mở rộng kỹ thuật số trong Scratch 3 từng là danh mục khối thông thường được chuyển sang phần tiện ích mở rộng để giảm sự lộn xộn. Bao gồm các:

  • Âm nhạc - Chơi nhạc cụ kỹ thuật số (trống, kèn, violin, piano và nhiều hơn nữa)
  • Bút - Vẽ trên sân khấu với nhiều độ dày và màu sắc
  • Cảm biến video - Phát hiện chuyển động với máy ảnh.

Tuy nhiên, các tiện ích mở rộng kỹ thuật số mới đã được thêm vào mà không có sẵn trong Scratch 2 khi hợp tác với các công ty. Bao gồm các:

  • Chuyển văn bản thành giọng nói - Chuyển đổi các từ trong văn bản thành đầu ra giọng nói (nhiều giọng nói do Amazon cung cấp)
  • Dịch - Sử dụng Google Dịch để dịch văn bản từ một ngôn ngữ sang nhiều ngôn ngữ khác

Cộng đồng người dùng[sửa | sửa mã nguồn]

Trang web Scratch sau khi phát hành chia sẻ dự án công cộng vào cuối năm 2007

Scratch được sử dụng trong nhiều môi trường khác nhau: trường học, bảo tàng, thư viện, trung tâm cộng đồng và nhà ở. Mặc dù nhóm tuổi người dùng chính của Scratch là từ 8 tuổi đến 18 tuổi, nhưng Scratch cũng đã được tạo ra cho các nhà giáo dục và phụ huynh. Sự tiếp cận rộng rãi này đã tạo ra nhiều cộng đồng xung quanh, cả vật lý và kỹ thuật số.

Cộng đồng trực tuyến[sửa | sửa mã nguồn]

Trên Scratch, các thành viên có khả năng chia sẻ dự án của họ và nhận phản hồi. Các dự án có thể được tải trực tiếp từ môi trường phát triển lên trang web Scratch và bất kỳ thành viên nào trong cộng đồng đều có thể tải xuống mã nguồn đầy đủ để nghiên cứu hoặc phối lại vào các dự án mới. Thành viên cũng có thể tạo các dự án, bình luận, gắn thẻ, yêu thích và "yêu" các dự án của người khác, theo dõi các thành viên khác để xem các dự án và hoạt động của họ và chia sẻ ý tưởng. Các dự án bao gồm từ trò chơi đến hoạt hình đến các công cụ thực tế. Ngoài ra, để khuyến khích tạo và chia sẻ giữa những người dùng, trang web thường xuyên thiết lập các thử thách "Scratch Design Studio".

Nhóm MIT Scratch đảm bảo rằng cộng đồng này duy trì một môi trường thân thiện và tôn trọng mọi người ở mọi lứa tuổi, chủng tộc, sắc tộc, tôn giáo, khuynh hướng tình dục và bản sắc giới. Tất cả các thành viên được yêu cầu cung cấp phản hồi một cách xây dựng và báo cáo bất kỳ nội dung nào không tuân theo các nguyên tắc cộng đồng. Để đảm bảo hơn nữa cho cộng đồng này, Nhóm Scratch quản lý hoạt động của trang và trả lời các báo cáo hàng ngày.

Ngoài ra còn có một cộng đồng trực tuyến dành cho các nhà giáo dục gọi là ScratchEd. ScratchEd được phát triển và hỗ trợ bởi Trường Đại học Sư phạm Harvard. Trong cộng đồng này, các nhà giáo dục Scratch chia sẻ những câu chuyện, trao đổi tài nguyên, đặt câu hỏi và tìm người.

Scratch Wiki[sửa | sửa mã nguồn]

Scratch Wiki là một wiki cỡ trung bình cho ngôn ngữ lập trình giáo dục Scratch và trang web, lịch sử và các hiện tượng xung quanh nó. Wiki được hỗ trợ bởi Scratch Team (nhà phát triển Scratch), nhưng chủ yếu được viết bởi Scratchers (người dùng Scratch) để biết thông tin về các dự án và những điều người dùng thú vị, [ mặc dù các biên tập viên phải trải qua quá trình yêu cầu tài khoản để tránh phá hoại.

Sự kiện[sửa | sửa mã nguồn]

Nhà giáo dục Scratch có thể tập hợp trực tiếp tại Cuộc họp của Nhà giáo dục Scratch. Tại các cuộc tụ họp này, các nhà giáo dục Scratch học hỏi lẫn nhau và chia sẻ các ý tưởng và chiến lược hỗ trợ sự sáng tạo tính toán.

Một "Ngày cào" hàng năm được tuyên bố vào tháng Năm mỗi năm. Các thành viên cộng đồng được khuyến khích tổ chức một sự kiện vào hoặc trong ngày này, dù lớn hay nhỏ, để kỷ niệm Scratch. Những sự kiện này được tổ chức trên toàn thế giới và một danh sách có thể được tìm thấy trên trang web của Scratch Day.

Các tính năng và dẫn xuất[sửa | sửa mã nguồn]

Scratch sử dụng lập trình hướng sự kiện với nhiều đối tượng hoạt động được gọi là sprite. Sprites có thể được vẽ, dưới dạng đồ họa vector hoặc bitmap, từ đầu trong một trình chỉnh sửa đơn giản là một phần của Scratch hoặc có thể được nhập từ các nguồn bên ngoài.

Phiên bản hiện tại của Scratch không coi các thủ tục là cấu trúc lớp đầu tiên và có các tùy chọn I / O tệp giới hạn với Giao thức mở rộng Scratch 2.0; một tính năng mở rộng thử nghiệm cho phép tương tác giữa Scratch 2.0 và các chương trình khác. Giao thức mở rộng cho phép giao tiếp với các bảng phần cứng như Lego Mindstorms hoặc Arduino.

Scratch 3 chỉ hỗ trợ mảng một chiều, được gọi là "danh sách", và chuỗi vô hướng và dấu phẩy động được hỗ trợ, nhưng với khả năng thao tác chuỗi hạn chế. Có một sự tương phản mạnh mẽ giữa các chức năng đa phương tiện mạnh mẽ và phong cách lập trình đa luồng và phạm vi khá hạn chế của ngôn ngữ lập trình Scratch.

Mã nguồn của Scratch và các dẫn xuất của nó dựa trên Squeak, dựa trên Smalltalk -80. Phiên bản 2 của Scratch được triển khai trong ActionScript, với trình thông dịch dựa trên JavaScript thử nghiệm được phát triển song song.

Một số dẫn xuất Scratch được gọi là Sửa đổi Scratch đã được tạo bằng mã nguồn của phiên bản Scratch 1.4. Các chương trình này là một biến thể của Scratch thường bao gồm một vài khối bổ sung hoặc thay đổi đối với GUI.

Vào tháng 7 năm 2014, một chương trình có tên ScratchJr đã được phát hành cho iPad. Năm 2016, ScratchJr được phát triển cho Android. Mặc dù nó được truyền cảm hứng rất nhiều từ Scratch và được đồng sáng lập bởi Mitch Resnick, người sáng tạo ban đầu của Scratch, nhưng dù sao đó cũng là một bản viết lại hoàn chỉnh được thiết kế cho trẻ nhỏ.

Một số sửa đổi cũng giới thiệu các thay đổi trong cách tiếp cận cơ bản đối với máy tính, chẳng hạn như ngôn ngữ Snap!, bao gồm các thủ tục lớp đầu tiên (nền tảng toán học của chúng được gọi là phép tính lambda), danh sách lớp đầu tiên (bao gồm danh sách danh sách) và lớp đầu tiên thực sự hướng đối tượng với sự kế thừa nguyên mẫu và các họa tiết lồng nhau, không phải là một phần của Scratch.Chụp! (trước đây là "BYOB") được phát triển bởi Jens Mönig với tài liệu được cung cấp bởi Brian Harvey từ Đại học California, Berkeleyvà đã được sử dụng để giảng dạy khóa học giới thiệu "Vẻ đẹp và niềm vui của máy tính" trong CS cho các sinh viên không thuộc ngành CS.