アカウント名:
パスワード:
「プロジェクト」なんて構えてやる場合だと, 当然のことながら再利用やメンテナンスってのが念頭に入ってきますし, それに伴って多かれ少なかれ事前の設計が必要になってきたりするので, LLの思いついたらすぐ作成ってパターンが利点にならないんですよね. きっちりと設計しちゃうとガーベージコレクションみたいな細部を除けば, Cみたいなプリミティブな言語もLLもコーディングの面では大差が無いし.
逆に性能やフットプリントなんかを気にし始めると, LLの場合は処理系自体の性能に加え, 処理系の内部処理なんかまで考慮しなくちゃならなくなるので, ちょっときついんですよね. その点, Cあたりだとアルゴリズムさえ極端に間違えなければ, コンパイラの最適化にまかせればコードから想像できる範囲でお手軽に高速化できちゃうんで, ついついCに逃げちゃいます.
>lambdaやマクロ
そうそう。
その言語が無名関数をサポートしてるかどうかでコーディング量なんてガバっと変わってしまうよね。
(広く言えばこれは「リテラルの充実」の問題です。無名関数はつまり「関数リテラルを書く」という機能。ほかに配列やHashやRangeなどなど…といった美味しいリテラルが揃ってる言語のほうが「便利」。あと文字列リテラルに複数行機能や変数展開機能があると更に「便利」。)
(あとRubyのModuleみたいな「改善された実装多重継承」も美味しいぞ)
スクリプトっぽい言語は世の中に色々あるけど、ラムダ/無名関数みたいに「決定的にコードを短くしてくれる武器」を搭載した言語か否かによって、生産性のあがりかたは全然別物で、同じ「スクリプト言語」という括りにすることすら馬鹿ばかしいほど。
たとえばVB系言語は、見た目はいわゆるスクリプト系のうちなんだが、ラムダとかの気の利いた仕組みを欠いているので、ちょっと長めのコードになるともうCやJavaで書いたのと大差ないくらいダラダラと長ったらしくなる。「スクリプトの効能なんて大したことない」と誤解してしまう。
例えばスクリプト系としてVB系しか見た(見慣れた)ことが無い人だと「スクリプト系」に対する正しい(旨みを引き出すような)評価を下すことは出来ないことになる。
そんなん言語使用じゃなくライブラリの問題じゃん。それならC++にだって全て揃ってる。boostだけど
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
LL使っても軽くならないし (スコア:2, 興味深い)
「プロジェクト」なんて構えてやる場合だと, 当然のことながら再利用やメンテナンスってのが念頭に入ってきますし, それに伴って多かれ少なかれ事前の設計が必要になってきたりするので, LLの思いついたらすぐ作成ってパターンが利点にならないんですよね. きっちりと設計しちゃうとガーベージコレクションみたいな細部を除けば, Cみたいなプリミティブな言語もLLもコーディングの面では大差が無いし.
逆に性能やフットプリントなんかを気にし始めると, LLの場合は処理系自体の性能に加え, 処理系の内部処理なんかまで考慮しなくちゃならなくなるので, ちょっときついんですよね. その点, Cあたりだとアルゴリズムさえ極端に間違えなければ, コンパイラの最適化にまかせればコードから想像できる範囲でお手軽に高速化できちゃうんで, ついついCに逃げちゃいます.
Re: (スコア:1)
lambdaやマクロ(言うまでもないけど、Cとかのヤツとは違う)なんかを使うと、かなり差が出ちゃいますよ;-)
#言語が限定されてるような気がしないでもない
お察しの通り、超濃緑茶です。 そう呼んだほうがいいでしょう。
Re:LL使っても軽くならないし (スコア:0)
>lambdaやマクロ
そうそう。
その言語が無名関数をサポートしてるかどうかで
コーディング量なんてガバっと変わってしまうよね。
(広く言えばこれは「リテラルの充実」の問題です。
無名関数はつまり「関数リテラルを書く」という機能。
ほかに配列やHashやRangeなどなど…といった
美味しいリテラルが揃ってる言語のほうが「便利」。
あと文字列リテラルに複数行機能や変数展開機能があると更に「便利」。)
(あとRubyのModuleみたいな「改善された実装多重継承」も美味しいぞ)
スクリプトっぽい言語は世の中に色々あるけど、
ラムダ/無名関数みたいに
「決定的にコードを短くしてくれる武器」
を搭載した言語か否かによって、
生産性のあがりかたは全然別物で、
同じ「スクリプト言語」という括りにすることすら馬鹿ばかしいほど。
たとえばVB系言語は、
見た目はいわゆるスクリプト系のうちなんだが、
ラムダとかの気の利いた仕組みを欠いているので、
ちょっと長めのコードになるともう
CやJavaで書いたのと大差ないくらいダラダラと長ったらしくなる。
「スクリプトの効能なんて大したことない」と誤解してしまう。
例えばスクリプト系としてVB系しか見た(見慣れた)ことが無い人だと
「スクリプト系」に対する正しい(旨みを引き出すような)評価を下すことは出来ないことになる。
Re: (スコア:0)
そんなん言語使用じゃなくライブラリの問題じゃん。それならC++にだって全て揃ってる。boostだけど
Re: (スコア:0)
なんだかんだと 今更どうも
あの娘(php)この娘(ruby)の ツールの山に
なやむハンサム ちょとつらいざんす
ネエC++ざんしょ ネエ
ざんす ざんす C++ざんす
あたしゃ貴女に ライ・ブラ・リー
Re: (スコア:0)
> その言語が無名関数をサポートしてるかどうかで
> コーディング量なんてガバっと変わってしまうよね。
そんなに変わらないよ。
goto文は強力で何にでも使えコードサイズを短くしてくれるけど、注意深いプログラマは大抵はifやwhileですませてしまう。
それと同じことです。
> 美味しいリテラルが揃ってる言語のほうが「便利」。
> あと文字列リテラルに複数行機能や変数展開機能があると更に「便利」。)
そりゃ便利ですし、局所的にはコード量も減らしてくれるでしょう。
でも、「プログラムのいたるところが」そんな有様では、やはりプログラムの構造を見直すべきだと思いますよ。
Re: (スコア:0)
さて、たとえ話ばかりでなんですが、こういうのはいかがでしょう。
純関数型言語の世界ではもちろん無名関数は空気のように使われていますが、破壊的代入は許されません。
破壊的代入の強力さはみなご存知だと思いますが、関数型言語に破壊型代入を導入してコード量がガバっと減った…という話は聞きませんよね(笑)