また make の話してる(2020年9月14日)
私の大好きな Makefile の話が盛り上がっていたのでまとめました。 「やめてね。」って方はお声がけください。
同じ会社にいるけど、真逆の感想を持っている。Makefile読まないと副作用が分からないし、Rakefile/package.jsonだけで済むのに無駄に1つレイヤ増えていて、Makefileできたときからいる人は楽だけど、途中から入った人にとっては学習コストが高い。 https://t.co/EXtmI3xl72
— 神速 (@sinsoku_listy) 2020年9月13日
golangでMakefileを使うのは分かる。
— 神速 (@sinsoku_listy) 2020年9月13日
ただ、RubyやNode.jsのリポジトリなら
$ git clone xxx
$ cd xxx
$ bundle install && rake もしくは npm install && npm test
で環境構築ができることを期待する。
個人的にはmake configureのないMakefileは使い方を間違っているのでは...と思っています。複雑なコマンドを短くするならシェルスクリプトを使う方が妥当で、Makefileを使うのは間違ったツール選定してる印象です。
— 神速 (@sinsoku_listy) 2020年9月13日
Makefileは何か成果物を作るときのフレームワークとしては便利なので、そういう用途で使うのは正しいかなと思います。OpenAPIのドキュメントを生成するのを、
— 神速 (@sinsoku_listy) 2020年9月13日
$ make configure
$ make
でyamlが生成されるとかなら、納得感がある。
社内だとMakefileがタスクランナーとして使われているのが標準みたいなところあるので、仕方がない...。個人的にはMakefile嫌いだけど、消すほどの納得力ある説明もできないので、放置してる感じですね。
— 神速 (@sinsoku_listy) 2020年9月13日
あー、なるほど...。たぶん神速さんとコンテキストあってないかもしれなくて、僕が複雑なMakefileに出会ってないだけかもです。(コマンドフルでベタ打ち環境→makeだったので、そもそも他との比較をできていない)
— 福本 晃之 | Teruhisa Fukumoto (@terry_i_) 2020年9月13日
あー、わたしも「なんでもmakeで」って文化苦手です…
— Hidenori Matsuki (@mazgi) 2020年9月13日
結局ああいうの「書いた人しかわからない」んですよね
ビルドシステムある言語はそれ使ってほしいし、Makefileのなかでdocker runしてるやつとか見たことあって「いやcomposeあるやろ」って思う
そもそも2020年に全環境でmake入ってると思わないし
Makefileの使い方メモ on @Qiita https://t.co/cqVsxPbgGW
— Captain Blue (@captain_blue210) 2020年9月13日
コマンド実行のインタフェースとしてのmakeは本当に優秀だと思う。
— saka (@gaplant_tr5) 2020年9月13日
makeからsbtとかnpm呼び出してるだけなんだけど、git clone した後にやることが、どのリポジトリでもmake叩けば環境できるようになってるっていうのは本当に楽だった。 https://t.co/Se5Jphyo8e
これめっちゃわかります...弊社もそうなってて、なんでも「make で起動」「make initで環境構築」でめちゃクソ楽だと感じた記憶。Makefile自体はC時代からあるもので、意外と歴史深いというのも結構意外でしたが。 https://t.co/c2vEOR3lKp
— 福本 晃之 | Teruhisa Fukumoto (@terry_i_) 2020年9月13日
Makefileの使い方メモ on @Qiita https://t.co/cqVsxPbgGW
— Captain Blue (@captain_blue210) 2020年9月13日
makefileテクニックはかなり邪悪手法にまで踏み込んだし、余り無いTIPS集になったんじゃないかな。今まで見たプロジェクトで一切使われてないけど便利なディレクティブを解説してるし。
— リザウド (@rizaudo) 2020年9月13日
あー、わたしも「なんでもmakeで」って文化苦手です…
— Hidenori Matsuki (@mazgi) 2020年9月13日
結局ああいうの「書いた人しかわからない」んですよね
ビルドシステムある言語はそれ使ってほしいし、Makefileのなかでdocker runしてるやつとか見たことあって「いやcomposeあるやろ」って思う
そもそも2020年に全環境でmake入ってると思わないし
Makefile 便利だと思う派だけど好きじゃないって人もいるんだな。気をつけよう。
— V (@voluntas) 2020年9月13日
うちの会社、エンジニアはOS何使ってもOKなので、環境構築に中々時間をかけることが多い。やれDockerが遅い、MakefileはWinじゃ動かない、.envファイルがなんかおかしい。なんかうまいこといかないもんかね?全環境一発で構築したいものなんだが。
— 🌱やまゆ (@akai_inu) 2020年9月13日
慣れれば慣れるほどmakeに頼りたくなってしまう罠みたいなものがある気がします。何故そうなってしまうのかはわかりませんが。
— ema (@ema_hiro) 2020年9月13日
(他人の書いたモリモリMakefile見てイラッとするのに、同じことを気付くと自分がしてしまっている...みたいな)
makefile、make が使えない環境だと使えないので不便
— バンビちゃん@実際クソザコメンタル (@pink_bangbi) 2020年9月13日
Makefileをbetter shell scriptとして使うの、何もまずいことなかろうに。
— Kazunori Otani (@katzchang) 2020年9月13日
readmeにコマンド書くくらいならmakefileにした方がいいくらい。
— Kazunori Otani (@katzchang) 2020年9月13日
makeはマクロの塊なので、用法容量を守ってお使いください
— Kazunori Otani (@katzchang) 2020年9月13日
makeでループと条件分岐をやりたくなったら地獄のはじまり… https://t.co/mEdb5ds5Ah
— Kazunori Otani (@katzchang) 2020年9月13日
ループはターゲットの列挙で書き直すと見た目はスッキリする。けど、情報密度が上がりすぎることもある。
— Kazunori Otani (@katzchang) 2020年9月13日
多言語を扱う上で、一番大事なのがmakeですよ。単一言語しか使わないのであれば、多分あまり必要ではない。
— Kazunori Otani (@katzchang) 2020年9月13日
なんか俺、make大好きなやつみたいじゃん…
— Kazunori Otani (@katzchang) 2020年9月13日
4年前の発表https://t.co/5xN6XaKCIZ
— Kazunori Otani (@katzchang) 2020年9月13日
Makefileをdocker build&pushのショートカットに使ってるけど、
— epaew (@epaew_dev) 2020年9月13日
buildの成果物(ファイル)に指定すべきものがよく分からないので、
buildとpushの依存関係を指定すべきなのか指定しないほうがいいのかずっと悩んでる
思い立ってググったら見つけた記事明日にでも読もうhttps://t.co/VEHblprsrg
— epaew (@epaew_dev) 2020年9月13日
便利 makefile 用意するよりも普通の shell スクリプトファイル用意するんじゃダメなんだろうか
— バンビちゃん@実際クソザコメンタル (@pink_bangbi) 2020年9月13日
makefile、複雑なやつだとエントリポイントがわからん。コマンドの前にpublicとかprivateとか書けたらいいのかな。タスクランナーとして使うなら。あとはWindowsに入っていれば。
— 渋川よしき (@shibu_jp) 2020年9月13日
まさにこのMakefileいじらないといけなくてブチギレそうになってるんだが????https://t.co/T7D7OfbkRs
— Yoshi Yamaguchi ⌨ Keyboard builder (@ymotongpoo) 2020年9月13日
Makeというのはシェルスクリプトを安全に巻き取る効用が強いんで、ぶっちゃけシェルスクリプトよりかはMakefileで頑張った方が良いよ
— リザウド (@rizaudo) 2020年9月13日
使われている言語が統一されていて、その言語特有のタスクランナーがみんなわかってる、みたいな状況であればそれ使えばいいだろうけど、いろんな技術を使っている状況だったり、これを動かすにはこれとこれと……みたいな感じだとまぁMakefile楽だしそのコンテキストが共有出来ればいいじゃん派です
— ちゅうこ (@y_chu5) 2020年9月13日
ちなみに元のスレッドの趣旨は要約すると「単なるスクリプトでできることをMakefileにするな」なので、それは100%同意。
— ryo①kato シリコンバレーの資格マニア (@ryo1kato) 2020年9月13日
Makefileは依存関係と更新時系列を調べて最小限コマンド(=差分ビルドを)を実行するツールなので、単に決まった手順するだけのことに使うべきじゃあないよね。
makefile便利だよ。自作ツールの実行方法メモしないでもmakefile読めばわかるもの
— Hideaki I (@hide5stm) 2020年9月13日
本来のmakeの使い方としてはファイルを作るような使い方が正しい。だが、タスクランナーとして便利やねん。goやrust(最近はcargo-makeか)あたりでもconfigureのないMakefileが使われてるし
— 武田あやな (@yowatari) 2020年9月13日
あるツールとあるツールの間を受け持つような使い方がmake使ってて好きだな。docker build してタスク定義jsonを生成して、ecspressoでデプロイするみたいなことが、シェルスクリプトよりMakefileのが完結に書けるし、それぞれを独立に実行することもできる
— 武田あやな (@yowatari) 2020年9月13日
make up, make update, make stop, make attach とかはいつもプロジェクトで使ってて、Makefile無い時や既にあるときはこれでOverrideしてるhttps://t.co/zMOYbnDphy
— iberianpig(Kohei Yamada) (@nukumaro22) 2020年9月13日
CIのYAMLにコマンド書き連ねてるんだったら、絶対Makefileのタスクにした方が良いよ
— songmu (@songmu) 2020年9月13日
makeの良い点の一つに「インストール不要」ってのがあって、プロジェクト入ってきた人が、どういうツールが必要か分からなくてもMakefileを見れば分かるし、そのセットアップが実行可能になっている(のが理想
— songmu (@songmu) 2020年9月13日
Makefileが嫌いっていうのは、自動生成されてたり、やりすぎたMakefileに苦しめられてきた人なんだろうな、と思う。
— songmu (@songmu) 2020年9月13日
僕もPerl界出身なので、Makefileってのは自動生成されるもので中身はよくわからないし読むものではないって思ってたけど、全然そんなことなかったんだよな。
— songmu (@songmu) 2020年9月13日
makeとシェルスクリプトでやれることは変わらないし、makeタスクが複雑になったらシェルスクリプトに切り出してMakefileからそれを呼び出せば良いだけの話だけど、タスクのインデックスとして提供されていることに意味がある。
— songmu (@songmu) 2020年9月13日
例えばtools/setup.shを叩けば開発環境が整うのだとしても、プロジェクトに入ってきた人はそんなことわからないので、Makefileに
— songmu (@songmu) 2020年9月13日
setup:
tools/setup.sh
って書いてあれば、make setupでセットアップできるってことがわかる。
ISUCONでも僕が適当なMakefileをリポジトリに突っ込んでおいたら、チームメイトが察してmake deployでガンガンdeployしてくれてたし、必要に応じて勝手に修正してくれて便利だった
— songmu (@songmu) 2020年9月13日
Makefileはむしろ単純だし、単純が故にむしろそれを自動生成させるというアプローチが流行ってしまったことがむしろ地獄の始まりだったのではないか
— songmu (@songmu) 2020年9月13日
(Makefile自体も複雑なことやろうとするととたんに意味不明になるというのもある
make本来のビルドシステムとしての利用用途を望むのであればmtimeに依存した仕組みは流石にそぐわない局面も多いので、今はBazelとかを使うべきでしょうね
— songmu (@songmu) 2020年9月13日
でも、npm devやnpm startでjs界隈も統一しようとしてるところを見ると、makefileが普段使いの言語で書けないという壁は思っているよりでかいのかもしれない。
— すぎちゃん (@koheiSG) 2020年9月13日
Makefile って例えば Vim とかのようなプロジェクトだとたしかに意味不明なんだけど、0から書き始めてみると難しいことなにもないんだよな。俺は CSV の前処理によく使ってた
— 生きてるだけで黒歴史 (@515hikaru) 2020年9月13日
Makefileとshellscriptが話題なので以前書いた記事をhttps://t.co/aM6R1drxwi
— そな太@GraphQLはいいぞ (@sonatard) 2020年9月13日
Makefileばなし何故か持ち上がってる、一番好きな並列処理記述言語です!!!!
— 精神のお墓 (@no_maddo) 2020年9月13日
Makefileは本来はファイルの依存関係を記述して効率的にコンパイルを行うためのものだけど、単純に人間とshellscriptを繋ぐインターフェースとして利用しても便利
— そな太@GraphQLはいいぞ (@sonatard) 2020年9月13日
Makefileの、依存関係でJOBの処理を解決していくというアプローチがたいへん汎用的なので未だにshell scriptをラップするのに便利なんだよな、、、
— 精神のお墓 (@no_maddo) 2020年9月13日
出力ファイルに依存関係があるとMakefileを使いたくなるんだよな。
— 生きてるだけで黒歴史 (@515hikaru) 2020年9月13日
ちょっとした自動化するときはMakefile書く
— 地下アイドル (@Untergrund_idol) 2020年9月13日
makefileはベンダーのサンプルコードそのまま流用とか使ってないマクロびっしり残しとくとか、そういうアグリーなのは本当に良くない。綺麗にしておかないとそれこそ技術的負債まっしぐら。
— kjm (@kj53192539) 2020年9月13日
Makefileは依存関係から「今足りてないもの」だけを紐解いて必要なことだけをする物なので、開発サイクルでは変更したファイルから再構築が必要なものを素早く最低限実行するのに常用してたな。シェルスクリプトとかで同じことやろうとするとだいぶ冗長になるね
— KOIZUKA, Akihiko (@koizuka) 2020年9月13日
Makefile, 最近は .PHONY なターゲットばかりで .PHONY が長い。。
— ymmt (@ymmt2005) 2020年9月13日
今日Makefileなpostをよく見かける。
— shinofara@MF KESSAI (@shinofara) 2020年9月13日
なんでもいいけど、マニュアルのシンプル化とLocalとCIなどで同じ事するなら手順の変更に対してeasyに対応できるといいな。
GNU Make や bash に依存すること自体は問題ないけども、shbang を /bin/sh にしたりせんでくれという所は強く主張したい。あとできれば Makefile じゃなくて GNUmakefile って名前にしてくれれば要らんストレスが減る
— きしもと (@ksmakoto) 2020年9月13日
当たり前だけどMakefileの中で何でもかんでも処理するんではなくて(複雑になってきたらscripts/とかまとめる事が多い)「そのプロジェクトで必要なタスクのリスト」としてのランナーとして置いとくだけでだいぶ意味がある。かつ、ほぼどこでも動くというのも大きい(make叩けばいいんでしょ?ってなる
— アルパカ大明神[▮▮▮▯▯▯▯▯▯▯] (@toritori0318) 2020年9月13日
make のいいところの一つに意味とコンテキストが扱いやすいことがあると思う。アプリケーションの主な操作はMakefileに、コンテキストにスペシフィックなものは https://t.co/Lzx5oFBVlL や https://t.co/srD1FmhEvO に、それらの中で多くの人が「多分こうだろう」と理解しやすい表現で書けるのがよい
— ひさしぶりにツイートしました (@tamakiii) 2020年9月13日
それでも本来の用途とは異なりタスクランナーとして使う以上、多少の補足は必要で、README を多少書く術はセットであるとよりよいとも思う。使わなくなったターゲットを消す基準にもなる。README もなるべく簡素に書くのが良い状態を保つコツな気がする。
— ひさしぶりにツイートしました (@tamakiii) 2020年9月13日
全くだと思うが、
— 非実在naka aki (@naka_aki_spl) 2020年9月13日
*makefileについて知ってる
*適切な命名を知っている。つまりReadableCode節。
というリテラシーが最低条件なので、
そういう新人が降ってくる現場はいいなあ的。
あと環境も、
*ほんとにそのターゲットが動作する
*動作「させて」いい。共同所有権&"許可でなく謝罪"
が必要
手順をMakefileにしておくと、オペレーションの依存関係も明示できるし、ちゃんと書いておけば適切な並列実行も、途中からの(あるいは途中までの)部分実行もできて便利。
— (び) (@bizenn) 2020年9月13日
と言ってたら「Rakefileの方がコード書けて便利ですよ」って若者に言われたことがある。そこ混ぜない方がいいと思う。
江添亮のC++入門を読んでたら、序盤にMakefileをゼロから実用するまでの丁寧な章があって「こんな良いものが手元にあったのか」と感動した。npmプロジェクトでgulpと置き換えられる場所も多いと思う。 https://t.co/vJESanoEzR
— なかざん (@Nkzn) 2020年9月13日
ビルド時の生成ファイルに依存する処理順の管理という、npm文化圏の人間がちょいちょい困る問題は、ある程度makeで解決できると思っている。
— なかざん (@Nkzn) 2020年9月13日
シェルに切り出した処理をnpm scriptsで呼び出す派閥もあるけど、もう一歩踏み込んでMakefileに切り出した処理をnpm scriptsから呼び出すと使い勝手が良さそう
まあMakefileの中にはシェルを書くので、結局シェルなんだけども。
— なかざん (@Nkzn) 2020年9月13日
GNU Make、PowerShell 使ってるマンとしては Makefile の中で sh の機能を呼ばないで、実行ファイルだけ呼んでほしい。sh や bash を明示的に呼んでほしい。
— o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟ (@kakkun61) 2020年9月14日
makefileとかいうリポジトリのリファレンスガイド
— スーギ・ノウコ自治区 (@pCYSl5EDgo) 2020年9月14日
ありがてえ
わかる。
— Tadayuki Onishi (@kenchan0130) 2020年9月14日
人間は欲深いので、気づいたらMakefileがfatになってくる。そしてMakefile読み込まないとわからなくなる。 https://t.co/Tp6qfmAaVH
Makefileのコメントからドキュメントを作成するhttps://t.co/kHWQjsGASi
— 中野智文 Tomofumi NAKANO (@nakano_tomofumi) 2020年9月14日
Makefileはちょっと勉強したことがあるぐらいだけど、あれは成果物を作るDSLであって.PHONYの意味を理解してから本来はタスクランナーではないと感じた。
— Kenta.Kase (@Kesin11) 2020年9月14日
Voyage のリポジトリに Makefile があるの、前から聞いてたしとても便利だと思ってるけど、自分たちの会社でやろうと思ったことは一度もない(事情が違うので当たり前の話)
— 小笠原みつき / JX通信社 / 71.2㌕ (@YAMITZKY) 2020年9月14日
その代わりJXだとdocker-composeがある
VGがスゴイ会社なのは、Makefile があるからじゃなくて、自分たちの課題を解決するものがあるから、ということです
— 小笠原みつき / JX通信社 / 71.2㌕ (@YAMITZKY) 2020年9月14日
個人的にはMakefileあると結構嫌な気持ちになる。複雑なセットアップが必要な可能性があり、言語公式のランナーで動かないのかなとか考えるから
— 小笠原みつき / JX通信社 / 71.2㌕ (@YAMITZKY) 2020年9月14日
Makefileが力を与えてくれているのかもしれない!
— Aratoon | ハイカラ on niconico (@ara_ta3) 2020年9月14日
ですです。
— すぎちゃん (@koheiSG) 2020年9月14日
そこが多分もともとの発言との差異を生んでいると思ってて、makeはタスクランナーとしても便利だけど多言語環境とモノリスrailsとの違いというか。
それでヘイトの溜まるMakefileの話とかが交差して槍玉に挙げられてる感ww
makefileで複雑な条件分岐するくらいならshell scriptのほうが良いし、shell scriptで複雑な条件分岐するくらいならランタイムが必要になったりコンパイル後サイズが大きくなっても他の言語のほうが良くない?goとか…
— 小橋はこ@🏘️家にいる 🖐️手を洗う (@hako584) 2020年9月14日
って話、20年前からされてる気はする(20年前はgoじゃなくperlとかだったが)
Fastlaneがあるじゃないって言おうと思ったら既に言及してましたねw
— 笹のり@弱王:ジェレイド@ドラクエ10 (@sasa_app) 2020年9月14日
Fastlaneの導入込みで初期構築をMakefileでやってるところも結構ありますよねー
界隈の人たち、定期的に Makefile の話題で盛り上がるのなぜ
— hoto (@hoto17296) 2020年9月14日
しばらくMakefileとシェルスクリプトと格闘した経験から言うと、Makefileは主に以下の3つの目的に留め、それ以外はシェルスクリプトにした方が良いと思ってる。
— てくのたのしー (@techno_tanoC) 2020年9月14日
1. タスクの引数に名前を付ける
2. タスクの引数のデフォルト値を決める
3. 複数のタスクを定義する
念の為言うとやろうと思えばMakefileでもできる。
— てくのたのしー (@techno_tanoC) 2020年9月14日
シェルスクリプトよりMakefileの記述に慣れてる人が集まってるなら良いんだけど、多分多くのプログラマはシェルスクリプトの方が慣れてると思う。
Makefile、仕事のJavaプロジェクトだと見たこと無かったんですが、これは標準の開発PCがWindowsだったからなのか、文化的にMavenのAntタスクでやっちゃうからなのか気になる
— Junki Mano (@laqiiz) 2020年9月14日
文化の違いなんですかね、自作キーボードのキーマッピング焼くのにMakefile大活躍しててなるほどってなりました
— M-Ito (@it_guitar) 2020年9月14日
2018年のアドカレでもnpm scriptsが太って辛いからMakefile使おうぜっていうのがあったんだな "JavaScriptの開発でGNU Makeを使ってみた - Qiita" https://t.co/MEB5lAjq7J
— ハゲワシ; (@tansokuojisan_) 2020年9月14日
Makefile嫌なら何で書くんだろう、と思いながら眺めてる
— sion_cojp (@sion_cojp) 2020年9月14日
不意にMakefileの話題が流れてきて、オラわくわくしてきたぞ
— 地平線 (@golden_eggg) 2020年9月14日
「◯◯さんが書いたMakefileのアイデアをパクらせてもらおう」が最高のエンジニア賛辞の1つ、という時代&環境にいました
— 地平線 (@golden_eggg) 2020年9月14日
Makefileは結構使いますよ。 最近かかわってるところはどこも用意しているイメージ。
— tarappo (@tarappo) 2020年9月14日
Makefileとか言ってると老害だと思ってたら実際はそうじゃなさそうで、いよいよ本当に老害化が進んできたようだ。
— y@su (@yatmsu) 2020年9月14日
Makefileは実行できるREADMEという認識。
— ayustate (@ayustate) 2020年9月14日
簡易的なcliツールでいうと、bashで書くとzshじゃ動かないって言われるし、shellで書くにはfatになるのでmake。
— sion_cojp (@sion_cojp) 2020年9月14日
Makefileが変数ばかりで読みづらくなったりfatになったらGoにすることが多いですね。
あとREADMEに開発環境初期セットアップをつらつら書くよりmake等でコードとして表現させたい
Makefileが1枚なら良いけど、パッケージ毎(コード書いた人毎)にMakefileが散在しているMakefileをメンテしていたりビルドしていた人間からすると、Makefileといわれたら吐き気は正直感じる。
— ぬっきーさん@ガーデニングおじさん (@poponuki) 2020年9月14日
Makefile の嫌われる点はこんな感じ?
— BTO (@bto) 2020年9月14日
- タスクではなく、ファイル生成の定義
- 依存関係の解決がファイル生成の可否
- 先頭がハードタブ
- 行単位のコマンド実行(not shell script)
- 変数が遅延評価
ちょっとコマンド書くぐらいだったらそんなに難しくはないと思う
npm scriptをwrapしてるだけのMakefileが存在するのどうなの
— たけてぃ (@takeokunn) 2020年9月14日
他人が書いたMakefileを読むのはつらいよね…
— keiichiro shikano λ♪ (@golden_lucky) 2020年9月14日
(型システム入門を作ったときに原著者のMakefileを読むのは本当につらかった)
— keiichiro shikano λ♪ (@golden_lucky) 2020年9月14日
Makefileシェル芸はたぶんあまり幸福にはなれないので複雑なのは素直に別スクリプトに分けた方がいいです
— ぞぬ頃し半分子 (@tadsan) 2020年9月14日
いろいろなコマンドのオプションを覚えたくない(し,そもそも覚えられない)のでなんでもMakefileにまかせてる. https://t.co/011qfrPNFb
— dif_engine (@dif_engine) 2020年9月14日
Makefile、 Makefile で済むのにはガンガン活用したいが GNU 拡張とか使いたくなるようなケースの時にちょっと悩む
— にゃおきゃっと (@nyaocat) 2020年9月14日
とはいえMakefileの中身を理解しつつも使わないチームメンバーもいるし、それでいいんだよな〜って気持ち
— Hirotaka Miyagi (@MH4GF) 2020年9月14日
使いたい人が使えばいい、Makefileの中身を理解しやすく保つ必要はあれど
そうですね、ただ複雑なことが出来ないっていうのは利点でもあるかなと。以前に全てをやろうとしている長大なMakefileのメンテで精神をやられたことがあるので……
— はっちん (@hatchinee) 2020年9月14日
Makefileの1つのターゲットの中ではshellscriptやコマンドを1つ叩くこと以外はしたくない
— そな太@GraphQLはいいぞ (@sonatard) 2020年9月14日
ちなみにMakefileはいうほどBetter Shell Scriptじゃないからそれが目的だったらもっと高級な言語にさっさと変えた方がいいです。
— kishikawa katsumi (@k_katsumi) 2020年9月14日
タスクランナーとしてMakeを使うの、いいと思わない人が多いのか
— ウホーイ@iOSDC 2020 9/20(日) 14:40-15:20 Track B (@the_uhooi) 2020年9月14日
iOSDCで便利だよと発表するワイ泣きそう
Rakeやnpmなど、タスクランナーとして使えるツールをさらにラップするのはわかりづらいけど、それがない開発(iOSアプリなど)なら有用だと思う…(半泣き)
Cloudfrare WorkersとかでWASM+WASIの環境が整ってきて、WASMがポータブルな実行形式として人権を獲得し始めたあたり今後Dockerは長期的に見てリッチなMakefileみたいな扱いになるんだろうな
— コミさん (@komi_edtr_1230) 2020年9月14日
Makefile macroはびみょい
— たけてぃ (@takeokunn) 2020年9月14日
Makefileに限らずインデントが意味を持つ言語が嫌いなのでダメです(過激派)
— Atom(アトム) (@FromAtom) 2020年9月14日
今自分のプロジェクトほとんどMakefileなのはどうにかしたほうがいいんだろうけど、Projucerを呼び出すやつとかgradlewを呼び出すやつとかデスクトップとAndroid両方やるやつとかなので、何が適切な解なのかわからんってなる
— Atsushi Eno (@atsushieno) 2020年9月14日
Makefileを読んで問題なさそうなら喜んで Make 使います!
— かびごん小野 (@takoikatakotako) 2020年9月14日
考えたんですが、Make で意図せぬものをインストールされるのが嫌なのかもしれません。
あとは用意された make setup 的なコマンドが完璧ではなく、結局中を読まないといけなかったりするのが嫌なのかもです。(´・ω・`)
俺も割と最近まで好きだったけど、まじでしんどいMakefile見てから考えが変わってしまった
— ユウキ (@yukiyan_w) 2020年9月14日
メンバーに環境を作ってもらう部分のハードルを下げたくてMakefileを使っていた時期があるけど、ろくな事が無かったのでfabricに移行した。
— marvelph (@marvelph) 2020年9月14日
そうですね。僕もMakefileが複雑になるのは危険だと感じて、いた仕方なくシェルスクリプトを併用します。
— KANEKO Ryosuke (@yamaneko1212) 2020年9月14日
この辺を統合できて複雑性も低減できるツールが欲しいですね(作れってか)
めっちゃmakeにハマって何にでもMakefileを書いていた時期があるけど最終的に同じ意見です https://t.co/xEA7qjiqCp
— じょーさん@人生何度でもやり直し (@elf) 2020年9月14日
サクっと読める Makefile もあれば、FreeBSD の ports あたりのような巨大システムになっている Makefile もあるわけで(マニュアルで bsd . port . mk というファイルの説明として The big Kahuna って書いてある)、まぁ両極端だが、あなたが議論してるのはどれ? とまず言う必要がある
— きしもと (@ksmakoto) 2020年9月14日
C/C++とかちゃんとやってないからMakefileでPHONYしか書いたことない...それだけでもめっちゃ便利だと感じた(使い方理解してないからもっと便利に使えそう)
— pyteyon (@pyteyon) 2020年9月14日
makeその通りなんだけど、BSD makeとGNU makeの差異ががが、とか、適度な入門書ががが(C利用前提感が強い)とか、一度使えるようになった人と、これから使おうとするの人の隔絶が大きい
— HATANO Hirokazu (@tcsh) 2020年9月14日
(自分も語れるほどMakefile書いてないし。Sphinx利用で毎日叩いてるけど。)
ビルドツールとしての make は私は使いませんが、いにしえのライブラリを保守する際に、Makefile が重要な手がかりになったことは確かにあります。
— のせなおき (@nosen) 2020年9月14日
僕もMakefile好きです!
— sim update --repo-update (@simorgh3196) 2020年9月14日
fastlaneも入れてますが、fastlaneはシンプルなタスクに分けてMakefileで依存も考慮しつつタスク組み立てたりしてます
環境セットアップだとMakefileはメンテナンスできる人少なめ、シェルもまぁまぁきついけどそれより扱いやすくなると「どこでも使える」が難しくなるような。今だとPython3がそのポジションに近づいてたりするんだろうか。
— masa寿司 (@masa_iwasaki) 2020年9月14日
「Makefileを書くな、vanila shellにしろ」って意見を見かけましたが、「簡単に並列処理ができる」「依存関係を解析して実行してくれる」っていうmakeの利点はとても捨てがたいと思いますよ。
— ノーン (@nkowne63) 2020年9月14日
Makefileで仕上げてある方がスマートな印象を受けますhttps://t.co/I5iuHJiJVjのほうが汎用的なイメージですが
— ヤッチ@Linux好きな英語話せるエンジニア (@8gLHsEmsnsp8RP3) 2020年9月14日
makeの話かなりおもしろいので誰か可能な限り全部意見まとめてほしい (他人任せ)
— r7kamura (@r7kamura) 2020年9月14日