- ベストアンサー
プログラミング入門者の選択すべき言語について
プログラミング入門者の選択すべき言語について 私はプログラミングを始めようと思っているものです。 始めるにあたってまず考えなければならないのが どの言語でプログラムするかと言うことだと思います。 Cやjavaなどたくさん種類がありますが、 まずどれから始めたらいいのでしょう。 とりあえずは円周率を求めたり 計算のできるアプリケーションを作りたいと思っています。 また、それを作るにあたって必要なソフト?なども教えていただけたらうれしいです。 全くの初心者です。 わかりやすくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
今なら私はlua(ルア)をお勧め致します。割と新しいスクリプト言語です。 私もまだあまり詳しくはなくて、これからアプリ開発をしようとしているの ですが。 今時のアプリは画面描写が多く、X座標とY座標のデータをペアで必要とされる 場合が多いですが、単純な変数で持ちたいところですが、関数値が1つしか持 てないので設計に単純なところで苦慮することが多かったです。 その点Luaは2つ以上の関数値が持てるところが新しさを感じます。 しかし、言語としては易しそうです。 Luaスクリプタがフリーでありますので、画面に式を書いて実行してもいいで すし、テキストファイルにプログラムを書いて実行しても構いません。 Creative社のZEN x-Fi2というiPod touchのようなものがありますが、 このモバイルがLuaを採用しています。 PC用にZENシミュレータがありますので、PCの画面にX-Fi2を表示して、その 中でLuaを動かすことも可能で、勿論、プログラムをそのまま実際のZEN X-Fi2に 移しても動作可能です。 ZENシミュレータとZEN用ライブラリはCreativeからフリーで出ています。 また、ZEN F-Xi2のアプリにLuaで作られたLuaエディタがありますので、 モバイルのZENの中でもプログラムが書けますので、開発に場所を選ばないのも 面白いです。 ZEN X-fi2も機種によって9000~25000円と割とお手軽に入手できますし。 iPod touch/iPhoneのアプリはMacが必須ですし、ケータイのスマートフォンは 電話会社との契約が必要で面倒なので、ZENはお手軽さが魅力です。 また、Lua言語もとてもお手軽そうです。 それにiPod touchなどと違ってアプリやゲームの数が少なく、これからでも メジャーな開発者になる可能性はあると思います。 その他、お薦めではありませんがLISPは面白いですね。 慣れると問題を日本語で考えるよりLISPで考えるほうが早くなってきます。 が、あまりに世間一般では特殊すぎますね。
その他の回答 (4)
- Tasuke22
- ベストアンサー率33% (1799/5383)
> ただまだプログラミングでの関数の意味が分からないので、、、 そうですね。数学の関数と同じように考えたらいいです。 y=f(x) というようなイメージですね。fの内容も自分で定義もするし、前もって 用意されているものもあります。 関数値が二つ持てるというのは x,y=f(n) のような記述が出来るということです。 例えば、 x,y=root(4) とかして、x=2,y=-2とか得るようにすることも可能です。 このような2つ以上の関数値という文法は今まで見たことがありません。 私が知らないだけかもしれませんけど。 一般に関数は、大きなプログラムを1つで書かないで、まとまった 機能ごとに細分化する手法となります。モジュール化とも言い、実は ハードウェアのプリント板設計などから取り入れられた概念です。 > またZENのプログラムができると言うことですが、 > このような携帯型のハードウェアの場合利用できる言語は決まっているのでしょうか。 決まっています。 iPod touchは言語は何か知りませんが。 ケータイのスマートフォンはJAVAが圧倒的に多いです。 機種、或いはメーカーによって方針があると思います。 > すぺてのプログラムでは最終的には機械語にコンパイルされるというのを読んだことがあるのですが。 それはコンパイラ言語のことです。 Luaのようなスクリプト言語は、プログラムを読みそれに従って用意された機械語が実行 されます。これがスクリプタです。PCにも用意できますし、ZENにはファームウェアとして 組込まれています。 要するにスクリプト言語というのはコンパイルをしない、ということです。 コマンドプロンプトのように、1行入力したらその場で1行実行します。 例えば、Luaスクリプタを立ち上げて > と出ますが、 > =10*4 としたら 40 > となって次の入力が要求されます。 このような行をテキストファイルに書く事によってプログラムになり、 Luaはテキストファイルの1行を読むたびにその行を実行するのが 基本です。 スクリプト言語は、PHP、Javascript、BASIC、Perl、Lisp等沢山あります。 また、スクリプト言語なのに、完成したプログラムの実行速度を上げるために コンパイルも出来る言語もあります。それでもコンパイラ言語ほどは早くなり ませんけど。 スクリプト言語は遅いけど、開発者が扱いやすいという面が大きいでしょう。 なお、JAVAはコンパイラ言語とスクリプト言語の中間に位置します。 一応コンパイルしますが、それは仮想マシン用にコンパイルされ、各機器が仮想マシンを 用意し、仮想マシン上で動く訳です。 混乱しやすいですが、仮想PCとはまた違う概念です。 細かいですが、正確にはコンパイルはアッセンブラに翻訳し、アッセンブラから機械語に アッセンブルします。最近はアッセンブル作業はコンパイルの中に隠れていますけど。 > またそうなるとPSPやいiPodのアプリも作れると言うことでしょうか。 勿論です。 PSPは調べたことがありません。フリーで開発環境が作れるか有償かも分かっていません。 iPodはMacでないと開発できないということでそれ以上の調査をしていません。 ケータイなども各種ケータイのシミュレータがフリーで配布されており、PC上に ケータイを表示して、プログラムを実行できる環境が得られます。 勿論言語はJAVAです。
お礼
早速のご回答ありがとうございました。 コンパイラ言語、スクリプト言語の違いが理解できました。 またケータイなどのアプリも組めると言うこと、 この場合の開発言語は配布される開発環境によるということで理解しました。 いつか挑戦したいと思います。 いろいろ考えた結果、 大変かとは思いますがC++あたりで始めようかと思っています。 というのも、PICのプログラミングなどもしたくて互換性があり良いと考えたからです。 VC++も無料版があると言うことで、 それを使ってやっていきたいと思っています。 まだまだ全く前の見えない初心者にも満たないものですので、 今後また質問してお世話になるかと思いますが、 その時はまたよろしくお願いします。 皆さんありがとうございました。
- layy
- ベストアンサー率23% (292/1222)
プログラミング言語はいろいろあって、それぞれ特徴があります。 自分に合うかというのも向き不向きあります。 頭の中では、中学高校とは違った思考回路を使うって感じです。 ある程度テーマ、課題があって順番に学んでいくのでなくて、 自分で道を開拓していく感じです。 やってみたけど理解できない、 けどこっちなら取り組み易かった、というのはあります。 あとC言語やJAVA、 友達が良いよ、ネットでも良いよ、って言うのは 最近の利用頻度が高いからというのもあります。 学習する人が増えれば増えるほど上級レベルまでがんばらないと (就職等なら)不利です。 大きな会社ではその会社オリジナルで言語があったりします。 プログラミング始めるには、 どの言語と今すぐ特定する必要はなくて、 今は基本的なロジックを組み立てられる力を身につけるのが良いと 思います。 組立てができるようになれば、あとはどの言語でもやりたいことに 適合する命令なり構成なりをマニュアルで探しだしプログラミングします。 このあたりが「設計」、プログラミング記述するのは「製造」 「設計」があっての「製造」なので、 正しい「設計」があれば、どの言語で「製造」しても結果が得られるのです。 とりあえずは、 パソコンソフトを扱っている大型店や書店にて プログラミング言語とはどんなのがあるか特徴を見てみる。 CやJAVA、のソフトはけっこう高額です。 EXCELとかあれば別途ソフトを買わなくてもVBAという言語があります。 フリーソフトではCOBOL等もあります。 言語はあと資格試験も実施しています。 問題サンプルを見て本などで調べて回答してみるという手もあります。 これで感触をつかんで、 実際のパソコンで実行してみたいとなればそれも候補です。
お礼
ご回答ありがとうございました。 プログラミングで就職を目指すというのではなく、 いろいろ作ってみて楽しむという感じでやっていきたいと思っています。 確かに最終的にやりたいことはどの言語でも同じように出力されるので 何を使っても同じですよね。よく分かりました。 他の回答者さんの回答も参考に何で作るか決めていきたいと思います。
- blueflower1024
- ベストアンサー率53% (16/30)
まず、コンピュータプログラミングについて、基本的なことなのですが、 - 画面にウインドウを表示したり、 - ウインドウにボタンを貼り付けたり、 - ファイルを読んだり、 といったことを行うには、言語の文法とは別の知識が必要になります。 例えば、WindowsとMacOSでは、これらのことを行う方法がまったく違います。 よく耳にするC言語などは、上記の壁がとても高いので、初心者の方が挫折しちゃっている大きな理由だと思います。 教えるほうも、ここらの知識と言語の習得を一緒にしてしまうことが、良くあります。 --- さて、世の中には上記の壁を思い切り低くしたコンピュータ言語というものも存在します。 画面に絵を描いたりといったことはあまり得意ではないけど、 計算したり、ファイルを読んでデータを加工したり、 ということを簡単に行えるようにした言語です。 これらを「スクリプト言語」といいます。 以下に挙げるものは、初心者が使うために用意された、というばかりではなくて、 試行錯誤が容易。 短い時間で開発できる。 バグが出にくい。 などの理由で、プロ用途でも良く使われています。 - Perl 結構昔からある言語。時代遅れではあるけど、使っている人は多い。 - Ruby 一言で言うと、Perlの現代風進化型。Perlよりはこれ。 - PHP 主に、WEBアプリケーションを作ることだけに特化した言語。 - Python ややマイナー。言語仕様は洗練されている。 個人的なお勧めは「Python」です。 初心者が独学で学ぶには、一番良い言語だと思います。 ちなみに、Java言語は、C/C++とスクリプト言語の中間くらいの位置づけです。 いずれにしても、C/C++/Javaのような言語は、応用範囲が広すぎて、常に方向を教示してくれる人がそばに居ないと、初心者が敷居が高いと思います。
お礼
ご回答ありがとうございました。 スクリプト言語の利点について非常によく理解できました。 とりあえずはいろいろ計算させるプログラムが作りたいと思っているので この言語で始めるのもいいかなと思いました。
- ichhabehunger
- ベストアンサー率55% (27/49)
こんばんは。 言語なんて別に何でも構いませんよ。 自分の環境で確実に走るもので、書籍が多くて、ネットでの情報も 多く得られるものを探すといいのではないでしょうか。 VBは人気が高いですが、どうも行概念のある言語は嫌いなので 私はC#を使っています。 手軽に組めて、インテリセンスが非常に強力なのでコード作成がらくちんです。
お礼
ご回答ありがとうございました。 確かにどの言語を使っても最終的にすることは同じですよね。 そのことに気づきました。 他の回答者さんの答えも参考に、目的にあったもので作っていきたいと思います。
お礼
ご回答ありがとうございました。 luaが簡単そうだと言うことは分かりました。 ただまだプログラミングでの関数の意味が分からないので、、、 またZENのプログラムができると言うことですが、 このような携帯型のハードウェアの場合利用できる言語は決まっているのでしょうか。 すぺてのプログラムでは最終的には機械語にコンパイルされるというのを読んだことがあるのですが。 またそうなるとPSPやいiPodのアプリも作れると言うことでしょうか。 本当に初歩的な質問ですみません。 是非教えてください。