はてなキーワード: Ideとは
書くの面倒ならプログラミングは向いてない
ただし、もし"書かなければならない"文字量が多いと参考書などを読んだ時点で考えているなら、IDEと呼ばれる開発環境ソフトウェアを使うことでサポートしてもらえることがほとんどだから、実際のタイピング量を恐れる必要はない
ちょっと入れたら勝手に補完されたりするので、自力で書く文字の量は思ったほどではない(まあ、少なくはないが)
もしあなたが作りたいものがゲームであるなら、あなたがやるべきことはIDEを使ったプログラミングではないかもしれない(特に、大規模な、商業的なゲームの場合)
その場合はプログラミングではなくゲーム制作の勉強をするとよい
もしあなたがやりたいことがソフトウェアマネージメント、いわゆるSEであるなら、あなたがやるべきことはIDEを使ったプログラミングではないかもしれない
その場合は……、えー、どうしようかな。これ独学ではできないよね。どっかに就職するのが一番。プログラミングはできなくてよい
まつほろひとゆきが作った日本産のコンピューター言語。パールというコンピューター言語を元に作られていてWebサービスを作るためのフレームワークを搭載している。代表的なWebフレームワークはtDiary
C
デニス立地さんがNTTで開発した言語。マルチクスというOSを作成するために作られた。わざと複雑な言語仕様にすることで自分の役職ポジションを守ろうとしていたが、思った以上に世の中の人間はこの言語を使いこなしてしまい、超有名な言語になってしまった。スーファミのゲーム制作にさえ使えなほどの超高級言語
おまじないと呼ばれるプリプロセッサでの書き換えが必要な謎の文字列を埋め込む必要があったり、言語仕様に曖昧な部分も多く、同じソースなのに実行環境によって動きが異なる、欠陥言語である。(32bit向けプログラムが64bit環境で動作しないなど)
オブジェクト指向言語。すべてのオブジェクト指向言語はこいつから始まった。
主にWindows上で動作するゲームを作るための言語。今ではUnityとか色々なゲーム開発の環境とかあるが、結局はパフォーマンスとか考えたらC++使うことになる。
代表作はOpenGL、DirectX、Window10、LibreOffice など
JavaScriptから派生した言語。読み方は(ジャワ。ジャワ島のジャワ。)。もともとはOracleの創始者の博士が趣味で作成して、現在のOracleデータベースの基礎となるテクノロジー。アプレットという実行するための専用プログラムをインストールしないと、Javaで作ったプログラム(.classファイル)は動作しない。マークはコーヒーだと思われがちだが、紅茶(ジャワティー)である。
アンドロイドOSを作成するためにも使われており、アンドロイドのOSカーネルはJavaで制御されている。そのため定期的にGCが走るので、アンドロイド端末は定期的に動作を停止することがある(いわゆるプチフリーズ)。
対策するためにはGC戦略を見直してヒープ領域のサイズやメモリに乗せるキャッシュのサイズなどの調整が必要であるが、げんざいのGoogleにはこれらを調整する人員はすでにいない。
このように業務用データベースから携帯電話まで幅広く使われているので、Javaの技術があっても市場価値は殆どないと言われている。(みんな使えて当たり前)
晩年政界への進出を目論んでいた松下幸之助が、未来社会を見据えて開発した言語。主にWebアプリケーションを作成するために使われている。PはパナソニックのP。を略してPHP
かんたんにシェルコマンドを実行できたり、クエリストリングに代入した値を直接グローバルで評価できたりするなど、洗練されていてとても便利な言語である。
HTMLやメール本文の中にもPHPの処理を書き込むことができる。
この世のすべてのサーバーに実行環境が存在するので、PHPのコードさえあれば、コンパイルも不要でどのような環境でも動作する。
C言語の100倍生産性が高く、Wikipedia、Facebook、Slackなどの超一流のサイトやサービスで大量のアクセスを捌いている。
WardPressと呼ばれるフレームワーク(全世界のWebサイトの3分の1以上はWardPressで作成されている)を作成している言語であり、この言語なくして今のWebは存在していない。
データベースとも親和性がある、などと言われることもあるが特に根拠はない。
韓国人棋士を倒したAIに特化したプログラム言語。Googleが開発しており、もともとはDartという名前だったが、汚いという理由でなまえがGoに変わった。そのため現在はDartという言語は存在していない。
AIに特化しているというだけあり、低レイヤむけの実行ファイルを作成する必要があるため、コンパイルが必要ではあるが、だいたいどの環境向けのバイナリも生成することができる。
デフォルトでディープラーニングを使うための機能を持っていたり、プログラムを並列実行するための機能が備わっているので、コア数の多い環境で高速に動くプログラムを作りやすい。
JavaScript
Javaの元になったプロトタイプベースのオブジェクト指向言語。読み方はジャワエスクリプト。W3Mというブラウザの上でインタラクティブにWebサイトを動かすために作成された言語。もともとブラウザの上で動くための言語だったが、後にSafariブラウザに搭載されていたV6エンジンというJavaScript言語の実行エンジンを分離してNPMというJavaScriptを直接実行できる環境となった。
それ以降JavaScriptはブラウザ以外にVRゴーグルの中などで動くようになった。
並列プログラミングが不可能な作りのため、コールバックを多用して、スパゲッティーコードを量産することができる。
NPMを使う奴らは、JSがブラウザ環境で使われる言語であることを全然考えてないため、WebpackとかBabelといった謎の開発環境をシコシコ積み上げている。いつかその塔は爆発し崩れ去ることになるであろう。
Javaと同じくJavaScriptから派生した言語。Javaとは互換性は無いが、JavaScriptの上位互換があるため、JavaScriptのコードをそのまま実行することができる。
$マークから始まる命令のみで構成されているとても縁起のいいプログラミング言語。おもにパララックスなどを実現するために利用されていて、WardPressなどのドライバとしても使われている。
JavaScriptの改良版であり、現在JavaScriptと言われているプログラム言語の99%はjQueryのことである。そのため現在慣習的にJavaScriptと呼ばれているもののほぼ全てはjQueryである。
jQueryを覚えればJavaScriptは覚えなくても良い。などと言われるが、正確にはjQueryを覚えた頃にはJavaScriptも覚えている。というのが正確である。
JavaやjQueryなどと同じくJavaScriptから派生した言語。Microsoftが開発した関数型言語。開発時はF#(エフシャープ)というコードネームだった。
型に特化した言語であり、Microsoft製のVSCodeというIDE環境でしか開発、実行が出来ない。(ただしMacやLinux上でも動作可能)
TypeScriptを動かすにはサーバーにVSCodeもインストールする必要があり、言語やIDEのバージョンアップも多いため、メンテナスンスが困難である。
前進となるObjectiv-Cという言語が、気持ち悪い構文であったため開発者が不足しており、このままではOSのメンテナンスもままならない、という理由で最初のバージョンがわずか14日間で作られた言語。
モバイルアプリの実装と言えば主力はKotlin、Swift(Objective-C)だけど、簡単な作りであればcordovaをベースにフロントエンド開発ライクに進められる。
そもそものライブラリ選定には関わっていなかったものの、便利と思って使った結果後悔した思い出のお話。
Angular, Vueで実装していたけどレンダリング系に属するイベント盛りだくさんの場合、
結果的にネイティブ実装したほうが楽だしレンダリングの面で有利。
そもそもcordovaだからと言ってネイティブの知識がいらないわけじゃない。
標準サポートしているプラグイン群でできることは限られてくるし、そのまま突き進むならネイティブ実装の知識は必要になる。
これは当たり前だけど…
JSのパッケージングだったりCSSビルドが組めないとなると逆にコスト高。
そもそもNode.jsのビルドを根本的に理解してない奴がプロジェクトを作ったせいで
JSのパッケージビルドもされない、jQueryを突っ込まれるなどひと悶着あった。
3年前くらいだったけど既にTypeScriptも出てたし、何故そうしなかったのか理解できない。
結果ロードが激重になった。そりゃそうだ、minifiedされてないのだから。
用法用量を正しく守って使わないと、後で面倒になる好例だった。
大概は専用プラットフォーム上でビルドしていくがこれがくせ者。
ブラウザIDE(という名のただのテキストエディタ)が使えるけどそもそも構成管理できない。
ローカルビルドと乖離するし、ブランチすら切れないのだから本人以外は触れないシロモノになってくる。
別端末でビルドしようとすると同名の新しいプロジェクトが作成される。
ここまでくるともう触りたくなくなる。ただ、触らないわけにはいかないので何とか整合が取れる状況にした。
さらに言えば、ビルドが終わってステータスが見れるが、内訳が見れるのはそのタイミングだけ。
多分、海外で公開したプラットフォームをそのまま持ってきてるんだと推測しているが流石にこれは悪意しか感じない。
ただのCLIをバックグラウンドで実行するだけのGUIラッパーと化している。
かといってlintを掛けてくれるわけでも無し。
個人的に要らないし今後は使わない。
突き当たったのはWebSocketを使うシーンが出てきたとき。
ライブラリで何とかする方向で進めたかったけどそもそもwebpackビルドにすら対応していなかった。
件のAngularベースの場合はもっとひどくてクソラッパーを作りやがったせいで依存度が激高になった。
ちなみにネイティブはそれぞれにサポートするライブラリが出ていて、最新バージョンに向けてきちんとメンテナンスされている。
根本的にiOS側の実装でレスポンシブ的なレイアウトが作りにくい現状を鑑みて、
WEBベースで新商品などの通知をしたい、残りは情報の閲覧のみでSPA構成的なシロモノで作りたい。
こんな需要には使ってもいいんじゃないかと思う。相当なレアケースだけれども。
いいところは確かにあって、CSSでデザインの調整が効くところは大いに評価できる。
これがまたネイティブ実装だと面倒。特にiOS。お前はダメだ。
結局進めていくとネイティブ実装の知識を求められるのだから、ネイティブで実装したほうが良くね?と言ったところ。
ユースケース的に超単純要件でアプリを作りたい、かつ、ユーザに何かpush通知的なやつを入れたいって場合は使ってもいい気がする。
暇だからゲーム専門学校時代を振り返る - 昆布がないと開発できない。 http://donnpema6.hatenablog.com/entry/2019/10/23/004918
HAL東京は私の母校でもある。読んでいてとても懐かしくなった。
この記事を書かれた方と同じように自分も卒業して思う事や学生時代を振り返ってみたくなったので書く。駄文ですが入学検討している高校生、在学中の方にこれからの参考になればと思う。
まずは私の情報について。
・現在は大手ITにてモバイルゲームエンジニア(Unityメイン)
まず私はゲーム業界志望で入学してゲーム業界に就職したパターンの人間である。
HAL東京でゲーム学科なんだからゲーム業界に行くのは当然ではと思われる方もいるかもしれないが残念ながら半数近く、またはそれ以上の人数がゲーム以外の業界に行く。
1年目
・冒頭で紹介した記事にもあった通り、HAL東京では前期・後期に別れて授業を行う。1年目は基礎を学ぶ。
・この基礎だが、プログラミング以外にもデザイン、コンピュータサイエンスなども行う。これは1年目の後期に改めて学科の選択の機会があるからだ。実際にプログラミングやってみて自分に合ってないと考えた人はデザインの学科にも行けるというわけだ(最も、最初の希望とは違う学科に入ってちゃんとその業界に就職した人を私は知らない)
・プログラミングの授業ではC言語を学ぶ。私は高校時代プログラミングなんて一切やっていなかったので初めて触れたのがCだった。printfでHelloWorldしたりscanfでメモリ領域ぶっ壊したりしつつもプログラミングの基礎を学ぶ。 IDEはVisualStudioだった。
・コンピュータサイエンス系の授業では、基本情報技術者試験の合格を目指し皆勉強する。HAL東京では基本情報技術者試験を取得していない場合、この授業が卒業まで続く。就職において資格を見る会社も一定数いるのでこのカリキュラムは良いと思う。取得している場合はAndroid開発やコンシューマゲーム機での開発授業などが選択できるようになっている。私は初の試験で無事合格したが卒業時でも取れてない人は一定数いた。馬鹿なんじゃないのか。
・1年目の後期からは学科に別れた授業+コンピュータサイエンス系の授業といった感じで進む。
・C言語のコンソールに文字を表示させてゲームを作るというのを1年目はやる。独自のライブラリが渡される。
・文字だけで表現するのにこの時点で出来るやつと出来ない奴がはっきりとわかる。 優秀な人間は自分でバックバッファの概念を構築したり、滑らかなアニメーションなどを実装している。凄い。当然彼らは誰もが知っているような大手ゲーム会社に今はいるはずだ。
・1年目の最後、学内での制作物の展示イベントがある。そこで作ったゲームを展示するのだ。ここで出来ていない人はおそらく翌年には退学している。私は完成はしたものの拙い出来だった。反面、負けてられないなとは思った。
2年目
・2年目からはDirectXを使用した本格的なゲーム開発の授業がスタートする。またそれと並行してコンシューマゲーム開発の授業が始まる。私の世代ではNintendoWiiだった。
・C言語の授業もC++の授業になり、クラス化などについて学ぶ。
・コンシューマ開発の授業は基本的に情報がない中やる。渡されるのはWiiの関数リファレンスの本だけ。あとは授業で教官から教えられつつ実装していく。
・DirectXでは9を使用していた。Xライブラリのようなものは一切使わず、直でDirectXを触る。描画の仕組みなども学べるのでこの授業はとてもよかった。確か前期は2Dゲーム、後期は3Dゲームだった気がする。それぞれ個人開発で1本づつ作る。私はこの時に作った3Dゲームが結構面白く出来て自信がついた。
・2年目の後期ではWiiの開発でチーム制作を行う。チームは勝手に決められるが基本的に優秀な人がリーダーになる。チームによっては崩壊しているチームやギスギスしているところもあり、プログラミングできる人と出来ない人の差が露骨に出る。何人かはここで脱落し、退学する。
3年目
・DirectXの授業は継続しておりCで作ってたものからC++で作るようになる。ここらあたりからかなり複雑なアルゴリズム(地面の起伏に応じた高度計算や正確な当たり判定の実装など)も学ぶ。
・DirectXとは違うものとして、OpenGLの授業も始まった。OpenGLとDirectXのマルチプラットフォームを目指してゲームの開発を行う。またネットワークを使ったゲームをOpenGLで開発したりもする。この授業では基本的に自分で調べて進めていく。調べる力をつける。今思うと一番エンジニアとして大切なことが学べる授業だったと思う。
・先ほど書いた、基本情報に合格していると選択授業でAndroidプログラミングなどもできる。
・就活に備えたビジネスマナーなどの授業も始まる。その日はスーツを着て通学する。私はこの時点でスーツ着て働くのは論外だと強く感じるようになった。
・3年生のビッグイベントとして10月にインターンがある。これはHALがゲーム会社やIT企業に依頼する形で生徒を会社にインターンとして参加させるというものである。当然ながらこれも出席率などに問題がある場合は参加できない。
・インターンは1ヶ月間あり、ゲームの会社にいく人もいればデバッグの会社にいく人、IT企業にいく人様々である。どこにいくかは教官が決める。私はゲーム会社だったがかなり勉強にはなったしゲーム会社で働く雰囲気というものを知れたのでよかったかなと思う。
・3年後半からはDirectXで就職作品を作り始める。就職作品とはいわゆる企業の人に見せる作品の事である。これは完全に個人で作るので人によって完成度はかなり違ってくる。中には商業作品のようなクオリティのものを完成させる人も出てくる。実力社会である。
4年目
・4年目は卒業制作展と就職活動、産学連携の三つがメインとなる。
・私は4年になる頃には就活終わっていたのだが基本的に全てにおいて就活を優先する様になる。内定出るまではスーツで通学など、それ意味あるのか?
・HALには学内企業説明会というシステムがあり、様々な会社が来校し企業の説明、特別選考の案内をしてくれる(任意参加だが就活中の人は実質強制参加である)
・4年中盤くらいにはもうほとんどの人が就活を終えているが一部の終えていない人たちは延々と説明会に参加してはエントリーシートを書いていた。大変だなぁ。このくらいの時期になるともう学内企業説明会にゲームの会社はほぼ無い。自分で動け。
・産学連携や卒業制作ではチームを組み制作するのだが使用するグラフィックライブラリなどに指定はなく、プラットフォームも自由となる。そのため、DirectXやOpenGLを学んでいても大抵のチームはUnityやUnrealEngineを使うことになる。
・4年目後半は卒業制作展にひたすら取り組む、この制作はとても私の中にも印象に残っている。正直楽しかった。好き勝手にみんなで面白いものを作れる。
さて、ここまで1〜4年の流れをざっくりと書いた。
次にHALについてよく聞く話、課題が多いという話にもついて触れておこう。
1科目年間20くらいは少なくとも出てる気がする。(規模はまちまちだが)
この課題だが課題を一定数達成(承認という)していないと科目留年となってしまう。とはいえ教官は自分がわかるまでサポートしてくれるので主体的に動けば落とすことは無いだろう。(私は4年間で1度も落とさなかった)
また出席率も見られる。確か80%切ったらアウトだった。
毎日しっかり通学して、出された課題をしっかりこなせれば基本的に力はつく様になっていたと思う。就活失敗していた人はハッキリ言ってこれが出来てない人が多かったイメージがある。
そのため1回休むだけで内容についていけなくなる恐れがある。しっかり授業は受けよう。
次に私の就活についても触れておこうと思う。
私は3年の中旬くらいから早く就活を終わらせたいと思っていた。また、コンシューマ業界は色々と魅力はあるが第一に給料が安いところが多いし働く環境として良いとも思えない面が多かったので最初の仕事はモバイルゲーム業界がいいなと思っていた。
そのため早い段階で逆求人サイトに登録したり、1on1面談イベントや勉強会などにも参加する様になった。
個人的に今思うのが3年の中旬くらいの時期から動き出せたのが一番良かったなと思っている。勉強会などで大学生で同じ様にゲーム業界目指している人たちとも多く会ったりしているうちに、自分は結構出来る方の人間なんだなと思う様になる。
正直HAL東京のカリキュラムは異常で、普通にゲーム作りたいという人はOpenGLもDirectXもやらない。直でそれらが扱える様になっているHAL生は業界的に結構貴重な人材になりうると思う。
描画の仕組みをわかった上でゲームエンジン使うのとそうじゃ無いのとでは全然違うんだなとこの時気づいた。HALの基礎から教える理念はとても大切だった。
私は趣味で別でDirectXでゲーム作ってたりもしてたので、それを企業の人に見せたりもしていた。何かしら物を作りきるという経験を何回も積んでいるHAL生の評価は高い。(ちゃんと授業出てれば1本は作りきれるはず)
何社か逆求人で声がかかり、そのうち一番気になっていた会社と話しているうちにどんどん選考が進み、特に苦戦せずに2月くらいには内定が出ていた。私の就活はかなりあっさりと終わった。
モバイルゲーム業界やIT業界は今かなり盛り上がってるのもあり年収もかなり良く、この結果にはかなり満足している。
最後に、私がHAL東京に入学して良かったかどうか、という点について触れてこの駄文を終わらせようと思う。
もともと、ゲームは作りたいと思っていたが、何から始めたらいいのかわからなかった。
そんな中、専門学校で学ぶことで0→1が出来る様になったのはやはり大きかったと思う。
一度作り方を学べばあとはそこからどんどん自分から学んでいけた。
逆に、そう言う学び方が出来ない人はやめておいた方が良いと思う。
HAL東京在学中ずっと思っていたのが、学生間のレベルの差がとても激しいのだ。 無能か出来る奴のどっちかになるのだ。
自分は積極的に学んでいける!出来る奴に絶対なってやる!と言うくらいの気合いがないとダメだと思う。
入学時にプログラミングの経験がある人も一定数いるのだが卒業する頃には自分の方が書ける様になっていたし、結局のところ本人の努力次第である。決して入ればゲーム業界にいけるとか、そんな甘い話はない。
生半可な気持ちで入学するのは出来る人たちの迷惑になるとハッキリ言っておこう。チーム制作の足手まといになってしまうだけである。
IDEの "Master/Slave" は差別用語? | スラド https://srad.jp/story/03/11/27/0912205/