現在学ぶべき、迅速な開発ができる言語は? 115
宗教戦争がはじまる…… 部門より
本家Slashdot「Ask Slashdot: Best Rapid Development Language To Learn Today?」より
何年も前は私もプログラマーだったが、大学で習ったのはLispやCだ。現在は別の分野で働いているが、手早くデータ処理をする必要がある場合などにコードを書くこともある。Cを使うのは古臭く感じるし、無駄に難しいので、ほとんどの場合はUnixシェルスクリプト(bashとgrep/sed/awk/bcなど)やPHPで済ませている。しかし、これらもかなり古いものだ。私はもう若くないので、言語を選んでから数時間で作業を終えるのは難しい。現在はもっと人気があり、さまざまな利点があるとされる言語がたくさんあるが、私は今の仕事をやめるつもりはなく、プログラマーとして新たな仕事を始めるわけではない。ただ自分のコーディングスキルをアップデートして、現代の技術を活用したいのだ。
理想的には、Webやモバイル、GUIデスクトップなどに関連した言語で、コマンドラインを使用したデータ処理との統合も可能な、インタープリター型の言語を学びたいところだ。私はクライアントのためにコードを書くわけでも、市販用のソフトウェアを書くわけでもなく、データベースから落とした大きなCSVの処理や、現場のスタッフが一回限りのデータ収集に使用するモバイルアプリを作るだけなので、少なくとも手っ取り早い開発が可能なものがいい。今やっている作業も新しい技術を使えば効率よくできることがわかっているので、bashやPHPを使った作業にはうんざりしている。しかし、本来の私の仕事はプログラミングではなく、必要に迫られてコードを書いているだけで、複数の候補を試してみるような余裕はない。
周囲からはPythonやLua、JavaScript+Node、Rubyなどを勧められたが、私はスラッシュドットの意見を聞きたいと思う。内輪で使うツールを手早く開発するのに使用する言語を、便利さやパフォーマンス、利用可能なプラットフォームの幅広さなどのバランスを考慮して1つだけ推薦するとしたら、何を選ぶだろうか。また、その理由もお教え願いたい。
2014 (スコア:2)
Webサービス: Google App Engine に最適な Python、何か理由があれば Go や Java もオーケー(Google App Engine は絶対的に強力。使わない選択肢なし)
モバイルクライアント: Android や iOS の提供する API にアクセスしたければ、Java / Obj-c しかない
HTML5 クライアント: JavaScriptで書くことが多いでしょうが、Dart もいいでしょう
データ分析: RでもHaskellでもなんでもいい。既存のライブラリがあるときは、その言語でそのまま書くべき
リアルタイムゲームサーバ: なんでもいいけど、C++ よりは何か高級言語のほうが楽
ゲームクライアント: cocos2d-x /C++ や Unity/C# を使ってクロスプラットフォームにする。なぜならゲームのようなOSが提供する API にアクセスしなくていいし UI ガイドラインとかブランディングのために無視できるから。
Re: (スコア:0)
も追加で
Re: (スコア:0)
> Google App Engine に最適な Python、何か理由があれば Go や Java もオーケー
いまさらPython2に戻るくらいならGoでも勉強しますかね。
Re: (スコア:0)
ゲームほどOSのAPIにアクセスするアプリケーションもそうないのでは、ファイルIOもグラフィックのネットワークアクセスもOSのAPIを使わずに出来ない。
OSのAPIの殆どは、OS非依存な形でラップできるし、既にライブラリもあるから、モバイルクライアントもJava / Obj-c以外の言語で開発できる。
Re:2014 (スコア:2)
ゲームで使うAPIっていうのは、OS非依存なAPIだらけだから、クロスプラットフォームでいいんです。むしろ、iOS と Android と違う動きをしてもらっては困る。同じように動いてほしいから、同じコードベースで組むしかない。しかし、それ以外のアプリは、iOS / Androidが元から提供している API を使うのが最適なんだろうと思います。主に UI、ナビゲーションの部分で、OS ごとに違うのだから、違う実装にするのが自然であると、それが Android / iOS のデザインした人の意図でしょう。
とはいえ、Apple / Google の中の人にしてみれば、iOS / Android が提供する API をがっつり使ってもらう予定だったんでしょうが、実際に動いてるアプリケーションはじつのところ、そうでもない。機能的にHTML5と大差なかったり、一貫性のある UI がモバイルアプリのあるべき姿と想像していたら、悪いデザインのアプリでも、それはそれで、機能するものなら人は案外、適応して、嫌々ながら使い続けてしまう。なんだか真面目にデザインして地道に Apple / Google の意図通りのアプリを書く人がバカを見てるような、ぎこちない状況です。
ぐだぐだ言ってないで (スコア:2)
手を動かせ
シンタックスより (スコア:1)
目的のことに適したライブラリがあればその言語を使う
Re: (スコア:0)
うん
自動的にpython一択になるね
Excel+VBA (スコア:1)
マクロの記録結果のコード読むだけで勉強できて手軽だし。
Re:Excel+VBA (スコア:3, おもしろおかしい)
Re:Excel+VBA (スコア:1)
初めはそれでよいと思いますが、
「マクロで記録されないものがある」とか
「書き換えて汎用できるようなコードで記録しない」とか
わかって、侮蔑のスラングを吐きまくることになります。
結局、セルコピーについても「マクロ記録と関係なく」
自前の汎用ルーチンを作って使い回す形に。
エクセルマクロで楽になるのは、それからです。
どっちにしろ、使えるプラットフォームは限られますが。
Re: (スコア:0, おもしろおかしい)
ぎやあぁぁぁぁぁぁ
Re: (スコア:0, おもしろおかしい)
いやあぁぁぁぁぁぁ
Re:Excel+VBA (スコア:1)
【見栄エンジニア講座】
VBAと聞いたら脊髄反射でテンプレ反応しときましょうね。
具体的に何が悪いのかなどと問われたときには、
「そんな質問が出ること自体が悪夢」「話にならない」
とか何とか言って封殺しとけば大丈夫です。
Re:Excel+VBA (スコア:3)
業務プロフェショナル向け (スコア:1)
データベースから大きなCSVを落とすくらいなら
SQL で加工して、適当なレポートツールで見るのがよさそうだ。
デベロッパであればもっと自由度の高い言語を選ぶだろうが
業務プロフェショナル向けには問題に注力できるようシンプルなものが好ましい。
SQL で作ればパフォーマンスもよく、利用可能なプラットホームも幅広い。
コマンドラインを使用したデータ処理との統合も容易だし、
書き捨てのコードにも、寿命の長いコードにも対応できる。
日本だと選択肢が狭まる (スコア:1)
スクリプトでちょちょいと処理しようとしてもファイル名の漢字コードとファイル内の漢字コードが違うだの、そもそもファイル名ASCIIじゃなきゃダメだのがあって、文字コード関係の処理が充実していない言語が候補から外れる。
だもんで、ソースファイルを扱う場合は(ファイル名の問題がないから)目新しい言語に手を出してみても、文書ファイルを扱うときはPythonに頼りきり。
悩むほうがおかしい (スコア:1)
この程度のことで悩むのがおかしいし、スラッシュドットの意見を聞く必要も無い
今までUnixシェルスクリプト(bashとgrep/sed/awk/bcなど)やPHPで済ませていたのなら、どんな言語を使っても問題ないだろう
機能が限定された古いものがお好みならAWKでも十分だし、より新しいものを使いたければ必要に応じてPyton, Ruby, Perl, Javascript等を使い分ければよい
(こんなことで悩むのはいろんなプログラミング言語をいじって、いろんなプログラムを組んだ経験の少ない人に多い)
Re:悩むほうがおかしい (スコア:1)
そうですよね。
それで間なぐ時間が足りず、書くプラットフォーム共通で使い回したいなら、
まず自分が使う可能性があるプラットフォームで共通に
使える言語を確認して、それを学べばよいことです。
例えば、私ならWinとlinux、過去の経験を考慮するとperlを選びます。
でも、大抵は共通かするより、それぞれのプラットフォームで別々に作っていた経験があるので、
共通化はせずにいます。
Re:悩むほうがおかしい (スコア:1)
その予想が当たっているとしたら、怖いですが、なきにしもあらずですね。
CUIでもGUI同等の操作や、CUIからGUIで実装された機能をむりくりできるものはありますが、それはプラットフォーム依存の手順が必要になりますもんね。
まさにおっしゃる通り、「いままで通りやっとけ」ですね。
Lisp 使ったことがあるなら (スコア:1)
Lisp 使ったことがあるなら、 Clojure や Ruby が学習コストが低くて、いろんな用途に使えると思う。
TypeScript は結構いい (スコア:1)
TypeScript は大雑把に言うと今策定中の ECMAScript6 に静的型チェックを追加したものだが、想像以上に JavaScript との親和性が高い。
JavaScript のビルトインオブジェクトや jQuery に正しく型を付けられる言語が他にあるだろうか?(いいやない)
JavaScript を使う機会があったら、TypeScript を考慮に入れてみるのもいいと思うよ。
環境にもよるんじゃ (スコア:0)
自分の端末内のみで完結するならライブラリの充実度。
他のホストに持って行って動かすならある程度の利便性は我慢して既にある言語環境||構築しやすい言語環境を選ぶ。
なので、私も結局はMacでもAWSでもどこでも大体動くbash+Perl/awk/sedとかPHP。
たまにスキル低下しないように必要も無いのに端末内アプリでRubyやPythonとか使ってます。
そもそもデータ処理で最新の言語と過去の言語で、コーディングコストや実行パフォーマンスってそんなに変わるのかな。
今も数百Mのログを精査してDBマスタと比較して特殊アクセス解析したりしてるけどどれも対して変わらない・・。
一番いいのはDBをメモリに保持するとかキャッシュするとかコーディングテクニックな気がする。
Re: (スコア:0)
演算処理がタイトループを含んでいるならJITのある言語だろうねえ。
文字列処理なら違わないだろうけど。
選り好みしてどうすんのよ (スコア:0)
「bashやPHPを使った作業にはうんざりしている。」
bashとPHP極めてから言えば?としか思わない。
「私はクライアントのためにコードを書くわけでも、市販用のソフトウェアを書くわけでもなく、データベースから落とした大きなCSVの処理や、現場のスタッフが一回限りのデータ収集に使用するモバイルアプリを作るだけなので、少なくとも手っ取り早い開発が可能なものがいい。」
なおさらPHPでいいだろとしか思わない…。
Re:選り好みしてどうすんのよ (スコア:2)
一つの言語に飽きて別の言語に移ってもいいんじゃないか。にんげんだもの。
とは言うものの、時間がないならスラッシュドットなんかで聞いているより、
と勧められた中のどれでもいいから一つ使ってみる方がいいんじゃないの、とは思う。それで「Python は使ってみたけれどここが困る」とか言えれば、他の案を人に聞きやすいし。
Re:選り好みしてどうすんのよ (スコア:1)
とりあえずPHPとZendをちゃんと使えるようになってからモノを言おうという気は強くする。
だいたい、言語を選んで数時間で目的を達成したい、みたいな事を言っているが
”それならなおさらPHPをちゃんとつかいこなせ”
選り好みしなくてどうすんのよ (スコア:0)
選り好みできる状況なら構わないだろ。
極める極めないは好き好きだし。
マゾじゃないんだからうんざりしてるならやめようよ。
個人的には人それぞれだからそれぞれ試した方が良いとか思うけど、それも人それぞれだからな。
#てかPHP押しも選り好みだと思うがなー
Re: (スコア:0)
> 今やっている作業も新しい技術を使えば効率よくできることがわかっているので、bashやPHPを使った作業にはうんざりしている。
効率よくできることがわかっているのか。それ使えや。
・・・何がわかってるんだ?
この状況なら (スコア:0)
Python一択。
ちょっとした使い捨てスクリプトを作るだけなら、パフォーマンスやオブジェクト指向関連の機能なんて関係ない。ましてやNodeの並列性とか、まったく不要(誰だ薦めたのは)。
簡潔で欠点の少ない言語だし、PHPが書けるなら、ベテランでもすぐに覚えられる。ライブラリの集積はピカイチ。所在国は不明だが、英語圏ならユーザーの多さも圧倒的。
普段のちょっとした作業にも使えるし、本人の希望にあるようなWebやGUIアプリもかなり上手にこなせる。
PHPから移行すれば、シンタックスの簡潔さに、「移行した満足感」が得られる。
とはいえ、PHPのままでもたいして変わらない気もする。
なんといっても慣れている言語が一番だと思うし。あまり言語に過大な期待を抱かないほうがよいとは思うなあ。
#と、思う私はRubyユーザー。
Re: (スコア:0)
マルチプラットフォームであることも決め手かな。ほとんど手間かけず同じスクリプトを実行できてほしい。
IronPythonも触ってみたが、やはりCPythonの方が快適だったし、PowerShellも言わずもがなで書く気になれない。
Re:この状況なら (スコア:2)
インシデント……。
bashやPHPを使った作業にはうんざり (スコア:0)
Re:bashやPHPを使った作業にはうんざり (スコア:1)
CSV その他、フィールド区切りデータの処理なら、大概 awk (+前後処理のシェルスクリプト)が一番やりやすいと思います。フィールド分割を気にしなくてよかったり、フィールドの値によるフィルタが簡単に書けたりするのはとても素敵。
正規表現マッチでキャプチャが取れないとか、アクション内でローカル変数が作れないとか、 for (index in array) が順番を保証しないのでハマるとか、文字列連結の構文が常軌を逸しているとか、そんなのは些細な事です。
Re:bashやPHPを使った作業にはうんざり (スコア:1)
文字コードは前後に iconv 噛ませればまず問題ありません。改行コードは RS / ORS で変更できますよ。
項の中に改行が含まれるような場合や、項がダブルクオートで囲まれているような場合は、当然ながら無理筋です。
Re:bashやPHPを使った作業にはうんざり (スコア:1)
Re: (スコア:0)
絶対無きゃダメってわけではないけどsortも欲しい
Re: (スコア:0)
uniq...xargs...find...
Re:bashやPHPを使った作業にはうんざり (スコア:1)
CPANからあれやこれやをその都度引っ張ってきて使用環境にデプロイメントせよと?あるいは欠けているものをフルスクラッチで書けと?
// それを排除する思想と対立しているですね。
Re:bashやPHPを使った作業にはうんざり (スコア:2)
test なら
[ ... ]
では?
Re:Perl以外の選択肢なんてないでしょ (スコア:1)
JavaScript にも Ruby にも 正規表現と連想配列はあります。
PHP と Python は使ったことがありませんが、ありそうなイメージがあります。
svn-init() {
svnadmin create .svnrepo
svn checkout file://$PWD/.svnrepo .
}
Windowsでツールを作るならC# (スコア:0)
フォームが1つか2つのちょっとしたツールを作るなら Visual Studio で C# が最強ですねー。
30分ぐらいでなんでも作れる感じ。
一昔前は Delphi だったと思いますけど。
Re:Windowsでツールを作るならC# (スコア:1)
>一昔前は Delphi だったと思いますけど。
最新の Delphi XEならWin Android iOS全部Build出来ます。昔じゃなくて今後に期待?
Re: (スコア:0)
問題は高すぎることかな。
VB,Java,Cがあればいいや (スコア:0)
OSによってbatやsh、派生としてjspとJavascriptも入れてあげれば何でもできる
BASIC…?保守運用頑張ってください
質問者に本当に必要なもの (スコア:0)
質問の文面があまりに不明瞭すぎ。まず自分の要求を明確化することからはじめよう。
宗教戦争に挑めるのは戦士だけですよ (スコア:0)
> Cを使うのは古臭く感じるし、無駄に難しい
それでプログラマを名乗るとは片腹痛いなー
> 1つだけ推薦するとしたら、何を選ぶだろうか
君をクビにする。
Re:宗教戦争に挑めるのは戦士だけですよ (スコア:1)
他人が書いたLPCSTRは、可読性が著しく劣るので、
私がリファクタリングする際、片っ端から char const * に書き直します。
Re:隣の人が使ってる言語 (スコア:1)
つまりExcelを使えってことですね。
Re:perl一択 (スコア:2)
ご存知かもしれませんが、Perl のスローガンが
"There Is More Than One Way To Do It" ですからねえ。