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

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

新規登録して質問してみよう
ただいま回答率
85.50%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

13回答

14598閲覧

二つ以上の言語を身につけている人。

退会済みユーザー

退会済みユーザー

総合スコア0

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

5グッド

5クリップ

投稿2016/01/08 16:41

編集2016/01/09 10:13

実務の経験がないのでよくわからないのですが、二つ以上の言語を身につけている人は、なぜ二つ以上の言語を身につけているのですか?

一つの会社、一つのプロジェクトで複数の言語を扱うことがあるのでしょうか。

追記:
たくさんの回答ありがとうございます。
「おそらく、一つの言語だけでは通用しないのだろうな」と思っていたのですが、一つの言語(Java)の習得だけでもえらい苦労していて、「新しい言語を覚えるたび、こんな苦労しなくちゃならないのか…?」と考えていたのですが…

どうやら、違う言語でも共通している部分があり、一つの言語をある程度知れば、複数の言語を身につけるのはあまり苦ではない、ということみたいですね。
これを書いている時点で一番評価の高かったKoichiSugiyama様の回答をベストアンサーとさせていただきます。その他、回答して頂いた方にもお礼を申し上げます。

hrsg, ps13zier, kojiMor, shou_hitotose👍を押しています

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/01/12 16:34

こちらの質問が他のユーザから「プログラミングに関係がない質問」という評価を受けています teratailでは、プログラミングに関して困っていることがないと思われる質門を推奨していません。 具体的に困っている理由や解決したいことを明確に記入していただくと、回答が得られやすくなります。
guest

回答13

0

ベストアンサー

なぜ二つ以上の言語を身につけているのですか?

私の場合、「必要に迫られて」というのが最も大きいです。

例えばWeb開発をする場合、少なくともサーバ側で使用する言語(JavaやPHP,Rubyなど)以外にHTMLとJavascriptはまず必須です。cssを言語と言ってしまうと語弊があるかもしれませんが、HTMLを書く以上はこちらも必要になります。サーバサイドでデータベースを使うとなるとSQLも必要になってきます。

一つの会社、一つのプロジェクトで複数の言語を扱うことがあるのでしょうか。

上記のように、一つのシステム(プロジェクト)で複数の言語を使用することは普通にあります。
逆に一つの言語のみで閉じることができるシステムはデスクトップアプリケーション(これもデータベースアクセスがあるとSQLが必要になり、インストーラはインストーラのスクリプトがあったりしますが)、組み込み機器の制御プログラム等になってくるでしょうか。

会社の方針として単一言語の案件しか請けないようなこともあるかもしれませんが、あまりそういった話は聞きません。どちらかというと、案件を請けるチャンスを広げるためにいろいろな言語に対応できるように社員教育をしたり、勉強会をしたりすることは普通に行われていると思います(そういうスキル習得を個人に丸投げの会社もあるとは思いますが……)。

この業界、この言語さえ押さえておけば長期的に食うに困らない、というものが確立されていない以上、時代時代で流行のものを取り入れていかないと、会社自体が存続できなくなることが多いです。

もちろん、この言語ならあの会社、というようにブランド価値が上手く築けたらいいのですが、そういった会社はほんの一握りで、あとは幅広い案件に対応できます、という方向に行かざるを得ないのが現状だと思います。

ただ、いきなりあれやこれや広く浅く勉強するより、何か一つの言語をある程度使いこなせるスキルになるまで習得して、それから他の言語の習得を始めると理解が早いと思います。

投稿2016/01/08 17:26

編集2016/01/08 17:28
KoichiSugiyama

総合スコア3041

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

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

0

複数の言語を使う理由として、いくつか挙げられるものがあります。

  • 代替手段が存在しない

Webページを作る際のHTML+CSS+JavaScript、RDBMSを扱うにあたってのSQL、Swift登場前のiOSアプリを作るためのObjective-Cというように、環境が決まれば事実上使う言語が限られてしまうケースもよくあります。「なんとしてもその言語でやる」以外に、手段はありません(理論上は、「他言語で書いて変換」ということもありえますが、細かなところまで考えだすと結局は元の言語を知らなければできないケースがほとんどです)。

  • 基本的に、根っこは同じ

プログラミング言語によって「向いていること・いないこと」というのはありますが、結局は同じコンピューターで実行するものですので、できること・できないことにはそこまで大きな差はありません。また、多くのプログラミング言語が「手続き形」「オブジェクト指向」「関数型」というような括りに属していますが、その中では細かな構文やライブラリこそ違えど、必要とする考え方は共通しています。1つマスターすれば、他の言語を学ぶのは圧倒的に低い手間で済みます。

  • 魅力的なライブラリ・環境

Ruby on RailsのためにRubyを始める人も結構いますし、WordPressを本格的にカスタマイズしようとすれば、ベースとなるPHPの知識も欠かせなくなってきます。すでにあるものをベースにする状況下では、プログラム言語は自ずと決まってきます(古いCOBOLプログラムに改修や改良を加えて使い続けている企業も多いようですし)。

投稿2016/01/09 08:00

maisumakun

総合スコア145121

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

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

0

なぜか?というと、必要に迫られてでしょうかね?
その仕事を引き受ける前提として、必要な言語ができて当たり前というスキルが要求されるからですかね?

自分は組み込み系ですが、機器のファームウェア系は、たいていCとアセンブラで事足りています。まぁ、アセンブラは使うCPUで異なりますがね。

ただ、これをPCのアプリとLANなりUSBケーブルなりで接続することを考えると、PC側で必要なのはVC++とか、C#とか、VBとか必要になります。

で、さらにこれをネットで・・・という応用にしようとすると、JavaとかRubyとか、、、

言い方を変えると、自分の業界では、ごく一部のレイヤを担当するのでない限り、システムとして考えると単一の言語で完結するプロジェクトはほぼありませんでしたので、必要に迫られてって感じです。

とはいえ、手続型の言語は勘所がわかれば、オブジェっぽいところを除いて大同小異ですし、慣れれば言語そのものの習得に時間はそれほどかからないと思っています。例えば、CとJavaは、日本語と英語というよりも、標準語と関西弁程度の違い? なんとなく、わかるでしょう?(笑)


この業界は、とっかかりに言語が必要なので、言語への熟練=スキルと思われている節があるのですけども、実際には、言語の習熟がエンジニアのスキルとなりえるのは駆け出しの時だけと思います。

数年たって、中級?以上になるとインプリメント能力よりもデザイン能力が重視されるので、あまり扱える言語の数は問題になることは多くないと思います。

投稿2016/01/09 00:57

T.Kanno

総合スコア915

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

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

退会済みユーザー

退会済みユーザー

2016/01/11 18:15

回答内容が出鱈目
T.Kanno

2016/01/12 03:08

はて? どこか変なところがあったでしょうか? ここの主流?の方々から見ると、いささか異なる分野で仕事してきていますので、カルチャーの相違があるやもしれません。 参考までに、どの辺がおかしく見えるのか後学のために教えていただけるとありがたいです。
guest

0

実務の経験がないのでよくわからないのですが、二つ以上の言語を身につけている人は、なぜ二つ以上の言語を身につけているのですか?

恐らく、JavaScriptとPHPというような目的が異なるものではなく、
例えばJavaやC#・PHPで、どれでも実装できるのになんでわざわざ複数を身につける必要があるのか?
という質問かと思います。

それはプログラマとしての力が不足しているからです。
力不足だから、自身で極めたい言語で勝負できない[しない]のですよ。

突っ込まれる前に言っときますが、私自身力不足のエンジニアなんで、
Java1本ではなく、C#やPHPを経験しています。

一つの会社、一つのプロジェクトで複数の言語を扱うことがあるのでしょうか。

前述の前提条件においては、無いこともないのですが、あまりみないですね。
WebアプリケーションのあるページをJSPで、同様なあるページをPHPで、
というケースはなかなか見ないです。(あってもプロジェクトが異なってる事がほとんどと思います。)

投稿2016/01/09 04:45

TetsujiMiwa

総合スコア1124

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

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

0

