「C++」を含む日記 RSS

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

2020-12-17

anond:20201217105846

型推論メモリ節約のためじゃなく型エラーを出すことで問題を早めに検知できるようにするためにあるんやで。

動的型付け言語使ってたら誰でも「"12" + 3 → "123"(15にする意図コードだった)」というバグ経験してるやろ。

(まあ上の例はC++文字列結合をプラス演算子オーバーロード実装してしまったのが諸悪の根源という気がするけど)

なんか以前からずっと思ってたんだがRailsというかRuby界隈は宗教というか自己啓発ビジネス臭さえするのがイヤだ

金持ち父さん…とか7つの習慣とか、そういう詐欺のカモっぽい人も多いイメージがある

Rubyという言語自体に悪意はない

しかし、Ruby登場当初からやたらとエレガントに書ける、スッと書ける(この「スッ」という表現詐欺で多い表現なので嫌い)とか、

そんなことは個人的にはどうでも良くて、ソフトウェアを使うユーザー機能が便利かとかそういう視点しか見ない、悲しいけど

保守観点からも美しいソースコードを書こうという意気込みは間違っていない、というか正しいと思う

しかし、プログラマーが美しいコードが書けたと悦に浸る、自己満足におちいっているだけのようにも見えるのが納得いかない、不愉快にさえ思える

C++Javaのような型のあった時代から、型なんてダセーよな、プレステの方が全然おもしれーよな、を経て、また型に戻ってきてる

型推論云々にかまけてパフォーマンスよりも綺麗なコード富豪プログラミングからまた元に戻ってきてる

学習コストが高いものほど評価されるような傾向も個人的には感心しない

どうせ同じゴールなのに、そこに辿り着く方法が険しいほど評価されるなんて、プログラマー美徳怠惰だのから逆行している

実によろしくない

そういう点ではRustよりもGoC#の方が評価できる気がする

もちろんRustの守備位置はそこではない気もするので単純比較おかしいのだけど、ゴールが同じなら自分C#Javaで書いて終わらせるのにと思うことがある

別にWebだけでなくコマンドラインでの捨てコードPHPJavaScriptも適している

そういう意味ではPythonはやはり強い、Glueだからだろう

正直PHPなんかよりPythonの方が言語としてはおかしい気もするのだけど、正しいとかエレガントが生き残る条件ではないのである

しかし、学習コストとしては低いシェルスクリプトは便利ではあるが流石に古いというか罠が多い気がする

PowerShellの方が使える気がする、少なくともWindowsでは優先的な選択肢になった

そう、つまりこの文章最初に戻ることができたのである

生き残るというのはそういうことではないのではないか

2020-12-16

c++の規格書がそろそろ2000ページになりそう。

標準化委員会の連中はc++を使うプログラマのことを全く考えてない。

バカな連中だ

2020-12-15

C++はクソクソ言ってたひとたちが言われる側になった時の挙動

としてルビーストを見ている

2020-12-11

Google成果物ビルドされたものがないンゴ…

aptとかbrewでもないみたい

ビルド独自ツールらしい

おい!いまどきpython2かよ!

意外と長い

ときどき小さなトラブルで止まる

CやC++使いたくなくても、一番情報があってちゃんと動いてる感があるのはCなんだなあ

共有ライブラリバインディングすると、共有ライブラリバージョンコケたり

その辺、ちゃんと揃えて一括で持ってこれればいいんだけど、ないとglueな言語では無力になるんだよなあ

コロナなんかどうでもいいから、python2をなくそうよ

レジ袋なんてどうでもいいから、python2をなくそ

2020-12-04

anond:20201204012300

クラスに関しては自分が老人だから異論はあるけど、

とりあえず動くソースコードでそれなりの規模のが欲しければGitHubからcloneしてくればいいんだよなあ。

と言っても、元増田が「gitって何?」のレベルだとそこで話が折れてしまい、

