- 締切済み
プログラミング言語
プログラミング言語のC言語とかJavaとかPerlとかの違いって使いやすさや慣れ以外に違いってあるんですか? 言葉足らずですいません…! 先程あげた三つのプログラミング言語が全く違うのは理解しているのですが、 それを使う、仕様した結果何か変わるのか疑問を抱いたので質問させていただきました。 初心者なので全く分からなくて… 教えてください><
- みんなの回答 (21)
- 専門家の回答
みんなの回答
- amanojaku1
- ベストアンサー率54% (265/488)
>ただし「Android Java」のAPI(Application Programming Interface)はスタンダードなJavaと全く別物です(ただしSyntax(構文)の互換性は非常に高い)。 (少々ハードルが高いかもしれませんが)趣味でプログラミングしてみたいなら Android を考慮してみるのも良いかもしれません。 Android 端末さえあれば自分の作ったプログラムを人に見せびらかせられるのでモチベーションが上がるんじゃないでしょうか? ただし、みんなが普段 使ってるような「アプリ、ゲーム」などと比べて雲泥の差でショボイので、あまり良い反応は得られない場合が多々あるかもしれませんけど…。
- amanojaku1
- ベストアンサー率54% (265/488)
>どの言語でも頑張ればたいてい何でも作れると思います。ただそれぞれの言語には得意不得意があると思うと良いと思います。 (それは そうですが)就職に有利か どうかは別にして将来性の有りそうな言語をオススメします。 その将来性の有りそうな言語から、自分の好き嫌いで選べば良いでしょうが、個人的には習得が容易な言語をオススメします。 Perlは将来性がないと言われており、Perlは就職に大して有利にならないと言う状況らしいですが、ほとんどの無料サーバーでは「Perl、PHP」ぐらいしかサポートしてません。
- chippoko
- ベストアンサー率0% (0/0)
難しい事はおいておいて、どの言語でも頑張ればたいてい何でも作れると思います。ただそれぞれの言語には得意不得意があると思うと良いと思います。 Javaは速く動くものをしっかりしたものを作るのに向いていますが、デバッグと開発に時間がかかるのが難点です。(Kotlinなども同じく) PHPは簡単にすぐ作れるけど、作り込もうと思うと面倒な事もあるしJVM系に比べると遅いです。(PHPは簡単さゆえに誰でも触れるので組織で採用されることが多いです。) あとは好き嫌いなどがあると思います!参考になればと思います。
- amanojaku1
- ベストアンサー率54% (265/488)
オブジェクト指向プログラミング言語 ざっくりと言うと再利用によってヒューマン・エラー(によるバグ)を低減させるのがセールス・ポイント(再利用とはソースの一元化も含まれる、ソースの一元化を徹底させる事でデバッグを低減させる事ができるが、大きなプロジェクトだと難しいかもしれない)。 昔のJavaなどではObject型に何でもかんでもブチ込んでしまうような場面も多々ありましたが、Java 5(jdk 1.5)以降ではGenerics(ジェネリクス)「総称型」がサーポートされ、安全性と再利用性が両立しました。 Generics(ジェネリクス)「総称型」のサーポートにより本当の意味での「ヒューマン・エラー(によるバグ)を低減させる」と言う理念が実現できたと言って良いでしょう(つまり、それ以前では その理念が実現できていなかった)。 主なオブジェクト指向プログラミング言語:「C++(Cは違う)、Objective-C、Python、Ruby、Perl 5.0以降、Java、、Delphi(Pascal系)、JavaScript(微妙)、PHP 4~5あたりから、C#、Visual Basic.NET(Visual Basic 6.0以前は違う)」などがあります(もちろん、これら以外にもあります)。 これらでGenerics(ジェネリクス)「総称型」がサーポートされている言語は どれか良く知りません(メジャーな言語なら大抵はサーポートされていると思われますが、動的に型付けされる言語(JavaScript、Perlなど)は意味無いのでサーポートされてないでしょう)。
- amanojaku1
- ベストアンサー率54% (265/488)
>回答No.16 amanojaku1 WebAssemblyを生成可能な言語として「C、C++、Rust、Go、AssemblyScript(TypeScriptのサブセット)」などがあるようです。 将来的には「Java、C#、Python」などでもWebAssemblyを生成できるようにするようです。 恐らく このWebAssemblyを生成可能な言語の中から将来性のある言語(つまり、就職が有利になる言語)が いくつか出てくると思われます。
- amanojaku1
- ベストアンサー率54% (265/488)
言語ではありませんが、今WebAssemblyが注目されて来ているらしいです。 WebAssemblyの基礎から最新動向まで、@chikoskiに聞いてきた! https://html5experts.jp/shumpei-shiraishi/24409/
- superside0
- ベストアンサー率64% (461/711)
> プログラミング言語のC言語とかJavaとかPerlとかの違いって使いやすさや慣れ以外に OSやミドルウェアのような 負荷が高く実行速度が求められる場合や、 組み込み系やドライバなどでハードウエアを直接制御したりや、 自分でプロセスメモリーを管理したい場合は、C言語になるでしょうね。 文字列が配列であることや、ポインタ、構造体、動的メモリ確保あたりが学習の難所かな。 C言語よりは遅いけど、PerlやPHPよりかは速いのがJavaです。 今どきの業務系システムの開発では、JavaかC# がほとんどじゃないかと。 (C言語ほど開発工数はかからないし、Perlほど実行速度が遅くないし) ただ、言語仕様が冗長というか融通がきかないので、そのぶん学習コストがかかるので、 手軽にシステムを作りたいという用途には向かないというのが印象です。 そういう意味では、大規模開発向けかな。 Androidアプリも今のところJavaですね。(今後はわかりませんが) Perlは、手軽にテキストファイルの加工をするためのものですが 一昔前は、Webアプリ(というかCGI)に 多く使われていました。 コンパイルしなくていいし、メモリー管理しなくてよいし 省略記述もできるので、さくさく書けるのが魅力ではありますが、 そのぶん独自のスタイルで記述されることが多く、 他人が書いたプログラムを読み解くのは大変苦労します。 複数人でメンテナンスするなら、コーディングガイドラインの策定は必須でしょう。 何度も使う訳ではない使い捨てツールとか、 実行速度は問題にならないので開発工数を下げたいという用途に使われている印象です。 PHPは、Webアプリに特化した言語なので、それ用の関数がはじめから用意されていますし、 サポートしているレンタルサーバーが多いのも手伝って、サーバーサイドでカジュアルに使われています。 そのせいか、セキュリティーレベルの低いプログラムが出回ることもあり、 そういうのを安易に設置すると、 例えば、スパムメール発行の踏み台に使えてしまうメールフォームを設置してみたり SQLインジェクション対策してなくて個人情報の漏洩ということになりかねず そのことで、PHP自体が、セキュリティーが低いという誤解もあるようです。 ちゃんと作らなければ、ちゃんと動かないのはどの言語でも同じですが 不安ならば、フレームワークを使う方法もあります。 私的には、まずはC言語で、コンピューター制御の基礎(メモリーや入出力)や プログラミングの基本的な考え方を把握してから、実際の案件の用途に合わせて、 Java,C#,C++,VBA,PHP,Ruby,Python,Perl,JavaScript,Swift....を 使い分ける、というのがよさげな気がします。
- amanojaku1
- ベストアンサー率54% (265/488)
>インタープリタはマシン語に翻訳しないのでスピードが遅い(Perl、PHP、JavaScriptなど)。 近年、JavaScriptが多くのブラウザでJIT(Just-In-Time)コンパイラになってるらっしいです(JavaScriptが全てのブラウザでJIT(Just-In-Time)コンパイラになってる訳ではありません)。 良く分かりませんが、ブラウザで実行可能な(高速)低水準言語「asm.js」と言うモノもあるらしいです。
- amanojaku1
- ベストアンサー率54% (265/488)
回答No.6 amanojaku1 ざっくりというと コンパイラはマシン語に翻訳するのでスピードが早い。 インタープリタはマシン語に翻訳しないのでスピードが遅い(Perl、PHP、JavaScriptなど)。 HotSpot(ホットスポット)は基本はインタープリタ、性能に重大な影響を与えるコードを標的として部分的にコンパイルする(Javaなど)。
- amanojaku1
- ベストアンサー率54% (265/488)
回答No.6 amanojaku1 >C#は通常のC系言語(C、C++)とは別物でJavaライクな言語らしいです。 C#はポインタが全く無い訳ではないですが「C、C++」よりは簡単なので、「C、C++」よりは習得が容易。 ざっくりと言うとC系言語(C、C++)とは別物でJavaをC風の構文にしたような感じ(C#は結構人気があるようです)。