一つの会社、一つのプロジェクトで複数の言語を扱うことがあるのでしょうか。

よくあります。
理由としては、プログラム言語はそれぞれ得意とすること、不得意なこと、出来ること、出来ないことがあるためというのが大きな理由の一つですね。

分かりやすい例だと、
webアプリケーションを作成する時は

クライアントサイド(ブラウザで表示、処理される部分)

サーバサイド(ブラウザから送信されてきた情報を処理してレスポンスを返す部分)

の二つの部分を作成する必要があります。

クライアントサイドはHTMLやjavascript、Flash等の「ブラウザが解釈、実行できる言語」
で作成する必要があり、
サーバサイドはJavaやPHP,C#,Ruby,Python,Perl等の「サーバが解釈、実行できる言語」
で作成する必要があります。

最近のwebアプリケーションだと、
HTML+Javascript+サーバサイド言語何か一つ
の3言語(+SQL等も合わせると4言語)で作られていることが多いですね。

その他の理由だと、
軽い処理はパフォーマンスが低いが生産性の高い言語、
重い処理のみパフォーマンスが必要だが可読性の低い言語
でそれぞれ作って、役割分担を行ったりもします。

後はまあ、
「技術者として興味があるので覚えてみた。覚えてみたので要件が合いそうな案件で実践投入してみた」
というケースもよくあると思います。

投稿2016/01/08 17:35

tanat

総合スコア18709

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

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

0

現在のシステムでは、むしろ単一の言語のみで作られたシステムのほうが少ないのではないでしょうか。
Web系のシステムであれば、ビジネスロジックを記述する JavaやC#、Ruby の外に、
表示系で JavaScript 、データーベースで SQL を使うことになります。
Linux であれば、これ以外に bash 等を使うことになるでしょう。

簡単に言えば、言語には向き不向きがあり、
特定の用途向きの言語には汎用言語は敵わない(歴史的経緯や慣例の問題も含む)
からでしょうね。
そして、現代のシステムはそれらを統合して出来上がっています。

もちろん、アセンブラ->C や FORTRAN->Cその他 のようにほぼ置き換わってしまって、
「昔はFORTRANやってたけど、今はCで組んでる」というようなケースもあるでしょうけれど。

私であれば、むしろ、
「単一の言語だけでプログラマとして生計を立てている」
(新人や研究者、学生は除きます)
という方がいたらそちらの理由を聞いてみたいものです。

投稿2016/01/09 06:37

kozuchi

総合スコア1193

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

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

0

こんにちは。

なぜ二つ以上の言語を身につけているのですか?

私も必要だったことが大きいですが、より適した言語には積極的に手を出してました。
アセンブラとC言語は学生時代に好きで身につけましたが、会社では組み込み系開発だったのでアセンブラかC言語でした。テスト用のWindows側ソフトはC++Builderを使い開発効率を大きくアップできました。

時々必要に応じてJavaやC#で開発しましたよ。コンピュータの基礎(OSの仕組み、コンパイラとインタプリタ、Virtual Machine等)とC++のオブジェクト指向部分を知っていれば、JavaやC#も同じオブジェクト指向ですし文法も似てますから、ちょっと勉強すればそこそこ使えます。(その分忘れるのも速いですが。)
ああ、そういえばPASCALやFORTRAN、COBOLも学生時代に使いました。まだこれらの言語が主流だった時代でした。が、就職後使うことはなかったので身にはついていないかも。

一つの会社、一つのプロジェクトで複数の言語を扱うことがあるのでしょうか。

普通にあります。
組み込み(ファムウェア)側はアセンブラかC言語ですが、テスト用にシミュレータを必要とするケースが多くWindows側をC++で作ってました。
またある制御装置のソフトウェアでは、制御部は速度のためC++、UI部は開発効率のためC#で開発しました。

投稿2016/01/09 01:38

Chironian

総合スコア23272

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

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

0

興味深い質問ですね。

なぜ二つ以上の言語を身につけているのですか?

私の場合は以下に大別されます。

  • プログラミングが趣味の一つだから

言語習得によって解決手段を増やせるため

  • 必要だったから