gitとは?バージョン管理とは?ハッシュ値とは?みたいになってしまうので説明する側も辛い。

自分説明される側でも説明する側でも辛いのは、それだけ専門性が高い分野ではあるのだろうけど。

自分だって自分の専門外のことをそれ専門の人にまくし立てられて説明されるの辛いw

ソフトウェア命名規則天邪鬼でなければ、スタート地点はmain.cppみたいに類推もできるはず。

その後はデバッグ情報付きでビルドして、

デバッガでメインルーチンからブレークポイント打つなりしてポチポチ動作させたり変数の中身の変化を確認していく。

あと、ソースコードコメントも参考になる。

色々なクラスとかソースコードを眺めて全体像を把握し、そこからコアとなる機能自分が知りたい箇所を目指す。

ソースコードがある、デバッグ情報があるなら、当たり前だが変数名や関数名があるので類推やすい。

Javaとかで難読化してると、逆コンパイルできても変数名や関数名は分からなくされていて読み辛かったりする。

いや、だから難読化なんだけどwでも、.classファイルしかなくてもそれで中の肝心のアルゴリズムは読めてしまったりする)

自分には大した技術はないと自分でも思ってるけど、普段やってることをまったく知らない人に説明するのは難しいだろうね。

というか、できる人やプロだって新しいビルド方法なんて分からない。

C++ならcmakeやpremakeは分かるけど、ninjaってなんじゃ?みたいなw

そこで新しい道具に手を出して躓くことも多々あるし、

他人他人自分の知らない道具、好きでない道具を使ってたりもするわけで、ビルドするために嫌々最低限即席で学んだりする。

そういう点でフロントエンドとかJavaScript界隈に流石についていけない、歳だなあと思ったり。

2020-12-02

Pythonで○○、って出来ることが少ないないだろうか

Visual C++を昔触っていて、しばらく離れていた時代に取り残された人間なのだが、

これからPython勉強しなきゃなと思い、本を買ったり、ネットで調べて勉強してみた。


なんというか、もっと色々できるものだと思っていたが、できることが少ないように感じる。

パッケージを知らないだけかもしれないが、パッケージを調べて使えるかなと公式マニュアルを見ながら書いてみて、

機能が足りていなかったり、ちょっと複雑なことをしようとすると重たくなったり、可読性が極端に落ちたりする。

そして他に良いパッケージはないか時間を費やしてしまう。

anond:20201201235939

海外のまともな大学コンピューターサイエンスやったら全部わかるようになるぞ、俺はなった

これら全部やる、4年あればできる

これだけわかってれば仕事上何も困ることはない、知らない分野でも本見たりぐぐるだけで十分金取れるレベル仕事ができる

2020-11-27

自分が十数年少なくとも様子見だけしてきた分野が成熟していてつらい

自分なりに一番成果が出せてたのは初めて興味を持ったときだろうと思うと泣けてくるが

その十数年前は昼夜問わずC++書いてた

それが今はもう開発環境周辺機器全然変わってしまった

そして、その分野の当時一位と二位だった走者は、二位が一位になったものの、未だに二社が独占状態である

やはりスタートダッシュ最初に着手した会社、そして人材の引き抜きやマンパワーで逆転される

そんな分野を諦めきれず、十数年只々様子見してきたKKO自分であったが、

もう長く生きられなさそうだし、死ぬまでにはなんらかの成果は残したいというか、

もう、その二社の製品を使ってなんか儲けるとかそういうのでええやん、

十数年もこだわるなアホか、という気もしてきたけど、

現在の一位には個人的な恨みもあったりして、複雑な乙女心なんです

anond:20201127090225

皮肉なことに中国はそれをちゃんとやろうとしてるんだよなあ

独自OSまではいかなくても、ハッカー国家公務員として高給で雇いLinuxをしらみつぶしに解読する

その結果はサイバー攻撃にも活かせるし、独自OSにも活かせる

独自OSを作らなければならないのは、例えばアビオニクスなどのためでもある

