2020年2月23日日曜日

Scratch 1.4で作ったプログラムをScratch 3.0で読み込んだときの不具合を回避する

Macの新しいOS(macOS Catalina 10.15.x)でScratch 1.4が動かないため、Linux MintPuppy Linuxの力を借りて、Scratch 1.4での開発を続けているところです。先日、Linux Mintで作ったプログラムをScratch 1.4の機能を使って共有(アップロード)したところ、Scratch 3.0上で「コードが見えない」という不具合に遭遇しました。そこで、どんなときに不具合が発生するのかを検証し、解決を試みることにしました。

まず、この不具合が発見されたプログラムについて、LinuxのScratch 1.4からアップロードしてLinuxのFirefoxとMacのFirefox、WindowsのEdgeでScratch 3.0(オンライン)を開いてプログラムを見た場合も、同じく3つの環境でScratch 3.0(オンライン)を開いてプログラムのファイルを直接読み込んだ場合も、いずれもコードが表示されませんでした。Scratch 3.0(オフライン)についても、Linux Mint、Mac、Windowsで試してみましたが、やはり状況は変わりませんでした。

そこで、Scratch 1.4とScratch 3.0(オフライン)で、スクリプトやコードの違いを検証することにしました。問題のないものと問題が起きているものを見比べてみましたが、細かな点で差はあるものの、コードが見えない不具合を抱えているプログラムと問題がないプログラムとの大きな差を感じませんでした。

いろいろ考えながら検証しているうちに、Linux Mintからプログラムをアップロードしようとすると、Scratch 1.4が落ちるという現象が起きるようになりました。さらに困ったことになりました。仕方がないので、同じプログラムをRaspberry PiRaspbian)からアップロードを試みましたが、Scratch 1.4は落ちないものの、エラーを吐いてアップロードが途中で止まってしまいました。Puppy Linux改でもやってみましたが、結果は同じでした。エラーメッセージは、Raspbianで「Failed: INVALID_REQUEST…」、Puppy Linux改で「Failed: address not found」となっているので、どうやらこの作業の間に、Scratch 1.4からアップロードする先が何らかの理由で閉鎖された(一時的なものかもしれません)のではないかと推察しました。

これ以上、問題を検証することが難しくなりました。

仕方がないので、MacのScratch 2.0(オフライン)で開くとどうなるか試してみました。すると、不具合のあったプログラムのスクリプト(コード)が問題なく表示されました。さらに、このScratch 2.0(オフライン)からアップロードすると、Scratch 3.0(オンライン)でもコードが見えるようになりました。同じくScratch 2.0(オフライン)でプログラムを保存すれば、Scratch 3.0(オフライン)で開いてもコードが見えます。とてもややこしい状態ではありますが、Scratch 1.4で作ったプログラムで不具合があっても、2.0で読み込んでアップロードすれば、3.0でもコードが表示されることがわかりました。

こうなると、今後、Scratch 1.4を使い続けることが困難になってきていることが実感できました。とは言え、3.0への完全移行が得策と言えるかどうか、頭を悩ませています。

【追記】Scratch 2.0(オンライン)の頃に1.4からアップロードしていたものは、現在の3.0(オンライン)でもコードが見えるけれど、現在のScratch 3.0で直接1.4の.sbファイルを開いてもコードが見えなくなるものがある、ということがわかってきました。1.4から2.0になる過程で、コードの仕様に関する何らかの変更があり、2.0は、その変換を行っているものと推察しました。また、3.0も公開から今日に至るまで、仕様変更されている可能性があるのかなとも思いました。(2020.3.8)

【追記】この現象は、Linux版Scratch 1.4での日本語の扱いの問題であることがわかりました。Linux MintでWineを動かして確認しました。(2020.3.15)

【追記】Windows版Scratch 1.4で日本語に豆腐(□)が交じる現象が起きる環境を特定しました。(2020.3.15)

0 件のコメント: