2016年プログラミング言語


最近ぐいぐい「D言語はいいぞ」って言われてるんだけど、そのよさをいまいち汲み取れない紅茶屋さんです。
個人的には使う言語なんてなんでもよいぞと思ってる人間です。

 

言語なんてあくまで手段でしかないので、伝えたいもの、表現したいものがあってこそのものだからです。
プログラミング言語は動作環境や利用可能なライブラリの関係で、言語という手段を先に限定して何かをやろうとすると、とてもとても遠回りを強いられることがあるので、目的にあわせて言語を選択するぐらいがよいと思います。
どーょ?

 
2016年の言語ランキング
www.tiobe.com/tiobe_index

2016-07-01 14_47_40-TIOBE Index _ Tiobe - The Software Quality Company

 

Java

最近はAndroid開発周りでもつかわれている。struts以前はどうしても取れないバグ相手に消耗戦が繰り広げられていた言語だが、大規模開発のデファクトになる程度にポピュラーな言語として確立した。もはや職業プログラマー界隈では避けて通れない。なんにもとっかかりがなければjavaから始めればいいんじゃないかな。たぶん、あと5年は確実にメインストリームだと思う。でも、個人的には書き方が煩わしく感じる。

 

C

プログラミング界隈で紀元前とはBefore C言語ということらしい(石はこちらには投げないでください)。
制御系とかで、オンオフをぱちぱち書くなら必須。ハード界隈かな?
Arduinoなんかを見るとJavaで代替される未来もあるんじゃないかなと思わなくもない。大穴でmrubyとかな。

 

 

C++

使われ方としてはJavaと同じ並びかな。windowsに限定できたりする業務系環境なら、圧倒的に開発コストを抑えられる。winAPIをコントロールしやすい。Microsoft Visual StudioがやっぱりIDE(統合開発環境)として優秀で、呼び出してる他のDLLとかと連携するのに便利じゃでのぉ。

 

Python

Webまわりでなんかつくるのに便利。Google App Engineで使えるのが一番かなぁ?
海外のコーディングゲーム( checkio.org/ )とかで遊ぶのにデフォルトにされてるので、ある意味世界標準ではいまはこれがエントリーポイントになってるのかもね。
科学演算系やら数値計算のライブラリ(SciPy、numpyとか)とかも充実してて、Fortranとかの界隈もPythonのほうがいいんじゃないかと思う。ほら、最近話題のディープラーニングとかのオープンソース TensorFlow とかもPythonだしね。
カメラ認識のOpenCVが対応している言語はC/C++、Java、Python。つまりそういう感じ。

 

 

C#

C++の後継だけど、web系にもつかわれてたりと使われ方が定まらない印象。かつてパッケージソフトとかを創るのに使ってたけど、いまパッケージソフトとかなくて、アプリ扱いじゃない?ちょっと没個性さん。コンパイラが無償提供になって可能性はすこし広がった。C#単体でみるより、.NETというくくりでみるべきかもね。windowsユーティリティなんかつくれって言われたらC#採用するかもね。

 

 

PHP

Web系なら必須だから触われるようにはしておけ物。どのレンタルサーバーでも動くというのが一番の利点。
テッキーな連中にバカにされがちだけど、wordpressとかdrupalみたいなポピュラーなCMSがPHPで書かれてことからもわかるとおり不可避言語。htmlをコードできるだけの人でもPHPerになるために言語に触れている人口そのものが多い。技術習熟度がとても大きな正規分布になっているので裾野が広い。
技術習熟度が低い人が居るからといって、人を侮り、下を探して安心するような技術者にはなってほしくない。言語を理由にマウンティングしていく論には汲みしないこと。あいつの言語はたった26文字しかないんだぜと英語話者をバカにするようなもの。バカっていうやつがバカなんですぅ!ばかー

 

 

JavaScript

ちょっとなにがどうなってるのか、わけわからない言語。
最近はnode.jsみたいにサーバー側でも動くようになってきた。
html5でできることを考えるとかなり色々なことができてしまう。ソケット通信から、PCやスマフォのマイク、カメラのハンドリングまで。実行がブラウザベースなので、動作環境の構築や実行について何もかんがえなくてもいいのがいい。もはやブラウザとかを蹴るためのインターフェイス言語といってもいいのかもしれない。
数万件のデータを読み込んでプロットしながらグラフを書いてもストレスなくさくさく動く。一昔前のjsとは隔絶の感。恐ろしい。でも、今と昔が混在しているカオス。書き方がヤダからとかcoffeescriptとかまであってさらにカオス。
でもま、弱点もあって、n*0.1とn/10の結果がずれていったりするなど科学計算に使うにはおすすめはしない。型がゆるいからね。でも、ちょっとなにかするのにすごく便利。

 