ロシアからスホーイの最新機は売ってもらうとしても、ロシア側はアビオニクス電子機器センサーコンピュータ、そのソフトウェアOSなどを抜きにして売ってくる

ラジコン飛行機とかで、機体だけは売るけどあとは自分でどうにかしてね、みたいな感じである

そうすると寄せ集めだろうがコピーだろうが、その最新スホーイを飛ばすために意図的に空白にされた箇所を埋めなければならない

ワリャーグもそうだったが、多くが欠損した巨大なパズルがあったとして、その欠損個所を埋めるというのは、自分には意外と創造性さえある仕事に思える

欠損個所の周辺から自ずと仕様は決定するが、その中に正解はない

インターフェースAPI仕様はあるが、中は独自実装するしかいからだ

から、そこはコピーだろうだが何だろうが埋めて、戦闘機戦艦を動かすしかない

で、彼らはそれをやってのけたわけだ

航行できる状態になったワリャーグから黄色く塗装されたスホーイタッチアンドゴーさせた

世界にあの実証実験を見せたのは、自分たちはここまでできるようになった、と見せつける意味がある

アメリカ人工知能ステルス爆撃機タッチアンドゴーさせたのも同様だ

あれは本当にできるだけ人が介入しない、つまり巨大なラジコン飛行機ではなく、人のように自律した爆撃機が自ら離発着できることを意味する

まあ、コスト問題から後継機はうまくいってないらしいが、金はともかく技術はあるということだ

中国独自CPUにも積極的になっている

もちろん、なんらかの中国国民監視するためのバックドアが仕込まれるのかもしれない

しかし、中国それから台湾なんかも独自CPUに乗り出す時代特に台湾マザーボードなどの薄利な仕事から抜け出すチャンスでもある

もっとも、それがARMAMDAppleと対抗できるかは未知数だし分からん

ただ、ニッチな分野で生きれば御の字だろう

プログラミング言語Adaだって比較最近まで軍事兵器業界では生きていたみたいだ

当然ではあるが、今はCやC++に置き換えられている

ここまで書いて思うのは、やはり軍があるかどうかではないだろうか

疾病対策センターだって仮想敵国からバイオ兵器化学兵器への対策を含んでいる

原発事故があってもアメリカパックボットをすぐに導入できるのは、ルンバも開発しているiRobot軍事ロボットメーカーからである

大学研究所で作ったロボットと同じ機能だったとしても、アメリカ側は実戦経験のあるロボットなわけだ

左の人は軍需産業=悪と考えがちだが、軍需産業は敵の兵士被害を出させることだけが目的ではない、

味方の命を守ること、味方の負傷兵を救うことも同様に軍需産業カテゴリーに含まれものであり、

これはレスキュー活動などと十分に被るし、既存レスキュー活動をより効率的に、よりパワフルにする可能性を秘めている

頭ごなしに~はいけない、と人は考えがちである自分もそうであろう

しかし、一旦その固定概念を捨ててみて、目の前の問題に対してどうするべきか考えることも重要なのではないだろうか

それでも駄目だと思うなら、また元の固定概念に戻っても構わないのだから

kotlinよりjni(C++)の方が200msも遅い

こんなことがあっていいのか

俺の実装へぼいせいか

それともマーシャリングオーバーヘッドはかくも巨大なものなのか

2020-11-26

多くの言語イテレータパターン,オブザーバパターンをforeachやイベントとしてステートメントに取り入れ、

いくつかのパターン代替えになりうる第一関数サポートし、

golangがあえてクラス-インスタンス-継承パラダイムを捨てたように、

C++を祖とするオブジェクト指向言語機能もっと制限されるべきだと思う。

残してもいいがそれは一般的言語機能でどうしても実現が難しいときに使わざるを得ない、

goto文のような「イケてない機能」として残すようにすべきだ。

2020-11-24

anond:20201124172530

うーん

でも非力なマシンで動くって今でも大事なことだと思うんだよなあ

