「C++」を含む日記 RSS

はてなキーワード: C++とは

2017-03-06

ハングルプログラミング言語"Aheul"というのを見かけたが

Hacker Newsの上の方にAheui(아희) https://aheui.github.io/specification.en というのが上がってきていて(ろくにコメントがついてないが)、どうも世界初ハングルを使ったプログラミング言語であるらしい。

どんな言語なのかとググってみたらが日本語情報はなく、2014年2015年に同プロジェクトのページをはてブしている人がいた程度だった。

This code printsHello, world!”

밤밣따빠밣밟따뿌

빠맣파빨받밤뚜뭏

돋밬탕빠맣붏두붇

볻뫃박발뚷투뭏붖

뫃도뫃희멓뭏뭏붘

뫃봌토범더벌뿌뚜

뽑뽀멓멓더벓뻐뚠

뽀덩벐멓뻐덕더벅

これがその言語で書いたHello,World!なのだそうだが、短縮しまくったPerlより読める気がしない。本気で使おうとは思っていないのかもしれない。

ハングル文字の中に方向を示すキャラクタがたくさんあり、カーソルを動かすイメージがつかみやすいという売りはあるようだ。

Wikipedia: Non-English-based programming languages

https://en.wikipedia.org/wiki/Non-English-based_programming_languages

これ見ると英語以外で記述できるプログラミング言語は多い。中国BASICPythonC++中国語化したものかあるらしい。C++中国語版は丙正正。名称がそのまんまといえばそのまんま。BASICを見ると一つ一つのコマンド漢字1文字が割り振られているだけのような感じだ。インドヒンディー語もそんな感じ。その程度のレベルならプログラミング言語母国語に置き換えるメリットはないか

日本にもひまわりやMindなど日本語単語を使えるプログラミング言語があるけど、あれらをマスターしてる人は見かけないな。

2017-02-21

プログラムの触りにCから始めるのは止めにしませんか

Pythonが神だよ。読みやすいよ。

計算時間とか気にする人だけがC,C++を学べばいい


今時プログラムを学びたい人はなんかゲームみたいなの作れるんでしょとかwebアプリと書いてみたいって理由が多いでしょ

それならCじゃなくね。Pythonじゃね、jsじゃね。

2017-02-14

Tombo Platformについての13歳女子高生感想

iPhoneゲームブラウザで遊べるTombo Platformをリリースしました

http://blog.wktk.co.jp/ja/entry/2017/02/14/tombo-platform-is-released

技術的な詳細とかは英語ブログに書いてます。そちらも見てちょ。」などと書いてありますが、そちらを拝見すると「Emscripten」というCやC++Webで動かす(JavaScriptに変換する)技術Objective-C対応させただけということがわかります英語で書いたと言えばほとんどの人が見ないだろう、という小賢しい意図を勘ぐってしまます(実際、ブコメを見た感じほとんど誰も英語のほうを見ていないようです)。

最近iPhoneゲームほとんどは、Androidにも対応するためUnityやCocos2d-xなどのクロスプラットフォームフレームワークで作られています。この2つで作ったゲームどちらもWebブラウザで動くので※、実はほとんどのスマートフォンゲーム最初からブラウザで動かせる技術で作られているのです。Webブラウザ対応しないのは技術問題ではなく、対応していないだけというのが実際のところです。スマートフォンゲームスマートフォン向けに作られているので、単にPCブラウザ移植しただけでは面白くないというのもありますし、課金や、広告や、集客認証などなど、ゲームプラットフォームに求められる様々な機能を素敵な感じにWebブラウザ提供してくださるものがないから、ビジネスとしては衰退したというのが2017年現在です。何周遅れのことをなさっているのかな、と思ってしまます

※加えてWindowでもMacでも動きますし、Unityはほぼ全ての家庭用ゲーム機にも対応しています。今iOSであえてObjective-Cゲームを作る方は、よほど偏屈でいらっしゃる方だけかと思われます

EmscriptenObjective-C対応させたのはおそらく価値があることなのだと思いますが、現在iPhoneアプリ開発において主流な言語であるSwift対応していらっしゃらないというのも、iPhoneゲーム移植できると主張する上でちょっと誇大広告がすぎるのではないでしょうか。

たぶんこの技術を使ってWebブラウザで動かせるようになるゲームは、素人の方がお作りになったものも含めて単純に数でカウントしたとしてもiPhoneゲーム1020%ぐらい、ビジネスで作られているゲームだとは5%ぐらいではないかと思います

2017-02-02

http://anond.hatelabo.jp/20170202223904

C++案件なんかないのに、C++が条件になってるとかな。

2017-01-22

ownership とシステムプログラミングその他に関する怪文書

この会話ログフィクションであり、実在人物地名団体とは一切関係ありません。

坂木

わろた

Rust vs. Go に対する @tanakh さんの発言まとめ

https://togetter.com/li/1072495

坂木

自分理解できないもの意味がないと思いこみたがるタイプの人だということがよく分かったので原文を読まずに済んだ。ありがたいまとめだ。

安原

