X



トップページLinux
87コメント28KB
なぜシェルスクリプト言語で大規模アプリが作れないのか?
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
垢版 |
2013/05/26(日) 20:22:37.82ID:tvV5yzua
シェルスクリプト言語が強力であれば、
大規模アプリが作れるはず。

逆に、大規模アプリが効率良く作れる言語なら
シェルスクリプト言語として使うっても
効率がいいはず。
0037login:Penguin
垢版 |
2013/06/04(火) 20:42:17.51ID:rag4vWye
Linuxカーネルがなんでも入りカーネルなんだけどなw
0038login:Penguin
垢版 |
2013/06/05(水) 17:29:48.40ID:cczilzhf
configで要らないのは外せるじゃん。


依存関係ややこしくて死ねるけどw
0040login:Penguin
垢版 |
2013/06/15(土) 05:01:50.06ID:IKtjCUdq
細かいコマンドはCで書いて
あとはシェルスクリプトで・・・・って普通だな
0041login:Penguin
垢版 |
2013/07/08(月) NY:AN:NY.ANID:Z3aKS/Zk
「UNIX シェルスクリプト・コマンドブック 第2版」 山下哲典、2012
この本は良書です。この本によると、

1行ずつのループ処理で、5千行までなら、whileを使う
(forは遅いので、なるべくなら使わない)
2万行以上なら、sed、awk、perl、を使う

10万行のループ処理にかかる時間は、whileは5秒、forは9分
それらを、awkとperlに書き直せば、0.1秒と載っています
0042login:Penguin
垢版 |
2013/07/08(月) NY:AN:NY.ANID:xOo+wFZv
使うシェルにもよるんじゃないの?
まさかスクリプトにbash使ってる馬鹿は居ないよな?
0043login:Penguin
垢版 |
2013/07/08(月) NY:AN:NY.ANID:simrwVhJ
ところが結構見るんだよな。
配列とか独自機能を使うためにbash指定してる模様。

まあtcshとか指定されるよりはマシかと諦めてる。
0044login:Penguin
垢版 |
2013/07/09(火) NY:AN:NY.ANID:kl19vrAF
>>42
なんで bash でスクリプト書くと馬鹿なの?
0045login:Penguin
垢版 |
2013/07/09(火) NY:AN:NY.ANID:6tIsxri7
Linux、Mac OSだとシステムのデフォルトがbashだからそれほど拒否感ないけどな。
ただ「#/bin/sh」と書いておきながらbash依存な書き方するのはなんだかなぁという気もする。
まぁ、「こまけぇことはry」だな。
0046login:Penguin
垢版 |
2013/07/09(火) NY:AN:NY.ANID:kl19vrAF
たしかに「!」を抜くのはいかんよな。
0047login:Penguin
垢版 |
2013/07/09(火) NY:AN:NY.ANID:hMsYxxgU
さすがLinux ユーザーびっくりですね。www
0048login:Penguin
垢版 |
2013/07/09(火) NY:AN:NY.ANID:CYkoBuDH
#!/bin/zsh
よりはまし
0049login:Penguin
垢版 |
2013/07/09(火) NY:AN:NY.ANID:s9pguw2L
>>44
man bash 嫁

