はてなキーワード: ゲームエンジンとは
▼ 公開直前「ライオンキング」! MayaとUnityで作られたリアルさとは!?
▼ ゲームエンジンをアニメ制作に活用するスタジオが増加
https://ss-agent.jp/column/game/g14-unity-anime/
Unreal Engineと Unityを活用してアニメを制作する動きが出てきました。 その理由として、いずれのゲームエンジンも 無料で利用でき、3DCGのリアルタイムレンダリングが可能で、映像表現に必須のライティング機能も充実 したことが挙げられるでしょう。
アニメ制作にゲームエンジンを取り入れた例としては、映画「第9地区」「チャッピー」などで知られるニール・ブロムカンプ監督率いるOats StudiosがUnityで制作した「ADAM」シリーズ。 同じく、Unityで制作され、実写と見まがうばかりの動物やサバンナを描いて世界的な大ヒットとなったフルCG映画「ライオンキング」などが知られています。
この辺りが不思議でならない。
一時期ファブレスに移行するんだとか言われていたが、その技術もノウハウもない。
Webのソフトウェアも、ゲームエンジンも、使うだけになってしまった。
Apple製品がわかりやすいが、毎年の変更に振り回される状況に置かれる。(コンシューマ視点では何も問題ないが
国産飛行機が作れないのは、モデルシミュレーションができないからだと考えている。
どういう部品が必要なのか、精度がどれくらい必要なのか、数年先にどういう技術があればいいかを判断できず、メディアの流行に振り回される。
中国が今強いのは、世界中の技術情報を中国語に翻訳しているからだ。
中国がうまいのは思想まで持ち帰ることができているからではないだろうか。
「 ①IFでAかBを選択させてどっちかの設定を実行
②Whileで決められた回数分繰り返す
これでやりたいことは分かる。分かるけれどこれでどうやって動画や音楽のエンコードをしたり
画像処理をしたりするソフトウェアになるのかというのがよく分からない。」
プログラミングでやることは、その2つだけじゃなくて、もうひとつある。
③関数を呼び出すこと
Javascriptなら、console.log("Hello world")。
これは、テキストを出力するという関数を呼び出していて、関数の内部を理解しなくても使える。
オブジェクト指向も、結局はこれと同じこと。あらかじめ用意されている関数・メソッドを呼び出せばいい。
まず、コンピュータゲームがほとんど巷に存在しない時代にPongが登場すれば、そりゃみんなゲームにワクワクしたはず
アメリカにアーケードゲーム筐体だってそのものがない時代なんだから
だからスティーブ・ウォズニアックだってApple IだのIIだのでPongの実装はやっていたはず
それもスティーブ・ジョブズは売りにしてたはずだ
Pongが動作すると、次はブロック崩し(Breakout)が作れる
プログラミングのコツの一つは他人のプログラムを改変することだ
Pongが動くなら、そこからドットやドットの塊をVRAMに描画することは可能だと気付くだろう
でも、単なる壁打ちや対戦ゲームだったPongのゲーム性を大きく変えることになる
日本のゲーム企業タイトーは、このブロック崩しをインベーダーゲームに「再々」発明した
これも実現可能であることは誰でも分かるが、ゲーム性を大きく変えることはある種の発明だと思う
ちなみに、孫正義はタイムマシン商法が得意で、このインベーダーゲームをアメリカに輸出し大儲けした
相変わらず、左から右、右から左に他人のものを移動して儲けるのが上手い(いや、本心から褒めてるんですよ
インベーダーゲームでは、ブロックは上から段々と降りてくることになる
また、ブロックが左右に動く、UFOは高速に動く、手前のバリケードがありドット単位で破壊される
プログラミングのコツの一つである、他人のコードを改造する、は本当に素晴らしい再発明を起こしてくれる
Pong → ブロック崩し → インベーダーゲーム → ギャラクシアン → ゼビウス → グラディウス → 斑鳩だの東方だの弾幕避けだの何だの
に繋がっていくわけだが、
この矢印での「パラダイムシフト」の段差が高いほど、ゲームに対するワクワク感が増すと自分は考える
つまり、ギャラクシアンのようなグラフィックからゼビウスが登場したときは、
安っぽい言葉で形容するなら一大センセーションというかエポックメイキングという感じだったわけだ
しかし、今の時代、2Dシューターにそんなにワクワクはあるだろうか?
というか、マニアでない奴が口を挟むな、と言うぐらいタコツボ化しているように思うのだが、
寧ろ、様式美とかお約束が守られてることがプレイヤーの安堵感につながる
2Dシューターができれば3Dシューターが作れるのも自明である
ただ、マシンのグラフィクスの能力が低かった時代にはリアルタイムでの3次元CGの実現が難しく、
アメリカではベクタースキャン、つまりオシロスコープやブラウン管テレビの走査線方式が主流だった時期もあったが、
アメリカではワイヤーフレームの3Dゲームが実現していた時代、日本はファミコンに向かっていた
自分にはハードウェアによるスプライトに固執し、束縛され過ぎているかのように今からすると思える
一方、ファミコンのスプライトの数はMSXと比べると段違いであったが、
ファミコンは2Dスプライトベースのゲームだけを前提としていた
つまり、ファミコンでブレゼンハムのアルゴリズムによる直線を引くとか困難だったのではないだろうか
自分はファミコンの開発はよく知らないのだが、ファミコン版のテグザーは酷すぎると思った
MSXの方がファミコンよりもトータルのグラフィック性能が劣るにも関わらず、
こうやってだらだら書き連ねてみると、
つくづくワクワクするのは何だってアーリーアダプターの段階であって、
そのあと結婚だって何だって倦怠期?ワクワクが減少する時期がやってくるのである
何もない状況にパラダイムシフトを起こす何かがやってくるとワクワクするのであるならば、
乳児はこの世界の何もかもにものすごくワクワクしていると思われる
乳児でなくなると、この世界の変化しないものは常識として脳に定着して、つまらないものにさえなる
でも、若ければまだまだ体験していないことはあるわけだ
若ければギャラクシアン → ゼビウスがどれだけスゴかったかなんて知らんし、俺も知らんw
でも、ギャラクシアンより先にゼビウス見た世代だけど、凄いなあとは思ったんだよな
だって、自分の場合はギャラクシアンを飛び越えてゼビウスだったんだから
逆にギャラクシアンの方を後から知って、古臭いゲームだなー、レトロだなーと思ったんだから
(ただ、ギャラクシアンの曲線的な軌道はゼビウスなんかより凄い発明に思うんだが。整数演算なんだよね?
ただ、レトロレトロとバカにする人はプログラマーでないとかなんだろうけど、
ゼロからコード書くって、何もないところから作ることを考えさせられるわけで、
それはゲームのプログラムを書くならば、ゲームの基本のPongから考えさせられることになる
例えば、ゲームプログラムを書くときSDLとかSFMLみたいなライブラリは使うかもしれないけど、
自分も何か新しいゲーム開発のライブラリとかフレームワークとか検証するときは、
から始めて、次に倉庫番、簡単なブロック崩し、テトリスを実装するとかやることにしている
そこで開発の大まかな進行とかフレームレートとか、色々分かってくるわけだ
ジョン・カーマックがどこで語ってたのか忘れたけど、最近のFPSは完全にMOD開発になっていて、
そのMOD開発の費用はどんどん膨らんでいっていると言ってた気がする
つまり、レベルエディットとかキャラクターだアイテムだとか、そういうコンテンツの緻密な開発だけが進んでいる気がする
GTAみたいなゲームもFPSとかで培った技術の集大成にすぎない
可視領域をどう区切るか?遠くの建物にLODを使うか?インポスターを使うか?とかそういったゲームエンジンの話は、
マシンパワーの向上やUnityなどのゲームエンジンの登場であまり議論する意味がなくなってきている感がある
もっとも、Unityなり導入すれば簡単に作れるという話ではないと思う
思うが、もうゼロからチマチマCのベクトル計算のコードを書く時代ではなくなっているのは確かだろう
カーマックはその高騰するMOD開発をマインクラフトは意図的に安価にしたと言ってた気がする
つまり、マインクラフトであれば子供でもゲームを改造する体験ができるようになる
それはマインクラフトの開発者であるnotchがそういうゲーム開発に対する思想を持っていたからだ
私はnotchはシンプルなものを積み上げるのが好きなように思っている
ただ、jsdo.itだかに投稿していたソフトウェアレンダリングのコードは北欧のメガデモっぽさがあって、
読もう読もうと思って未だに読んでいないことを今思い出した
文章書き直す気がないまま、だらだら書いてみたが、読み返して自己分析するに、
まず、ゲーム開発でなくてもそうだが、
まず何かがあって、それをコピー改造した何かが生まれる、この連続で物事は進化していく
手塚治虫があって、それを高橋留美子がコピー改造して新しい漫画が生まれ、
次に若い漫画は高橋留美子の漫画をコピー改造して、また新しいものが生まれていく
開発する側も消費者もワクワクするのは、この改造して新しい何かが生まれる、守破離の離のインパクトであろう
黎明期はその離のインパクトが大きいが、どんどんそのインパクトは小さくなっていく
そして、ありふれたものが溢れるようになっていく
これが成熟期と言える
しかし、その成熟期に溢れるものは様式美であり、お約束であり、マンネリズムである
あの時代は3DOが先行したがコケたり、ドリキャスも登場してコケたり、面白い時代だったのである
ただ、今の時代にああいう群雄割拠というか、戦国時代というか、そういう活気がゲーム業界にあるようには思えない
VR元年って毎年言ってない?というツッコミは分からんでもないが、まだまだVRは伸びると思う
物体を触れないなんてのはまだまだVR市場が伸びる余地があるということだと思っている
あと、FPSみたいに走るゲームだと自分も走るのか?ということになるけど、うーん、ルームランナー方式はなあ…
あと、これも自分は専門でも何でもないので、
というか、この文章自体がダニング=クルーガーなのは認めざるを得ないわけだけど、
敵というかNPCというか、今の時代だったら高度な汎用性のある人工知能をゲームでも実現するべきだと思うわけで、
そうすれば当然、同じセリフを延々と喋るドラクエの村人みたいなのは笑い話にしかならなくなる
ゲーム内に高度な人工知能が実現すれば、それらと会話したり、それらとマルチプレイと同様の感覚の連携プレイが可能になる
今までと同じことを繰り返しててもワクワクしないし、
うーん
でも非力なマシンで動くって今でも大事なことだと思うんだよなあ
昔、ある天才プログラマーが、その方は今はもう大成功してるんだけど、
その方はわざと非力なマシンを使ってたりして、
非力なマシンで快適に動くようにコードを書くと、最新のマシンでは爆速になったりして、
あと、アーキテクチャに最適化したコードは電力消費が低くなって地球に優しいよね、とか、
そんなことを言う人だったんだけど、
その頃は、というか今でも自分は彼に比べれば富豪というか甘い考えでコード書いたりダウンしたりしているわけだけど、
最近のUnityとかはちょっと富豪すぎないか?という気もしてて、
それは人生の一時期をだらだらゲームエンジン作ったり壊したりぐだぐだやってたことも一因なんだろうけど、
Unityよりはid Techエンジンみたいな方が好感が持てるというか、
ゴールがFPSならFPSに徹底的に特化しないと良くない気がするんだよなあ
UnityでゴミみたいななんちゃってFPSがよくあるけど、Unityの基本機能だけでは足りないのだと思う
まあ、だから他人が作ったアセットとしての機能を買ってきたり、当然Unity上でそのためのコードを書くわけだけど
そういう点では詳しく知らないからなんとも言うべきではないんだろうけど、
Unrealの方が良さそうだよなあ、と思ったりする、C++で書けるみたいだし
ただ、巨人の肩に乗るにしても乗らないにしても、もうFPSを作りたいとか思わなくなってる
Epic GamesはUnreal Engineという業界標準のゲームエンジンを開発している。
また3億人以上のプレイヤーを抱えるFortniteという人気ゲームを開発している。
PC向けゲーム販売においては「Steam」というプラットフォームが、
いわばiPhoneにおけるApp Storeの役割を果たしていたのだが、
Epicは「Steamの手数料(ちなみに30%)は高い」と文句を言って、
自社で「Epic Game Store」という販売プラットフォームを作った。
つまり今回Appleに対してやったことをSteamに対してやっていた。
確かにEpic Game Storeの手数料は12%と安いが、
そのGame Storeは機能が明らかに不足しているうえに、
Steamでも販売予定だったゲームを金で強引にEpic独占販売にしたりして、
またゲーム業界と直接関係のないプラットフォーム(AppleやGoogle)の影響力が低下すれば
・AppStoreでの課金の全てに30%の手数料(Google Play Storeも同じ割合)
・AppStore以外でのアプリ販売は認めていない(AndroidはPlay Store以外での販売も認める)
・アプリ内で販売する課金アイテム(電子書籍なども含む)はアプリ外で販売すれば手数料がかからない
・アメリカの企業だが中国企業のテンセントが40%の株式を所持
・AppStoreの手数料に不満を持ち大々的にアプリ外課金へ誘導した
・規約違反でアプリが配信停止になる(既にインストールされていればプレイは可能)
・Google Play Storeでも同様のことが起きる
・「独裁に反対したら報復された!助けてくれ!」とプレイヤーを煽ってAppleに圧力をかける←いまここ
・Epic Game Storeの販売手数料は12%(ライバルのSteamの手数料は30%)
・米中対立を背景にトランプ大統領がテンセントとの取引の禁止を通告しているのが関係ある?
・Epic Game Storeは「手数料が安い」というのが売りになっておりSteamの手数料をたびたび批判している
・EpicはゲームエンジンのUnreal Engineも開発しておりそちらでも利益を確保できる
システム的にはPSPの銃声とダイヤモンドみたいな感じのホラーミステリービジュアルノベル。
個人で大規模なものを開発するのは無理があるし費やせる予算にも限界がある。
しかしだからといって個人ゲーム開発者が名作を生み出せないかと言ったらそんな道理はないはずだ。
私には『絵が描けない』という個人ゲーム開発者としては致命的な欠点がある。
かといってRPGツクールで絵がかけない人間が作れる範囲のゲームを人々は本当の『名作』とは見てはくれないはずだ。
いろんな制約の中で、自分という個人が生み出せる範囲で一番可能性があるのは3DCGを利用した静止画謎解きADVゲームだという結論を私は導き出した。
謎解き要素に凝りたい場合はティラノビルダーや吉里吉里なんかでは限界があるだろう。
そう考えた私はPhaser.jsというJavaScript製のゲームエンジンの勉強を始めた。
JS製だからと言って決して舐めてはいけない。2Dゲームであれば基本はなんだって作れる。今回は静止画ベースのADVなので問題ないはずだ。
ページにアクセスした瞬間遊べるブラウザゲーとしてデモ版を公開できるのはJSならではの強みだろう。
3DCGでモデル作るというのは相当なエネルギーを必要とするが何も全部1から作る必要はない。フリー素材だって今の御時世は山のようにあるし、数百円程度で買える素材も視野に入れれば選択肢はかなり広くなる。
素材用のキャラクターのモデルを買ってテクスチャをカスタマイズしつつBlenderで顔だけ1から自作すればネット上の素材を寄せ集めた安っぽさもかなり消せるだろう。
私は素材サイトを見るのが好きだ。 英語圏や、果ては中国語やドイツ語圏なんかのサイトまで足を運べば思わぬ発見があるし、「これはフリー素材だけどこの部分だけblenderでカスタマイズしたらめちゃくちゃかっこよくなりそう」みたいに考えを巡らすのも楽しい。
私はここ数年は毎日寝る前にシナリオのプロット、謎解きのトリック、ヒロインの設定などを頭の中で練り続けてそのまま寝落ちするという生活を続けている。
構想がある程度固まったあとはマネタイズについて考えた。
まあ個人制作ゲームなんてロマン優先なんで基本は採算度外視だ。売り出すならDMMかSteam。
Steamで自分のような個人開発者でも気軽に売り出せるというのは意外だった。申請方法も意外と簡単なようだ。
自分で作ったゲームが世界中で遊ばれるかもしれない、なんてとても夢がある。
ローカライズはどこの国の人でも簡単に行えるようにセリフやUIで使うテキストファイルはできる限りシステム部分と切り分けて管理すると決めた。
YoutubeでBlenderの解説動画とか結構な本数見てるがまだBlenderをダウンロードしたことはない。
Phaser.jsのドキュメントを機械翻訳で読んでこのシステムはこうやって構築すればいいのかと頭の中でざっくりと設計しているがコードを書いたことはない。
かっこいいシーンやヒロインの設定などは頭の中では考えたがこれらをどうやってゲームに出現させるかは基本は謎である。そういえば、先日冲方丁のシナリオ講座本を私は購入した。
構想に5年。
断片的なシーンや謎解きのトリックやヒロインのキャラ設定のみが頭の中で膨らんでいく。
成果物は、まだない。
これどうしたものかね。
旧世代はどうあっても女オタクに市民権を認めるつもりはないようだ。
なぜか?
侮りの例を上げるなら女にゲームは作れないというふうな偏見がある。
安全地帯に引きこもっていれば、煩わしい時代の流れに翻弄されることもない。
女の側にも「女はゲームは作らない」という思い込みがあるのではないか?
だが、それは古い世代に押し付けられた可能性を狭める呪縛に過ぎない。
プログラムができない?
近頃ではゲームエンジン、スクリプトエンジンというものもある。
本を一冊読めば、それで事足りる。
絵を描く才能がない?
それならばドット絵を描けばいい。
才能がなくても知識で補える。
現にフリーホラーゲーム界隈では女性作者と思しきものも見受けられる。
前例はある。
この流れをさらに加速させていくのだ。
ところで、なるほど、どうやら女オタクには感想が欲しいという欲求があるようだ。
であれば、なぜ小説などを書いているのだ?
ゲームという表現媒体は動画配信サイトでの実況配信と親和性がある。
感想が欲しいのであればなぜそうした土壌を活用しようとしない?
小説を書いて感想をもらえないのは言ってしまえば当然の一言で片付けられる。
よさげなゲームを見つけたとして、それが女性作家によるものであった。
そのような出来事が頻発すればどうか?
プログラミング未経験者から「プログラミングを勉強してみたい、でもどのプログラミング言語をやればいいのかわからない」というような悩みを聞くことがあるので、https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ に載っている人気の言語TOP 20について、未経験者が最初に学ぶのはどの言語が良いかという観点で簡単に解説してみます。
対象読者はプログラミング未経験者なので、なるべく難しい言葉を使わないようにしたつもりです。また、正確性よりもわかりやすさを重視しているので何かしら間違っているかもしれません。ご留意ください。
Webブラウザの上で動くプログラミング言語。元々ただの文書しかなかったインターネットの世界に、グリグリ動くページを作りたいという欲求により生まれた。JavaScriptのおかげで今のWebページはグリグリ動きまくりである。
元々HTMLをちょちょっといじる為だけのものだったが、どんどん進化を続けて今は一つの超人気プログラミング言語である。今ではブラウザ上でなくても普通に動かせる(Node.jsという)ので様々な用途で使われている。
ブラウザ上で動くプログラミング言語は基本的にJavaScriptしかないので、JavaScriptはすべてのWebプログラマが学ぶ必要があると言っても過言ではない。
ちょっとしたプログラムを書いてすぐブラウザ上で動かせるので楽しい。そういう点ではプログラミング入門に適していると言えるかもしれない。
機械学習を始めとしたデータサイエンスの分野で激烈に人気のある言語。理由としてはNumPyとかTensorFlowのようなライブラリが充実しているというのが大きく、資産がたくさんあるのでこれからも使われ続けるであろう。
言語としては、誰が書いても簡潔で読みやすいコードになる傾向にあり、小さいプログラムを書くにはいい感じである。米国ではプログラミング教育にPythonがよく使われているという話も聞くし、初心者がプログラミングを始めるのにはいいのかもしれない。
将来AIやデータサイエンスをやってみたいと思うのであればPythonから始めましょう。
ランキングでは常に一位に近い順位をつける言語。Javaができた当時は色々と革新的だったらしく、組み込み業界からWebまで流行りまくっていた。今でもその名残か使っているところは多い。過去の資産やプログラマの数が多いのが一番の理由だと思う。AndroidアプリもJavaで書く(もしくはKotlin)。
実行速度が速く、また下位互換性がしっかりしているので過去に書かれたコードが新しいマシン上でも動きやすいのが長所。短所としては、歴史ある言語で下位互換性を保っているため文法が古い感じがする。タイプ量も多くなるし、学習コストはJavaScriptやPHP, Ruby, Pythonあたりに比べると高い。
正しく使えば強力な言語だが、日本のクソSEもどきは全員(自称)JavaエンジニアであることがJavaが毛嫌いされる理由の一つになっている[要出典]。いわゆるGAFAもJavaをかなりヘビーに使っているので要は玉石混交ということである。
Androidアプリを作ってみたいというならJavaからはじめるのはアリ。
Webページを作るためだけに生み出された言語。プログラマの数が非常に多い。日本で求人が一番多いのはJavaかPHPであろう。
初心者でもとっつきやすく、すぐに動くプログラムを作れるので入門に使われることも多い。学習コストの低さはトップレベルである。しかし基本的には古くてダメな言語とみなされており、PHPで作られたWebサービスは脆弱性が多いという都市伝説もある。真実は闇の中である。
近年のバージョンアップで比較的良い方向に向かっている(と個人的には思う)ので、選択肢としては意外と悪くないかもしれない。
Microsoftが生み出した言語で、.NETというプラットフォームを使ってWebサービスを、Unityというゲームエンジンを使ってゲームを作ることができる。
最近有名なのはUnityで、今やほとんどの3Dソーシャルゲーム(の一部分)はUnityで作られている。そう考えるとC#のプログラマは結構いそうだし将来もある程度安泰かもしれない。もちろん.NETも広く使われている。
ただし.NETもUnityも触らない人にとっては基本的に縁のない言語である。
なんかゲーム作ってみたいかもなーと思う人はC#から始めてもいいんじゃないでしょうか。
C言語に色々な機能を足しまくってできた巨大な迷宮のような言語。言語仕様は複雑怪奇だが実行速度は全プログラミング言語中でも最速レベルなので、パフォーマンスが重要な開発において使われる。アプリやサービスというよりは、それらを作るためのライブラリ、プラットフォームなどを作るときに使われることが多い。Web系の会社でいうとGoogleなどは主にC++を使っている。
基本的には初心者が触る必要はない。競技プログラミングを極めたいとかならC++からはじめてもいいかもしれない。
このランキングの中で唯一、日本人によって作られた言語。作者のまつもとさんは世界的有名人である。ちなみに島根県出身、在住。
プログラミングを楽しくすることがモットーらしく、確かに書き味は良い。また作者が日本人なこともあってか日本語情報が多く、情報収集という点ではとてもやりやすい。
Ruby on RailsというWebサービスを作るためのフレームワークが世界的に大ヒットしたため、必然的にRubyの知名度も上昇した。少し前まで日本のWeb系スタートアップは猫も杓子もRuby on Railsといった様相であった。今は少し落ち着いたようだが今も人気は根強く、Web系プログラミングスクール等ではだいたいRuby on Railsを教えているとかいないとか。
Webに興味があるのならRubyから始めるのが一番無難な選択肢と言える…のか?まあ悪くはないと思う。今でも需要は多い。スクールに行きたいのであれば黙ってスクールのカリキュラムに従いRailsをやりましょう。
これは他の言語とは毛色の違う言語である。というかCSSはプログラミング言語と呼んでいいのだろうか?
CSSはHTMLを装飾するためのものである。字に色をつけたり、背景を変えたり、レイアウトやサイズを変えたりするのは基本的にCSSの役割である。
すごく大雑把にいうと、HTMLで表示する内容(文章や画像)を定義し、CSSでその見た目を整え、JavaScriptで動きをつける。というのがWebサービスの”見た目”を作るやり方である。
なので、Webに興味があるのであればある程度はCSSの知識が必要である。が、これ単独で学ぶようなものではない。Webサービスを作る時についでに調べて少しずつ覚えていけば良い。
TypeScriptは比較的新しい言語で、JavaScriptをさらに拡張したものである。Microsoftによって開発されている。
プログラムにはデータの型(Type)というものがある。例えば「1」や「2」は数値型、「あいうえお」は文字列型といった具合である。大まかに言うと、この「型」に対して厳しい言語は型チェックによりバグの混入を防ぎやすいがプログラムを書くのが大変、というかコード量が多くなる。型が緩い言語はサクサクかけるし短く書けるがバグを生みやすくプログラマの力量が問われる。ランキングの中だとJavaScript, Python, PHP, Ruby, Perlあたりは緩く、Java, C++, C, Swift, Go, Kotlinあたりは厳しい。
そんな中、世で広く使われているJavaScriptの型チェックが緩すぎるのでもっとちゃんと型をつけたい、そんな要望を叶えるのがTypeScriptである。基本的にJavaScriptを理解している人間が使うべき上級者向け言語というのが現状なので、初心者が始めるには適していない。
ただしこの先主流になっていく可能性は大いにあるので、どこかのタイミングで勉強してみても損はしないと思う。
C言語は基本的にOSを作るための言語である。OSというのはWindowsとかmacOSとかLinuxといったもので、マシンを動かすための基盤となるソフトウェアである。AndroidスマホにはAndroid(という名のOS), iPhoneにはiOSが載っている。コンピュータは基本的にOSがあって初めて動かすことができ、OSが提供する機能を使ってブラウザやスマホアプリなどを動かせるのである。
というわけで、初心者が学んで実用的なものではない。ただしC言語というのは世の中の様々なものの基盤になっており、他言語の文法もC言語から拝借しているものが多い。例えばC言語をある程度勉強していればJavaやPHPなどはなんとなく雰囲気で書けてしまったりする。
そういうわけで、コンピュータサイエンスをこれからちゃんと学んでいきたいという人(大学生とか)はC言語から始めるのもいいと思う。ちなみに筆者は初めて書いた言語はCであるが、意味が理解できるまでに2年かかった。才能がないとこうなるので注意。
SwiftはAppleによって作られたAppleのための言語である。iOSアプリ(iPhoneアプリと言い換えても良い)を作るためだけに存在している。
言語自体は他と比べて新しいため文法や機能がイケてる雰囲気があるので基本的にはいいのだが、iOSアプリ以外で使っている人は多分世界で5人くらいしかいないと思う。なのでiOSアプリに興味がない人はやめておきましょう。iOSアプリを作りたいあなたは他に選択肢はない。Swiftをやりなさい。
Swiftが生まれる前はiOSアプリを書くためにObjective-Cが必要だったため、多くの人がこの言語を使っていた。が、今はSwiftがあるので、古くからあるObjective-C製アプリをメンテナンスする時以外に使う機会はない。名前すら覚える必要がないので存在を忘れてしまって構わないが、これだけ順位が高いということは多くの企業がいまだにObjective-Cで開発し続けているということであり、ニッチな需要はこれからも残るのかもしれない。
Scalaは関数型言語と呼ばれる言語の一つ。Javaの親戚みたいなものなのでJavaとの連携が容易であり、上手く使えば性能も出るしコード量も少ないしバグも少なくて最高、な感じらしい。が、その分難易度が非常に高いので初心者が手を出すものでは絶対にない。どんなに早くても他に二つは言語を覚えてから勉強しましょう。Javaを覚えてからやるのがベター。
正直ほとんど書いたことがないのでよくわからないが、ビッグデータというワードが流行りだした頃はデータ解析用途でかなり流行っていた。その後機械学習やAIブームが来て、今でも現役で使われてはいるがPythonがどんどん勢力を拡大しているので少し目立たなくなってきた、というのが個人的な印象である。まあプログラミング初心者が最初にやるようなものではないことだけは確かである。
Go言語は比較的新しいGoogle製のプログラミング言語で、Googleのように巨大なシステムでの使用を目的に作られたものである。しかし実際には様々な企業が利用しており今一番勢いのある言語と言ってもかもしれない。
他のプログラミング言語の良い点や悪い点を参考に設計されており、実行速度の速さと生産性(プログラムの書きやすさ、読みやすさ)を両立できるような言語になっている。ただし、機能を増やすのではなく本当に重要な機能だけに絞るという思想があるようで、他の言語に慣れていると機能の少なさに不便を感じるかもしれない。
学習コストが低いという点では最初に学ぶ言語として適しているかもしれないが、GoだけでWebサービス等をサクッと作れるのかというと微妙なので、アウトプットを出しにくいというのはあるかもしれない。
シェルというのはテレビなんかでハッカー的な人間がPCを開いて謎の黒い画面に白い文字を打ち込んだりするアレである。説明としては正確ではないがまあ大体そんなもんである。何が言いたいかというと初心者が最初に学ぶとかそういうものではない。しかし実際に開発の仕事をやるとシェルの知識はあったほうがいいし、シェルに多少詳しくなるとPC上でテキスト操作をしたりファイルをいじったりというのが便利にできるようになる。ただし(通常は)極める必要はない。
Shellと言っても実際にはbash, csh, tcsh, zshなど色々あるのだがそれらをひとまとめにしてShellとなっているようだ。
PowerShellは上のShellの親戚みたいなもので、ShellがMacやLinuxで動くのに対しPowerShellはWindowsで動く。そんだけである。あと正直あまり知らない。
ランキングの中ではかなり昔からある言語で、サーバーと呼ばれるマシンには大体Perlが入っている。そのくらい市民権を得た超有名言語で、C言語やC++で書くほどでもない小さなプログラムはとりあえずPerlで書く、というくらいには広く使われていた。インターネット初期はほとんどのWebサイトはPerlで書かれていたとかいないとか。PHPなどの登場はその後である。
今でも広く使われてはいるが、RubyやPythonがPerlの後継的な位置付けであるため、初心者が新しくPerlを学ぶメリットというのはあまり思い浮かばない。何か特定の目的があるのであればいいと思う。
Kotlinは簡単に言えばBetter Javaである。Javaをもうちょっといい感じに書きたいという気持ちで作られた言語で、Scalaと同じくJavaの親戚のようなものである。
ランキングの中ではSwiftと並んでかなり新しい部類。AndroidアプリをKotlinで書けるようになったことがきっかけで人気が爆発的に上昇、今ではWebの開発にも使われていたりする。
とは言えまだまだ新参者といった感じで、ドキュメントなどの情報も他の言語に比べると物足りないので初心者には厳しいかもしれない。
言語自体はとてもいい感じなので、もう少しコミュニティが成熟してくれば最初に学ぶ言語の選択肢として有力になるかもしれない。
HaskellはScalaと同じく関数型言語である。ScalaがJava的な書き方でも動くの対し、Haskellは「純粋関数型言語」と呼ばれ、ランキング中の他の言語とは一線を画した書き方になる。どう考えても初心者にはオススメしない。少なくとも他に二つは言語をマスターしてからやりましょう。
なんとなくWebに興味がありそうならJavaScriptかRubyもしくはPHP、Androidアプリに興味があればJava、iPhoneアプリに興味があればSwift、AIやデータ分析に興味があればPython、3Dゲーム開発に興味があればC#。この辺りをやりましょう。
特に目的がないのであればフィーリングで選んで大丈夫ですが、やめておくべき言語というのはあるのでその辺だけ参考にしてもらえれば。
なお筆者はただのヘボプログラマであり、大好きな記事(http://www.mwsoft.jp/column/program_top10.html) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。
ツイッター、なんだか一部でプログラミングスクールについて盛り上がってるみたいですね
「プログラミング...スクール...?あっ5年前通ってたんだ...」みたいな感じで忘れてた記憶が蘇ったので振り返ってみます
当時高卒で上京してきた直後で、「とりあえずなんかプログラム書いてお金もらう感じになりたい」程度のテンションでした
それまでプログラミングはしたことないし、いわゆるIT知識も持ってるようでいて持ってないというバックグランドです
正直「ここに通えばなんとかなるんじゃないか」くらいの気持ちだったと思います
たしか期間は1か月で、割引制度を使って料金は10万円だったかな...(ヒーヒーいいながらなんとか支払った)
5年前の話なのできっと今ではそのスクールのシステムもいろいろ変わっていることでしょう
内容は、用意されたHTMLやCSS、Ruby教材の課題をこなしていって、最後にRuby on Railsで簡単なWebサービスをつくり、時間が余ったら自分の好きなWebサービスをつくるといったものでした
作業は別に家でやってもよいし、スクールの物理教室にいけばメンターがいて質問もできます
いよいよスクールが始まりましたが教材の課題をこなすのが難しかった...
きっと一般的にみて特別難しい内容ではないのでしょう、メンターというサポート体制もあります
が、ダメだった...
たしかRubyの四則演算から先の課題がこなせなかったような...
ほんとに教材に書いてあることが理解できなかった
メンターに質問しようにも「分からないことが分からない」みたいな状態で、なかなか前に進みません
最終的に教材の修了度は60%くらいだったかな...
なんとなくHTMLタグの種類が分かったくらいで、プログラミングする上でのメンタルモデルが形成されるわけでもなく「あぁ僕にはプログラミングは向いてないんだなあ」という感想を得て1か月が終わりました
一応継続してスクールに通えるプランはあったようでしたが、金銭的に余裕がなく1か月で綺麗そのスクールから離脱しています
スクールに行った前後で特に状況変わってないぞどうしよう...という状況で、コンビニバイトしつつ知人にベンチャー企業を紹介してもらって「何かつくったらまたおいで」と言われてさよならされる日々を送っていました(そりゃそうなる...)
数か月後、Unityというゲームエンジンの初心者向けハンズオンが開催されることを知ります
もともとVRには興味があり、Unityを使うとVRアプリがつくれる程度の知識はあったので軽い気持ちで参加しました
そのハンズオンが楽しかったので以降Unityにハマっていきます
後日Webの教材で改めて一番基本的な操作を覚え、「まだ手を出したことのない機能をひとつ盛り込む」というテーマを持って週にひとつゲームをつくって投稿サイトに上げていました
そんなことをしているうちに、縁があって会社に入ったりニートしたりアプリをリリースしたり転職したりしました
結局いまプログラミングスクールでやっていたことがそれほど関係しないポジションでふんわりC#を書いてご飯を食べていて、「プログラミングスクールのおかげでどうのこうの!」というパターンにはならなかった人です
いまも「あぁ僕にはプログラミングは向いてないんだなあ」という気持ちだし、Rubyはなんとなくトラウマで...
職場は自分以外のプログラマーがみんな修士卒以上で超こわい、行ったことないから分かりませんがプログラミングスクールよりちゃんと大学行ったほうがいいんじゃないのみたいな気持ちです
せっかくお金出して行ったのにまともに血肉にできず、自分のだめさを思い知っただけという意味で人に話してこなかった黒歴史なんですが、いろいろ書き連ねてみました
時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
00 | 98 | 12888 | 131.5 | 43 |
01 | 32 | 4044 | 126.4 | 70 |
02 | 11 | 1413 | 128.5 | 76 |
03 | 18 | 2118 | 117.7 | 46.5 |
04 | 33 | 2954 | 89.5 | 35 |
05 | 27 | 4556 | 168.7 | 52 |
06 | 43 | 3951 | 91.9 | 44 |
07 | 58 | 7322 | 126.2 | 28 |
08 | 111 | 8305 | 74.8 | 35 |
09 | 149 | 13555 | 91.0 | 44 |
10 | 159 | 8970 | 56.4 | 33 |
11 | 186 | 12876 | 69.2 | 36 |
12 | 150 | 11309 | 75.4 | 25.5 |
13 | 154 | 13710 | 89.0 | 31.5 |
14 | 167 | 10739 | 64.3 | 35 |
15 | 128 | 10493 | 82.0 | 44 |
16 | 133 | 8983 | 67.5 | 35 |
17 | 183 | 10718 | 58.6 | 28 |
18 | 160 | 9568 | 59.8 | 31 |
19 | 133 | 13852 | 104.2 | 37 |
20 | 208 | 40735 | 195.8 | 29 |
21 | 220 | 20293 | 92.2 | 40 |
22 | 176 | 15097 | 85.8 | 37 |
23 | 198 | 14471 | 73.1 | 33.5 |
1日 | 2935 | 262920 | 89.6 | 35 |
休校(61), 羅漢(4), 奨励会(5), 棋譜(6), 試薬(4), 2月27日(3), 留守番(13), 2月26日(3), ゲームエンジン(5), 医療崩壊(4), コレラ(5), 時差出勤(4), きりたんぽ(3), 位牌(3), コロナ(188), 重症(25), 肺炎(24), 花粉症(16), 新型(33), 感染者(30), マスク(78), 新型コロナウイルス(19), パニック(20), 感染(86), コロナウイルス(26), ウイルス(35), 中止(39), 武漢(18), 検査(51), オリンピック(29), 満員電車(22), 症状(25), 流行(16), 患者(21), 政府(35)
■みんなどこでマスクを入手してるの? /20200227082821(26), ■みんな法律ってどこで学んだの? /20200226015326(18), ■○○○ッ○○○○ーは確保しておこうぜ /20200227081943(14), ■夜間大学を卒業した /20200226235416(14), ■コロナって誰が本当の事言ってるの? /20200227104152(13), ■プロの将棋指しという職業 /20200226183247(13), ■ /20200227122755(10), ■ちょっとだけ怖い話(既婚向け)をする /20200227121252(8), ■新型コロナ感(2月27日時点) /20200227143508(8), ■痛いところ突かれるとすぐ大喜利に移行するのダサいよな /20200226210413(7), ■オタク老害じゃなくて、ダメサブカルがオタクに負けたって話じゃね? /20200226194738(7), (タイトル不明) /20200227093831(7), ■偏見に満ち溢れた俺の書いたことのあるプログラミング言語の説明 /20200227004129(7), ■ /20200227200832(7), ■非常時には三権分立は役立たないのではないか /20200227164638(7), ■聞かせてもらおうじゃないか、はてなーの理想のコロナ対策とやらを /20200227213431(6), ■現役教師だけどコロナ休校について /20200227200924(6), ■レズって世間的にどういう評価なの /20200227161225(6), ■将棋はAIのほうが強いから興ざめ /20200227143246(5), ■コロナにかかっていると疑わしい人いますか? /20200227173833(5), ■北海道 /20200227181655(5), ■ /20200227204447(5), ■全国一斉休校 /20200227213417(5), ■よく叩かれてる界隈で「みんながみんなそうじゃない」「善良なのもいる」というが /20200227074803(5), ■萌え絵のおっぱいが不自然なのってさ /20200227073153(5), ■コロナってギフトじゃない? /20200227001508(5), ■コロナウイルスは膨らみすぎた社会の不満を背負わされてる感がある /20200227094329(5), ■ /20200227105658(5), ■じゃあなんで検査数増やさないんだよ /20200226201847(5), ■コロナウィルスの検査効率を10倍に引き上げる簡単な方法を思いついた /20200227121414(5), ■コミュ障と言ってる奴大体コミュ強 /20200227125455(5), ■「東京五輪1年延期に言及」 /20200227125629(5), ■ティッシュとトイレットペーパー /20200227133649(5)
7065430(3088)