NTPsec が,ownership を理解していない開発者たちの声が大きくなるようなコミュニティによって開発されているということが分かって大変有意義でした(こなみかん

宮森

今までCで開発してきたプロジェクトを移すなら極端な話ownershipを理解しなくても良いわけで、悪くないのではと思う。

宮森

……が、理解できないものに対して、理解を試みず~すべきだ~と設計しろ、っちゅう人が作るソフトとはちょっと関わりたくないと思う。

安原

いや,私は C で開発してきたプロジェクトであるならばなおさら ownership を理解していないといけないと思います. ownership に理解を示さなコミュニティが関わってきた一定規模以上の C によるプロジェクト……私の第一感は「こわ…近寄らんとこ…」です.

宮森

いや、Cで開発してきた人たちって、ownershipを自前でコントロールできると思っている(思い込んでいる)人たちですんで……こわちかは同意

安原

いや,私は C で開発してきた人たちの多くは,そもそも ownership の概念を獲得していないのではないか危惧しています.元々,私はもっと楽観的で,多くの C プログラマは ownership の概念を獲得していると思っていました.

宮森

あ、それはそうだと思います概念を獲得していない

リソース人間管理をすれば適切に管理できる、という思想の下に皆さん書いていらっしゃるので……。

安原

OpenSSL騒動の時,関数の途中で return したことによるリソース漏れ揶揄したことがありますOpenSSL のようなインターネットの基盤を支えるオープンソースプロジェクトにおいてさえ, ownership の概念を獲得していれば脊髄反射で気づくであろうバグが随所に見られたことには本当に絶望しました.

安原

ああ,はい人間を信頼しすぎているというのはいかにもありそうですね.

藤堂

C++er の方がその辺もっときちんとしているように見える

安原

しろ C++ によって ownership という概念が明確になり,その重要性が認知されるようになったのではないでしょうか? これについては,私は歴史的なことが分からないので真偽のほどは何とも言えませんが.

宮森

シニア開発者しかC++/Rustが受けないと思うの、まさにその点だと思っていて、人類を信頼したがために足どころか頭を吹き飛ばす経験を積んでいないからだろうなー、とか。

宮森

OSとかシステム系のプログラマの人々、基本的リソース人間が適切に管理するし管理できると考えている人が多い印象([検閲削除]社時経験)。言語側で安全を確保したい、的な話をしても相容れなかった記憶が。

坂木

[検閲削除] のコードには、間違って自分の足どころか頭を撃ち抜いてしまった偉大な先人たちの知恵が詰まっていて、開発していてとても勉強になります。なお [検閲削除] は頭がなくなっていることに気づかずゾンビとして生きている模様。

今井

自分が知っている C 「しか」書けない職業プログラマ基本的地雷だなぁ...。

今井

リソースどうこう以前に、そもそもちゃんと構造化されてるコードが書けるかも怪しい(個人の感想です。見識にバイアスがかかっている可能性があります)

安原

うーん,数値計算系のチームやコミュニティも ownership の概念の獲得,重要性の理解,その管理自動化することへの理解,これらを期待するのは難しいだろうなあ…….そもそも高度なリソース管理必要になる場面少ないし…….

坂木

コード品質が強く求められるプロジェクトとそうでもないプロジェクトがあるからなあ。クライアントサイドソフトウェアは割と品質が求められる気がする。

安原

OS 実装とかシステムプログラミングって,クライアントに直接接しないだけで,その上にクライアントサイドソフトウェアが載るわけで,コード品質が強く求められると思うのですがそれは…….まあ, API とかで切り離されているので,そこだけしっかりしていれば,という話はあるか.

宮森

そこはコードレビューテスト等でカバーっちゅう。まぁ確かにコードには実際assertが入りまくったりするわけですが。

坂木

品質が強く求められるからといって品質が高いわけではないのが問題ですね

今井

あとは、デモが作れればいい、的なのも同じかなぁ。

宮森

メモリ管理、freeせずに終了してOSに全て回収させれば管理しなくて良い。

宮森

メモリ管理コンパイル時に全て静的なサイズで確保すれば管理しなくて良い。(FORTRAN77並の感想)

安原

OSGC してくれる論, TPO をわきまえているならば普通にありですよね(TPO をわきまえているならば!).

今井

まー、 offline で動くバッチ、的なのはそこまでメモリ管理とか / パフォーマンスとかにもシビアにならなくていいし(最悪オーダーがほどほどならよい、的な)、そいう文化にいると、雰囲気にのまれる人が多い、というのはまぁわかる。

坂木

私は基本その文化で過ごしてきたので現在進行形でわりかし困ってますね……

今井

あれ、そうなんです? 私がかかわった人のなかでは、コード見ててもむしろカッチリしてるほうだと思ってたのですが...。

(つまり、ここから坂木さんのハードルめっちゃ高いという帰結が...)

宮森

いろいろ言っていますがワタクシ、そういう管理必要プログラムは全く書けなくなりましたので今書くと死にますプログラム顧客大事データが)

安原

しかし,システムプログラミング界隈に「人間リソースを適切に管理できる」という悪しき信仰がはびこっているの,何か構造的な原因があったりするのかなあ?

宮森

システム系、基本的に生のハードウェアが透けて見える言語を使う必要があって、そのために選択肢がCしかなくて、手段が限られているからこそ信仰が発生した、という認識

宮森

実際、Linuxカーネルとか、規模からすれば驚異的に少ない数のバグで動いているので、信仰心が生まれ気持ちも分かる。

宮森

他の言語OS書くっていうのも研究レベルではあるけど、実用になっているのは見たこと無いですねぇ……。

坂木

Linux カーネル、一体どうやったらあの規模のコードクオリティコントロール出来るのか本当に不思議

安原

Linux カーネルのアレは,属人性依拠しすぎていて全然スケールしないのでは…….

坂木

Linux カーネル属人性高そうではあるけどそれでも実際に十分スケールしているからなあ…… ヤバいレビュアーごろごろしているのかな

宮森