bash自身がバグとして、巨大過ぎる・重過ぎる、だからスクリプトに使うな、
って書いてあったりする。
しかしLinuxだと、bashばっかで本物のshが入ってないディス鳥多いしな。
0050login:Penguin
垢版 |
2013/07/10(水) NY:AN:NY.ANID:67RtiEu2
そもそも本物のshって何だろう。v6あたりのbourne shellだろうか。
あんまり古い/bin/shだとPOSIX非互換だったりして、それはそれで
辛いよ。
0051login:Penguin
垢版 |
2013/07/10(水) NY:AN:NY.ANID:NtvrLfBy
そんなあなたにdash!
0052login:Penguin
垢版 |
2013/07/10(水) NY:AN:NY.ANID:7mqEHmsX
そんなあなたは ash
0054login:Penguin
垢版 |
2013/07/10(水) NY:AN:NY.ANID:NtvrLfBy
俺こそが本流: ksh # mksh愛用中
0055login:Penguin
垢版 |
2013/07/10(水) NY:AN:NY.ANID:NtvrLfBy
一度でいいからwindowing kshを使ってみたかった…
0056login:Penguin
垢版 |
2013/07/11(木) NY:AN:NY.ANID:6UhrdhLn
>49
普通の鳥に入ってると言えばBusyboxの中の人じゃね?
アレはshに近いんだっけ?
0057login:Penguin
垢版 |
2013/07/13(土) NY:AN:NY.ANID:DCBCk3/h!
>>44
本人じゃないから想像だが、
bashがUNIX非標準の独自シェルだから、使われると動かないUNIX系OSが出てくるからじゃないかな。
UNIXの標準シェルはkshだが、Linuxには本物のkshはない。
kshクローンはLinuxにもあるけど本物のkshとの互換性が問題になるし、
Linuxやcygwinなどにはデフォルトではインストールされていないことが多い。
UNIXとUNIXクローンのOS間での互換を考えると、shの構文に収めないといけない。
0058login:Penguin
垢版 |
2013/07/13(土) NY:AN:NY.ANID:GQROfqv5
>>42
cshならええ?
最近使わないから忘れそうだけど
0059login:Penguin
垢版 |
2013/07/13(土) NY:AN:NY.ANID:A816gYp3
>>49
今どきのマシンなら bash が重くて困る状況減ってるんじゃないの。
0060login:Penguin
垢版 |
2013/07/13(土) NY:AN:NY.ANID:A816gYp3
>>57
いろんな環境で動かすスクリプトだと問題かもね。
bash あること前提の環境でしか動かさないなら問題ない。
0061login:Penguin
垢版 |
2013/07/13(土) NY:AN:NY.ANID:ACoQV1fZ
TVやプリンタ等の「組込み」で使うには、bashは論外。
ashだな。>>52
0062login:Penguin
垢版 |
2013/07/17(水) NY:AN:NY.ANID:7bkubF6A
>>57
>UNIXの標準シェルはkshだが、Linuxには本物のkshはない。
>kshクローンはLinuxにもあるけど本物のkshとの互換性が問題になるし、

sysv系はたしかにkshだが、unixの標準シェルがkshというのは違うような。
# posix shellの元になったという意味では標準に近いけど、ksh==posix shではないし。

昔はkshのソースは公開されてなかったのでクローンを使うしかなかったけど、
今はオープンソースなので、linuxでも使おうと思えば本物のkshがふつーに使える。
0064login:Penguin
垢版 |
2013/07/18(木) NY:AN:NY.ANID:jv09xmD0
日経Linux 8月号に、
Pythonで書かれた、MITライセンスの、
企業向け、データ操作用のコマンド、「Open usp Tukubai」と、
その商用版「usp Tukubai」の特集が載っている
0065login:Penguin
垢版 |
2013/07/27(土) NY:AN:NY.ANID:tGPxpGZ9
ハンズラボがユニケージで内製しているという記事を見たので、
ユニケージ原論を買って読んだのだが、酷いなこれ
まるでカルト宗教だ
適用案件では常にお客さんと大ゲンカになっているらしいし

そもそも、ひたすら「シェルスクリプトは素人でもすぐに覚えられる」を繰り返してるけど
もうこの時点でウソじゃん

シェルスクリプトはソースがわかりやすいだと?
ワンライナーの呪文の列挙になってるじゃん

件の本には実際の業務画面のサンプルが一つも載ってないんだけど、
画面はどうやって対応してんだこれ
0066login:Penguin
垢版 |
2013/07/27(土) NY:AN:NY.ANID:JhVc9TNI
プログラム言語を普通に使える普通のプログラマだが、
それでもシェルスクリプトでプログラミングはしたくない。

バッドノウハウの固まりっていうか
意外な方法で、やりたいことを実現するという
コードの集まり。