Perl

どうだろう?もう枯れてるとおもう。新規でこれからやる必要はあるかな?よくわかんないや。Pythonでいいんじゃね。

 

Visual Basic .NET

これもどうだろうね。C#に統合でいいんじゃないかな?

Ruby

Rubyの事を言うと必然Ruby on Railsの事になるのだけど、環境がすでに手元にあってちょっと結果がみたいものをつくるのには楽な言語。作り捨て専用。レンタルサーバで動かすためには環境構築をできるスキル、建てたサーバーのお守り、また書いた端からアップデートされる言語仕様に付き合ってコードをメンテナンスし続ける予算と覚悟と人員が必要。
初心者にあまり勧めないのは環境構築周りでしんどさがまだあるから。自前macとかに載せるだけなら別だけどね。でも、公開サーバーに載せようとすると、いまだにheroku1択じゃない?
請負とかで生命財産に絡んで稼働責任が問われる分野で採用すべき言語ではないと思ってる。バージョン齟齬で死んじゃうから。

 

Visual Basic

ここであがってるVisual BasicってVB6.0の事かな?だとしたらこれも遺物かな。化石。Visual Basic .NETの前バージョン。windowsアプリを創るのにとても開発コスト低い言語でした。新人研修も楽ちんで量産型プログラマーを投入してもなんとかなる懐の深い言語。PHPのように裾野が広い言語だったのでこれまたバカにされがちだけど、別にC++でDLLつくって表側をVBにしたり結構なんでもできたので、PHPに言えることと同じことが言える。

 

Assembly language

用途次第。触らない人は一生触らない言語なんじゃないかね。メインフレームとか、CPUに直接命令どうこうというような世界にいった人が使うものなのかな?

 

 

Delphi/Object Pascal

Delphi、Delphi、Delphi・・・。ごめんなさい、これについての経験や知識がないです。知らない世界だ。あ、HSP(Hot Soup Processor)とかが全盛だったころHSPとぶつかってたDelphiの後継?あれイルカのマークじゃなかった?はて???ごめん、やっぱ知らない。

 

 

Swift

iPhoneアプリとかを創るときに使う言語。
objective-cは触る気もおきなかったけどSwiftは結構食指が動いている人たちも多い。x-codeを含む環境構築もかなり楽ちん。2.0になって、ちょっと触ってみた感じ結構よさげ。こんど3.0になるそうな。今まさにこれからというフレッシュな言語。ただStoryboardがなんかもやっとする・・・。ただ可能性は感じちゃってます。

 

Objective-C

iPhoneアプリを作るのに今まで必須だったなにか。
死屍累々を積み上げ、先人たちが下草を刈ってくれた。苦行をされてきた先達に感謝の念を。
でも、ごめんなさい、後続はSwift使うわぁー。

 

R

プログラミング言語というよりは大量データ処理のための統計用言語。
計量経済学とか社会科学の人たちには必須かもしれない。
先日、物議をかもした東京財団の財政長期推計モデルがデータと一緒にRで配られていたのでいまさら初めていれてみた。
www.tkfd.or.jp/research/fiscal-estimate/model_b_61
まあ、プログラミングという感じではない。

政府統計局のe-Statとかで得られるデータがcsvだったり、Excelだったりするけれども、将来はこういうデータはRに寄るかもしれないですね。変な加工はしないで、未加工データで配ってくれると色々調べやすいです。ただ、どこがなんのデータか定義がわからない形で配られてもという感じ。

データビジュアライゼーションという点で考えると、最近のエクセルとかの統計関数(分散とか偏差値、近似曲線とか)、財務ファイナンス系の関数は非常に強力で実務ではこちらのほうが用をなすんじゃないかと思います。VBAはこんかいのリストではランクインしてないけれどもExcelまじ強いから併せると侮るなかれです。例えば、偏差値の算出なんかをSQLだけで書こうとすると、回帰とかめんどくせぇなぁという感じだけども、関数一発で、グラフ化までしてくれたりするので、Rとの差別化って?という心持ちもあります。扱うデータ種類量的に、Excel→Access→R→SQLみたいなイメージ。
Excelから吹きこぼれてRじゃないとできなくて、SQLより本格的じゃないという結構限定的なスチュエーションなのかなと思っています。ここらへんで競合するのはjavascriptでd3.jsとかかね。政府統計のRESAS resas.go.jp/ とかをみてばわかると思うけど、Rのみよりはjs+DBのほうが、潰しがきくので、Rの使いドコロが難しい。
やっぱり学術分野だけかなー?

 