属人性依拠しさえすればできるので十分な数の開発者がいれば問題になりません(キリッ

安原

私も [検閲削除] のコミュニティを見てましたから,各々必要ドメインにおける圧倒的なタレント性を持った人たちが1ヶ所に集結して奇跡アンサンブルを奏でうる場合がありうるのは理解しているんですが,本当にただの奇跡しかないと思っています

宮森

つーても機械エンジニアリング町工場職人芸を必要であれば使うように、属人性を求めるのも一個の正しい戦略だと思うんですよね。

宮森

なおその対極がみずh(省略されました

安原

Linux カーネルにおけるスケール云々は, Linux カーネルコミュニティ自体におけるスケーラビティではなくて,(システムプログラミングコミュニティ全体(他のプロジェクト)へスケールするかどうかを言ったつもりでした.

坂木

まあ人外を集めるという手法一般にはスケールしないですからね……

宮森

C系がシステム系で優先されるの、ツールを変えるとツール独特の罠があるので、罠が全て分かっているツールを使う、っつうのもあるな。

安原

システム系、基本的に生のハードウェアが透けて見える言語を使う必要があって、そのために選択肢がCしかなくて、手段が限られているからこそ信仰が発生した、という認識

これが原因だとすると,やはり Rust だ……Rust しかない…….ツール周りとか,まだまだ未整備な部分たくさんあるけれど……そこをクリアすれば…….

坂木

Rust は 1.0 が出る直前くらいにちょっと触ってイテレータが作れなくて敗北したっきりだな。

坂木

イテレータっていうか Java でいう Scanner を作ろうとしたんだっけ。サードパーティライブラリも探してみたけどその頃は I/O 周りの API が unstable でビルドが軒並み壊れていたりしたな……

藤堂

1.0 以前のことは忘れましょう (本当に unstable)

安原

Rust,型でエラーを弾くだけではなくて質の低いプログラマまでも弾く印象.

坂木

一般に型の強い言語は質の低いプログラマを弾きますね(Haskell などを思い浮かべながら)

安原

「Rust 経験者」という条件でプログラマ募集して,それで入ってきた人材に C を書かせればよいのでは!(ピコーン!

藤堂

犯罪ですよそれは

安原

はい

藤堂

haskell 経験者を集めて php 書かせようとした会社がどこかにあったような (ヘイトけがたまる)

安原

まさにそれをイメージしていました.

宮森

どういう顛末になったか詳しく知りたいw

藤堂

うーん、それ以降の話は知らず

今井

Rust そして誰もいなくなった、にならないかが一番心配だったりする

安原

それな

宮森

もしかして、NTPsecの人がRustでミニサーバーを起こすのにすら苦労していたの、普段からバグありのコード生産しているからなのでは、という気がしてきた……。

(この辺で一同寝落ち

2017-01-19

http://anond.hatelabo.jp/20170119210801

ネタか?

c++なんて低級だからいい腕もってると思われるだろう

最近rubyとかphpプログラマー気取ってるクズが多いから余計にそう思う業界多いだろ

2017-01-09

プログラミングの勘所

プログラミングの入門者には伝統的に変数やif文、for文などが教えられてきました。

昨今ではJavaやってGoogle Play Storeでアプリリリースするのが目標になるのかもしれません。

開発環境は年々高級になっており、以前より人の思考に近い感覚コーディングできるようになってきました。

はいえ、かつてWindowsGUIプログラミングがそうであったように、

スマホにはスマホ流儀があり、いくらアイコン右クリックしたいといってもスマホには右クリック概念が無いという、

今までの常識思考の在り方に対する挑戦も数多くあります

様々な流れに翻弄されつつもプロダクトを開発し世にリリースしていくことは、

プログラマ選択できる使命の一つとして今後も世界中で支持されていくと私は信じています



プログラミングとりまく状況はこの30年で大きく変化したと言えます

それでも基本的な部分は変わりがありません……などというのが通例ですが、

からといって基礎練を素直に続けることが正しいとも思いません。

今の新しい世代の人なら、まずはスマホアプリWebアプリWebサイトを目指すべきでしょう。

ハードウェアに興味があるなら、ラズベリーパイやArdinoを組み合わせても面白いですね。



すると、今とっかかりにすべき言語も絞られてきます

アプリならJavaSwift。(Unityを使うならC#ですね)

Web系ならphp。(ruby on railsもいいかと思います)



(15年前だったらC++でかっこいいwincdowsゲームを作りたい若者で溢れていました)



何かを作るにあたり、まずは1ボタン1機能から始めると良いと思います

ボタンを押したら、何かコマンドを実行する。

それはメール送信だったり、画面に文字を表示したり、ショップではがねのつるぎを購入したりと様々です。

技量が上がると、ボタンを増やしたくなります

ボタンを押すとボタンが増えたり減ったり、違う画面に移ったりしたくなります



途端に難しくなります

それらを整理するためにオブジェクト指向とやらを使わないといけなくなります

バグを出しにくくするための工夫が必要になってきます



何かを作る際に、機能が多くなると、それらを整理する手間が発生します。

グローバル変数はやめようとか、goto禁止というのはそういう活動の一環として生み出されてきたハウツーです。

そして自分の作りたいものは往々にして自分の実力を超えた所にあります

そこで挑戦と葛藤が始まります

幾多の困難を乗り越え、今の自分ならどの程度の規模のものを無理なく作れるかということがわかる場合があります。(わからない場合の方が多いんですけど)

するとあることに気づきます

自由に作りたいものを列挙するのは重要ですが、

最終的に何を作るか、何を作れるかというものを見据えながら、本当に必要機能を選別しないといけないのです。

欲しいものは全ては手に入りません。

全部じゃないと意味が無いなら、即座に全てをあきらめるか、考え方を変えなければ生き残れません。



プログラミングをする上で、夢を実現する技術を学ぶわけですが、

それには、何を実現したいと願うか、何を夢とするか、をコントロールする術も含まれます

そしてそれこそが、プログラミング、ひいては

生きていくために大切な希望を見つけるための技術であると気づかされます

2016-12-08

奇妙で残酷作業依頼 - フリーランス残酷物語 Advent Calendar 2016 15日目

この記事「フリーランス残酷物語 Advent Calendar 2016」15日目のポエムです。えっ、まだ12月15日じゃない?あぁ、そんな事もあるかもしれないですねぇー。でも気のせいじゃないですかたぶん。

まず前置きですが、mesaka さんの書いた記事萌えましたねぇ。じゃなくて燃えましたねぇ。まぁ、会社バカにされたっていいじゃないですか。社員プログラマーバカにされたってしったこっちゃありませんよ。Qiita ユーザーにもバカにされ、はてブに晒され、社会からゴミ扱いされたかどうか分かりませんが、フリーランサーはそれでも生きている限り契約を繰り返し日々前進していかねばならないのです。愚痴ることで生きていけるのなら問題ないのです!というわけで、mesaka さんには最終日の日記でも燃料を投下してほしいと思うわけです。よろしくお願い致しますm(_ _)m

前置き終わり。さてさて、僕がフリーランスだった2004年頃に体験した、奇妙で残酷作業依頼のことを書きたいと思います

フリーランスになる前はゲーム会社社員プログラマーをしていました。コンシューマアーケードゲームを何本か開発したのですが、ゲームの発売が近づくと月400時間以上の長時間労働を行います。そんなことを何回もやっていると人間は壊れます裁量労働制裁量ってどんな意味だろう、、、と考えながら3年働き、もうダメだなと思った時に同期の10人は誰も残っておらず、一番最後退職者となりました。その後1年は携帯ゲーム会社ゆるふわな開発を行い、元気がでてきたところでフリーランスとして働き始めました。

フリーランスとしての一般的作業

初めての契約3DRPG を開発している会社と結びました。準委任契約なので会社に出向し決まった時間働き、毎月決まったお金をいただく形です。業務内容はプログラミングとそれに関連する作業となります。関連する作業曖昧ですが、まぁ雑用含めてお仕事するうえでの作業全てなので、社員プログラマーと働き方はそんなに変わってない思います

一般的プログラム作業であれば、例えば MMORPG の開発ではマップ表示を担当しましたが、これはマップ担当3Dデザイナーさんとデータ仕様などを決めていって、あとはプログラミングするだけのお仕事です。この開発ではプログラム全体の設計プログラマーのまとめ役もやっていたので、メンバーへの指示出しやタスク管理プログラミングに関連したお仕事です。

少し変わった作業だと PS2 で発売した 3DRPG のコードを渡され、「VisualStudio で動くようにして。大丈夫、描画エンジンだけ DirectX で動くものを別で用意したから」という依頼だったりします。幸いにして同じような依頼を前職の社員ときに受けていました。その時は PS 用に発売した 3D 格闘ゲームプログラムを渡され「ナムコのSystem12基板で動かせるようにしてよ。大丈夫PSと System12 の違いは CPUクロックが違うだけだから」というものでした。どちらの依頼もプログラムと向き合うだけの作業なのでとても単純なです。CodeWarrior で書かれたコードVisualStudioコンパイルすると2万くらいコンパイルエラーを吐き出すのですが、それをもくもくと修正するだけです。

新人プログラマー教育係もプログラミングに関連したお仕事です。ペアプロで一緒にゲームを開発していくのはとても楽しかった!あと成長していく新人かわいいぺろぺろ。

当時その会社ではまだバージョン管理ソフトを使っていませんでした。社員毎に Sambaディレクトリがあり、そこにプログラムファイルを配置して共有を行っていました。さすがにこれは不味いと思いバージョン管理ソフト提案も行いました。前職では CVSMicrosoft Visual SourceSafe使用していましたが、CVS には悪夢マスターアップ1週間前にデータが壊れる)しか思い出がない事と、Visual SourceSafe無料ではなかったため、当時流行りだしていた Subversion検証したレポート作成し、それをもってシステム管理部門を説得するということもプログラミングに関連したお仕事でした。システム管理部門企業ガーディアンですので、そうそう実績のないソフトウェア会社内の PCインストールさせるわけにはいきません。2004年頃の SubversionRuby など新しい技術を使う Web 業界ではそれなりに認知度があったかもしれませんが、C++ も使わず C のみで開発を行っているゲーム業界での認知度はとても低いものでした。時間をかけじっくりとシステム管理部門を説得していく必要がありますが、これはプログラミングに関連したとてもとても大切なお仕事です。

なお、会社から社員にならないかとの提案を頂いたのですが、当時はフリーランスという契約のみで結ばれた、ときには人情のかけらもない綱渡り状態スリルと興奮を感じていたため断りました。24歳という若さのためか、それとも前職で壊れた頭がまだ治っていなかったのかはわかりません。

そして奇妙な作業依頼

そのようなプログラミングプログラミングに関連する作業を行っていたところ、プログラマー全体を統括するマネージャーから奇妙な作業依頼を受けました。それはとある社員プログラマースキルチェックをして欲しいというものです。


新人教育でもなく、サポートしながら一緒にゲームプログラミングを行っていくのではなく、スキルチェックです。スキルを見るならペアプロでもしてゲーム実装を行っていくのが良いと思ったのですが、製品にそのプログラムを入れたくという事で却下されました。また、スキルチェックに僕の時間をあまり使ってほしくないそうです。まぁそりゃそうだよねゲーム開発に時間使わないと。そこで、既存の開発とはまったく関係ないプログラム課題を出して実装してもらいました。


しかし、まず課題説明するところから問題が出ます。こちらの説明を全部紙にメモっているのですが、話が先に進むとメモれないとのことでメモり待ちが発生しました。口頭で2分くらいで伝わる仕様10分くらいかかります。全部話しを聞いてから後でメモるのではダメなのかなと思ったのですが、どうもこのやり方でしか話が聞けないようです。


翌日に進捗を確認たかったのですが帰ってしまっていたので、次の日の朝に進捗を確認するとまだ実装中とのことでした。分からないところがあれば聞いて欲しいと伝え、作業を続けてもらいます毎日こちらから進捗を確認するのですが、もう少しでできるという返事を貰う以外に特にアクションを起こしてきません。そんな状態で1週間が経ちました。ちなみに課題は1日くらいで実装できるものと想定していました。そして、この状況をマネージャー説明し、チームメンバーに入れれるかという質問には難しいと答え、作業は終了となりました。


そして、その社員プログラマー退職していかれました。

社員解雇

フリーランス解雇簡単です。しかし、社員解雇というのはとても難しいものです。金の横領など分かりやすい行動をとった場合は別ですが、プログラミングスキルが低い事で一方的解雇しようものなら逆に訴えれて終わりです。僕の今まで関わった会社さんでも、解雇した社員が訴えを起こさない代わりに和解金を要求し成立したケースもありました。スキル不足の社員解雇するなら、社員にその事を納得してもらい円満退職してもらうのが良いと思います。納得してもらうには情報必要です。「○○を依頼しましたが、あなたは達成できませんでした」という情報をいくつも集めて納得してもらいます退職していかれた社員プログラマーフリーランスの僕のところに来る前、2人の社員プログラマーのもとでスキルチェックを受けていたそうです。僕で3人目だったわけですね。それら3人分の評価を伝え、納得してもらい退職してもらったのだと思います


なんにせよ、一連の流れの中で僕は社員印籠引導を渡すという残酷作業をしていたわけです。正直楽しい作業ではありません。このような不幸なフリーランスを増やさないためにも社員の方々には採用時のスキルチェックをしっかりと行って頂きたいと思う次第です。というかそいう首切り作業社員でやって。。。あ、でも外部委託した方が会社としてメリットが大きいか

フリーランスのその後

こちらの会社さんがある意味消滅と言ってしまえるような状態になったので別の会社社員として働いたものの、また頭がおかしくなってたのかフリーになり、受託用の個人会社まで設立し、その会社も今年で閉じ、今はサンフランシスコ英語勉強趣味プログラミングをしています。あまり普通ではないので最初会社でアホになってからそれが治ることはなかったようです。長時間労働マジ怖い。

自己紹介が遅れましたが akiraak といいますQiita に糞ポエム晒すのは公衆衛生上よくないと思い増田に排泄した次第です。Qiita ではこんなのを書いています

TensorFlowで株価予想シリーズ

ディープラーニング面白いのでみんな遊びましょう!

2016-12-02

http://anond.hatelabo.jp/20161201235627

競技プログラミングが何やってるのか知らないけれど、

C++数学問題を解くツールではないよ。

Matlabとかの方がいいんじゃないの。

2016-12-01

c++で自己実現できるのか?

『やさしいC++』という本を買った。第三章まで読んでみた。

この本を読み始めた理由は、「TOP CODER」というオンライン競技プログラミングをやりたいと思ったから。

元々将棋とか競う系が好きだったんだけど、生産性の無さに自信を無くして、新しいものがないかなと思ったら、出会った。

  

TOP CODERというやつは、実力でレーティングされているらしい。

プログラミング数学問題を解くというのに、かなり興味を惹かれている。

世の中の問題はこうやって解かれているんだなあというのを知りたいからだ。

  

また、プログラミングで強くなることは、そのまま知性につながる。

将棋場合ソフトさんにとってかわられて微妙なところだが、C++での強さはまだまだ現役だろう。

とりあえず、100時間くらいは頑張りたい。

2016-11-29

エバンジェリストについての覚書

・K氏(Mというペンネーム活動

1994年生まれ H県出身 C++ Haskellを得意とする

大学在学中に校内システムハッキングし停学処分

その後、上京、各種勉強会に参加し、 そこで出会った某氏交際を開始

就職先を探すも主に性格面の問題で見つからヒモ状態

某氏宅に居候し、ドアを破壊するなどのDVを振るう。Twitterで内情を暴露され、自暴自棄になり西武線に飛び込み自殺

該当の期間の某氏のツィートはすべて削除されている。




悪いのは某氏でなくK氏の方だと思うが、ああ見えて中々の修羅場を潜り抜けてきたのだなと思う

2016-11-24

http://anond.hatelabo.jp/20161124184113

C++プログラマなら、転職あっせんサイト登録すればすぐにオファーがたくさんくるでよ。

んー今C++プログラマやってて仕事きついからやめたいなーと思って職業訓練さがしたら、プログラミング関連1個しかなくて、


ソフトウェア管理

 コンピューターに関する基本知識と、Java言語によるプログラム作成システム設計ネットワーク構築等の実技を学びます

※入校時期の記載のない科目は4月入校です。

訓練期間(入校時期) 1年

定員 30名

主な対象者 高卒・離転職

取得可能資格 基本情報技術者

(在校中に基本情報技術者試験の午前問題受験

免除となる「基本情報技術者試験午前問題免除講座

修了試験」が受けられます。)

Javaプログラミング能力認定試験


だって

自分場合基本情報はもう持ってるし、このレベルで1年もやること考えたらあまりにも時間もったいない気がするわ

Javaネットワーク全然詳しくないけど、仮にそれをやるにしても自分の今のレベル考えたらちょっと遠回りすぎる気がする

適当IT技術者派遣にでも登録して実務でいろんなことやったほうがまだマシな気がする

2016-11-22

俺はもう駄目かもしれない

30歳、独身独立系SE

派遣契約で入ってる客先の要求レベルが高すぎる。

元々インフラ系のシステムの開発系SEだったが、部署方針変更でアプリ系の開発系SE配置転換になった。

言語C++なのでワリと親しみのある環境だが、それ以外のほとんど全てが元の職場と違い、悪戦苦闘する日々。

日に日にエスカレートしていく要求に付いていけない。心が折れそう。

一応来年契約が切られる事はないが、俺は作業速度が遅いそうだ。

頼れる人はいない上に毎日降ってくる作業要求レベルは高い。

社会人になって7,8年、色々辛いことはあったけど、今が一番辛い。

 

一応、瞑想運動最近はサボリ気味)はしているのだが、

病んでいくスピードに追いついていない感じ。

 

まだ、増田に書き殴れる程度には余力があるのかな。

ほんとに駄目なら何もする気起きないだろうしな。。

 

はぁ、1ヶ月くらい休みたい。

2016-10-18

貧乏学生への学習アドバイス

http://anond.hatelabo.jp/20161017031727

老婆心ながら,おそらくSIer関係を目指しているだろう情報系?学生へのアドバイス

金銭

間違っても学生課に直接頼ってはいけない.悪手.

どの大学でも学生課は糞対応なので,カウンセラー通して学生課に学費免除なり,奨学金なり,対応を仰げ.

進路面

このままいくと研究室ゼミ配属で積みそうなにおいするから中退・途中就職大学頼らない就職)の選択肢も考えておけ.

技術

大学頼らないで就職どうするかが大変だが,とりあえず,

大学の授業だと理論多くて,

実務の話が少ないのも事実なのでおすすめは,

今はネット勉強できる時代から

- http://dotinstall.com/ title: dotinstall]

- http://gacco.org/ title: gacco]

- https://schoo.jp/ title: schoo]

- 各大学OCW

あたりがおすすめ.探せばもっとあるで.

SIer関係ないと思われるが,Web系への選択肢も拡がるしな.騙されたとおもってやっておけ.

最近だと技術文書Markdown で書く場合も多いし知っておいて損ないで.

ドットインストールにも授業がある.

基本情報持ってるなら知ってると思うが,

慣れておくといいで.ついでに言語C++でもいいが,SIerならJava8勉強しておけ.

多分授業だけだと,実際のコード使わないと思うので,自分インストールして使ってみるとええで.

実務なら絶対データベース使うんで,

MySQLインストールして使えるようにしておけ.基本コマンドだけええで.

後々データベース資格シルバーゴールド)にもつながるしな.

基本情報持ってるならある程度知ってると思うが,低レイヤIP/TCP, UDPソケット通信をCでもJavaでも書けるようにしておくとええで.

これも後々,ネットワーク関係資格もつながる.

開発の話あるしね

まず,add, commit , pushだけでええで.

ドットインストールにもある.

今までやったこと忘れるのもったいないし,他人に見せる意味でも技術ブログやっておけ.毎日更新かいらんで.

Linuxインストールしたレベルで,やったことならなんでもええで.

授業ノート電子化してもええで.

技術者就職面接で,(関係ない)バイトしてました,サークルやってましたじゃあん意味いからな.

履歴書ブログURL書いておくんやで.


技術面(余裕があるなら)

SIerに限らず技術関係の人たちの情報拾える.

SIerネタにされがちだが..

BS放送大学の授業タダで見れるので,

録画して好きな時間観て見ておけ.

情報系の授業もある.

コード書くようになったら騙されたと思って読んどけ.

自分の中の名著にしておけ.

優先度は低い.研究者になるなら重要なんだが..

技術文書を書くとき必要から読んどけ.


進路面

大学を頼らない方向で,地方住みでないなら,

Code IQかPaizaおすすめ

スカウト来たら,入らないにしても会ってみるとええで.

バイト大事なのはわかるが,大学目的は,知識選択肢拡げるというのもあるので,頑張って生きるんやで.

じゃあの

2016-09-03

なぜITはこんなにも不完全なんだ

もう50年も60年も経つじゃないか

なぜ未だにトランジスタについて学ぶ必要があるんだ

なぜ未だにCPUの内部構造について知っているのが当たり前という風潮なんだ

なぜ未だにC++が書けるプログラマが本物のプログラマ呼ばわりされているんだ

なぜ未だにコーダーという単純労働者必要とされているんだ

なぜ未だにホームページ屋さんという職種が成り立つん

なぜ未だにCiscoの設定書くだけの資格がもてはやされるんだ

なぜ未だにアルゴリズムを書く能力絶対必要だとされるんだ

なぜ未だにプログラムを書いているのではなくAPIを叩いているだけだという罵倒が成り立つん

なぜ未だにマルチスレッドプログラミングなんて手で書いているんだ

なぜ未だにUMLマウスポチポチ書かなきゃいけないんだ

なぜ未だにライブラリが増え続けるんだ

なぜ未だにコンピューターサイエンスなんて学問必要とされるんdな

もうプログラムを書きたくない

方法論を考えたくない

そんなのを作りたいものを作るだけの人間が考えるのは間違ってる

簡単に良いものが誰にでも出来ることが理想に決まっているだろう

人間なんて働かないほうが良いに決まっている

なぜこんなにも不完全なんだ

なんでまだこんなにも人間の手を煩わせるんだ

こんなのは現代手工業

SOHOが成立するのは時代が進んでいるんじゃないぞ

フレックスタイム産業革命以前への退化だぞ

早く産業革命が来てくれ

人間に何も考えさせないでくれ

もう休ませてくれ

助けてくれ

2016-07-25

javaはジャバジャバ水遊び

C++はあれをプラプラさせてる

C#はやたらと周りを威嚇してる

君は何タイプかい

2016-07-07

どうしてC++使いはクズばかりなんだろう

いやC++で酸いも甘いも経験した連中と言うべきか。

これはほんとに不思議

ほんとに。

例外がない。

逆に例外を連れて来い。

オレがそいつクズと呼んでやる。

2016-07-06

コンピュータ言語言語ごとの特徴を俺が教えてやる(異論は認める

コンピュータ言語って世の中に山ほどあるけれど、それぞれの言語ごとに特徴がある(特徴のない言語は廃れていく)。

まり言語に詳しくない人相手に、俺の考えるそれぞれの言語の特徴を書いてみようと思う。

なお、取り上げるのはある程度広く使われている言語に限りたいと思う。

TL;DR

言語 概要
C言語 高速動作するバイナリ生成を目的としたコンパイル言語。だいたいどんな環境でも使えるがバグやす
C++ マニアック言語、高速、習得大変
Java サーバで高速かつ安定に動作するコンパイル言語、大規模でよく使われる
C# 主にWindowsクライアント用のバイナリ生成に使われるコンパイル言語
Perl 広く使われていたが今は若干時代遅れのスプリクト言語。汚い
Python Perlにかわって主流になりつつあるスクリプト言語。綺麗
PHP Web開発にフォーカスされたスクリプト言語一世を風靡した。
Ruby とても綺麗なスクリプト言語
JavaScript ブラウザで実行出来る唯一の言語言語自体はいまいちだが、ブラウザ事情需要あり
Go サーバサイドで安全かつ高速動作するバイナリ生成を目的としたコンパイル言語

詳細

C言語

メモリに直接アクセスして書き換えるといったコンピュータ機械語に近い言語構文を持つため、高速な処理が可能言語

コンパイラ歴史も古く環境も整っており、組み込み系などを含むほぼ全ての環境で利用可能な万能言語

一方で、メモリの確保や解放といった基本的なことも自前で処理する必要があるため、コーディング効率が良くなく、多種多様バグを生みやすい側面も持つ。

ある程度以上のエンジニアであれば常識として知っておきたい言語だが、初めて覚える言語としてはあまり適当ではない。

C++

C言語オブジェクト指向を導入した言語C++言語とはあまり呼ばれず、しーぷらすぷらす、もしくは略してしーぷらぷら、しーたすたす、などと呼ばれる。

C言語の速度を維持したままオブジェクト指向テンプレートなどの効率的記述可能にしようとした意気は真っ当だったのだが、

当時最先端だった色々な技術思想を叩き込んだおかげで、あり得ないほど複雑化した言語としても有名。

C++理解しています」という人はほぼ初級者で、本当に理解していくほど「C++には自信がありません」となっていく。

速度を追求する分野では良く使われている。完全に理解するのは難しいとしても、テンプレートくらいまでは理解しておくと仕事上なんとかなる…かもしれない。

Java

サーバサイドで安全コードを実行する目的でよく使われる言語。長い歴史を持っており、比較的高速に動作する。

当時は画期的だった「バーチャルマシン」や「ガベージコレクション」という機構を備え、CやC++でよく問題になるメモリ解放忘れというバグを生まず、

サーバサイドなどで何千時間動作するソフトウェアに適した言語として受け入れられた。

必然的エンタープライズ用途で利用されることが多く、各種ツールなども豊富人海戦術がしやす言語という側面も出てきた。

一方でブラウザHello Worldを出すだけでも大変な労力を必要とするので、スタートアップなどではあまり使われない。

ガラケーアプリや(ちょっと違うが)Androidなど、クライアントサイドでも使われることがある。

プログラミング言語最初Javaを覚えるという人は結構多いが、仕事としてJavaを使うのは大抵SI系の業務になり、なかなか辛い労働を強いられる可能性が高い。

C#

クライアントサイドで安全コードを実行する目的でよく使われる言語。こちらも比較的高速に動作する。

元々はWindowsクライアント用の言語であり、Javaとは違ってクライアント向きのAPIが多数ある。

マイクロソフトが開発した言語ということもあり、マイクロソフトの優れた開発環境が利用出来るので開発効率は非常に高い。

Unityなどでも利用可能であるが、基本的にはクライアントの実行形式ファイルを生成する目的が大きく、サーバサイドではあまり使われない。

自作ゲーム開発をしたいのであればうってつけの言語。初めて覚える言語としても十分に良いだろうが、C#を使う仕事は近年無くなりつつある。

Perl

ほぼ全てのLinuxディストリビューションに含まれており、ツールや様々な用途で使われていた。

上に紹介したC、C++JavaC#のようなコンパイル言語とは違い、(少し語弊はあるが)1行ずつ実行してエラーがあれば止まるスクリプト言語である

ちょっと開発してすぐに実行ということが出来るのと、コマンドラインでワンラインコードを読み込ませてちょっとした処理が出来るなど応用範囲の広い言語である

20年近く前にWebCGIが普及した時には、ほぼどのようなサーバ環境でも実行可能だったこともあり、Perlを使うことが極めて多かった。

しかし、主に読みづらい言語仕様のせいで、近年新規ではほとんど使われなくなった。既存コードもどんどん別の言語に置き換えられていることが多い。

日本大手Web企業の一部が使っているので、そこに就職するために覚えるのもアリっちゃアリだけど、今からPerlをわざわざ覚えるのは強くオススメしない。

Python

後発のスプリクト言語。こちらもほぼ全てのLinuxディストリビューションに含まれており、それゆえに広く使われている。

インデントまで言語仕様規定することで、誰が書いても読みやすコードになるように考えられている言語である

Perlの代わりに使われることが増えていて、周辺ツールなども充実しており、小規模から大規模までカバーする勢いがある。

ただ、Python2とPython3のバージョン間での非互換性があまり綺麗に設計されていなかったため、そこで混乱を招いていたこともあった。

最近だとマシンラーニング系のライブラリPythonが使われていたり、海外ではPerlに代わる言語として受け入れられつつある。

最初に覚える言語としては良い選択肢だろう。

PHP

Web開発に特化したスクリプト言語CGIの代わりに使われ始め、一世を風靡した。

以前CGIWebに何かを表示するには比較的大変な労力を割かなければいけなかったのが、PHPを使うと誰でも即座にWeb開発が出来たので爆発的に普及した。

またphp.net豊富ドキュメントスニペットのおかげもあり、開発初期の効率が大変に良い言語である

残念なことに、言語API設計がいけていない点が多く、一部の人から蛇蝎の如く嫌われている。

今でも根強い人気があり、海外でも小規模プロジェクト最初の開発にPHPを選ぶのは比較的よくある選択肢であるようだ。

Webアプリを開発をしたいという明確な目的を持つ人が、最初に学ぶ言語としてPHPを選ぶのは理にかなっていると思う。

なおこの言語を本気でディスってる人は大体視野の狭いエンジニアであることが多いので、地雷エンジニアを見分けるのにも役立つ。

Ruby

綺麗なスクリプト言語日本発で世界的に普及している数少ないIT技術の一つ。

言語仕様が美しく、それゆえにファンが多い。Ruby on RailsというWebフレームワークの登場で、Webアプリでの採用例も一気に増えている。

基本的には他のスクリプト言語と同じくサーバサイドでのプログラミングに用いられることがほとんどである

スクリプト言語で何かを作成するのであれば、Rubyを選んでおけばそう失敗することはない万能言語

サーバサイドで何かすることに興味を持っているならば、最初に覚える言語としてはとてもオススメ出来る。

一方で、なぜかRuby採用するWeb側のフレームワーク(具体的にはprototype.jsCoffeeScriptはいつもクソなので、そちらは深入りしないのが吉。

JavaScript

ブラウザで動くスプリクト言語ブラウザ戦争が勃発していた18年前、奇跡のようなめぐり合わせでベンダー間の合意が取れ実装された言語

言語としてはプロトタイプベースオブジェクト指向という少しめずらしい形式を取っているが、実際にはあまりその特徴は利用されていない。

言語仕様イマイチで、大変バグを生みやす言語であり、また関数スタックが深くなる特性もあり、あまり積極的に使うべき言語ではないが

ブラウザで動く言語現在これしかないので、大きなシェアを持っている。

一部の物好きがサーバサイドでこの言語を使おうと(主にnode.jsで)四苦八苦している(とはいえ、1つの言語Webサーバが完結するのは大きなメリットだ)。

ブラウザで動く唯一の言語のくせにとにかく書くのが面倒ということもあり、多数のAltJSと呼ばれるJavaScriptに変換される別言語を生み出されている。

まあJavaScript本体人が手で書く言語ではない…というのがECMAScript5までの印象だったが、新しい規格が順次導入されており、今後に期待。

Web業界で生きていくならば、好むと好まざるとにかかわらず覚えなければいけない言語である

最初に覚える言語としては、ブラウザ上でゲームなども作れるし、node.jsサーバサイドもできるしで、意外とオススメだったりする。

GO

C、C++Javaと同じでコンパイル言語サーバサイドで高速かつ安定なバイナリを出力することを目的とされ設計されたGoogle発の言語

その目的においてはかなり高性能を誇るので、特に速度を要求されるサーバサイドでのプロジェクトでは導入が進んでいる。

それ以外の目的ではあまりこの言語採用するメリットはないが、ニッチ用途ピンポイントで抑えており、これから広く利用されることも期待される。

コミュニティも活発であり、初めて言語を覚える人が参入すれば喜ばれるだろう。言語としても美しい言語なので、サーバ系のプログラムに興味があればオススメである

まとめ

繰り返しだけれど、それぞれの言語ごとに特徴があり、特徴のない言語は廃れていく。

ここに挙げた言語は何らかの特徴があり、何らかの用途必要なので生き残っている。

その背景を知った上で、ここにある言語は全部ある程度読み書きが出来るようになると素晴らしいと思う。

2016-06-26

いまさらRubyはない

Pypyだかなんだかが何をするライブラリか知らない程度の門外漢だけどRubyやるくらいならPythonやる

Rubyオワコン

Rubyいたことないけど

本屋プログラミングコーナーのぞいてもIQ2桁の言語Rubyで3桁ならPythonという感じ

PHPPerlJavaJavaScriptやってる連中の言語Ruby

HaskellGoC++をやっている上級国民言語Python

あるいは、ホテル間接照明に照らされた女の子おっぱいを揉む人の言語Python

スーパータイムセールで買った半額弁当ワンルーム蛍光灯の寂しい部屋で孤独に糞に変え、自分弁当を糞に変えるパイプにすぎないという現実に直面してもとくに抗うでなく、人間なんてそんなもんだと納得し乳輪から毛が何本か生えてる自分の胸を揉む人の言語Ruby

だいたいそんなイメージ

2016-06-17

各界隈の頑固おじさん

PHP 徳丸
C++ 江添亮
JavaScript mizchi
Vim h_east
Google Yoshifumi YAMAGUCHI
アメリカ トランプ
北朝鮮 人造人間19号みたいな人
近所 3丁目のげんこつ八兵衛さん


昨日、駅でマナーの悪いDQNを注意してたおじさんがかっこよかった。

今の時代は人に嫌われるのが怖くて叱れない人が多いんだよねぇ。

2016-06-12

言語ごとの定数の宣言方法

C,C++

→defineを使って、主にヘッダファイル定義

VBVBA

Constステートメントを使って定義

Java

→定数定義という概念がないので、

 final変数を変更不可の変数として宣言する。

 定数をクラスでまとめるのが普通

ログイン ユーザー登録
ようこそ ゲスト さん