記事作成時点で広く使われているHTMLレンダリングエンジンは、ChromeやEdgeの「Blink」、Safariの「WebKit」、Firefoxの「Gecko」の3種に絞られています。ごく少数の大企業や団体がウェブの将来の決定権を握る状況を打破するべく、「ゼロから書かれた新しいウェブエンジン」として「Gosub」の開発が進められています。 Gosub Web Browser Engine https://gosub.io/ Gosubは開発の初期段階で、現時点ではHTMLパーサーが「HTML5を正しく解析できる段階」まで開発が進んでおり、CSSパーサーは概念実証の段階です。また、JavaScriptのエンジンとして、記事作成時点ではGoogleが開発するV8が使用されていますが、Gosubはモジュール性を重視しており、将来的には開発者が好みのJavaScriptエンジンを選択できるよう
では、どの整数型を使うべきかはどう把握すればいいのでしょうか?もし確信が持てないのならば、 Rustの基準型は一般的にいい選択肢になります。整数型の基準はi32型です: 64ビットシステム上でも、 この型が普通最速になります。isizeとusizeを使う主な状況は、何らかのコレクションにアクセスすることです。 浮動小数点型 Rustにはさらに、浮動小数点数に対しても、2種類の基本型があり、浮動小数点数とは数値に小数点がついたもののことです。 Rustの浮動小数点型は、f32とf64で、それぞれ32ビットと64ビットサイズです。基準型はf64です。 なぜなら、現代のCPUでは、f32とほぼ同スピードにもかかわらず、より精度が高くなるからです。 実際に動作している浮動小数点数の例をご覧ください: ファイル名: src/main.rs fn main() { let x = 2.0; // f6
変数と可変性 第2章で触れた通り、変数は標準で不変になります。これは、 Rustが提供する安全性や簡便な並行性の利点を享受する形でコードを書くための選択の1つです。 ところが、まだ変数を可変にするという選択肢も残されています。 どのように、そしてなぜRustは不変性を推奨するのか、さらには、なぜそれとは違う道を選びたくなることがあるのか見ていきましょう。 変数が不変であると、値が一旦名前に束縛されたら、その値を変えることができません。 これを具体的に説明するために、projectsディレクトリにcargo new --bin variablesコマンドを使って、 variablesという名前のプロジェクトを生成しましょう。 それから、新規作成したvariablesディレクトリで、src/main.rsファイルを開き、 その中身を以下のコードに置き換えましょう。このコードはまだコンパイルでき
Hello, Cargo! CargoはRustのビルドシステム兼パッケージマネージャです。 ほとんどのRustaceanはこのツールを使ってRustプロジェクトを管理しています。 なぜなら、Cargoは多くの仕事、たとえばコードのビルド、コードが依存するライブラリのダウンロード、それらのライブラリのビルドなどを扱ってくれるからです。 (コードが必要とするライブラリのことを依存(dependencies)と呼びます) いままでに書いたようなごく単純なRustプログラムには依存がありません。 そのため「Hello, world!」プロジェクトをCargoでビルドしても、Cargoの中のコードをビルドする部分しか使わないでしょう。 より複雑なRustプログラムを書くようになると依存を追加することになりますが、Cargoを使ってプロジェクトを開始したなら、依存の追加もずっと簡単になります。 Ru
Hello, World! Rustをインストールしたので、最初のRustプログラムを書きましょう。新しい言語を学ぶ際に、 Hello, world!というテキストを画面に出力する小さなプログラムを書くことは伝統的なことなので、 ここでも同じようにしましょう! 注釈: この本は、コマンドラインに基礎的な馴染みがあることを前提にしています。Rustは、編集やツール、 どこにコードがあるかについて特定の要求をしないので、コマンドラインではなくIDEを使用することを好むのなら、 どうぞご自由にお気に入りのIDEを使用してください。今では、多くのIDEがなんらかの形でRustをサポートしています; 詳しくは、IDEのドキュメンテーションをご覧ください。最近、Rustチームは優れたIDEサポートを有効にすることに注力し、 その前線で急激に成果があがっています! プロジェクトのディレクトリを作成する
日経クロステックが実施した「プログラミング言語利用実態調査2023」で「今後、スキルアップしたいと思う言語はどれですか」と複数回答可で尋ねたところ、トップ10の言語が分かった。それぞれの言語の特徴を解説する。 4位 Rust 多機能でC/C++並みに高速。ただし、難易度は高め 2015年に最初の安定版である「Rust 1.0」がリリースされたRustは、近年人気が高まっているプログラミング言語です。Rustの魅力は、高速に動くプログラムを、現代的なプログラミングテクニックを使うコードで作成できることです。これはプログラミング言語の歴史から見ても興味深い点です。 近年、プログラミング言語の進化の方向は、PythonやRubyのように実行速度を犠牲にする代わりに様々な機能を提供するか、Go言語のように提供する機能を絞って実行速度の向上を追求するかという2つの道に分かれていました。その中で、Ru
Quartzという言語をデザインしてコンパイラを書いて自身をコンパイルできるところまで到達したので記録として書く (人に使ってもらうことなどは特に想定してないので、ドキュメントなどはありません) Quartzについて 言語機能的にはGoとかに近く、syntax的にはRustに近い言語としてデザインした。ターゲットとしてWASM(wat形式)のみサポート。 元々の想定として、ゲームのスクリプトやアプリケーションのプラグインなど、動的に読み込めて気軽にかけて、型やLSPなどの現代的なDXは提供したいというモチベで作り始めた。 例えばfizzbuzzのコードは以下のような感じ。 fun main() { for i in 1..100 { if i % 15 == 0 { println("FizzBuzz"); } else if i % 3 == 0 { println("Fizz"); }
このYouTubeライブはフロントエンドの最適化を専門にするmizchiさんがCloudflare Meet-up Tokyoで行った同タイトルのプレゼンを、RustやRDBの実装に詳しいkoba789さんを話し相手に語っていくというものだ。背景としては2人ともチーム開発の現場でのRailsが活発に利用されていた時期にウェブ開発を経験し、現在はNode.jsのサーバーサイドも実践している。 ライブは3時間半という長時間におよび、スライド外の周辺情報や持論や余談など多岐に渡るので、すでにこのプレゼンに触れた人でもさらに深掘りできるようなコンテンツになっている。 全体を大まかに1時間ごとの3パートに区切って視聴するとわかりやすい。前半はRailsからNext.jsに辿り着くまでのウェブ開発の変遷。ORMの話は主に後半戦で。最後の1時間はアフタートークになっている。 内容としてはRailsアプリ
米ホワイトハウス国家サイバー局長室(The White House Office of the National Cyber Director:ONCD)は、2024年2月26日(米国時間)、サイバー空間における攻撃対象領域(アタックサーフェス)を積極的に削減するよう技術コミュニティーに呼びかける報告書を発表した。 ONCDは、IT企業がメモリ安全なプログラミング言語を採用することで、あらゆる種類の脆弱(ぜいじゃく)性がデジタルエコシステムに侵入するのを防ぐことができると述べている。ONCDはまた、サイバーセキュリティの品質を測定するより優れた診断の開発を可能にするために、ソフトウェアの測定可能性の問題に取り組むことを奨励している。 関連記事 Google、「メモリ安全性」に関する見解と対策をまとめたホワイトペーパーを公開 Googleは、「セキュアバイデザイン:メモリ安全性に関するGoo
この記事は NTTコムウェア AdventCalendar 2023 5日目の記事です。 自己紹介&動機 高鶴と申します。NTTコムウェア コーポレート革新本部で、プログラム設計~コーディング~ユニットテストにかかわる技術の社内標準化をやっております。 プログラムの静的な解析で早期にバグを発見・修正することで、後工程でのバグ対処コスト削減(ウォーターフォール開発の場合)や、技術的負債の早期解消(アジャイル開発の場合)を目指す、というのが私のチームの仕事の大きな一部となっています。 静的な解析で早期にバグを発見するツールには、オープンソースでも商用でも様々なものがあります。しかし、ソフトウェアの品質をより抜本的に良くしていこうと思うと、「プログラミング言語を何とかする」というところを考えたくなってきます。 Rustであれば、そのような期待に応えてくれるのではないかと期待し、調査・検証を始めま
Linux Foundation Europe傘下のプロジェクトである、Rustで書かれたWebレンダリングエンジンServoの開発チームは、WebフロントエンドとRustによるバックエンドを組み合わせたデスクトップアプリケーションを構築するためのフレームワークである、Tauriとの統合に関する最新アップデートを1月19日(現地時間)に公開した。 今回のアップデートは、将来的なServoとTauriの統合のために行われており、WebviewライブラリであるWRYへのServoサポートの追加が行われている。現時点で作成されている概念実証は、本番環境には対応していないものの、servo-wry-demoブランチをチェックアウトして、READMEに従うことで試すことができる。 さらに、ネイティブウィンドウ内の任意の場所に、Servo Webviewを配置することが可能になるとともに、半透明または
2023 年に読んでよかった本 2023.12.30 年末なので 2023 年のまとめっぽい記事を書きたくなりました。今年は 1 年間でおおよそ 300 冊の本をよんだようです(そのうち 3 割ほどはラノベなのですが...)。その中でも特に印象に残った本を紹介します。 年末なので 2023 年のまとめっぽい記事を書きたくなりました。 今年は 1 年間でおおよそ 300 冊の本をよんだようです(そのうち 3 割ほどはラノベなのですが...)。その中でも特に印象に残った本を紹介します。 忘れる読書 この本では「本は忘れるために読んでいます」と語られています。というわけでこの本の内容もあまり覚えておりません(?)。 本を読むときには一字一句正確に覚えるような読み方をしていると、「覚えなきゃ」という気持ちが芽生えてしまい、本を読むことが苦痛になってしまうことがあります。そうではなくて、パラパラとペ
Liam Tung (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2020-08-13 07:30 システムプログラミング言語「Rust」の開発者らは、この言語がLinuxカーネルの開発で利用されるようになる道を模索している。 元Intelのエンジニアで、Rust言語プロジェクトのリードを務めるJosh Triplett氏は、慎重に取り組む限り、そしてLinuxカーネルの生みの親であるLinus Torvalds氏の機嫌を損ねない限り、「カーネル開発にRustを取り入れていく道を探りたい」と考えていると述べた。 Triplett氏は、「Linux Plumbers Conference 2020」でLinuxカーネルツリー内でのRustサポートに関するセッションの開催を提案するという、Linuxカーネルメーリングリストのスレッドの中で、「カーネル内にRust
サクッとできた。 成果物 github 情報源 scraper crates.io scraper docs scraper github Qiita Rust html解析 スクレイピング クレート作成 $ cargo new scraper_hello Cargo.toml [dependencies] scraper = "0.9" 初回ビルドしてダウンロード&コンパイル。 $ cargo build main.rs fn main() { let html = r#" <html> <body> <div class="ssss"><ul><li name="nn">NotSelect</li></ul></div> <div class="some-list"> <ul> <li name="n1">item1</li> <li >item2</li> <li name="n3"
プログラミング言語「Rust」の開発をかじ取りするコアチーム内で不和が発生しており、コアチームメンバーの1人だったJTさんの「Rustのコアチームを離脱する」というブログ投稿をきっかけに、ITエンジニアたちが集うHackernewsで激論が繰り広げられています。 Why I left Rust https://www.jntrnr.com/why-i-left-rust/ I Am No Longer Speaking at RustConf 2023 | The Pasture https://thephd.dev/i-am-no-longer-speaking-at-rustconf-2023 Why I Left Rust | Hacker News https://news.ycombinator.com/item?id=36101501 コアチームを離脱したJTさんによると、事件
「やじうまの杜」では、ニュース・レビューにこだわらない幅広い話題をお伝えします。 「Windows Sysinternals」の創設者として著名なMicrosoftのMark Russinovich氏が自身のTwitterアカウントで明らかにしたところ、最新のプレビュー版「Windows 11」にはRust言語で開発されたカーネルが導入されているとのこと。 Windowsのカーネルは主にC言語で開発されています(アセンブラやC++言語も用いられている)。これらの言語はプログラマーがメモリを直接管理できるため、リソースに制限のあるデバイス・ハードウェアでパフォーマンスを出しやすいといったメリットがあります。しかしその一方で、メモリ管理にミスがあると安定性を損なったり、重大な脆弱性につながりかねません。 そこで注目されているのが、Rust言語です。Rustはコンパイラーがメモリ管理を厳格にチェ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く