業務上の前提環境が決まっていたため習得が必須だった

言語以外にも、OS などの環境や周辺ツールの使い方、分析設計方法に関しても、同様の事が言えるでしょう。最低2つ使えるようになると、共通部分を『概念』として捉えられるハズなので、言語毎の『概念』の理解が進むと3つ目以降の習得はとても楽になります。似た言語であれば、文法とリファレンスを読むだけで、その日のうちに自分が得意な母語と言えるような開発言語での単純なコードは書き換えられるようになっているでしょう。この移植/翻訳がやりにくい部分が各言語の特徴的な機能ということです。また、これを知ることで、どの局面で使えそうか?という言語毎の向き不向きも理解できるでしょう。

個人的には、プログラマにとって単純な処理をするコードが書けることは当たり前のレベルと考えるべきです。その後、どう上手くかけるようになるか?あと、システム設計の側も追求していくと、出来ることの幅がもっと広がるのを実感できると思います。結局読み手にとっては、書かれた文章の内容だけでなく構成も重要ですからね。


一つの会社、一つのプロジェクトで複数の言語を扱うことがあるのでしょうか。

開発規模や内容にもよるでしょうが普通にあります。規模が大きいとミドルウェアやインフラ周りの構成/設定も関わるわけですが、チーム内で分担することによって1つの箇所しか知らなくて良い開発者も当然存在するでしょう。しかし、ビジネスを前提にした場合、守備範囲が広く上手い人と、狭くても上手い人は単純に専門家として優位性がありますし、広く浅い人は橋渡し的な役割で潰しが効きます。

狭く微妙な人では、残念な事ですが、交換可能な作業要員の一人とみなされるのがオチです。技術者/開発者として仕事をするつもりであれば、単純な稼ぎだけでなく、立ち回りの自由度や選択肢も考えると(簡単ではないとは思いますが)腕を伸ばさないのは損だと思います。

個人的に、技術は焦って頑張っても短時間で劇的に伸ばせるようなものではなく(当然効率のよいやり方はあるでしょうが)単純に積み上げだと思っています。どんどん新しい技術は出てきますから、コツコツと無理なくマイペースで、それこそ年単位や生涯続けるぐらいの気持ちが大事なのではないでしょうか?その向き不向きが将来的な腕の差に現れてしまうような気がします。

以上

この質問に対する他の回答者の内容も初学者にとって役立つと思いますので、もっともっと経験者の色んな回答が付けばよいですね。

ご参考になれば幸いです。

投稿2016/01/09 00:47

ps13zier

総合スコア433

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

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

0

私の場合は、システム運用の仕事なので仕事ではVBAくらいしか使わないのですが、Java、C、C#、Ruby、Javascript、Scheme(Gauche)、VB.NETなどを学習しました。

単に飽き性だから新しいことがやりたくなるってのが本音ですが、それじゃああんまりなので、後付けで複数言語を学ぶメリットを考えてみました。

まず、言語によって深く学べるプログラミング領域が異なります。
たとえば、変数、If分、ループくらいなら大体どの言語でも同じようなものですが、オブジェクト指向を学ぶのにVBAは適切ではありません。(書籍が無い、継承をサポートしていない等)

メモリの仕組みとか深いところを学びたかったらCやアセンブラ、オブジェクト指向を基本から学ぶならJavaかRubyなど、書籍の充実度合が違ってきます。