MATLAB

MATLAB??ごめん、まったく知らない。うわさもきかないや。数値解析ソフトウェアだって・・・。ソフトウエア!?言語なんだね?CADみたいなもんかね?化学工学とかで流速とかそういうのをやるためだろうか??

 

PL/SQL

データを取り扱うための言語で主要言語ですわ。いままででてきたプログラミング言語と競合するものじゃなくて、データを扱う側で必須なものです。逆に言うとこれに馴染みがないままだと、いくら上に並んでいるような言語でエキスパートだったとしてもプログラムをつかってやれることの範囲が100倍以上違ってくる。
だって、データ構造の設計もできないんだぜ。

PL/SQLという言語に限定すれば、ストアドとかビュー、プロシジャーまで含むんだろうけど、あえてSQLに一般化して申し上げておきます。DBもDB操作系のお作法も多々あれど、どれも同じようなもんだしね。
そういう意味でいうとRuby on Railsのいいところは、この設計をよしなにすっとばして書けるところなんだろうね。NoSQL、MongoDBみたいな道もあるだろうけどRDBMSがわかったうえで行かないとダメなんじゃないかと思いますよ。

 

 

D

私が唯一知っていることは、ツイッター上で「D言語くん」とつぶやくとD言語くんにフォローされるということだけです。

 

 

COBOL

枯れすぎて残存者利益の領域に到達した唯一の言語。最近新卒の子とかが爺様方の引退に伴ってCOBOLをやらされているらしい。ただ、レガシーシステムも多く食いっぱぐれはないので「ライスワーク」と割り切れば別にいいんじゃないかなと思います。つぶしは効かないけど。

感想戦

個人的には最近はjavascriptでhtml5でwebkitが面白いなーと思っています。swiftもそのうち触りたいかもー。ぐらい。
数年前は、Flashとかで使われていた、FlexAirがコンセプトとしても面白い言語だなーといろいろ遊んだんですが、振り返っても、周りを見渡しても誰もいませんでした・・・。使われてたのは郵便局のはがきデザインキットとTweetdeckぐらいかな。ブラウザから印刷系やフォント系がいじれるので帳票まわりをリッチにつくれてなかなか便利だったんですが。今ならhtml5でいいので要らないですが。
プログラミング言語は環境を構築するのがめんどくさいです。
自分みたいに好き勝手、つまみ食いするだけの人間にはなおさら。
はやくcloud9みたいに、なんか、偉い人がよしなに実行環境をつくっておいてくれると嬉しいです。
c9.io/
empire of codeみたいに、わしゃロジックぐらいしか書きたくないんじゃ感。

2020年にプログラミング教育が必修化されるとか言われてるらしいです。
コードを教えるんじゃなくて、考え方を育てようとかいっているらしいですが、自分はプログラミングの専門教育をうけたことがないので、考え方を教えるんじゃとかいわれるともやっとします。だってプログラミングって反復させることをするための道具なので、考え方が同じだったら、誰か一人が書けばいい。考え方、優先順位にばらつきがあるからこそ多種多様なプログラミング言語と使われ方があるわけでしょ。
プログラミングで楽しむような子はいままでの教育課程からすると「吹きこぼれ」に相当して、教育で人材の知識的品質を確保するというクオリティアシュアランス的な教育にはなじまねぇだろうなという危惧もあります。型から飛び出た外れ値の子をフォローする仕組みは教師個別の情熱に依存されるだけで、制度としては設計されてないよね・・・。(スーパーサイエンスハイスクールとかAO入試とかは一応そうなのかな。)
飛び出ちゃった子とかには、環境だけあたえて好きにさせておけばいいじゃないと思うのですが、先日の佐賀B-CAS破って県内の生徒の成績集めちゃったみたいな闇堕ちケースもあるので、ヨーダは必要かもね。でも、学校+教師っていう枠組みじゃ無理だなと思います。上記の主要言語だけみても種類が多すぎて、生徒のやりたいに併せて、フォローできる人材なんていないからです。あるとしたら、門下徒弟道場制度かな。

 
子供向けの教育にはScratch でいいんじゃないでしょうか。Swift Playgrounds も面白そうね。
地元三鷹には中高生rubyコンテストがあって、rubyに縛ってやっていて子どもと侮るなかれという感じですが、プログラミングの言語を縛りはピアノコンクールとか水彩画展とか、そういうレベルでの表現の縛りなので・・・・・・、まあなんにせよ自由にのびのびやってほしいです。
とりとめなくなったので、ここらへんで終わり。