昔、ある天才プログラマーが、その方は今はもう大成功してるんだけど、

その方はわざと非力なマシンを使ってたりして、

非力なマシンで快適に動くようにコードを書くと、最新のマシンでは爆速になったりして、

その速度もユーザーに高評価されていたわけだけど、

あと、アーキテクチャ最適化したコード電力消費が低くなって地球に優しいよね、とか、

そんなことを言う人だったんだけど、

その頃は、というか今でも自分は彼に比べれば富豪というか甘い考えでコード書いたりダウンしたりしているわけだけど、

最近Unityとかはちょっと富豪すぎないか?という気もしてて、

それは人生の一時期をだらだらゲームエンジン作ったり壊したりぐだぐだやってたことも一因なんだろうけど、

Unityよりはid Techエンジンみたいな方が好感が持てるというか、

ゴールがFPSならFPSに徹底的に特化しないと良くない気がするんだよなあ

UnityゴミみたいななんちゃってFPSがよくあるけど、Unityの基本機能だけでは足りないのだと思う

まあ、だから他人が作ったアセットとしての機能を買ってきたり、当然Unity上でそのためのコードを書くわけだけど

そういう点では詳しく知らないからなんとも言うべきではないんだろうけど、

Unrealの方が良さそうだよなあ、と思ったりする、C++で書けるみたいだし

ただ、巨人肩に乗るにしても乗らないにしても、もうFPSを作りたいとか思わなくなってる

クリエイティブコーディングみたいなものは好きなので何か作りたいのは山々なんだけど、

そもそも動機とか欲望がなくなってしまったよなあ、と思いながらGitHubから持ってきた道具をいじるぐらいの日々

anond:20201124155603

Xcode自分も駄目だった

なんでだろう

これまで改良はされてきたし、最新のは知らんのだけど、

プロジェクトの設定とかとりあえず必要最低限だけ表示すればいいのにドバーッと全部表示してしまってて、

しかも結局はコマンドラインオプションGUIでチマチマ書くような感じになってしまってて、

これIDE意味あんの?みたいになるわけだけど、Xcodeを使わないと基本的MaciOSアプリを開発できない縛りもあるわけで、

あと、うろ覚えだけど昔たしかInteface Buildernibファイルとかバイナリだったんじゃなかったか

バージョン管理しづらい、差分が分からない、うっかりマウスを滑らせてどこか変更してしまっても分からない、

NeXTはそれでも良かったのかもしれないけど、なんだかなあと思って、できるだけ使いたくなくなる不思議IDE

Borland C++ BuilderとかDelphiは楽しかったのになあ

2020-11-22

anond:20201122224600

さらっと概要しか見てないけど個人的にはコンパイル言語の最新の後継がRustという印象で

CやC++カリカリチューニングすんべって用途において代替というか後継になっていくのかなと考えている

有識者からはえー、全然違います…とか言われそうで怖いけど

2020-11-21

今日から新規ソフトウェア開発するとしたら

今までの自分スキル関係なく、今日からスクラッチソフトウェア開発するとしたら、どんな環境がいいんだろう?という問いかけです。

ちなみに自分は以前組み込み系のエンジニアWeb系は詳しくない&ここ1年ソフトウェア仕事から離れてましたが、最近Webアプリ作りたいなと考えてます

自分イメージは、

組み込みソフト・・・基本C言語最適化するとこはアセンブラマイコンコンパイラ対応してたらC++

Windowsアプリ・・・C#(.net framework)、nodejs(electron)

スマートフォンアプリ・・・3DだとC#(Unity)、Dart(flutter)、javascript(React)、作り込むならネイティブ(iOSswiftandroidKotlin)

Webアプリ・・・nodejsruby(on rails)、Dart(flutter+firebase)、python(Django)

Webサイト・・・wordpress

・社内アプリ・・・社内がマイクロソフト環境(outlookとかteams)ならPowerApps

