-
Linux
-
なぜシェルスクリプト言語で大規模アプリが作れないのか?
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
シェルスクリプト言語が強力であれば、
大規模アプリが作れるはず。
逆に、大規模アプリが効率良く作れる言語なら
シェルスクリプト言語として使うっても
効率がいいはず。 - コメントを投稿する
-
configで要らないのは外せるじゃん。
依存関係ややこしくて死ねるけどw -
細かいコマンドはCで書いて
あとはシェルスクリプトで・・・・って普通だな -
「UNIX シェルスクリプト・コマンドブック 第2版」 山下哲典、2012
この本は良書です。この本によると、
1行ずつのループ処理で、5千行までなら、whileを使う
(forは遅いので、なるべくなら使わない)
2万行以上なら、sed、awk、perl、を使う
10万行のループ処理にかかる時間は、whileは5秒、forは9分
それらを、awkとperlに書き直せば、0.1秒と載っています -
使うシェルにもよるんじゃないの?
まさかスクリプトにbash使ってる馬鹿は居ないよな? -
ところが結構見るんだよな。
配列とか独自機能を使うためにbash指定してる模様。
まあtcshとか指定されるよりはマシかと諦めてる。 -
>>42
なんで bash でスクリプト書くと馬鹿なの? -
Linux、Mac OSだとシステムのデフォルトがbashだからそれほど拒否感ないけどな。
ただ「#/bin/sh」と書いておきながらbash依存な書き方するのはなんだかなぁという気もする。
まぁ、「こまけぇことはry」だな。 -
たしかに「!」を抜くのはいかんよな。
-
さすがLinux ユーザーびっくりですね。www
-
#!/bin/zsh
よりはまし -
>>44
man bash 嫁
bash自身がバグとして、巨大過ぎる・重過ぎる、だからスクリプトに使うな、
って書いてあったりする。
しかしLinuxだと、bashばっかで本物のshが入ってないディス鳥多いしな。 -
そもそも本物のshって何だろう。v6あたりのbourne shellだろうか。
あんまり古い/bin/shだとPOSIX非互換だったりして、それはそれで
辛いよ。 -
そんなあなたにdash!
-
そんなあなたは ash
-
NetBSD時間…
-
俺こそが本流: ksh # mksh愛用中
-
一度でいいからwindowing kshを使ってみたかった…
-
>49
普通の鳥に入ってると言えばBusyboxの中の人じゃね?
アレはshに近いんだっけ? -
>>44
本人じゃないから想像だが、
bashがUNIX非標準の独自シェルだから、使われると動かないUNIX系OSが出てくるからじゃないかな。
UNIXの標準シェルはkshだが、Linuxには本物のkshはない。
kshクローンはLinuxにもあるけど本物のkshとの互換性が問題になるし、
Linuxやcygwinなどにはデフォルトではインストールされていないことが多い。
UNIXとUNIXクローンのOS間での互換を考えると、shの構文に収めないといけない。 -
>>49
今どきのマシンなら bash が重くて困る状況減ってるんじゃないの。 -
TVやプリンタ等の「組込み」で使うには、bashは論外。
ashだな。>>52 -
>>57
>UNIXの標準シェルはkshだが、Linuxには本物のkshはない。
>kshクローンはLinuxにもあるけど本物のkshとの互換性が問題になるし、
sysv系はたしかにkshだが、unixの標準シェルがkshというのは違うような。
# posix shellの元になったという意味では標準に近いけど、ksh==posix shではないし。
昔はkshのソースは公開されてなかったのでクローンを使うしかなかったけど、
今はオープンソースなので、linuxでも使おうと思えば本物のkshがふつーに使える。 -
>>62
ksh はこれに入ってるね。
http://www2.research...t.com/~gsf/download/
Debian とかだとパッケージもある。
http://packages.debian.org/ksh -
日経Linux 8月号に、
Pythonで書かれた、MITライセンスの、
企業向け、データ操作用のコマンド、「Open usp Tukubai」と、
その商用版「usp Tukubai」の特集が載っている -
ハンズラボがユニケージで内製しているという記事を見たので、
ユニケージ原論を買って読んだのだが、酷いなこれ
まるでカルト宗教だ
適用案件では常にお客さんと大ゲンカになっているらしいし
そもそも、ひたすら「シェルスクリプトは素人でもすぐに覚えられる」を繰り返してるけど
もうこの時点でウソじゃん
シェルスクリプトはソースがわかりやすいだと?
ワンライナーの呪文の列挙になってるじゃん
件の本には実際の業務画面のサンプルが一つも載ってないんだけど、
画面はどうやって対応してんだこれ -
プログラム言語を普通に使える普通のプログラマだが、
それでもシェルスクリプトでプログラミングはしたくない。
バッドノウハウの固まりっていうか
意外な方法で、やりたいことを実現するという
コードの集まり。
数値計算にしろ文字列演算にしろ
数値比較にしろ -
>>65
> ハンズラボがユニケージで内製しているという記事を見たので、
> ユニケージ原論を買って読んだのだが、酷いなこれ
> まるでカルト宗教だ
> 適用案件では常にお客さんと大ゲンカになっているらしいし
常に大喧嘩のソースは?
まさかユニケージ言論を読むと書いてあるの?www -
>>62
UNIXはUNIXのライセンスを持っているOSのことをいい、
POSIX準拠のOSのことをいうのではない。
そして、kshはUNIXのライセンスを持っていないUNIXライクOSでは通常使えるようになっていない。 -
技術者はUNIXの精神を愛してるのであってUNIXを愛してる訳ではない
-
>>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クローン。 -
>>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の野良ビルドをインストールすればいいのかも知れないけど、しないですむならそれに越したことはないよね。 -
フレームワークもなしに大規模アプリとか馬鹿じゃねえか?
-
こんなスレがあったなあと思い出して貼りにきた
フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門 [大型本]
http://www.amazon.co.jp/dp/4048660683/ -
シェルは文法がこなれていない。
本来ファイルをフィルタに掛けるような用法を主眼にしてるから
そこだけ一点豪華になってて、汎用性に欠けるのでは。 -
とりあえず日本語エディタとか作ってみてよ。
-
#!/bin/sh
# nihongo editor
cat > $1 -
システムをファイルを分けて書くときに、ファイルをまたぐ参照とか呼び出し
とかのオーバーヘッドが大きそうだな。すれにスクリプトやインタプリター
言語は、実行時になって始めてわかるエラーがコンパイラ言語に比べて
多くなるだろ。たとえば未定義変数とか、引数の不整合とか、型の不一致とか、
未定義関数とかの。コンパイラ言語だと、滅多通らない処理の箇所でも、一応
全部の可能性ある処理の経路にそって、参照関係とか定義未定義のチェックは
コンパイル時にできているわけで、もちろんファイルを分割したら、リンク時
まで参照の解決が終わらないけれども。実行前にある程度多くの検査ができて
いることになるから。 -
シェルはカーネルにアクセスするから、あんまり自由にできないほうが安全なんじゃないの?
強力なプログラムが組める自由が増すとそれだけカーネルの安全性が損なわれるんじゃ? -
ぶっちゃけシェルは文法がアレだよな
パイプでデータフローってのは便利だから
そっち方面でイカす言語あれば良いんだけど
まあでも開発すんのも面倒だからコーディング規約決めてシェルで書こうか
みたいなループ -
>>79
シェル以外はカーネルにアクセスしないのか? -
小規模アプリが作れないから大規模アプリが作れないんだと思うよ。
前のレスでも誰かが言っているけど、テキストエディタとか作ってみたらいいいんじゃない?
ブロック崩しゲームとか、小規模アプリをいくつか作ってみてよ。
それらが作れないなら大規模以前の問題じゃないかな。
元々アプリケーションを作るためのプログラミング言語として作られたものじゃないから
プログラミング言語としてできることは大幅に限られているよね。
まあ、このスレは元々ネタなんだよ。 -
上の方で誰かが言ってた日本語エディタだが,
冗談じゃなく真面目に,shell でインプットメソッドくらいは書けそう。
# 但し tcsh -
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
K1UMX6SRHH -
スクリプト言語でもって、OSの上で動くような(スクリプト言語でかかれた)OSを
書くことができれば、そのOSはマシンの機種やCPUの命令体系の違いを越えて
ネットワーク越しに流れていきながら場末のOSの上で動作することができるな。 -
僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
DWJSW
↑今すぐ読める無料コミック大量配信中!↑