Superb Garbages 2

千野純一(chinorin)のはてなダイアリーの続きです。

最近の不満(文句ばっかりフェイズ)

  • ATtiny10について悲しかったこと、つまり発動編をずらずらと3千文字くらい書いたのですがまるっとボツにして(要するにATtiny10へプログラムを転送する治具を作らなきゃいけなくて、最初のを数日かけて作った後にもっと簡単な仕組みを知って、それでやる気なくして放置って話よ)今はPlatformIO(@Microsoft Visual Studio Code)っていう開発環境でなんか色々触ってみてますがこれ本当に便利なものなのか? 昭和生まれのおっさんとしては疑問点がとてもとても多くて疑問点だらけだ。
  • まずオートコンプリートが基本的にうざい。人が気持ちよくdelayMicrosecondsとか打とうとしてるところにしたり顔で「これですよね!!!!!!」ってウインドウが出てお節介すぎる上にその窓の下が見えなくて邪魔だし、digitalWrite(0,HIGH⋯⋯って打ったときにいったんHIGHっていうのを決定してオートコンプリートの窓を消すためになんかEnter押さなきゃいけないし、その後にもう ) が出てる割に ; は出てなくて、 ) って出てるから(そのキーを打てばいいんだけど、その方法が一瞬わからず)アローキー右をわざわざ押すためにホームポジションから手を離さなきゃいけなくて、もうめんどくさいのでオート閉じ括弧も含めてぜんぶ切った。
  • オートインデントもうざい。オートインデントほんと苦手。インデントくらい全然手間じゃないんだから自分でやるというか自分の思った通りにインデントしたいし、変な印じゃなくてタブ文字出てればそれでいいし、カーソルをアローキーで操作したときにインデントした部分をスキップするのかそれともインデントの中にカーソルが入っていくのか、BackSpaceやDelete時にインデント部分を一発で消してくれるのかそれともインデントを構成する空白文字を1個だけ消すのか、そのあたりの挙動が全く理解できないのでぜんぶ切った。
  • ワークスペースの仕組みがうざい。開くファイルはいったんワークスペース上で開かなきゃいけないが、ワークスペース上でこっちのプロジェクトを途中で放ったままあっちのプロジェクトをコンパイルして⋯⋯というのが、本当にできないのかどうかは知らんができないので(放置した方でエラーが出るとコンパイルが完了しないように見える。よくわからん)、なので開いたファイルを閉じたいときはいちいちワークスペースから削除している。複数のワークスペースを開けばいいみたいだけどそもそもワークスペースの概念自体が今の俺には不要というか⋯。
  • それになんか通知とかきてめんどくさいし、いちいちMicrosoftにログインを要求されるし、プロジェクトを作るときにBoardの選択肢がいつまでも表示されないし、それが出たとしてもFinishボタンを押したあと数十分待たされることがたびたびあるし(Please Wait...と言われて数分そのまんまなので、目を離して別のことしてたらいつの間にかプロジェクトの作成が終わってる感じ)、便利なのはincludeしたいファイルをそのまんまincludeフォルダに入れればいいだけ、というところくらいかなあ⋯。
  • 入力支援機能をことごとくオフにして、ワークスペースの概念を邪魔に感じる自分にとって、PlatformIOを使う意味はあるのでしょうか。
  • なお、プログラム転送に関する部分もきっと便利なんだろう。というかArduinoIDEの、転送オプションのひとつの項目を決定するたびにメインメニューを最初っから開いて次の項目を探しにいかなきゃいけないあの構造は毎回毎回閉口するので、あれをやらなくていいというだけでずいぶんマシなはずだ。
  • そんでとりあえずSeeeduino XIAOのプログラムをしてたんだけど、これのGPIO番号とかってどうなってんの? そもそもの仕組みが理解できないというか、ArduinoにおけるD0/A0を数値としての0番で指定したいんだけどそれはできず、ArduinoにおけるD0/A0は2番という指定をしなきゃいけなくて、それ以降の番号もバラバラ(たぶんATSAMD21*1そのもののGPIO番号なんだろうけど)。ピンの別名一覧とか対応表とかがあれば自分で配列作るなんなりするんだがネットを探しても見当たらないし、それが実際に記述されていると思われる.cpp.oファイルはバイナリだし、テストして調べようにも所々の番号でプログラムの実行が詰まったりして(起こってる現象がよくわからんが、ある番号にdigitalWriteするとそこで何秒か止まったり、ハングアップ的な挙動を示して手動でリセットあるいはUSBケーブルを挿し直すまで新たなプログラムも転送できなくなったり、Windowsのドライバがエラーを出したりする)もう嫌になってしもうた。それともこのXIAOが壊れてるのか?w
  • ま、こんなことは言わずともみなさんわかっていることと思うが、この世界はこのように悲しいことばかりなのである。

 

  • 改めて書くんだけど、オートインデントってそんなに便利か????? オートインデントを使ってる人って、オートインデントを便利だと思った瞬間が一度でもあるの?(また極端なこと言い始めたぞ)
  • 例えば、インデントされたブロックの中身をコピペして使ってるときとか、インデントを消してる最中にオートインデントが発動して発狂したりしないの?
  • しかも近年はインデントに「複数の空白文字」を使うのが主流みたいだし、それもほんとめんどくせえというか、消したと思ったら消えてなくて空白と空白の間に文字打っちゃってバラッバラになったりしてそれを直してる最中にオートインデントが発生してそれを消して⋯⋯みたいな手間がものすごく増えるんだけどふつうそんなことないの? 空白文字によるオートインデント環境でプログラムしてる時って、本気で、作業時間の半分くらいはインデントを構成する空白文字を消すことに費やしてるような気がする。Tabっていう素晴らしいものがあるのになぜ使わないんだ⋯。もしかしてTab文字というのをみんな知らないのか?w
  • オートインデントを無視してあるべき場所に閉じカッコとかを書くとインデント分の桁を下げられたりしてすげえうざいしさ。w 内部的に今オートインデント中かどうかっていう状態があるように感じるんだけど、それを知る手段も解除する手段もユーザには与えられてないじゃん。とにかくカーソルっていう自分の体とPCとの唯一の(でもないが)インターフェースを強制的に操作されるというのは、個人の尊厳や自由を侵害されているように感じてしまうのは私だけでございましょうか。そうでないにしても、そこにあるはずのものが急にそこからなくなる、あるいはそこに移動するはずのものが別のところに移動しているというのはとにかく集中力が削がれて本当に腹立たしい。どんな権限でもって他人の身体的自由を奪ってるんじゃおのれは、って思う。
  • 例えば(最近はあまり見なくなったけど)自動マウスカーソル移動も同様。OKボタンが出たからそこへ向かって自分でカーソルを動かすんだが、その裏では自動マウスカーソル移動が発動していて、それに自分の操作も加わるから気づいたときにはカーソルはボタンの上から外れてるのよ。しかも一瞬何が起こったのかわからんのでマウスカーソルを探さなきゃいけないし。何のために何をしてるんだか全く意味がわからん。
  • 最近(少なくとも15年くらいは)Pythonを触ってないけど、Python統合開発環境もオートインデント使って書くのがデフォルトなんだろうか。Pythonでオートインデントなんて想像するだに恐ろしいが⋯。*2

*1:ATSAMD21:Seeeduino XIAOが搭載しているMPU。名前から想像できる通りAtmel製だがコアはArm Cortex-M0+。

*2:Pythonはブロックをインデントで表現する。