数値計算にしろ文字列演算にしろ
数値比較にしろ
0067login:Penguin
垢版 |
2013/07/29(月) NY:AN:NY.ANID:SZz7sXf3
>>65
> ハンズラボがユニケージで内製しているという記事を見たので、
> ユニケージ原論を買って読んだのだが、酷いなこれ
> まるでカルト宗教だ
> 適用案件では常にお客さんと大ゲンカになっているらしいし
常に大喧嘩のソースは?
まさかユニケージ言論を読むと書いてあるの?www
0068login:Penguin
垢版 |
2013/07/29(月) NY:AN:NY.ANID:Aioac22I!
>>62
UNIXはUNIXのライセンスを持っているOSのことをいい、
POSIX準拠のOSのことをいうのではない。
そして、kshはUNIXのライセンスを持っていないUNIXライクOSでは通常使えるようになっていない。
0069login:Penguin
垢版 |
2013/07/30(火) NY:AN:NY.ANID:COLCST91
技術者はUNIXの精神を愛してるのであってUNIXを愛してる訳ではない
0070login:Penguin
垢版 |
2013/07/31(水) NY:AN:NY.ANID:me7lCyHh
>>68
unix認証を受けてるIBMのz/OSはkshではなくて独自実装のshを使っているらしいよ。
触ったことないので伝聞だが。
単に/bin/shとして使っていないSUS認定UNIX、という程度ならMacOSXもそう。
/bin/kshとしてインストールされているので使おうと思えば使えるが、
標準シェルではない。

ということで、正規にunixを名乗ることを許されたものでも標準シェルがkshとは限らん。

逆に、そうでないOSでもベンダーがクローンではなくAT&T由来の本物のkshを
提供している例は腐るほどある。WindowsですらMicrosoft純正のkshバイナリが存在する。
標準シェル(/bin/sh)として使ってる例はさすがに知らんけど。
# OpenBSDの/bin/shはkshクローン。
0071login:Penguin
垢版 |
2013/07/31(水) NY:AN:NY.ANID:HcSnofK9!
>>70
Microsoft Windowsの標準シェルはcmd.exeで、kshは付いてこないよね。
標準シェルの捉え方が私と違っている。
私はshの呼び出し先の本体が標準シェルといっているわけではなく、
各UNIXにデフォルトでインストールされているシェルのうち最も高機能なシェルのことを言っている。
ライセンスを持っていないUNIXライクOSで、なんらかの手段を使えばkshも使えるという話は標準シェルの話題としては無意味。
デフォルトで入っているシェルの話をしているのだから。
なんらかの手段を講じないと使えないのは標準ではないからね。
本物のkshの話をしているのでkshクローンの話も意味がない。
今はどうか知らないが、昔、Linux上のpdksh(kshクローンのひとつ)でksh用のスクリプトを動かそうとしたが全然動かなかった。
とりあえず、正規UNIXではデフォルトでkshが入っていて、ライセンスのないUNIXライクOSはデフォルトでkshが入っていないのが普通なのではないだろうか。
そして、ライセンスのないUNIXライクOSは入れたくてもOS側がサポートしていないことが多いよね。
ソース入手してコンパイルしろとか、OS非サポートの野良ビルド使えとか、商用ソフトを買えとか、そんな状況のシェルで開発するのは問題があるだろう。
この話の発端は、bashがだめという意見が出たことだが、
今は正規UNIXよりUNIXライクOSのほうが主流だからbashでいいと思うけどね。
あえてbashがだめな理由を考えると、正規UNIXはkshがインストールされていてもbashがなかったりすることだという話。
それもbashの野良ビルドをインストールすればいいのかも知れないけど、しないですむならそれに越したことはないよね。
0072login:Penguin
垢版 |
2013/11/29(金) 12:36:43.38ID:+wvTevIP
フレームワークもなしに大規模アプリとか馬鹿じゃねえか?
0073login:Penguin
垢版 |
2014/07/07(月) 05:52:29.66ID:9z1v/iFu
こんなスレがあったなあと思い出して貼りにきた

フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門 [大型本]
http://www.amazon.co.jp/dp/4048660683/
0074login:Penguin
垢版 |
2014/10/24(金) 04:19:35.38ID:Ftkfu1QS
シェルは文法がこなれていない。
本来ファイルをフィルタに掛けるような用法を主眼にしてるから
そこだけ一点豪華になってて、汎用性に欠けるのでは。
0075login:Penguin
垢版 |
2014/12/25(木) 02:08:04.34ID:I0eahb8K
とりあえず日本語エディタとか作ってみてよ。
0076login:Penguin
垢版 |
2014/12/28(日) 02:04:22.27ID:Yz7RpufE
>>73
著者のUSP研究所の上田隆一って、
雑誌 Software Design でよく記事を書いている人だね

漏れはプログラマーだから、この人の記事はよく読む
0077login:Penguin
垢版 |
2014/12/30(火) 14:05:59.39ID:mas9TROk
#!/bin/sh
# nihongo editor
cat > $1
0078login:Penguin
垢版 |
2015/01/21(水) 16:24:56.87ID:leqoSvrr
システムをファイルを分けて書くときに、ファイルをまたぐ参照とか呼び出し
とかのオーバーヘッドが大きそうだな。すれにスクリプトやインタプリター
言語は、実行時になって始めてわかるエラーがコンパイラ言語に比べて
多くなるだろ。たとえば未定義変数とか、引数の不整合とか、型の不一致とか、
未定義関数とかの。コンパイラ言語だと、滅多通らない処理の箇所でも、一応
全部の可能性ある処理の経路にそって、参照関係とか定義未定義のチェックは
コンパイル時にできているわけで、もちろんファイルを分割したら、リンク時
まで参照の解決が終わらないけれども。実行前にある程度多くの検査ができて
いることになるから。
0079login:Penguin
垢版 |
2016/01/17(日) 07:54:15.44ID:sk+MoVt2
シェルはカーネルにアクセスするから、あんまり自由にできないほうが安全なんじゃないの?
強力なプログラムが組める自由が増すとそれだけカーネルの安全性が損なわれるんじゃ?
0080login:Penguin
垢版 |
2016/01/17(日) 12:45:05.66ID:20Svx1kT
>>79
> シェルはカーネルにアクセスするから
どういうこと?
0081login:Penguin
垢版 |
2016/01/20(水) 17:17:11.66ID:/OBQdtaj
ぶっちゃけシェルは文法がアレだよな
パイプでデータフローってのは便利だから
そっち方面でイカす言語あれば良いんだけど

まあでも開発すんのも面倒だからコーディング規約決めてシェルで書こうか
みたいなループ
0082login:Penguin
垢版 |
2016/01/20(水) 18:23:28.17ID:9nYc5AiW
>>79
シェル以外はカーネルにアクセスしないのか?
0083login:Penguin
垢版 |
2016/01/20(水) 18:57:29.50ID:JEazYWD3
小規模アプリが作れないから大規模アプリが作れないんだと思うよ。
前のレスでも誰かが言っているけど、テキストエディタとか作ってみたらいいいんじゃない?
ブロック崩しゲームとか、小規模アプリをいくつか作ってみてよ。

それらが作れないなら大規模以前の問題じゃないかな。
元々アプリケーションを作るためのプログラミング言語として作られたものじゃないから
プログラミング言語としてできることは大幅に限られているよね。
まあ、このスレは元々ネタなんだよ。
0084login:Penguin
垢版 |
2017/06/30(金) 01:20:41.50ID:sFKxRYwA
上の方で誰かが言ってた日本語エディタだが,
冗談じゃなく真面目に,shell でインプットメソッドくらいは書けそう。

# 但し tcsh
0085login:Penguin
垢版 |
2017/12/29(金) 16:09:34.91ID:S/CsVkMC
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

K1UMX6SRHH
0086login:Penguin
垢版 |
2018/05/12(土) 07:42:03.73ID:0WzDpq9K
スクリプト言語でもって、OSの上で動くような(スクリプト言語でかかれた)OSを
書くことができれば、そのOSはマシンの機種やCPUの命令体系の違いを越えて
ネットワーク越しに流れていきながら場末のOSの上で動作することができるな。
0087login:Penguin
垢版 |
2018/05/22(火) 07:07:44.65ID:Czl6p0FW
僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

DWJSW
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況