17歳が不正プログラムをつくったとして逮捕された


佐賀市の無職の少年(17)が有料デジタル放送をB-CASカードなしで見れるプログラムを公開したとして不正競争防止法違反容疑で逮捕された。不正アクセス禁止法案とか著作権上の複製権や公衆送信権の侵害あたりをやらかしたのかと思ってニュースを読んだら、不正競争防止法違反らしい。

 
テレビまわりほとんど興味がないのでB-CASカードとかがよくわからないのだけど、B-CASカードそのものが電波法が定める「公平で効率的な電波帯域の利用」という公益性に反してんじゃねぇかな。不正競争防止法違反というか、独占禁止法こそ仕事しろ案件。

 

イノベーションには2つの方向がある。
「なぜなぜ」を突き詰めて深掘りしていく下位概念。
「そもそも」をたどる上位概念。

 
<テレビを見るのに「B-CASカード」が必要なのは不便だ> という課題を、17歳の子は上位概念で辿って、そもそもなぜ「B-CASカード」が必要なのだろうか?から解決した。解決してしまった。破壊的イノベーションを実行したわけだ。破壊的イノベーションは破壊される側にいる人たち(だいたいが既に利権者側なので、地位と権力がある)はそれを嫌がる。

 

 

実にもったいない。

 
この才能をこちらにしかのばせなかった環境も、彼自身も、それを逮捕という形でしか終わらせられなかった公権力側も。そして、恐らく逮捕されて有罪になった後は、粗暴犯やらと同じ更生プログラムに入って再教育がされるのだろうが、これも実にもったいない未来である。

 

つくりあげたものは褒められたものではなかったかもしれないが、彼は技術的課題をハックして、しかもそれを公衆に提供した利他的な振る舞いができる子なわけだ。それが単純な承認欲求からくるものだとしても、彼は問題解決にまで至っている。ここにまで到れる人というのはやはり希少だ。その才をこんな無駄な課題(人間が人間のためにつくったただの障害)に費やされたことも、いろいろもったいない。

 

もっと情熱を向けられる別の課題はなかったものなのか。更生プログラムを選べるなら、彼には多くのなんらかの課題を抱えてる人たちに触れさせるボランティア罰がよいように思う。(日本にそのような制度はないが・・・。)そのほうが未来のためになる。

 

 捜査関係者は「ネット上で入手できる不正プログラムは、売買される不正カードに比べて拡散の可能性が高く、無料視聴が横行する恐れがある」と警戒している。

電波利権は利権の中でも強烈に強い利権なので、禁忌に触れちゃった感じか。
このコメントから察するに、サーバー問い合わせのないただのデジットである可能性が高い。高校生程度の子が公開されている仕様から辿れるレベルの。無駄で、無意味な障壁でしかないように思う。ハリボテを暴いてしまった子供を掴まえて「不正競争防止法違反だ!」と喚くのは実に大人気ない。「よく捕まえた!」とその仕事ぶり評価する人は現代では確実に居るだろうが、その評価が30年後まで不変であるとは思ってはいけない。

 

スティーブ・ジョブズは電話をタダで掛けられるハックツールでビジネスをスタートした。ビル・ゲイツやその他多くの名だたる経営者だって相当やらかしている。それを見出して導く環境があればこその今だ。

 

もったいな、とただ嘆息するのみである。

 

 

<不正プログラム>TV無料視聴をネット公開、少年逮捕
毎日新聞 6月8日(水)11時40分配信
headlines.yahoo.co.jp/hl?a=20160608-00000036-mai-soci

佐賀市の無職の少年(17)を不正競争防止法違反容疑で逮捕

「B-CASカード」がなくても有料デジタル放送が無料で視聴できるプログラムを独自に開発し、自身のホームページ上に無料で公開して不特定多数の人が閲覧、入手できる状態にした

「ワークキー」と呼ばれる暗号をパソコンに入力することで放送を視聴できるようになる