デザインパターンなら現状はJava一択でしょうか。テスト駆動開発も、JUnitの書籍が出ているJavaが優勢です。.NETにもNUnitがありますが、これは単体で詳解している書籍がありません。
また、関数型言語(LISP、Scheme、ML、OCaml、Haskell、F#など)を学ぶと、プログラミングの筋が良くなるといわれています。

.NETでも、画面のコントロール(TextBox、ListBox、Button)について学びたければ、どちらかといえばVBの方が書籍が充実してますし、文法や言語機能について学びたければC#の方が充実しているイメージです。現在この2つの言語はコンバーターで相互変換できますので、無駄になりません。

マスターした概念は自分のメイン言語に持ち帰って活用できますし、他の言語を知ることで、自分のメイン言語の長所・短所も見えてきます。

複数言語を学ぶのはそれほど難しいことではありません。一つマスターすれば変数・If分・ループ・関数などはどの言語でもだいたい使えますから、いきなりそこそこ使えてしまいます。あとは、必要に応じて言語特有の機能とか概念について学習すればより高度なプログラミングができるわけです。

ただ関数型言語は少々勝手がちがいますので、上には当てはまりません。だからこそ、学べることも多いのですが。

以上

投稿2016/01/08 22:45

編集2016/01/09 02:17
thom.jp

総合スコア686

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

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

0

趣味としてやる場合でも、パラダイムの違う言語をやってみると世界が広がります。
Cではメモリ管理を自分でやらなければならないですが、ガーベジコレクションが言語処理系にあるとプログラミングが変わります。lispは純粋な関数型言語ではないですが、意図的に関数型言語としての機能を主に使って、ループのかわりに再帰を使うなどするとまるっきり違います。
純粋な関数型言語もありますし。その他様々な思想があります。
私は大昔C言語を少しだけかじりましたが、c++は「こんな複雑な言語でガベコレなしなどやってられるか!」と思いましたがオブジェクト指向を知りたかったのでjavaに転びました。C++もスマートポインタなどができてからは、(別に使わなければならない必要性はありませんが)勉強しはじめています。一旦勉強が中断したので1から勉強し直しです。

また、linuxなどではシェルもスクリプト言語の一種なのでそれを学ぶことになります。

投稿2018/12/23 07:41

myoon

総合スコア100

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

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

0

プロブラム言語でなく、実際の言語 (日本語、英語,,,) などバイリンガルの方が、何故 そいうなったのかという質問とその回答を考えてみると良いとおもいます。
その場青m育った環境、仕事上での必要性など理由になるとおもいます。

言語とはいいませんが、楽譜、数式などもある種の言語といえます。
扱う領域によって、その領域ごとの言語というものが存在します。

ドキュメントを書くときでも、Markdown, Tex など複数の書式があります。

興味の対象や仕事の種類が増えれば、自然と複数の言語に触れざるを得なくなります。

投稿2016/01/11 22:44

katoy

総合スコア22324

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

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

0

>二つ以上の言語を身につけている人は、なぜ二つ以上の言語を身につけているのですか?

他の回答者さんも書かれている様に、一つの言語ですと、案件が絞られてしまいます。
また、大規模プロジェクトになりますと、その言語の特性を生かした言語選定をしますので、
例えば、DB登録や数値計算等、処理速度や正確さが求められる基幹系の部分には、厳格で処理速度の早い言語を採用し、ユーザー操作部分には、プラットフォームを選ばないWeb系言語で設計する事もあります。
この様に、その言語の特性を生かした設計により、必要に迫られてという方が大半かと思います。

>一つの会社、一つのプロジェクトで複数の言語を扱うことがあるのでしょうか。

むしろ、一つの会社、一つのプロジェクトで複数の言語を扱う事がない職場ってあるのでしょうか。
実際に、求人情報を見てみたらわかりますが、特定の言語のみで募集している会社は、ほぼ皆無です。
また、当然仕事ですから、その言語をやった事ないから案件を受けれませんとなりますと、会社が潰れます。
同じ言語のみでというのは、Web系の一部会社を除く、IT会社でしたら普通はあり得ません。
当然、一つの言語しか出来ない人と、二つ以上の言語を習得している人と比べた場合、会社側からみたら、どちらが稼げる人(つまり案件を受けれる人)かは、仕事をしていなくても分かりますよね。

ただ、この質問に関して言えば、別段、プログラムやIT系の会社に限ったお話ではないと思います。
技能が多ければ多い程、優遇されるのは、別段、不思議な事ではないですよね。

投稿2016/01/09 06:21

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

一つの言語ができる人と、複数の言語ができる人、どっちがたくさんの仕事が回ってくるでしょうか?言い換えれば、どっちが稼げるでしょうか?

投稿2016/01/08 17:24

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問