AI開発・・・python(TensorFlow、scikit-learn)

詳しい人、追加と修正お願いします!

2020-11-20

anond:20201120120025

50代のおっさんだけど、自分最初構造化もされてないBASICやFOTRANで、それからアセンブラをやって、これから構造プログラミングだ!ってことでCやPASCALをやって、それからオブジェクト指向C++Javaをやった。

最近はいきなりCとかJavaとかだもんな。

大変だよな。

2020-11-19

そういやプログラミング言語もそうだわ

anond:20201118101837

選択肢が増えた「だけ」は「その実元々あった選択肢が古いとされる」部分にはすごく驚かされた。「そういえばそうだった!」と。

プログラミング言語も低層はCかC++あればいいだろうとか未だに基本はCで教えちゃいたくなるんですけど、最近Cと同じように低層弄り回せる言語も増えてきて、まさしく「選択肢が増えた」状況なんですが、後発で優れてる物なので、以前から選択肢(C)はやっぱり「古い物」だし、だんだん黄髪に乗り換えたり推奨したりとなってくる

2020-10-22

anond:20201022213743

さぁ?オレはScala嫌いだから知らんよ。

まぁ、でも多分こんな目的では?という予想はあるよ。

・もともとは C++ は多重継承ができて、カオスになった。

Java単一継承となり、振る舞いの規約として Interface が生まれ、具象化が不要な始祖クラスとして抽象クラス発明された。おかげで、言語官僚化した。

RubyScala では、Interface に振る舞いが記載できるようになって、Mix-In という方法で振る舞いを継承できるようにした。その継承に優劣をつけれるようにすることで、C++Java の出来なかったことを解消しようとした。

・今のところ、単一継承を行うクラスベース継承を行う言語でこれ以上の解答を用意できた言語はない。今のはやりは Rust のような後付の継承を良しとするプロトタイプベース継承時代のはやりである

こんな感じなんじゃねーの?Ruby が好きだからRuby 史観で書いたけど。つまりトレイトって「振る舞い」が記載できる Interface のことだと思うよ。

2020-10-10

anond:20201010163039

C++に関しては 関数内なら スタックの相対位置から宣言時に関係ない

逆にブロック構文を使うと、これはブロック内での相対位置だが計算コンパイル時だから

実行時は得をする。

から、最小のほうがいい。

しかスクリプト言語とかブロックを大きく取る場合は最大法というアプローチもある

基本的には?っていわれると場合によっては関数外でグローバルに取れ 気にするな いまは アルゴリズムに注目して おまじないとおもえ

という回答も作れる

いっぱいある回答

おもしろい よい問題だね

anond:20201010161417

スクリプトだと、遅延評価に合わせて宣言時にメモリを確保することが多いけど

C++だとコンパイル時に確保する場合もあるから微妙 つまりAutoならい宣言してもあまりかわらない。Localでも宣言位置ではかわらないよね

anond:20201010161216

どの言語で、何の目的でによって毎回違う

C++でいうと

Autoにするかスタティックにするか、ヒープにするかで宣言位置が違う だいたいそれにならっているけど

C++以外はヒープが多いから 宣言位置で差が出にくい

2020-10-02

anond:20201002023509

>3X歳で突然Rubyを習い始めても、技術者になるのはかなり難しい

俺、41歳でHTML, CSS, Adobe XD, JavaScript, Vue.JS, PHP, MySQL, AWS, Gitを1日10時間くらい勉強して必死ポートフィリオ作って

経験Web制作SaaS会社で働けてるよ

今はアプリ作りながらDirectX12とC++勉強してて、そこそこの3Dグラフィック扱えてるし

ある程度経験したら他の言語もすんなり入ってきて今はPython面白い



年齢じゃなく努力の質と量で考えたほうがいい。未経験技術者になるのはやり方次第だよ

2020-09-30

結局conceptが使えるようになる前にC++に触る機会がなくなってしまった

今は専らRust

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