質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

5回答

2033閲覧

今後習得する言語の方向性

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

2クリップ

投稿2016/07/22 23:05

こちらで御相談していいのか分かりませんが、今後の言語学習の方向性に悩んでいます。もし良かったらヒントをいただけたらと思い書き込みしました。

私は職業プログラマではなく、趣味でプログラミングをしています。
仕事は事務職なのでプライベートや仕事の時間短縮に繋がるようなものを作成したりしています(フォロー等が大変なため職場でも他人には使用させず個人使用)。
事務職なのでVBAでプログラミングに興味を持ち、下記のとおり言語を独学してきました。
今後はC++を深く学習するか、C#を深く学習するかJavaを覚えるか迷っています。
今は、C++は日本語の文字列処理が煩雑、難解過ぎて生産性が低いためC#に傾いています。はたまた、GUIを作成する際はほぼ同一コードでマルチプラットフォーム対応が可能なJavaを覚えるべきかと悩んでいます(使用OSはメインがMac、Windows、たまにLinuxです)。

【学習した言語】
・EXCEL VBA(簡単なWin32API連携まで)
・C言語(一通り学習。ポインタ関係も基礎は覚えています。)
・C++(専門的な設計はできませんがクラスの基礎は理解しています。C++11もある程度は覚えました。)
・C#(EXCELとDataGridの相互変換、SQLiteを使用した簡単なアプリ作成程度)

※この他にはRubyとPythonを少しだけ学習しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

↑ 機械側

C、C++
Java、C#
Ruby、Python
VBA

↓ 人間側

お話に出てきた言語を上図に整理しました。

C/C++は機械側に近く、人間の読み書きは遅いが、機械の処理が早いし、
メモリ管理といった機械寄りの複雑な機能を直接操作できます。

一方RubyやPythonは人間側に近く、人間の読み書きは早いが、機械の処理が遅いです。
JavaやC#はその中間です。あくまで方向性をつかむための大ざっぱな区分ですが。


事務で使うプログラムなら処理の時間は短いでしょうし、
趣味ならなおさら人間寄りの分かりやすさが求められます。

ですから人間側の開発速度を重視して、
RubyやPythonなどのスクリプト言語を私はオススメします。
(スクリプトの選択肢はJavaScriptやPowerShellなど他にもあります)

ただもし作るプログラムが大規模になる場合や、
AndroidかWindowsかOS決め打ちで作るなら、
JavaかC#が向いています。

投稿2016/07/23 00:59

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

これは「感想」になってしまうのですが、個人的に何か一つの言語に特定して学習する方法はあまりお勧めしません。

文章を読む限りだと、現段階でm-nさんはVBAやC、C++、C#、Ruby、Pythonなど様々な言語を経験されたようで、とても感心します。

今までも様々な言語について学習したり、試してみたりしているのですから、今のままで良いと思います。
何も、一つの言語に執着する必要はありませんし、私の経験上、一つの言語に縛られた技術者は頑固で偏った意見を持った人が多いです。

言語には、その言語でしか実現できない機能が備わっていることがあり、言語Aばかりに執着し言語Bに全く関心を寄せなければ言語Bにしか実現できない機能や書き方などを永遠と知ることができないということになります。

また、言語Aに機能として備わっていなくても言語Bから受けた新しい手法などを言語Aに取り入れることで、言語Bを触る前には想像できなかった抽象化を図ることができたというような経験を私は何度かしたことがあります。

あくまでも私の個人的な「感想」ですが、上記の理由により「習得する言語の方向性は特に持たない」のが良いのではないか?と私は感じました。

(特定の言語を極めることと、アプリケーションを完成させることは似ているようで異なります。もし、m-nさんがお披露目できるレベルのアプリケーションやモジュールを完成させたことがないのであれば、何かを完成させることを目標にすることをお勧めします。その時に利用する言語は何でも良いと思います。)

投稿2016/07/23 00:20

編集2016/07/23 00:30
hojo

総合スコア195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

皆様、御回答ありがとうございました。
皆様からの御回答を元にまずは、たまにC#を使いつつ、本腰を入れてJavaを学習しようと思います。
その後はPythonを学習しなおして、スクリプト言語も1つ使えるようにします。
これからも興味ある言語や技術を学習して知見を広げたいので、また分からないことがありましたら、よろしくお願いします。
ありがとうございました。

投稿2016/07/23 01:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hojo

2016/07/23 02:07

JavaScript ( 」´0`)」僕のことも忘れないでね
退会済みユーザー

退会済みユーザー

2016/07/23 04:16

>hojoさん もちろん参考にさせていただいています。 なので、現在の習得済みの言語に執着せず、これからも色々と学ぼうと思い新規でJavaを学習しようと思いました。 また、スクリプト系言語は、まずPythonとJavaScriptのどちらを学ぼうか迷っていましたが一度勉強したPythonの方が習得が早いかなと思いPythonを優先しました。 あとは、簡単で小さなものをコツコツ作りながら構想を練り、少しレベルの高いものを公開できるように頑張ります。
guest

0

ベストアンサー

個人的には、(まず)Javaをオススメします。

理由としては、オブジェクト指向を世に知らしめた言語ということで
登場した頃は画期的な部分が多くありました。
(最初のオブジェクト指向言語ではありません、知らしめたということです)

ガベージコレクション、インターフェース、言語レベルでのマルチスレッドサポート等
今では当たり前に思える機能の多くがJavaから広まったと思います。
言語仕様以外ではJavaDocやJUnit等の他の言語で模倣されているものも多いです。
(異論もあると思いますが、私の感じるところです)

その他、今はあまり活発ではないですが、JakartaプロジェクトというApacheから始まった
一連のツール群もとても興味深いものが多いです。
一時は、世界中の才能がJavaに向かっているのじゃないかと思った頃もあるほどの勢いでした。

実行速度が遅いという問題は今や過去の話ですし、多くのIDEでサポートされていますし、
GUIを作る場合もJavaFXというのがあるので、楽に作れるようになったと思います。

なので、C言語を誰でも一度は勉強するようにオブジェクト指向言語のベースとして
まず、Javaを勉強するのがよいと思います。

C#は、Javaより設計が新しい部分も多く、よい言語だとは思いますが、
そもそもMicrosoftがJavaを独自拡張しようとして裁判で負けて出してきた言語
(だと私が勝手に思ってるだけかもしれませんが) なので、
構文としてはJavaに似てるところも多くあり、Javaの後でも良いと思います。(私も今勉強中です)
(クラスライブラリもJavaのパクリ?と思うものが多いです)

ちなみにC#でもMonoという環境を利用すれば、Windows以外でもGUIを作れたりします。
C++は、ほとんど知りません(一時勉強したけど挫折)ので言及しません。

C#を優先して勉強した方が良い場合の理由があるとしたら、Unityでゲームを作りたい場合くらいかなと思います。
(JavaScriptかC#を使います)

あくまで私個人の一意見なので、何を選ぶかは、m-nさんの判断で行ってくださいね。
参考のためには、他の方からもたくさんの意見が出るといいかなと思います。

投稿2016/07/23 01:09

Mr_Roboto

総合スコア2208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

趣味なら今使って楽しいものでいいんじゃないですか?
敢えて言うなら携帯・タブレットでのプログラミングの需要は増えると思いますので、Java や .NET Framework が使いやすくなるとは思いますが、新しい技術はどんどん出てくるのでどちらにしろ保障などありません。言語は変わらなくても対応する機器や主流ライブラリが頻繁に入れ替わりますから。

投稿2016/07/23 00:24

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問