逮捕前の任意の調べには「カードが邪魔だった。無料視聴したかった」と容疑を認めていたという。

 

B-CAS使わず有料テレビ計70chを無料視聴 ネットで「不正プログラム」公開 17歳無職少年逮捕 警視庁
www.sankei.com/affairs/news/160608/afr1606080009-n1.html
不正視聴プログラムを公開=全国初、容疑で少年逮捕-警視庁など
www.jiji.com/jc/article?k=2016060800233&g=soc

カード使わず、新たな手口 無料視聴プログラム公開容疑
www.asahi.com/articles/ASJ68319LJ68UTIL004.html


楽しめる人のほうが少なそうなゲームEmpire of Code


楽しい。
clash of clans(クラッシュオブクラン)に代表されるタワーディフェンスゲームにプログラミングの要素が加わったゲームがでた。Empire of Code いつでたのかはわかんない。これを作成したのが、checkio.orgと同じところだというので絶対時間奪われると思っていたのだけど、やり始めてしまった。

 

empireofcode
empireofcode.com/game/
checkioはPythonでしか書けなかったけど、empireofcodeはjavascriptも選べるので自分はjs側を選択した。
結局ゴールデンウイークはこれと、会社のパソコンが身代金Rockyウイルスでロックされてしまってメールにアクセスできないタスケテ!!っていう対応で奪われてしまった・・・。流行ってるみたいだから、みんなバック・アップしておこうね・・・。

 

 

さて、今みてみたら、checkioで遊んだのはもう2年2ヶ月前、Lv7まで遊んで放置したようだ。画面もずいぶん変わっていたのでバージョンアップしてまだ続いているみたい。一週間か1ヶ月か遊んで後半の問題をみて俺にはこれ以上先はしんどいなーと放置しちゃった気がする。

checkio

checkio.org/user/kuippa/
世界だとTopCoder、日本だとAtCoderとかに代表されるような競技プログラミングの世界があるのだが、個人的には詰将棋をやっているみたいで好きじゃない。反覆練習かって感じ。チューニングみたいなことを趣味でやりたくないし、人が考えた課題で先人達が上手くやっているにようなことに取り組むのはいまいち気乗りしないのだ。

みんなで車輪の再発明して職人芸を競うのには紅茶屋さんなので残念ながら興味もてないのだ。
クリアがないタワーディフェンス系のゲームは正直ゲームとしてはあまり面白くない。

使った時間と課金勢バンザイになるからだ。惰性でやめられなくなってる系。

ただ、このゲームでは課金の変わりに「プログラミング」があって、ユニットの索敵破壊アルゴリズムや、パワーアップが直接編集できたり、コードクイズを解くことで進化させることができる。

2016-05-07 14_43_27-新しい通知

 

最初の自分の兵隊ユニットのロジックが突撃&破壊とあまりにもバカすぎるのでロジックを一生懸命弄ってたのだけど、

  • askUnitsで一番最初に登場したユニットは他の仲間ユニットが参照できない
  • doMove、doMovesで移動中にdoAttackをいれちゃうと移動がキャンセルされる
  • 移動が終わるまでまってから攻撃をいれようとするとwhenIdleは一回しかコールされない

 

など、作りこみに限界と難があって。苦労する。自分は戦闘ユニットのロジック変更から入ってしまったけど、やらなくてよかったかもしれない。ストラテジーは必要最低限いじるだけに留めて、基地のバージョンアップをさせていったほうがいい。
デベロップメントクイズは、いまのところまだ簡単な問題がおおい。
さくっと合間時間に解けるので息抜きになる。
ただPlace Queensだけ、うへーーってなった。
8×8のチェスボードに縦横自由に動けるクイーン駒を8つ、互いにぶつからないように配置しなさいというクイズ。

例えば

placeQueens([“b2”, “c4”, “d6”, “e8”])

と渡されたら、

[“a5”, “f3”, “g1”, “h7”]

を返しなさいって感じ。
これが、予想外にいろいろな出題パターンが出現して結構悩ましく苦戦した。

 

codegolf

codegolfという問題があるのだが、コレが自分には未知の世界すぎてホンゲー!!?ってなる。

できるだけ少ない文字数でプログラミングをしなさいというジャンルなのだけど、Perl書きでもるまいし、このリソースリッチな時代に可読性下げてまでコードを短くする意味どこまであるのか知らないけど、このジャンルに苦戦している。

 

