アカウント名:
パスワード:
「プロジェクト」なんて構えてやる場合だと, 当然のことながら再利用やメンテナンスってのが念頭に入ってきますし, それに伴って多かれ少なかれ事前の設計が必要になってきたりするので, LLの思いついたらすぐ作成ってパターンが利点にならないんですよね. きっちりと設計しちゃうとガーベージコレクションみたいな細部を除けば, Cみたいなプリミティブな言語もLLもコーディングの面では大差が無いし.
逆に性能やフットプリントなんかを気にし始めると, LLの場合は処理系自体の性能に加え, 処理系の内部処理なんかまで考慮しなくちゃならなくなるので, ちょっときついんですよね. その点, Cあたりだとアルゴリズムさえ極端に間違えなければ, コンパイラの最適化にまかせればコードから想像できる範囲でお手軽に高速化できちゃうんで, ついついCに逃げちゃいます.
で、「プロジェクト」なんて構えてやるものはLLにとって「適所」ではないというだけの話でしょ。わざわざ長文書いて反論するような要素がどこにも見当たらないのですが。
同意。読み終えて「既出だ」と思いました。
>lambdaやマクロ
そうそう。
その言語が無名関数をサポートしてるかどうかでコーディング量なんてガバっと変わってしまうよね。
(広く言えばこれは「リテラルの充実」の問題です。無名関数はつまり「関数リテラルを書く」という機能。ほかに配列やHashやRangeなどなど…といった美味しいリテラルが揃ってる言語のほうが「便利」。あと文字列リテラルに複数行機能や変数展開機能があると更に「便利」。)
(あとRubyのModuleみたいな「改善された実装多重継承」も美味しいぞ)
スクリプトっぽい言語は世の中に色々あるけど、ラムダ/無名関数みたいに「決定的にコードを短くしてくれる武器」を搭載した言
そんなん言語使用じゃなくライブラリの問題じゃん。それならC++にだって全て揃ってる。boostだけど
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
LL使っても軽くならないし (スコア:2, 興味深い)
「プロジェクト」なんて構えてやる場合だと, 当然のことながら再利用やメンテナンスってのが念頭に入ってきますし, それに伴って多かれ少なかれ事前の設計が必要になってきたりするので, LLの思いついたらすぐ作成ってパターンが利点にならないんですよね. きっちりと設計しちゃうとガーベージコレクションみたいな細部を除けば, Cみたいなプリミティブな言語もLLもコーディングの面では大差が無いし.
逆に性能やフットプリントなんかを気にし始めると, LLの場合は処理系自体の性能に加え, 処理系の内部処理なんかまで考慮しなくちゃならなくなるので, ちょっときついんですよね. その点, Cあたりだとアルゴリズムさえ極端に間違えなければ, コンパイラの最適化にまかせればコードから想像できる範囲でお手軽に高速化できちゃうんで, ついついCに逃げちゃいます.
Re:LL使っても軽くならないし(オフトピ) (スコア:2)
#ちょと辛口かも^^
#LL使用者にも、聞こえが良くないかも・・・;;
> それに伴って多かれ少なかれ事前の設計が必要になってきたりするので,
> LLの思いついたらすぐ作成ってパターンが利点にならないんですよね.
適材適所かと思います。「LLの思いついたらすぐ作成ってパターン」
が重厚な設計からのプログラミングに合わないのは当然でしょう。
LLの利点は「プロトタイプ」にあります。
ある人は「ワンライナ」、ある人は「書き捨て」、etcとか言うかなあぁ。
ここではCですのでCを前にたてますが、
LLの良さは「手をかけはじめてから実働までの時間が短い」につきます。
Cでごそごそしているよりは、LLでぶっちゃけた方が早いのはのですよね;。
LLは背後に(言語仕様・標準ライブラリ)多大な資産を持っていますから、
直に出来る事は多いんだなあぁ・・・。
Cにはそれが無いですから・・・;。
でも、仕事で書き始めたプロトタイプなら、その後にも使える様に最初から
書いていてくれると助かるのですが・・・。
#大抵は、仕様書にある一部分の試験で満足しちゃて、後々まで使える様に
#書く人は少ないかなあぁ;;;
> きっちりと設計しちゃうとガーベージコレクションみたいな細部を除けば,
> Cみたいなプリミティブな言語もLLもコーディングの面では大差が無いし.
「ガーベージコレクションみたいな細部」って、Cと比べれば大きな差です。
コーディングの面ではとはどんな点でしょうか。
手続き型言語でコーディングすれば、どんな言語でも似たようになります。
思うに、ちゃんとしたLL使いの方に会っていないのかも。
一度、他の型の言語に触れてみると良いかも。
> 逆に性能やフットプリントなんかを気にし始めると
ここはLLの出番では無いでしょうw^^。
無いかと思います。Cでちゃんと書かれていれば無いでしょう。
リソ~スはLLでは余り、気にしませんから。
#JavaがWebで"しか"使われていない理由がここにあります。
> Cあたりだとアルゴリズムさえ極端に間違えなければ,
Cに限りません・・・;;
アルゴリズムが的確ならLLでも十分に動作しますよ\^^。
結局、適材適所だと思います。
閑話休題
Re: (スコア:0)
三行(Re:LL使っても軽くならないし(オフトピ)) (スコア:2)
適材適所です。
閑話休題
Re: (スコア:0)
で、「プロジェクト」なんて構えてやるものはLLにとって「適所」ではないというだけの話でしょ。
わざわざ長文書いて反論するような要素がどこにも見当たらないのですが。
Re:三行(Re:LL使っても軽くならないし(オフトピ)) (スコア:1)
同意。読み終えて「既出だ」と思いました。
LIVE-GON(リベゴン)
Re:LL使っても軽くならないし (スコア:1)
lambdaやマクロ(言うまでもないけど、Cとかのヤツとは違う)なんかを使うと、かなり差が出ちゃいますよ;-)
#言語が限定されてるような気がしないでもない
お察しの通り、超濃緑茶です。 そう呼んだほうがいいでしょう。
Re: (スコア:0)
>lambdaやマクロ
そうそう。
その言語が無名関数をサポートしてるかどうかで
コーディング量なんてガバっと変わってしまうよね。
(広く言えばこれは「リテラルの充実」の問題です。
無名関数はつまり「関数リテラルを書く」という機能。
ほかに配列やHashやRangeなどなど…といった
美味しいリテラルが揃ってる言語のほうが「便利」。
あと文字列リテラルに複数行機能や変数展開機能があると更に「便利」。)
(あとRubyのModuleみたいな「改善された実装多重継承」も美味しいぞ)
スクリプトっぽい言語は世の中に色々あるけど、
ラムダ/無名関数みたいに
「決定的にコードを短くしてくれる武器」
を搭載した言
Re: (スコア:0)
そんなん言語使用じゃなくライブラリの問題じゃん。それならC++にだって全て揃ってる。boostだけど
Re: (スコア:0)
なんだかんだと 今更どうも
あの娘(php)この娘(ruby)の ツールの山に
なやむハンサム ちょとつらいざんす
ネエC++ざんしょ ネエ
ざんす ざんす C++ざんす
あたしゃ貴女に ライ・ブラ・リー
Re: (スコア:0)
> その言語が無名関数をサポートしてるかどうかで
> コーディング量なんてガバっと変わってしまうよね。
そんなに変わらないよ。
goto文は強力で何にでも使えコードサイズを短くしてくれるけど、注意深いプログラマは大抵はifやwhileですませてしまう。
それと同じことです。
> 美味しいリテラルが揃ってる言語のほうが「便利」。
> あと文字列リテラルに複数行機能や変数展開機能があると更に「便利」。)
そりゃ便利ですし、局所的にはコード量も減らしてくれるでしょう。
でも、「プログラムのいたるところが」そんな有様では、やはりプログラムの構造を見直すべきだと思いますよ。
Re: (スコア:0)
さて、たとえ話ばかりでなんですが、こういうのはいかがでしょう。
純関数型言語の世界ではもちろん無名関数は空気のように使われていますが、破壊的代入は許されません。
破壊的代入の強力さはみなご存知だと思いますが、関数型言語に破壊型代入を導入してコード量がガバっと減った…という話は聞きませんよね(笑)