OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。
OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。
2021年4月6日(米国時間)、Googleは公式ブログでAndroidオープンソースプロジェクト(AOSP)がモバイルデバイス向けオープンソースOS「Android」の開発において、オープンソースのシステムプログラミング言語「Rust」の導入を進めていることを明らかにした。Googleは2021年2月に設立された独立非営利団体「Rust Foundation」にも加盟している。 Androidはこれまで、「C」や「C++」といったシステムプログラミング言語を用いて開発されてきた。Android開発にRustを導入した目的は、メモリ安全性のバグを予防することにある。 AOSPはこれまでもメモリ安全性のバグの検出や修正、軽減に注力してきたが、さらに予防を強化しようとしている。メモリ安全性を特徴とした言語の採用が、最も費用対効果の高い予防方法だとの認識から、Rustの導入に至った。 Andro
Android Advent Calendar 2020の20日目はAndroid NDK方面で今開発が進んでいるPrefabパッケージ機構についていろいろまとめます。タイトルに書いている「ネイティブ」とはC/C++等のコンパイラが生成するCPUネイティブなコードの意味です*1。 目次 Prefabとは? AARパッケージの仕組みと、それだけでは足りない部分 Prefabツールによる状況の改善 prefabメタデータとprefabツールの役割 Prefabアーカイブの汎用性 モジュール Android StudioでPrefabパッケージを使う・作る PrefabとAGPのPrefabサポートの現在の課題 build.gradleでヘッダーディレクトリが1つしか指定できない Prefabパッケージとnon-Prefabパッケージの排他的関係 全てのネイティブライブラリで同一のlibc++_
「C」や「C++」に代わるシステムプログラミング言語として「Rust」が注目を集めている。メモリ安全性が高く、メモリ破壊バグといった脆弱(ぜいじゃく)性を作り込みにくいからだ(関連記事)。 ただし、システムプログラミング言語では、高い処理性能が必須条件であり、これがCやC++が使われ続けている理由となっている。Rustはどの程度「速い」のだろうか。 ドイツのミュンヘン工科大学で博士課程の学生であるポール・エメリク氏は2019年9月9日、Rustで作成したデバイスドライバの性能評価をGitHubで発表した。 同氏のグループはさまざまな言語で同じ機能を備えたデバイスドライバを記述し、性能を比較している。 何が性能低下を引き起こしているのか 性能評価用に作成したのは、Intelのイーサネットコントローラー向けのLinux用デバイスドライバだ(ixgbeタイプ)。 エメリク氏は解説の冒頭で研究に取
プログラミング言語を作る時には、途中で変えることが極めて難しいデザイン選択を最初に行わないといけないことがあります。今回は川合史朗さんがGaucheを設計した時に行ったデザイン選択の判断について話を伺いました。また、浮動小数点数のトリッキーさについても話をしています。出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314) https://turingcomplete.fm/17 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) セキュキャン参加者募集中 (0:41) 俳優のオーディションとその心構え (2:43) 川合史朗さんが出演している映画がサンフランシスコで上映されます (5:16)
最近巷では俄に型システムについての言及が増え、型システムポエマーが増えてる気がするので自分もその時流に乗りたい。 完全にポエムだけどなんかあったら随時指摘ください。直します。 TL;DR 言いたいことはまとめると次 型システムは程度問題なのでちょうどいいところを探すべき 型は万能でも強さが正義でもない(だから未だに研究されてる) よく知りもしないくせに計算機科学を侮辱するのはやめろ 予防線 あくまでポエムですので中身はないです 私は型理論専攻で学位はとったものの研究者ではないのであまり信用しすぎないように 型システムの過去 型システムは大まかに次のような利点があるとされてきた(個人的主観) 「異常」なプログラムを検出する仕組み 静的解析による分かりやすいエラーメッセージ 型そのもののドキュメント性 IDEでのcompletionに貢献 最適化に貢献 (数学に正しく裏打ちされたsemanti
Koichi Sasada さん、まつもとゆきひろさんをゲストに迎えて、Guild, Ruby 3 などについて話しました。(9/10 RubyKaigi 2016 にて収録) Show Notes RubyKaigi 2016 A proposal of new concurrency model for Ruby 3 Koichi Sasada: A proposal of new concurrency model for Ruby 3 (RubyKaigi2016) Global interpreter lock Ruby creator floats new concurrency model ギルド verse | RubyGems.org Rust: Ownership and Lifetimes Erlang -- Processes Racket: Places Soft
前回投稿した「 The Wisdom of Programming (プログラミングに関する名言の知恵)」で、表面上は良さそうでも、ソフトウェアの開発において誤った考えを助長する結果になってしまう名言に注意を促しました。また、以前には「 favorite programming quotes 」(お気に入りのプログラミングの名言)というのも投稿していますが、もう少し名言を追加しておきたいと思います。 コーディング作業 「プログラムを詳細にわたって明確に記述する作業とプログラミングの作業は、全く同一のものである」―Kevlin Henney 「プログラム構築の本質のほとんどは、実際には仕様書のデバッグだ」―Fred Brooks 「よくある誤った考えは、プログラムの作成者は不可解なコードを書いてもコメント行で自分の考えを明確に表現できるだろうと思い込むことである」―Kevlin Henney
Help us understand the problem. What is going on with this article? 世間はクリスマスモードだと言うのに、辛気臭いタイトルですみません。「勝手に殺すな」とか「お前は何様だ」などとなんだか怒られそうです。「喪失感で胸がいっぱい」だとか「 Objective-C はまだまだ使える言語です!」だとか、そういう感傷もありませんし、主張もしません。「いい言語だと思うし好きだけど、結局 Mac OS X や iOS のアプリケーション開発以外に活用(しようとトライしたけど)できないまま Swift が発表されたなー」と思っていて、なぜ活用しにくかったのかを整理してみようと考えました。ですので、「 Objective-C 栄光の歴史」を語ることはありません。体験してないし。知らないし。 それから、ここでは言語としての Objective-
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
プログラミングにはレベルの低い・高いがある。ここでいうレベルとはCPUとかストレージデバイスといった生のハードウェアに近いかという意味である。レベルが低いほど生のハードウェアを意識しなければならない。カーネルは低レベルなソフトウェアの代表である。高尚かどうかと混同されることを嫌ってか、低レイヤ・高レイヤという言い方も良くする。私はあえて混同させたくてレベルという単語を使用している。 私は元々低レベルのプログラミングの方が計算機を操ってる感があって好きだった。しかし、しばらく離れてJavaとかPythonとか高レベルなことをやっていたが、ふと低レベルのところを再び触りたくなったので、 ハッカーのたのしみ Binary Hacks Cプログラミング高速化研究班 等を読み返しながら勉強している。低レベルはちょこちょこっとチューニングするだけで演算が高速化していき、ハッカー感が得られるので楽しい。
はじめに プログラミング技術の歴史は、ありとあらゆる歴史がそうであるように、いろんな「史観」で眺めることができます。ならば、プログラミング技術の歴史を、「エラーハンドリングとの戦い」という視点から見ることもできるのではないでしょうか。本日は、エラーハンドリングとの戦いの歴史を俯瞰することで、エラーハンドリングの勘所について考えていこうと思います。 なお、このエントリはNDSという勉強会の第41回で発表した内容と同一です。 Cの時代 Cの時代のエラーハンドリングでは、関数の返り値と、グローバル変数errnoを見ることで処理が成功したか失敗したかを見るのが一般的でした。 例として、文字列をlongに変換するstrtol関数をmanで引いてみましょう。すると、だいたい以下のようなことが書かれています。 変換に失敗すると、0を返す 変換に失敗した場合、グローバルな変数であるerrnoに以下の定数を
qiita.com 素朴な疑問があったので投稿してみました。これはその補足みたいなもの。 CoreData CoreDataって凄く独特な世界観を持っていて扱いづらいと思った人が多いのではないでしょうか。 なんでこんなのがXCodeやInstrumentsのテンプレートに居座っているのか理解できない、関連張ると動作が重くなりすぎて使い物にならない、CoreData内部の良く分からないエラーに悩まされている、普通にSQL書きたいからFMDB使ってます、幻滅しましたRealmに移行します、そんな雰囲気だと思います。 CoreDataの原型は、NeXTのFoundationが用いられた最初の製品であるEnterprise Objects Frameworkです。 20年前にデータベース製品の学習コストの高さと、オブジェクト指向言語とのインピーダンスミスマッチの問題に取り組んだこの製品は、普及はし
Facebook、静的コード解析ツール「Infer」を公開。Objective-C/Java/Cコードのバグを指摘してくれる Inferが対応するコードはAndroidのJavaとiOSのObjective-C、およびC。現時点ではAndroidとJavaではNullPointerExceptionおよびリソースのリーク。iOSとCコードではメモリーリークを発見してくれます。 実際にプログラムを実行することなくバグを発見しようとする静的コード解析は、コードをビルドしてテストプログラムなどを実行するよりも迅速にバグを発見できる方法として期待されています。 Inferも、Facebookがより早く高い品質のソフトウェアをデリバリする目的で開発されたものです。下記はInferを発表したブログ「Open-sourcing Facebook Infer: Identify bugs before y
多くの言語は冗長性を有していますが、これらの機能を省いていくことも言語設計の進歩につながります。 巷には数多くのプログラミング言語があり、新しい言語も継続的に紹介されています。でも新しいものが古いものより優れているかというと、そうとは言えません。なぜなら、何が“優れているか”を判断する明確な尺度は存在しないからです。 それでも過去からの流れを見ていくと、優れた言語を作る1つの方向性は、言語にある冗長性を特定し、それらを持たない新たな言語をデザインすることにあるように思えます。 「完璧とは、それ以上足せない時ではなく、それ以上引けない時に達成される」 – Antoine de Saint Exupéry この投稿では、現在までに知られている言語の冗長的機能を見ていくと共に、恐らく冗長性を有しているだろうと思われる機能についても触れていきます。 自ら墓穴を掘るあらゆる可能性 初めてコンピュータ
こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、
『デザインパターン』 うんちくできると、かっこよさそうだよね~。でもあんな分厚い本読んでもピンとこないし、だいたいオブジェクト指向ってなに?なにが便利なのかよく分からんのだけど。いいじゃんなんでも。できればいいんだよ、できれば。 な~んて、思っていても、なんとなく オブジェクト指向が気になっている システム開発者は、多いのではないでしょうか?かくいう 私もそんな者の一人でした。 しかし、これだけ もてはやされているオブジェクト指向です。 なんか、便利なはずです。 そこで、私は、GOFのデザインパターン[1]を、できるだけシンプルに表現した、小さな小さなプログラム ~デザインパターンの骸骨たち~ を作ってみました。骸骨達 を骨の髄までしゃぶり尽くつくすせば、オブジェクト指向の真髄まで味わうことができるかも。!? 『デザインパターンの骸骨たち(RE-BONE)』 では、内容を大幅に見直し、Ja
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く