いま、JavaScriptとhtml、php、MariaDB(MySQL)を使ってプログラミングの勉強をしています。
応用の幅の広いDOMや、Node.jsの助けもあって、当分は、プログラム制作はこれで事足りると思います。
しかし、少し思うところがあって、C++かJavaをやろうかと思っています。
思うところとは以下の通りです:
###・クラス型のオブジェクト指向を勉強してみたい
私が初めて「オブジェクト指向」という言葉を知った本では、クラス型のオブジェクト指向を前提に書いており、でも、今やっているJavaScriptはプロトタイプ型を採用しているようで「なんだ、違うのか」と思い、少しがっかりしました。
なんかJavaScriptでオブジェクト指向を勉強していると、
プロトタイプ型なのにも関わらず説明においてクラス型の作法を持ち出してくる説明や教材が多かったり、
「でもクラス型の方が定義が厳密で理解しやすいよな、わかるよ」という気持ちもあったり、
でも、記事によっては頑なに「クラス」とか「インスタンス」なんて言葉は使わないぞ、というものもあったり、(でも公式リファレンスでは「インスタンス」とか言ったりしている)
統一感がなくて気持ち悪い感じがぬぐえません。
まあ、どっちも広い目でみれば同じだと思うのいいんですが…(むしろDOMの勉強がそのままオブジェクト指向の勉強になってメリットではあるが)
でもクラス型にも触れてみたいと思いました。
(ECMA最新版ではシュガーシンタックスとしてclass構文が追加されているが、そこまで利用が浸透しているわけではないもよう…)
###・Webサイト制作を前提としている情報が多い
HTMLやDOMが描画用のAPIとして優秀なこと、JavaScriptが連携性が高い、PHPが使っていますが、Webサイトの制作にはあまり興味がありません。
この間プログラミングにおける質問をしたところ、どうも、私がやっていることは、JavaScirptやhtmlの使い方として「不自然」なようで、「そんなことやるのなら、サーバー言語で書いた方がいいと思う」と言われてしまいました。
私の興味があることをやっている人は、JavaやC++のようなもっと汎用性の高い(?)言語をやっている人が多いようです。
###・Web系言語だと、コンピューターそのものについての理解がしづらい
PHPを使っている時に思ったのですが、PHPでは、ポインタの仕組み、メモリやCPUの動き、といったものがブラックボックス化されていて、公式の仕様書にも詳しくは語られていません。
たとえば、ファイル操作をしているときに出てくるファイルポインタ、というものが、何を指しているのかが明示されていません。(ただ、「参照だ」「C言語とはちょっと違うんです」という言葉を使ってお茶を濁している)
舞台の全様がわからない、というのがあって、なんとも気持ち悪い感覚がありました。
そこらへん、C++言語だったら、「ポインタは、いま使っているメモリのアドレスを指している」という感じに、もっとシンプルな説明ができて、スッキリするのになぁ、と思いました。
###・プログラミング一般的な情報についての記述に、JavaScriptはあまり使われていない
オブジェクト指向とか、プログラムの設計とか、そういったプログラミング一般のことを説明している本や記述は、JavaScriptよりもっと有名なJavaとかを使っていることが多いようです。そういうときに、Javaで書かれたコードをぱっとみてわからない、というのが、不便です。
#どうするか
他にも、
・スマホアプリ(android)もそのうち作ってみたい
・Apacheのwicketを勉強したい
・やってみたいオブジェクト指向プログラミングの演習書にJavaで書かれている本が多い
というのがあって、Javaがいいかな?、と思いました。
でも、Javaは仮想マシンで動いているので、マシンのことがわかりづらかったりするし、
C++は過去にかじった経験もあるので、
もしJavaと同じくらい汎用性があるなら、
できればC++の方がいいかなと思いました。
ほぼJavaに軍配があがっていますが、あえてC++をやる理由はあるでしょうか?
まぁ、
覚える言語の違いなんてたかだか作法の違いなので、両方やればいい話ではありますが。
ただ、何か後押しがあればやる気もアップするというものなので、なにか言って頂けるとありがたいです。
また、
今やっているHTML+JavaScript+Node.js+phpだけでは実現が難しいが(面倒だが)、JavaやC++の力を借りることで解決可能なこと
があれば、併せて教えて頂けると幸いです。
ご回答お待ちしております。
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/20 16:32 編集
2019/04/20 16:49
2019/04/22 12:26
2019/04/22 12:37
2019/04/22 14:41