コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

きっと何者にもなれない僕だから

円環の理に導かれていたら夜になっていた

夜になっていた

真面目な話、円環の理になんか導かれてたら夜になっていたでは済まない気がします。そもそも円環の理とは何なのだろうって疑問が沸き起こりますが、僕も知らないです。まあ、ウロボロスの輪的なやつでしょう。

Node.jsとか色々つかって外部コマンドを実行

はい、そんなわけでNode.js使って外部コマンド実行ボロスを作っていきます。書いていて意味わかんないですけど、とりあえず実行結果の方を見ていただくと分かっていただけると思います。

実行結果

$ node hello.js
Hello NodeJS
Hello PHP
Hello Perl
Hello Python
Hello Ruby

こんなのです。普通にprint文投げればできますが、以下のような意味わからない使い方をしています。

まずはNode.jsでハローワールドと外部コマンド実行処理を書きます。

console.log("Hello NodeJS");
const exec = require('child_process').exec;
exec('ruby hello.rb', function(err, stdout, stderr){
    console.log(stdout); 
  });

次にRubyで外部コマンド実行処理を書いたのでRubyを書きます。

puts "Hello Ruby"
system("python hello.py")

Node.jsよりもシンプルに書ける。そして書いたらPythonで実行します。

import subprocess
print("Hello Python")
subprocess.call("php hello.php")

subprocessが外部コマンド使うときの今の主流みたいなものを見た。僕の今やっているアホみたいなプログラムだとどっちでも良い気がするけど…。さて、次はPHPで実行です。

<?php
echo "Hello PHP",PHP_EOL;
system("perl -l hello.pl");

PHPはいまいち改行して出力するうまいやり方がわからない。次に実行するPerlもですが……。なんかPerl実行時にlオプション使うと改行されるらしいです。

print("Hello Perl")

Perlで文字表示させて終了です。

以上です。先ほどのアレだけを出力するために計5つのファイルを作ります。ここから、Perl→Node.jsを起動するようにすればウロボロスの輪の完成かと思いますが実際やってないのでどうなるのかは知らないです。どうなるんですかね。

つくってしまったわけですが

これをつくるメリットとかよく分かんないけど、戻り値っていうのが何か若干分かるようになるかもしれないのと、外部コマンドの実行したときの挙動とかがわかるかもしれないのと、僕みたいな感じで言語ごとにタグわけしている時に賑やかにできるという利点があると思います。それ以外のメリットは知りません、ただのハロワプログラムなのにめっちゃんめっちょんに遅いですしね。

まあ、あれですよ。僕も円環の理に導かれて逝ってしまった一人だったってことです……。