例えば、

For example: The number given is 123405. The result will be 1*2*3*4*5=120.

という問題があったとして、これを70文字以内に実装できればOKという問題。
これは、こんな風に書いた。

function golf(n){r=1;for(v of(n+””).match(/[1-9]/g)){r*=v};return r;}

解き方は人によって千差万別だろうが、正直自分で書いて気持ち悪い。三項演算子とかすら嫌いなので、こういうのヤダ。正規表現とか嫌い。
なんだこの変態ジャンルは。

golf

Weak Pointは、与えられた2次元配列にたいして縦、横の合計が一番少ない数字を返せって問題。

普通に書けばこんな感じ

 

"use strict";
function golf(m) {
    l=m.length;
    p=m[0].length;
    sumr = new Array(l);
    sumc = new Array(p);
    sumr.fill(0);
    sumc.fill(0);
    for (var i=0;i<l;i++) {
        for (var j=0;j<p;j++) {
            sumr[i] += m[i][j];
            sumc[j] += m[i][j];
        }
    }
    // console.log(sumr + "/" + sumc);
    return [sumr.indexOf(Math.min.apply([],sumr)),sumc.indexOf(Math.min.apply([],sumc))];
}

ちょっと意識して短く書いたつもりだけどこれで、スペース込みで408文字。303文字


function golf(m){
    l=m.length;
    r=Array(l).fill(0);
    c=r.concat();
    for(i=l;i--;){
        for(j=l;j--;){
            r[i]+=m[i][j];
            c[j]+=m[i][j];
           
        }

    }
    return [x(r),x(c)]
}
function x(r){return r.indexOf(Math.min.apply([],r))}

変数の宣言を省略したり、concat()をつかってシャローコピーしたり、for文を–でデクリメントしたり、一個だけ関数をつくって外出ししたりして文字を稼ぐ。
これでスペース込みで265文字。186文字
ここから要らないスペースを取り除く。

function golf(m){l=m.length;r=Array(l).fill(0);c=r.concat();for(i=l;i--;){for(j=l;j--;){r[i]+=m[i][j];c[j]+=m[i][j];}}return [x(r),x(c)]}
function x(r){return r.indexOf(Math.min.apply([],r))}

 

スペース込みで190文字。186文字

Rank1:Any code length.
Rank2:Your code should be shorter than 175 characters.
Rank3:Your code should be shorter than 125 characters.

ここまでやってRank2もとれない!!

 

l=m.length;
r=Array(l).fill(0);

を1行にまとめて

r=Array(l=m.length).fill(0);

これで2文字切り詰めて、

c=r.concat();

c=r.slice();

にして1文字稼ぐ。

Math.min.apply([],r)

Math.min.apply(0,r)

にできるのでこれでも1文字稼いで…

こんなんしてもまだRank1で、rank3になるにはさらに70文字削らなきゃいけないって気がついて、この路線無理!!ってなった。乾いた雑巾絞りすぎだろ。ちぎれるわ!!
でも、他のやりかたを考えると、かえって文字数が増える。ふんごーってなってます。
ループを使わずにeval(m[i].join(‘+’));とかなんだろうけど、2次元配列のピボットのショートカット手段が思い浮かばない。なんか、解けてもバッドノウハウの塊になりそうだよね。

 

これで躓いて、コードゴルフ問題が今何問も溜まってます。
このブログの文章よろしく、短く書くってことに思考を割いてこなかったのでちょっと苦労してます。

で、こんなゲームだれが楽しめるんじゃろ。ま、楽しいんだけど。

 

 

(追記)

function golf(m){
    r=[];
    p=[];
    m.forEach(function(v) {
        p.push(eval(v.join('+')));
        v.forEach(function(e, i) {
            isNaN(r[i])?r.push(e):r[i]+=e;
        });
    });
    return[x(p),x(r)]
}
function x(r){return r.indexOf(Math.min.apply(0,r))}

function golf(m){r=[];p=[];m.forEach(function(v){p.push(eval(v.join(‘+’)));v.forEach(function(e, i){isNaN(r[i])?r.push(e):r[i]+=e;});});return[x(p),x(r)]}
function x(r){return r.indexOf(Math.min.apply(0,r))}

スペース込みで206文字。202文字

長くなっちゃった・・・。

なんか!j?b=a:1;とか無茶な書き方をいっぱいしてチェックしてたらチェックサーバーが落ちちゃって、昨日から帰ってこない。。。