間違ってもらっては困るのは、それはコマンドライン・メインなのが主因ではないということ。
本当の一因は、本来手書きでも簡単な Makefile の作成をわざわざ難しくしてしま
う autotools を権威に流されたのか多くのプロジェクトが使ってしまっている事にある。
高々 Makefile 1つ作るためにも以下のような工程を踏まなければならない。
本来、典型的には、ソースファイルである *.c, *.cxx, *.cpp を指定するだけ
でも自動生成する事が出来るはずなのに、ツール類が馬鹿だからそうなってない。
なのに、「Linuxはプログラマーには便利」などと嘘情報が流れるから、普及しない。
しかも、カレントディレクトリのスクリプトの実行に「./configure」などと「./」
の指定が必要なのも馬鹿丸出し。ファイル名に大文字小文字の区別がされているのも馬鹿。
ファイルのコピーもdosなら、「copy *.c /xxx/aaa 」で済むことが
$ find . -name '*.c' | xargs -n 1 -i cp -p {} /xxx/aaa
などとしなくてはならず長すぎ、馬鹿ですか? しかも、'*.c'の部分が、*.c と書かれている
説明が溢れているがそれだとbashが展開してしまうのでたまたま上手く行く事はあっても、
実際には正しくない。また、mountしないとディスクが認識出来ないのも初代PC-8001の
レベル。PC-8801で自動マウントできるようになったのに(いつの時代(苦笑))。まずは、
不便さを認めるなければ、改善すらままならないのにそれすら全否定。正直に便利と思って
るなら井の中の蛙で馬鹿で無知なだけだ。そして、僅か1点でも間違いがあれば全てが間違って
いるように全否定してしまうLinux信奉者の愚かさもアホとしか言いようがない。
Linuxは、開発環境が40年前と同レベル
2018/03/10(土) 12:14:37.34ID:F9RE316x
21
2018/03/10(土) 12:15:01.91ID:F9RE316x >>1
01. (Makefile.amの作成) # 手作業
02. $ autoscan
03. [configure.scan生成] # 自動
04. $ cp configure.scan configure.ac
05. (configure.acの修正) # 手作業
06. $ aclocal
07. $ automake -a
08. [Makefile.in生成] # 自動
09. $ autoheader
10. [config.h.in生成] # 自動
11. $ autoconf
12. [configure生成] # 自動
13. $ ./configure実行
14. [Makefile生成] # 自動
01. (Makefile.amの作成) # 手作業
02. $ autoscan
03. [configure.scan生成] # 自動
04. $ cp configure.scan configure.ac
05. (configure.acの修正) # 手作業
06. $ aclocal
07. $ automake -a
08. [Makefile.in生成] # 自動
09. $ autoheader
10. [config.h.in生成] # 自動
11. $ autoconf
12. [configure生成] # 自動
13. $ ./configure実行
14. [Makefile生成] # 自動
2018/03/10(土) 12:21:01.63ID:F9RE316x
馬鹿だから簡単に各方法を見出せず、ただただ、大量のツールを開発し、
時間をかけ苦労して使っている。そして大量の時間と膨大なHDD容量と、
ネット容量を使いまくって、それしかやる事が無い無能連中がOSS開発で
よってたかって、なんとか表面的には動くバグだらけの使えないツール類を
作りまくって出来上がった集大成が Linuxだ。
時間をかけ苦労して使っている。そして大量の時間と膨大なHDD容量と、
ネット容量を使いまくって、それしかやる事が無い無能連中がOSS開発で
よってたかって、なんとか表面的には動くバグだらけの使えないツール類を
作りまくって出来上がった集大成が Linuxだ。
2018/03/10(土) 12:34:52.53ID:GhVyQtCz
いまだにビルドが遅いんだよな
しかもカーネルをビルドできるだけでドヤ顔できるほどの難易度
コーディング中にリアルタイムでエラーが指摘される時代に何やってんだとは思う
しかもカーネルをビルドできるだけでドヤ顔できるほどの難易度
コーディング中にリアルタイムでエラーが指摘される時代に何やってんだとは思う
2018/03/10(土) 12:38:23.34ID:D1qSb8RL
ちゃんと動くんならいいじゃないか。
他のOSでは macOS High Sierra はちょい品質が…なのだし。
他のOSでは macOS High Sierra はちょい品質が…なのだし。
2018/03/10(土) 14:11:12.74ID:eQWNUFiP
WindowsやiOSやmacOSのビルドは違うとでも思っているのだろうか…
2018/03/10(土) 14:31:03.97ID:lzdUB3GL
LinuxだとVimとそれぞれの言語に応じたデバッガーだな
macOsだと糞Xcode
macOsだと糞Xcode
2018/03/10(土) 17:36:12.21ID:zCz6mMg3
40年前の技術に後れをとる大企業マイクロソフトはどんだけ機能不全なんだよw
2018/03/10(土) 19:31:57.68ID:kO7HFFeK
補助ツールのやってることが場当たりの対応でしかないから、
新しく作るものも場当たりの対応に合うように作ることになる切なさがある
そして今は逆に、みんな好き勝手にビルドツールを作る時代になって、それはそれで面倒くさいことに
新しく作るものも場当たりの対応に合うように作ることになる切なさがある
そして今は逆に、みんな好き勝手にビルドツールを作る時代になって、それはそれで面倒くさいことに
2018/03/10(土) 21:14:20.31ID:Iz6oQn3Q
2018/03/10(土) 23:08:08.54ID:Trf+5FyR
DOSはコマンドラインの長さ制限が厳しすぎて*のファイル名展開したら
Linuxでcp *.c /xxx/aaaするより限界低そうだけどどうなんだろうな
Linuxでcp *.c /xxx/aaaするより限界低そうだけどどうなんだろうな
2018/03/11(日) 01:56:09.27ID:ceorHAxI
久しぶりに同意できる>>1
2018/03/11(日) 02:44:26.18ID:W7wkl3nL
CUI で開発できるので、うれしい。
よく知らないGUIのOSだと、モヤモヤする。
よく知らないGUIのOSだと、モヤモヤする。
2018/03/11(日) 07:43:32.76ID:7srcRXE1
>>10
copyじゃなく、xcopyかな。
copyじゃなく、xcopyかな。
2018/03/11(日) 08:13:57.73ID:7srcRXE1
>>11
DOSのcommand.comはワイルドカードを展開しない仕様だったからコマンドラインの
文字数制限の壁にかからなかった。一方、Linuxは、普段は cp *.c /xxx/aaa で行け
ても全てのファイル名の合計文字数が長くなればその制限に引っかかる。だから
結局、findを使わざるを得なくなることがある。そしてファイル数が多いときにもエラーを
絶対に起こさないためには最初からfindを使わざるを得ないと思う。じゃあなんのために、
bashのワイルドカード展開はあるかって話になるかも。
DOSのcommand.comはワイルドカードを展開しない仕様だったからコマンドラインの
文字数制限の壁にかからなかった。一方、Linuxは、普段は cp *.c /xxx/aaa で行け
ても全てのファイル名の合計文字数が長くなればその制限に引っかかる。だから
結局、findを使わざるを得なくなることがある。そしてファイル数が多いときにもエラーを
絶対に起こさないためには最初からfindを使わざるを得ないと思う。じゃあなんのために、
bashのワイルドカード展開はあるかって話になるかも。
2018/03/11(日) 10:02:48.60ID:FS0P3X2Y
>>13
知識がついてきてないだけやんwwww
知識がついてきてないだけやんwwww
2018/03/11(日) 11:16:41.03ID:wZ7PAPAy
CUIはどこいっても似たようなもんだからな
GUIは文化の壁が厚すぎる
OS違ったら当然のこと、業界によっても常識が変わるからな
GUIは文化の壁が厚すぎる
OS違ったら当然のこと、業界によっても常識が変わるからな
18login:Penguin
2018/03/11(日) 11:31:33.53ID:1WQdp6Y+ ワイルドカードの展開は余計なお世話だと言いたいのかな。それなら抑止するオプションもあるのだが。
「この仕様はどんなメリットがあるの?」とか「DOS のこれは Linux ではどうやるの?」とかなら助けてやれるかもしれないのだが。
「この仕様はどんなメリットがあるの?」とか「DOS のこれは Linux ではどうやるの?」とかなら助けてやれるかもしれないのだが。
2018/03/11(日) 12:48:03.51ID:YsLyPzcd
面倒でもあるが細かい所まで手を入れる事できるからまし。vsでビルドで謎エラーとか
2018/03/12(月) 03:16:00.77ID:ZVV/4ff9
cmakeが主流になりつつあるだろ
誰も知らんのか
誰も知らんのか
2018/03/13(火) 07:39:51.39ID:bSKvTeow
autotoolsとCMake、正直どっちもつらみがある
CMakeなら.slnファイルも作れるという強みはあるが…
しかし>>1はいろいろと誤認や知識不足がみられるな
PATHに.入れればconfigureで実行できるようになるがセキュアでないので
推奨されない
今時のGUI環境ならPnPでディスクは勝手にマウントされる
wildcardの展開をshellまかせにするかコマンド側がよろしくやってくれるのかは
一長一短あるだろう
Visual Studioがいい環境なのは認めるよ。VSCodeはその域に達してないし
CMakeなら.slnファイルも作れるという強みはあるが…
しかし>>1はいろいろと誤認や知識不足がみられるな
PATHに.入れればconfigureで実行できるようになるがセキュアでないので
推奨されない
今時のGUI環境ならPnPでディスクは勝手にマウントされる
wildcardの展開をshellまかせにするかコマンド側がよろしくやってくれるのかは
一長一短あるだろう
Visual Studioがいい環境なのは認めるよ。VSCodeはその域に達してないし
2018/03/13(火) 10:22:06.61ID:5bGA/MLX
>>21
>PATHに.入れればconfigureで実行できるようになるがセキュアでないので
>推奨されない
それでバランスしてしまったのがUnix文化の困ったところなんだ。
DOSだと、暗黙のうちに「.」が検索パスに入っていることが前提だからそれを
前提にした文化が形成されたので、その状態でも十分に「セキュア」になった。
その結果、./を付けなくてもカレント・ディレクトリのEXEやBATファイルを実行できる
という超便利な環境となった。ところが、Unixだと古い文化を引きずったまま
直ることが無かったので不便なままとなった。その結果、今後Wineが究極まで
達してもLinuxがWindowsの代わりにはなりえないかも知れない。
>PATHに.入れればconfigureで実行できるようになるがセキュアでないので
>推奨されない
それでバランスしてしまったのがUnix文化の困ったところなんだ。
DOSだと、暗黙のうちに「.」が検索パスに入っていることが前提だからそれを
前提にした文化が形成されたので、その状態でも十分に「セキュア」になった。
その結果、./を付けなくてもカレント・ディレクトリのEXEやBATファイルを実行できる
という超便利な環境となった。ところが、Unixだと古い文化を引きずったまま
直ることが無かったので不便なままとなった。その結果、今後Wineが究極まで
達してもLinuxがWindowsの代わりにはなりえないかも知れない。
2018/03/13(火) 10:33:37.76ID:5bGA/MLX
>>21
>今時のGUI環境ならPnPでディスクは勝手にマウントされる
Ubuntuだけど、
1. /etc/fstab に光学ドライブを書いておくと、Login前に待機状態になってしまう。
2. Login後、メディアを入れてからNautilusでドライブをクリックすると認識はできる。
3. しかし、メディアを交換したときにトラブルが生じやすい。例えば、Wineだ。
4. HDDですら、Nautilusでドライブをクリックせずに、いきなり端末を使った場合には
マウントされてない。
5. おまけをいうと、FAT32のような単純なドライブですら、Linuxではext3とはpermissionなど
で非互換がおきまくって、正しく動作出来ない。たとえば、そのドライブでは、ソースからは
上手くmakeが出来ず、どこかで不具合が生じてしまう。だから、ext3ドライブにソースを
全コピーしないといけなくなる。
>今時のGUI環境ならPnPでディスクは勝手にマウントされる
Ubuntuだけど、
1. /etc/fstab に光学ドライブを書いておくと、Login前に待機状態になってしまう。
2. Login後、メディアを入れてからNautilusでドライブをクリックすると認識はできる。
3. しかし、メディアを交換したときにトラブルが生じやすい。例えば、Wineだ。
4. HDDですら、Nautilusでドライブをクリックせずに、いきなり端末を使った場合には
マウントされてない。
5. おまけをいうと、FAT32のような単純なドライブですら、Linuxではext3とはpermissionなど
で非互換がおきまくって、正しく動作出来ない。たとえば、そのドライブでは、ソースからは
上手くmakeが出来ず、どこかで不具合が生じてしまう。だから、ext3ドライブにソースを
全コピーしないといけなくなる。
2018/03/13(火) 10:35:32.21ID:5bGA/MLX
>>21
>wildcardの展開をshellまかせにするかコマンド側がよろしくやってくれるのかは
>一長一短あるだろう
現実に良く使うコマンドがとても長くなってしまっているのだから、結果的にはLinuxの
方が使いにくい。
>wildcardの展開をshellまかせにするかコマンド側がよろしくやってくれるのかは
>一長一短あるだろう
現実に良く使うコマンドがとても長くなってしまっているのだから、結果的にはLinuxの
方が使いにくい。
2018/03/13(火) 10:52:01.11ID:5bGA/MLX
>>21
>Visual Studioがいい環境なのは認めるよ。
この書き方だと、プログラムの経験が浅い人にはVisual Studio だけが例外的に
「いい環境」なだけだと思われてしまう。
ところが、実際にはそうではなく、TurboC++, WatcomC++なども、十分に便利だった。
コマンドラインでも、gccやgnu make などとくらべて、だいぶ便利だったんだ。
はっきりいえば、gccやmakeやLinux文化は洗練されておらず、頭が悪いんだ。
>Visual Studioがいい環境なのは認めるよ。
この書き方だと、プログラムの経験が浅い人にはVisual Studio だけが例外的に
「いい環境」なだけだと思われてしまう。
ところが、実際にはそうではなく、TurboC++, WatcomC++なども、十分に便利だった。
コマンドラインでも、gccやgnu make などとくらべて、だいぶ便利だったんだ。
はっきりいえば、gccやmakeやLinux文化は洗練されておらず、頭が悪いんだ。
2018/03/13(火) 11:51:15.98ID:wIVMmkuq
Emacsだけ有ればいいさ!
2018/03/13(火) 12:29:55.64ID:9i5woyma
makeは特別に良いとは言わないけど別に悪くもない
それより最近は言語に特化したビルドツールが多いから色々覚えなきゃいけないのが面倒
それより最近は言語に特化したビルドツールが多いから色々覚えなきゃいけないのが面倒
2018/03/13(火) 12:45:35.08ID:5bGA/MLX
>>27
基本的には、make自身の問題よりも書き方やそれ以外の変なツールが標準になっていることの問題
が大きい。しかし、gnu toolsは、余計なメッセージだけを消す事が出来ないことが多いのが
クソなんだ。消そうと思うと全てのメッセージが消えたりして、使い物にならない。turbo c++
や watcom c++ , msc++, vc++のツール類は、どれもそんな初歩的な不具合は無かった。
基本的には、make自身の問題よりも書き方やそれ以外の変なツールが標準になっていることの問題
が大きい。しかし、gnu toolsは、余計なメッセージだけを消す事が出来ないことが多いのが
クソなんだ。消そうと思うと全てのメッセージが消えたりして、使い物にならない。turbo c++
や watcom c++ , msc++, vc++のツール類は、どれもそんな初歩的な不具合は無かった。
29login:Penguin
2018/03/13(火) 12:55:37.69ID:IE+orhWI すごいな。いろんな意味で。現状に不満があるのは理解できたけど、不満を解消するために何をしたの?
2018/03/13(火) 13:08:58.30ID:5bGA/MLX
それが責任者不在の問題点。こっちは部外者なのに責任を負わそうとする。
2018/03/13(火) 23:35:22.57ID:WPjn7ohc
昔は、好きでやってる開発者に世界中のユーザーが支援して品質を高めていくオープンソースやフリーソフトに、
仕事で嫌々やってる商用ソフトがかなうわけないと思ってたけど、そうでもなかったな。
やっぱり仕事で真剣にやってる人たちにはかなわないんだな。
仕事で嫌々やってる商用ソフトがかなうわけないと思ってたけど、そうでもなかったな。
やっぱり仕事で真剣にやってる人たちにはかなわないんだな。
2018/03/14(水) 05:31:25.15ID:4nEasH7v
jetbrainsのIDE使っとけば
2018/03/14(水) 07:17:28.33ID:HRaHWJ8k
TURBO Cのコマンドラインは使ったことないな。IDEは便利だったけど。
ただ当時のレベルだったらemacsのmake+ctags環境も十分匹敵する
レベルだったと思うが。あの頃にリファクタリング機能とかなかっただろう。
jetbeansの名前も出てるけど、Eclipse, Anjuta, KDevelopみたいな
IDEもある中でそういうのを出して比較しないのはちょっとフェアじゃ
ないんじゃないか。
まあそれらと比較してもIntelliSenseに及ばないんだけど。
ただ当時のレベルだったらemacsのmake+ctags環境も十分匹敵する
レベルだったと思うが。あの頃にリファクタリング機能とかなかっただろう。
jetbeansの名前も出てるけど、Eclipse, Anjuta, KDevelopみたいな
IDEもある中でそういうのを出して比較しないのはちょっとフェアじゃ
ないんじゃないか。
まあそれらと比較してもIntelliSenseに及ばないんだけど。
2018/03/14(水) 07:43:43.32ID:HRaHWJ8k
>>22 出自が1マシンを複数ユーザーで使うことが前提の環境だったので
悪意あるユーザーの想定が必要だった。というかWindosが今の状態で
十分セキュアとは思えないんだけど。悪意あるユーザに勝手にファイル
置かれて実行されるリスクは下がっちゃいないのでは。
>>23 fstabを書いた例と書かない例を混ぜて文句いうのはちょっと感心しない。
FAT32はそもそもろくなメタデータおけなくてPOSIX的なファイルの扱い
にマッチしないのでそりゃしょうがないよとしかいえない。
全コピーしなくてもloopback filesystem置く手段はある。Windowsでも
似たようなこと(vhdファイル作ってマウント)しないとFAT32領域に
まともにアプリがインストールできない事態起きるし。
>>24 そこはもう慣れの問題で自分は「クソ、勝手に処理しやがって」と
思うことの方が多いし味方の別れるところだと思う。個人的にはそんなに
頻繁に使うならエイリアスかスクリプトにでもしたら、と思う。
悪意あるユーザーの想定が必要だった。というかWindosが今の状態で
十分セキュアとは思えないんだけど。悪意あるユーザに勝手にファイル
置かれて実行されるリスクは下がっちゃいないのでは。
>>23 fstabを書いた例と書かない例を混ぜて文句いうのはちょっと感心しない。
FAT32はそもそもろくなメタデータおけなくてPOSIX的なファイルの扱い
にマッチしないのでそりゃしょうがないよとしかいえない。
全コピーしなくてもloopback filesystem置く手段はある。Windowsでも
似たようなこと(vhdファイル作ってマウント)しないとFAT32領域に
まともにアプリがインストールできない事態起きるし。
>>24 そこはもう慣れの問題で自分は「クソ、勝手に処理しやがって」と
思うことの方が多いし味方の別れるところだと思う。個人的にはそんなに
頻繁に使うならエイリアスかスクリプトにでもしたら、と思う。
2018/03/14(水) 08:42:41.08ID:4J3TJdzv
2018/03/14(水) 09:11:53.42ID:4J3TJdzv
>>34
>FAT32はそもそもろくなメタデータおけなくてPOSIX的なファイルの扱い
>にマッチしないのでそりゃしょうがないよとしかいえない。
数学的にはFAT32であってもext3の模倣もする事が出来る。
あなたは数学は苦手ですか? 苦手なら、数学とプログラムと
UnixとWindowsとExt3とFAT32の全てに詳しい者に聞いてみるといい。
自分にはそれをするための方法が頭の中で分かる。そういうツールや
ドライバが既にあるという意味ではない。作ろうと思えば作れるという
意味。そして、自分にはその義務はない。
>FAT32はそもそもろくなメタデータおけなくてPOSIX的なファイルの扱い
>にマッチしないのでそりゃしょうがないよとしかいえない。
数学的にはFAT32であってもext3の模倣もする事が出来る。
あなたは数学は苦手ですか? 苦手なら、数学とプログラムと
UnixとWindowsとExt3とFAT32の全てに詳しい者に聞いてみるといい。
自分にはそれをするための方法が頭の中で分かる。そういうツールや
ドライバが既にあるという意味ではない。作ろうと思えば作れるという
意味。そして、自分にはその義務はない。
2018/03/14(水) 16:11:19.24ID:B9yzXWAU
なんでコンパイラと統合環境比べてるの?
統合環境でVSが良いのは認めるけどLinuxだってEclipseやJetbrainはあるし
統合環境でVSが良いのは認めるけどLinuxだってEclipseやJetbrainはあるし
2018/03/14(水) 16:13:41.16ID:B9yzXWAU
WindowsってただVSが良いというだけじゃん
未だにまともなパッケージ管理もないしシェルは使えないし開発する環境としては最悪だよ
未だにまともなパッケージ管理もないしシェルは使えないし開発する環境としては最悪だよ
2018/03/14(水) 16:32:54.53ID:q4XJOHSe
VisualStudioが便利な言語って限られるし
開発環境全般で言えばWindowsだけじゃ不足なのでWSLが持て囃されたりしてるし
万能なものはないからいいとこ取りで使っていればいいだけだ
開発環境全般で言えばWindowsだけじゃ不足なのでWSLが持て囃されたりしてるし
万能なものはないからいいとこ取りで使っていればいいだけだ
40login:Penguin
2018/03/14(水) 16:48:10.54ID:80z85C3j MS-DOS を使っていた時代は、UNIX を使っている人たちが羨ましくて仕方なかったな。本当に何から何まで羨ましかった。
だから、Linux よりも DOS がいいというのはなかなか興味深い見解だと思ったのだが……どうやらお呼びじゃなさそうだ。
だから、Linux よりも DOS がいいというのはなかなか興味深い見解だと思ったのだが……どうやらお呼びじゃなさそうだ。
2018/03/14(水) 16:55:34.82ID:4J3TJdzv
2018/03/14(水) 17:03:07.07ID:4J3TJdzv
2018/03/14(水) 17:22:38.91ID:Ot1p/P4U
使いこなせないだけだろw
2018/03/14(水) 17:22:39.04ID:KnbtLvIZ
autotoolsはマルチプラットフォームを前提としたものだからTurboとかとは目的が違う
別のOSでも同様の手順でいいという使い勝手はTurboCとかじゃ実現できないわけで結局使い易いとかは主観でしかないしどれだけ自分に都合が良いかというだけのこと
別のOSでも同様の手順でいいという使い勝手はTurboCとかじゃ実現できないわけで結局使い易いとかは主観でしかないしどれだけ自分に都合が良いかというだけのこと
2018/03/14(水) 17:26:17.11ID:4J3TJdzv
2018/03/14(水) 17:26:44.28ID:Ot1p/P4U
使いやすいとか使いにくいは慣れの問題だし
最初に手をそめた環境がその人の一生の好みを決めるところがある
自分の好みを言っても主観以外のなにものでもない
最初に手をそめた環境がその人の一生の好みを決めるところがある
自分の好みを言っても主観以外のなにものでもない
2018/03/14(水) 17:30:09.61ID:4J3TJdzv
>>46
LibreOfficeの開発者もそんな事言ってた・・・。
LibreOfficeの開発者もそんな事言ってた・・・。
2018/03/14(水) 17:58:02.77ID:4J3TJdzv
欧米流は、言い訳が多いな。
2018/03/14(水) 18:31:54.74ID:4J3TJdzv
>>44
ただ、そんなことしなくても(30年前に比べれば)言語やOSで色々と統一化や
標準化もあったりしたせいか、それらのツールのやり方が本末転倒で意味不明
な存在になってり。
今は、そもそも出来ない場合にはそんなツール使っても出来ないし、出来る
場合には使わなくても出来る。存在意義がどれくらい果たしてあるのか。
ただ、そんなことしなくても(30年前に比べれば)言語やOSで色々と統一化や
標準化もあったりしたせいか、それらのツールのやり方が本末転倒で意味不明
な存在になってり。
今は、そもそも出来ない場合にはそんなツール使っても出来ないし、出来る
場合には使わなくても出来る。存在意義がどれくらい果たしてあるのか。
2018/03/14(水) 18:51:47.32ID:rvms1pqi
出来るかどうかってのは使う人間の能力によるところが大きいから出来なかったとしても仕方がない
2018/03/14(水) 18:57:43.24ID:4J3TJdzv
2018/03/14(水) 19:32:56.84ID:rvms1pqi
そのソフトウェアがそのOSに対応してるのなら自動的に追従するようになってるだろ
想定されたOSでそれが出来ないということなら問題は人間側に(以下略
想定されたOSでそれが出来ないということなら問題は人間側に(以下略
2018/03/14(水) 23:56:01.59ID:qC2L6BuB
スレタイだけでの反応なんだけれど、
16年前に書いたソース群を、今日makeする事ができた。
これ、本当に凄い事だと思う。1回覚えた事や環境がずっと使えるって幸せ。
16年前に書いたソース群を、今日makeする事ができた。
これ、本当に凄い事だと思う。1回覚えた事や環境がずっと使えるって幸せ。
2018/03/15(木) 00:25:00.60ID:cRQ+JQN/
>>1 読むと、autoconfは確かに面倒なの同意。
良書がなかったしね。訳本も酷かった。本当に酷かった。
そもそもポータビリティに気を付けてソースを書きなさい。
後は、色んな環境でもmakeできるようにしてあげるよって思想だった記憶。
お陰でvine2.1.5時代に作った物が今でもmakeできた。
ただ、思い出して修正できるまでに10日かかった。
当時も日本人開発のソフトには導入が不完全で、バグレポート送ったりしてたわ。
良書がなかったしね。訳本も酷かった。本当に酷かった。
そもそもポータビリティに気を付けてソースを書きなさい。
後は、色んな環境でもmakeできるようにしてあげるよって思想だった記憶。
お陰でvine2.1.5時代に作った物が今でもmakeできた。
ただ、思い出して修正できるまでに10日かかった。
当時も日本人開発のソフトには導入が不完全で、バグレポート送ったりしてたわ。
2018/03/15(木) 10:44:40.56ID:lnWZyj3L
えっ!?
http://www.jaist.ac.jp/~kiyoshiy/memo/autoconf.html
>autoconf/automakeのバージョンを少し上げただけで、 それまでに作成した
>configure.inに対してautoconf/automakeを実行すると エラーや警告を生じる
>ようになる場合が多々あります。 むやみに最新バージョンをインストールし
>ないほうがよいようです。
>以降の記述でも、autoconf/automakeのバージョンによってはエラーや警告
>が発生する場合があります。
http://www.jaist.ac.jp/~kiyoshiy/memo/autoconf.html
>autoconf/automakeのバージョンを少し上げただけで、 それまでに作成した
>configure.inに対してautoconf/automakeを実行すると エラーや警告を生じる
>ようになる場合が多々あります。 むやみに最新バージョンをインストールし
>ないほうがよいようです。
>以降の記述でも、autoconf/automakeのバージョンによってはエラーや警告
>が発生する場合があります。
2018/03/15(木) 10:52:04.96ID:lnWZyj3L
どっちの関数があるかないかによって、自分のコードにこんなの書かされる。
片方の環境しかなければ、もう片方のテストはしないってことだよね。
#ifdef HAVE_GETCWD
getcwd(pathname, sizeof(pathname));
#else
# ifdef HAVE_GETWD
getwd(pathname);
# endif
#endif
このようなコードを何回も書くのは駄目コードだ。なぜなら、1文字でも間違って
いればバグるのに、テストも出来ないから。
片方の環境しかなければ、もう片方のテストはしないってことだよね。
#ifdef HAVE_GETCWD
getcwd(pathname, sizeof(pathname));
#else
# ifdef HAVE_GETWD
getwd(pathname);
# endif
#endif
このようなコードを何回も書くのは駄目コードだ。なぜなら、1文字でも間違って
いればバグるのに、テストも出来ないから。
57login:Penguin
2018/03/15(木) 11:03:36.94ID:lnWZyj3L 例えば、マクロ名を間違って、
#ifdef HAVE_GETCVD
#ifdef _HAVE_GETCWD
#ifdef HAVE_GET_CWD
#ifdef HAVE_GTECWD
#ifdef HAVE_GETCW
などと書いてしまったらどうなるか。このようなミスは、ヒューマンエラーなので、
頭の良さや経験や能力に関わらず、誰にでも起こりうる(なのに、エラーになら
ない。)。
また、それとは別に、例えば、その環境では
getcwd(pathname, sizeof(pathname));
の部分をコンパイラがパースすらしない場合、
getcwd(pathname. sizeof(pathname));
getcwd(pathname, sizeof(pathname)):
getcwd(pathname, sizoef(pathname)):
getcwd(pathname, sizeof(pathnmae));
などの書き間違いがあったらどうなるか。
, . ; : の間違いがあるが良く見ないと分からない。
これならまだコンパイル・エラーになるだけなので
まだ良くて、一度もテストしないなら、コンパイルは通るのに、
実行段階で結果だけがおかしくなることもありうる。その場合は
もっとたちが悪い。
#ifdef HAVE_GETCVD
#ifdef _HAVE_GETCWD
#ifdef HAVE_GET_CWD
#ifdef HAVE_GTECWD
#ifdef HAVE_GETCW
などと書いてしまったらどうなるか。このようなミスは、ヒューマンエラーなので、
頭の良さや経験や能力に関わらず、誰にでも起こりうる(なのに、エラーになら
ない。)。
また、それとは別に、例えば、その環境では
getcwd(pathname, sizeof(pathname));
の部分をコンパイラがパースすらしない場合、
getcwd(pathname. sizeof(pathname));
getcwd(pathname, sizeof(pathname)):
getcwd(pathname, sizoef(pathname)):
getcwd(pathname, sizeof(pathnmae));
などの書き間違いがあったらどうなるか。
, . ; : の間違いがあるが良く見ないと分からない。
これならまだコンパイル・エラーになるだけなので
まだ良くて、一度もテストしないなら、コンパイルは通るのに、
実行段階で結果だけがおかしくなることもありうる。その場合は
もっとたちが悪い。
2018/03/15(木) 14:29:04.87ID:LTp8xgxY
それはCプリプロセッサの問題だろ
2018/03/15(木) 14:49:32.28ID:lnWZyj3L
2018/03/15(木) 14:57:50.65ID:LTp8xgxY
>>59
プリプロセッサに代わる頭の良いやり方を是非開発して
プリプロセッサに代わる頭の良いやり方を是非開発して
2018/03/15(木) 15:07:39.22ID:lnWZyj3L
>>60
1つの方法としては、新規に共通(互換)ライブラリを作れば良い。
上の例だと最も単純には、
1. getcwd(pathname, sizeof(pathname));
2. getwd(pathname);
の「1」の方はアプリ・プログラムでは使わずに、必ず2を使うようにする。
そして2が存在しない環境向けには、
xxx getwd(zzz *pathname) // zzz は恐らく char
{
・・
aaa = getcwd(pathname, 最大パス文字数);
・・・
}
のような感じのライブラリ関数を提供してしまう。こうしてしまえば、
autotool なんてアプリをビルドする際には全く使わなくて良くなる。
長いパス名が使える環境向けには、「最大パス文字数」を動的に可変に
する方法も有り得る。そうするには工夫が必要だが不可能なことではない。
1つの方法としては、新規に共通(互換)ライブラリを作れば良い。
上の例だと最も単純には、
1. getcwd(pathname, sizeof(pathname));
2. getwd(pathname);
の「1」の方はアプリ・プログラムでは使わずに、必ず2を使うようにする。
そして2が存在しない環境向けには、
xxx getwd(zzz *pathname) // zzz は恐らく char
{
・・
aaa = getcwd(pathname, 最大パス文字数);
・・・
}
のような感じのライブラリ関数を提供してしまう。こうしてしまえば、
autotool なんてアプリをビルドする際には全く使わなくて良くなる。
長いパス名が使える環境向けには、「最大パス文字数」を動的に可変に
する方法も有り得る。そうするには工夫が必要だが不可能なことではない。
2018/03/15(木) 15:18:54.99ID:LTp8xgxY
そのやり方は無造作にやるとシンボル名が衝突してコンパイルやリンクエラーになりますが
動作の切り分けはどうやってするのですか?
動作の切り分けはどうやってするのですか?
2018/03/15(木) 15:25:01.52ID:lnWZyj3L
>>62
シンボル名の「衝突」と言っても色々な場合があり、一概には言えないが、
新しい共通ライブラリ関数は、例えば
cmn_getwd()
のように先頭に 「cmn_」を付けてしまって、アプリは、「cmn_xxx」の
方だけを使うようにすれば、衝突の心配が1つ消える。
シンボル名の「衝突」と言っても色々な場合があり、一概には言えないが、
新しい共通ライブラリ関数は、例えば
cmn_getwd()
のように先頭に 「cmn_」を付けてしまって、アプリは、「cmn_xxx」の
方だけを使うようにすれば、衝突の心配が1つ消える。
2018/03/15(木) 15:36:11.68ID:LTp8xgxY
>>63
名前変更した共通ライブラリをビルドするときはどう回避するの?
名前変更した共通ライブラリをビルドするときはどう回避するの?
2018/03/15(木) 16:15:21.72ID:lnWZyj3L
2018/03/15(木) 16:34:03.34ID:LTp8xgxY
2018/03/15(木) 16:37:22.78ID:lnWZyj3L
>>66
だったら、プリプロセッサを改良すれば良いよ。
だったら、プリプロセッサを改良すれば良いよ。
2018/03/15(木) 16:53:31.36ID:LTp8xgxY
69login:Penguin
2018/03/15(木) 17:00:13.27ID:lnWZyj3L2018/03/15(木) 17:04:19.91ID:lnWZyj3L
2018/03/15(木) 17:11:21.49ID:LTp8xgxY
共通ライブラリのビルド時にシンボル名の衝突回避をプラットフォーム毎に判別する
方法が具体的に何も提示されてないのですが。
方法が具体的に何も提示されてないのですが。
2018/03/15(木) 17:20:34.61ID:lnWZyj3L
>>71
一応、何度も「衝突回避」と書いてあるけど、「関数が定義されているか
どうかによる場合分け」みたいなことだよね。
その部分だけは、何らかのツールを使えばよい。最も単純な物でよければ、シェル
スクリプトでもいける。コンパイラ処理系によって違ってくるが、使うライブラリ
全てについて、ライブラリアンやリンカなどでexport symbolの一覧を出して、
関数名(シンボル名)が出力されるかを調べれば良い。それは、
librarian -list_exports xxx.lib | grep シンボル名
が1文字以上の何かを出力すれば真、何も出力しなければ偽、という
様な論理で良い。それをシェルスクリプトに書けば良い。
一応、何度も「衝突回避」と書いてあるけど、「関数が定義されているか
どうかによる場合分け」みたいなことだよね。
その部分だけは、何らかのツールを使えばよい。最も単純な物でよければ、シェル
スクリプトでもいける。コンパイラ処理系によって違ってくるが、使うライブラリ
全てについて、ライブラリアンやリンカなどでexport symbolの一覧を出して、
関数名(シンボル名)が出力されるかを調べれば良い。それは、
librarian -list_exports xxx.lib | grep シンボル名
が1文字以上の何かを出力すれば真、何も出力しなければ偽、という
様な論理で良い。それをシェルスクリプトに書けば良い。
2018/03/15(木) 17:23:35.45ID:lnWZyj3L
スマンが、用事があるのでしばらく抜ける。
2018/03/15(木) 17:34:21.87ID:LTp8xgxY
2018/03/15(木) 17:36:26.04ID:LTp8xgxY
というか既存のビルドシステムや共通ライブラリの実装に精通してないどころか
Cでまともにプログラム書いた経験があるように見えないのですがね。
Cでまともにプログラム書いた経験があるように見えないのですがね。
2018/03/15(木) 17:37:50.07ID:lnWZyj3L
いや、実際に上司などからも、滅多にいない最高レベルのプログラマだと評されていたの
でそれはない。
でそれはない。
2018/03/15(木) 17:38:50.81ID:lnWZyj3L
さらにいえば、昔から神童だと言われてきた。
78login:Penguin
2018/03/15(木) 20:09:28.05ID:ewca0ZvD っていうか、ビル・ゲイツが今時のできるプログラマは間違いなくMacを使ってるとか
言ってたけど、俺はMac使ってないからよく知らないけど、Ubuntuなら何でもパッケージ揃ってるじゃん・・w
Macもネットとか見て大体想像つくけど、Ubuntuの方が上だろ・・?
Windowsの時の糞めんどくせえ環境変数の設定とか全然しなくていいからUbuntu大好き
言ってたけど、俺はMac使ってないからよく知らないけど、Ubuntuなら何でもパッケージ揃ってるじゃん・・w
Macもネットとか見て大体想像つくけど、Ubuntuの方が上だろ・・?
Windowsの時の糞めんどくせえ環境変数の設定とか全然しなくていいからUbuntu大好き
79login:Penguin
2018/03/15(木) 20:12:16.29ID:ewca0ZvD Windows98の頃なんて、VC買ってやってみたけど、インテリセンスの出てくるのが糞遅くて
ワロタよw Javaも最初のAutoexec.batにパス記載するのも、順番違うとコンパイルや実行できねえし・・w
今のWindowsは良くしらんけども。
ワロタよw Javaも最初のAutoexec.batにパス記載するのも、順番違うとコンパイルや実行できねえし・・w
今のWindowsは良くしらんけども。
2018/03/15(木) 20:49:16.98ID:9s2u5/Ot
ゲイツそんなこと言ったの?
2018/03/15(木) 21:50:42.20ID:7HZLjuXm
>>36
その昔umsdosってのがあってだな…実際ext2っぽいメタデータをVFAみたいに
VOLに詰め込む実装もあったんだよ。もうメンテされてないけど。
むしろ現代では逆にf2fsなんていうものでFATを模倣するような挙動を
androidでやってる。
その昔umsdosってのがあってだな…実際ext2っぽいメタデータをVFAみたいに
VOLに詰め込む実装もあったんだよ。もうメンテされてないけど。
むしろ現代では逆にf2fsなんていうものでFATを模倣するような挙動を
androidでやってる。
2018/03/23(金) 00:19:12.64ID:uVffKzsn
1がアホなのはわかったw
昔は文字数制限がシビアでそれに引っかかった時に対処するのに四苦八苦してfindだとかいろいろ組み合わせただけだぞ
昔は文字数制限がシビアでそれに引っかかった時に対処するのに四苦八苦してfindだとかいろいろ組み合わせただけだぞ
83login:Penguin
2018/03/23(金) 14:04:49.90ID:UeEv/zvW 便利さと安全さは交換条件
2018/04/01(日) 19:08:05.21ID:yxrC+deI
WebAssembly を試そうと、Ubuntu に emscription をインストールしようとしたら、
64bit OS用にしか precompiled 版がない。
どこが開発者に使いやすいものか。
64bit OS用にしか precompiled 版がない。
どこが開発者に使いやすいものか。
85login:Penguin
2018/04/01(日) 19:13:15.86ID:yxrC+deI ソースからインストールしようとすると、clangまでソースからビルドさせようとしやがる。
500MB位DLを強要されそうになった。
もっとも、バイト数も表示されないので、推定だが。このバイト数も表示されない、というのも
LinuxのCLIパッケージ・マネージャーによくある問題点だ。Windowsだと、zipファイルのDL
サイズは速い段階で分かるが、Linuxだとスクリプトによっては最後まで分からないことが
ある。今回も「その分からないタイプの」スクリプトだった。
アメリカは高速回線でどうでも良いのかも知れんが、こっちはたまったもんじゃない。
500MB位DLを強要されそうになった。
もっとも、バイト数も表示されないので、推定だが。このバイト数も表示されない、というのも
LinuxのCLIパッケージ・マネージャーによくある問題点だ。Windowsだと、zipファイルのDL
サイズは速い段階で分かるが、Linuxだとスクリプトによっては最後まで分からないことが
ある。今回も「その分からないタイプの」スクリプトだった。
アメリカは高速回線でどうでも良いのかも知れんが、こっちはたまったもんじゃない。
2018/04/01(日) 19:17:23.33ID:yxrC+deI
単に zip ファイルにまとめてしまえばいいだけなのに、何のために
apt-get や apt があるのかも分からない。
アホですか。
apt-get や apt があるのかも分からない。
アホですか。
2018/04/02(月) 05:24:14.30ID:06ieJ5Hu
開発者なら普通は64bitOS使ってるからな
2018/04/02(月) 08:51:24.65ID:6FMJWj1c
そういうのがウザイ
2018/04/02(月) 13:36:16.49ID:6FMJWj1c
しょうがないのでWin7でやったら、上手くいった。
せっかくLinuxでやろうと思ったのに。
いつもこんな感じになっちまう。残念。。。
せっかくLinuxでやろうと思ったのに。
いつもこんな感じになっちまう。残念。。。
90login:Penguin
2018/04/02(月) 17:35:08.84ID:O58OwMyS 自称神童のアホですかおじさんは Linux では幸せになれないと思うよ。Linux のことなど忘れなさい。
2018/04/02(月) 18:03:24.62ID:6FMJWj1c
ちゅうか、この調子だと数十年たってもLinuxへの移行は進まなさそう。
GoogleのChromeOSや、デスクトップ用のなんとかOSがなんとかしてくる
かも知れんが。
GoogleのChromeOSや、デスクトップ用のなんとかOSがなんとかしてくる
かも知れんが。
2018/04/02(月) 18:05:51.44ID:6FMJWj1c
2018/04/02(月) 23:56:25.09ID:6vflFCoS
いつまで32bitなんて使ってんだ
2018/04/03(火) 00:45:33.28ID:ulFIPWeY
Linuxまで最新OSの真似するなんてなんと生意気な。
自分たちの立ち位置が認識できてない。何一つマトモニなものが
ないというのに。
自分たちの立ち位置が認識できてない。何一つマトモニなものが
ないというのに。
2018/04/03(火) 07:45:59.33ID:OGhwyKh3
初心者がLinuxとストレスフリーで生きる為の6か条
1.Winをリプレース出来るなどど考えるのはやめましょう。共用しましょう。
2. 印刷はあきらめましょう。
3. Wifiの使用はあきらめましょう。
4. 音楽・動画・画像の編集/制作はあきらめましょう。
5. Nvidia製品の使用は控えましょう。
6. 教本を買いましょう。Linux界に限ってはググレカスは遠回りです。
7. Ubuntuを我慢して使い続けましょう。
1.Winをリプレース出来るなどど考えるのはやめましょう。共用しましょう。
2. 印刷はあきらめましょう。
3. Wifiの使用はあきらめましょう。
4. 音楽・動画・画像の編集/制作はあきらめましょう。
5. Nvidia製品の使用は控えましょう。
6. 教本を買いましょう。Linux界に限ってはググレカスは遠回りです。
7. Ubuntuを我慢して使い続けましょう。
2018/04/03(火) 12:04:03.80ID:udUPvT8n
Emacsが死んでVimが生き残るとは訳のわからん世界だな
どっちも死んで環境刷新すりゃいいのに
どっちも死んで環境刷新すりゃいいのに
2018/04/03(火) 12:25:04.63ID:ulFIPWeY
どっかの教育機関が、学生に紹介して洗脳したんじゃない。
初めて触ったエディタがvimになっちゃって。Macとかも東大が洗脳してる。
酷いもんだ。
初めて触ったエディタがvimになっちゃって。Macとかも東大が洗脳してる。
酷いもんだ。
98login:Penguin
2018/04/07(土) 14:29:26.83ID:qYZmw88H いまどきコマンド形式のエディタなんて効率の悪いものにしがみつかなきゃならんのはLinuxぐらいだからなぁ。
99login:Penguin
2018/04/07(土) 14:58:29.55ID:dbBuTpv8 最近はエディタはnanoが推奨されてねか?
100login:Penguin
2018/04/07(土) 15:05:52.91ID:AohAt9rK これめっちゃ使いやすいよ
Download Visual Studio Code - Mac, Linux, Windows
https://code.visualstudio.com/download
犬厨が棍棒持って恐竜追い回している間に
MSはロケット打ち上げて火星までいっちゃった感じ
Download Visual Studio Code - Mac, Linux, Windows
https://code.visualstudio.com/download
犬厨が棍棒持って恐竜追い回している間に
MSはロケット打ち上げて火星までいっちゃった感じ
101login:Penguin
2018/04/07(土) 15:19:08.77ID:XvhqN9Xa Eclipse使えばいいんじゃね?
レスを投稿する
ニュース
- 橋本愛が所属の芸能事務所「株式会社EDEN」が声明発表「当社俳優に関する報道について」 [muffin★]
- 佐藤二朗「精神的に落ち込み、静養に」関係者が明かすハラスメント騒動の影響 ★5 [muffin★]
- 佐藤二朗「精神的に落ち込み、静養に」関係者が明かすハラスメント騒動の影響 ★6 [muffin★]
- 「乳首おじさん」は男だからいいのか「すね毛、パーカー、ハーフパンツより乳首ビンビン透け透けおじさんの方が1万倍気持ち悪い」 [七波羅探題★]
- 佐藤二朗 ハラスメント報道にコメント「大変残念。全ての事実が明らかになることを望みます」所属事務所「到底受け入れられない」★41 [Ailuropoda melanoleuca★]
- 【朝日社説】皇室典範改正 強行すれば禍根を残す ★3 [蚤の市★]
- だから麻生太郎は天皇愛子を絶対阻止したい [633746646]
- 【悲報】佐藤二朗さん(60)、潔白を訴えていたのに無期限静養WMWMWMWMWMWMWMW [517459952]
- サッカー日本代表、ブラジル戦でアジアカップと同じ負け方をしていた
- 秋篠宮家はダメ愛子天皇をって言ってる奴の正体
- 【悲報】高市早苗「え、待って。これ逆に今までの首相が国会に出過ぎていたってことじゃない?」 [731544683]
- ヤニねこのお🏡👊🐱👊