タグ

関連タグで絞り込む (264)

タグの絞り込みを解除

programmingに関するkirakkingのブックマーク (370)

  • Rustの仕事が増えていく理由

    以下の記事を読みました。 内容としては「Rust仕事は少なく、無理にRust仕事にする必要はない」というもので、おおむね同意します。 一方で筆者自身はRustを主軸にして約10年間仕事を続けてきており、何度もRustエンジニアの採用側になったことがある立場から、Rust仕事が増えていく理由についても書いてみたいと思います。 TL;DR Rustが採用されない理由は「Rustじゃなくてもいいから」 しかし、性能要求が高い領域ではRustの採用が増えている。鍵はインフラコスト削減にある。 さらにLLMの影響で、Rustの学習コストが下がった結果、Rustの採用がさらに進みやすくなっている Rust採用の経緯 まず筆者のキャリアをざっくり時系列で紹介します。 2008〜2013:地図・ナビゲーション企業(C++/C#/Python) 地図データの処理やルート探索アルゴリズムの開発を担当して

    Rustの仕事が増えていく理由
  • 連結リストを実装して学ぶRustの所有権

    Rust.Tokyo オーガナイザー 豊田 優貴 Sansan株式会社のソフトウェアエンジニア。金融機関向けのリスク管理計算機の開発に携わってから、しばらく広告配信の仕事に従事した。前職のUSの企業では実務でRustを利用した。業のかたわら、Rustの国内カンファレンス「Rust.Tokyo」の運営や、いくつかのOSSの開発や貢献を行っている。共著で『実践Rustプログラミング入門』(秀和システム)、『RustによるWebアプリケーション開発』(講談社サイエンティフィク)など。また、『Web開発で学ぶ最新言語Rust』(日経クロステック)の連載を持つなどした。 ※アイキャッチとプロフィールに使用しているアイコンは「めぶイカメーカー」を使用し生成しております GitHub: https://github.com/yuk1ty Rustに入門した際最初に立ちはだかる壁は、Rust特有のメモリ

    連結リストを実装して学ぶRustの所有権
    kirakking
    kirakking 2026/01/19
    そういえば Rust で双方向リスト作ったことなかったなーと思って興味本位で見たら、がっつり参照カウンタを使う話で勉強になった。
  • 新しくプログラミング言語を作る際に文字列型をどうするべきか

    この記事は「言語実装 Advent Calendar 2025」の3日目の記事です。 この記事は、新しくプログラミング言語を設計する際に文字列型をどうするべきかについて、私の持論をまとめたものです。 以前「新しくプログラミング言語を作る際に数値型をどうするべきか」という記事を書きましたが、この記事はそれの文字列版です。 推敲が足りずに同じことを何箇所かで繰り返している場合がありますが、冗長性だと思ってご容赦ください……。 【2025年12月4日 更新】small string optimization、スライスとGCの話を追加、Rubyの文言の修正、可変性と値セマンティクスの記述の整理など。完全な変更履歴はGitHubを見てください。 【2025年12月7日 更新】ケーススタディーにJava、D、Schemeを追加。JavaScript文字列のコードポイント単位のアクセスの記述を追加。Sw

    新しくプログラミング言語を作る際に文字列型をどうするべきか
  • HaskellerとRustaceanが知恵をあわせてプロダクトを3日で1000倍高速化した話

    この記事は Jij Advent Calendar 2025、Rust Advent Calendar 2025 シリーズ1、およびHaskell Advent Calendar 2025の3日目の記事です。 更新履歴 2025-12-04 08:50 - 軽微な誤字の修正2 2025-12-03 08:40 - 軽微な誤字の修正 2025-12-03 00:00 - 初版自動公開 はじめに:Haskeller × Rustacean = ∞ 筆者は比較的年季の入ったHaskellerですが、現在は業務ではRustを書いてくらしています。 昨年転職一ヶ月後にこんな記事を書いたりしていたように、Rustでのプログラミングはかなり関数型と命令型のいいとこどりという感じでとても快適な一方、Haskellならこんな書き方が出来るなあというような箇所もあり、刺激的な日々を送っています。 そんな中でH

    HaskellerとRustaceanが知恵をあわせてプロダクトを3日で1000倍高速化した話
  • AI vs 人間まとめ【AtCoder World Tour Finals 2025 Heuristic エキシビジョン】 - chokudaiのブログ

    結果が出たので、運営側から見た感想を纏めます。 記事は長文を読みたくない方向けにポイントをまとめています。1問で観測できることなんてたかが知れてるので、chokudaiの予想を多分に含みます。 OpenAIの用意したエージェントは2位相当。素直に凄い。12人参加者9位相当になるのでは?というのが事前のchokudai予想 SakanaAI開発のALE-Agent(ID: fishylene)も4位相当(6桁円ほどのコスト)。これは事前の分析より 遥かに良い結果であり、AIが得意な問題であったと思われる。実装量の多い問題であったため、人間が10時間では足りない、というのが最大の理由。 OpenAIのロジックはALE-Agentから1段階実装量がとても多いのが増えている。増えたロジックはAIが苦手とされていたビームサーチ。モデルがめっちゃ良いorどんだけお金かけたの? 前回記事予想の「現ルー

    AI vs 人間まとめ【AtCoder World Tour Finals 2025 Heuristic エキシビジョン】 - chokudaiのブログ
  • 「関数の副作用の有無」よりも大事なもの | 雑記帳

    プログラミングをやっていると、「関数に副作用がある」とか「副作用がない」あるいは「純粋である」という話をちょいちょい耳にする。そして、「外界の状態を読み取るけど変更はしない関数」、例えば function getTime() { return Date.now(); } のような関数に副作用があるか?みたいな議論が始まったりする。 くだらない議論だ。 何か概念を定義するときは、それが「役に立つ」場面を提示できる必要がある。「関数の副作用」を定義するときは、「関数の副作用」がわかったときに何をしたいのかをはっきりさせる必要がある。「関数のどういう側面に注目したいか」を決めずに「副作用の有無」を論じるのはナンセンスだ。 ここでは、言語処理系(コンパイラー)を実装する者の立場で、関数の副作用について論じてみたい。 一般に、「副作用がない」関数の呼び出しは、「副作用がある」関数の呼び出しに対するも

  • 関数型まつり2025で出たトピックの前提知識とか

    κeenです。関数型まつり楽しかったですね。関数型という広めのトピックに人が集まって色々な知識が聞けるのがこういう大きなカンファレンスの醍醐味の一つです。 ところがトピックが広いということは様々な講演を聴講するのに必要な前提知識も広範に渡るということでもあります。実際、終了後に必要だった知識のまとめや解説がほしいという声を多数みかけました。 そこで私が分かる範囲で出てきた知識の入門への案内を書いておこうと思います。 ガッと書いたので誤りがありそうですが、気付いたら優しく教えて下さい。 6/17追記: いくつか誤りを訂正・説明の補強、プログラミングテクニックに末尾再帰とFBIPを追加 言語 色々な言語が登場しました 関数型言語 Haskell ML語族 OCaml SML F# Lisp語族 Clojure Emacs Lisp Scala Elixir Elm 関数型言語は今回の主役ですね

    関数型まつり2025で出たトピックの前提知識とか
  • 「Rust」が10周年--エレベーター故障から始まったシステムプログラミング言語の歴史

    オープンソース運動の創始者の1人であるEric S. Raymond氏は、次の言葉が有名だ。「全ての良いソフトウェアは開発者の個人的な希望から始まる」。Mozillaのソフトウェア開発者であるGraydon Hoare氏がプログラミング言語「Rust」の開発に着手したときも、まさにそうだった。 2006年、Hoare氏は自宅マンションのエレベーターがたびたび故障することを不満に思っていた。同氏は後に、「コンピューターに携わるわれわれが、故障しないエレベーターも作れないとは、ばかげた話だ」と語っている。同氏は、エレベーターが頻繁に故障する原因として、制御ソフトウェアのメモリーエラーを疑っていた。このソフトウェアは「C」または「C++」で書かれた可能性が高く、どちらも広く使用されているシステム言語だが、コードを書くのが難しい。その大きな理由は、メモリーエラーを含む不完全なコードを簡単に書けてし

    「Rust」が10周年--エレベーター故障から始まったシステムプログラミング言語の歴史
  • 画面仕様書への静的検査器を実装したらたくさんの欠陥を発見できた話 - DeNA Testing Blog

    SWET第二グループのKuniwakです。記事では画面仕様(後述)の仕様書に対する静的検査器を開発した事例について紹介します。 伝えたいこと 画面表示と画面遷移を記述する仕様書は機械可読にできる 仕様書が機械可読であれば仕様の静的検査ができる 静的検査によって自身の担当範囲の15%の画面から計40件弱の欠陥を発見した 機械可読な仕様書にはさらなる応用が見込める おさらい:仕様とは 仕様の定義はいくつかあります。 ここでは仕様とは実装の正しい振る舞いを定める基準とします。 ある実装が正しいと判定されることを、実装が仕様を満たしたといいます。 誰による判定でも実装が仕様を満たしたかどうかの判定結果は一致すべきです。 さて実装の欠陥と同様に、仕様にも欠陥が生じえます。 来正しいと意図した実装の振る舞いを誤っていると判断したり、その逆に誤っていると意図した実装を正しいと判断する仕様には欠陥があ

    画面仕様書への静的検査器を実装したらたくさんの欠陥を発見できた話 - DeNA Testing Blog
    kirakking
    kirakking 2025/04/17
    そうか今のMarkdown全盛期ならば仕様書から半自動でformal verification出来るんだ。
  • Rust入門者は非同期Rustをやらないでください

    はじめに すいません、連日の記事があったため少し煽りっぽいタイトルにしてしまいました。 平常時の感覚だったら、「Rustに入門するなら、同期Rustから始めるのがおすすめ」 とかにしてた記事だと思います。 この記事で主張したいことは以下です。 Rustは難しい Rustに入門するときの題材に、"Web Backend"や"Wasmでブラウザで動く何か"などの非同期Rustで無ければ達成できない題材を採用している人はそれがRust初級者への道を阻んでいる可能性がある 過去に非同期Rustで入門した人を否定する記事ではない Rustに入門することが目的なら、非非同期Rustから始めた方が良いのではないか? ここで長く言葉の定義をしても微妙なので、下に言葉の定義 というセクションを用意してあります。 前提 タイトルに書けていない前提を書いています。 この記事の指す「Rust入門者」はLL言語(P

    Rust入門者は非同期Rustをやらないでください
  • HPCプログラマの書くコードってなんで古臭いの?

    TL;DR Q: HPCプログラマの書くコードってなんで古臭いの? A: そうしないと性能が出なかったから はじめに スパコンを使ってそれなりに長いこと研究をしています。初めてスパコンを使ったのは今から25年くらい前です。発展の早い世界ですので、昔と今ではだいぶ違ってきています。この前、スパコンを使う時の「常識」がすでに現在では常識ではなくなっているっぽいことを知り、私も「そっち側」になったのか、と感慨深くなりました。以下は、HPC業界の語り部に片足を突っ込んだおっさんの戯言です。 なお、以下では主に「京」の話をするため、富士通C++コンパイラに文句を言う形になりますが、富士通が悪いのではなく、昔のスパコンに搭載されていたC++コンパイラはどれもかなり酷かったということはあらかじめ言っておきたい気がします。IBMのコンパイラとかも酷かったし、なんならIntelのコンパイラもバグだらけだっ

    HPCプログラマの書くコードってなんで古臭いの?
  • Fish 4.0: The Fish Of Theseus

    About two years ago, our head maintainer @ridiculousfish opened what quickly became our most-read pull request: #9512 - Rewrite it in Rust Truth be told, we did not quite expect that to be as popular as it was. It was written as a bit of an in-joke for the fish developers first, and not really as a press release to be shared far and wide. We didn’t post it anywhere, but other people did, and we go

  • RealWorld 業務 Rust - Qiita

    RealWorld 業務 Rust 実際に Rust 1.0 の頃から業務で Rust を使ってコードを保守してきてハマった落とし穴についての 知見 恨み言です Rustが素晴らしい言語であるというあたりまえのことにはこの文書では触れません 気が向いたら追加します 開発環境編 ビルドマシンを買ってもらえ ノートパソコンのCPUとメモリでは限界がある CPU 二桁コアのマシンを何人かで共有して使え VSCode の Remote SSH でがんばれ vim でもいいぞ ストレージは可能な限りデカくしろ target はブラックホール 10GB 超はあたりまえ、中には 100GB 超も sccache、 cargo cache 、 cargo sweep などを駆使してがんばれ docker も使うので大容量ストレージだけが正義だ sccache 使用例

    RealWorld 業務 Rust - Qiita
  • 「だんご屋のひまつぶし」完全解析 - すぎゃーんメモ

    「だんご屋のひまつぶし」とは 最長手順の問題は…? 組み合わせ、グラフ問題 プログラムで解く 状態の列挙 グラフの構築 最短経路問題を解く WASM化して、ブラウザ上で解く もしもすべて異なる団子だったら さらに一般化していくと 到達可能性 頂点数 数を固定し、高さを変える 高さを固定し、数を変える まとめ Repository 「だんご屋のひまつぶし」とは 「ハノイの塔」の派生型のようなパズル。 高さ3の串が3あり、3色の団子2個ずつ計6個が刺さっている。これらを1個ずつ移し替えて、ある状態からある状態へと遷移させる、というゲーム。 移動できるのは各串で一番上にある団子だけ。 団子の大きさのような概念はなく、高さ3以内であればどこにでも動かせる。 単純なルールだがなかなかに奥が深く、じっくり考えて動かさないと最適な手順で達成するのは意外に難しい。 パズルオーディションというもので最

    「だんご屋のひまつぶし」完全解析 - すぎゃーんメモ
    kirakking
    kirakking 2024/11/04
    一般化までしているのは凄い。
  • TypeScriptは型安全じゃないからすばらしい - まめめも

    TypeScriptではじめる型システム」という記事をn月刊ラムダノートに寄稿しました。 新刊を発売しました "『n月刊ラムダノート』Vol.4 No.3(2024)発行のお知らせ https://t.co/PGppk1aRRA— lambdanote (@lambdanote) 2024年10月4日 どんな内容? TypeScriptの極小サブセットに対する型検査器を書き、それを通して型システムを体感してみよう、という内容です。 詳しく言うと、boolean型とnumber型と関数型しかないTypeScriptサブセット言語がターゲットです。 型検査器の実装言語にもTypeScript(処理系はDeno)を使います。 TypeScriptづくしの一品です。 わかる人向けに言うと、「型システム入門」という(通称TAPL)の単純型付きラムダ計算に相当する内容をTypeScriptで説明し

    TypeScriptは型安全じゃないからすばらしい - まめめも
  • 米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始

    米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始 アメリカ国防総省 DARPA(Defense Advanced Research Projects Agency:国防高等研究計画局)は、C言語のコードからRust言語のコードへ高い精度での自動変換実現を目指す「TRACTOR」(Translating All C to Rust)プログラムの開始を発表しました。 DARPAは軍事技術の開発および研究を行う機関であり、現在のインターネットはDARPAの前身となるARPAが1967年に開始した「ARPANET」がその起源であることはよく知られています。 DARPAが発表したTRACTORプロジェクトは、C言語のコードからRust言語のコードへの自動変換を高い精度で実現することで、過去にC言語で開発された多くのソフトウェアをメモリ安全なソフ

    米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始
  • Amber The Programming Language

    A modern, type-safe programming language that catches bugs and errors at compile time.

    Amber The Programming Language
    kirakking
    kirakking 2024/05/17
    「let result = $cat file.txt | grep "READY"$」でコマンド呼び出しの結果を格納できるのか。お手軽。failed ブロックで$?>0もキャッチできると。今後に期待。
  • MoonBit が WebAssembly 時代の理想(の原型)だった

    最近 moonbit という言語を知ったのですが、これが調べれば調べるほど好きになる言語だったので、紹介させてください。 文法的には GC 付きの Rust で、 WebAssembly にコンパイルされます。とくに CDN Edge Worker 上での実行を想定しているようです。もう好き。 注意: まだ若い言語なので、これから言語仕様がガンガン変わっていくと思われます。あくまで現時点での情報です。 tl;dr Pros だいたい GC あり Rust と捉えていい 文法面のキャッチアップが容易 ライフタイムの難しさを考えなくていい すでに vscode 拡張やパッケージマネージャ等のエコシステムが整っている Cons まだ安定していない / しばらくはソースコードが公開されない 現時点では学習リソースやパッケージ数が足りず、書き手の腕力が求められる はじめに: JS/TS/Rust

    MoonBit が WebAssembly 時代の理想(の原型)だった
  • Python滅ぼす協会に入会したい

    なぜ令和にもなって動的型付け言語を使うのか シフトレフトという概念が生まれたのは二十年以上も前のはずだ。 それにもかかわらず動かしてみるまで答え合わせもできない言語で開発をするという発想自体がどうかしている。 同じ動的型付けといってもJavaScriptはブラウザという事情があるし、型の表現力に優れたTypeScriptがあるからまだよい。 しかし、Pythonはどうだ。他にいくらでも選択肢があるなかで、サーバーサイドにわざわざ選定する言語ではなかろう。 貧弱な型ヒント、しかも書いたところで大した効用もない。 使っている外部ライブラリにひとつでも型ヒントがクソなものがあれば即座に破綻する。 型というガードレールもシートベルトもなしで糞を撒き散らしながらする開発にはうんざりだ。 シンタックスもキモい 動的型付けもさることながら、シンタックスもキモい。とにかく思考を妨げる語順になっている。 m

    Python滅ぼす協会に入会したい
    kirakking
    kirakking 2024/03/30
    わかる。後付けのタイプヒントやラムダなど、動的言語界のJavaな気がする。
  • 浮動小数点型の算術とお近づきになりたい人向けの記事 - えびちゃんの日記

    お近づきになりたい人向けシリーズです。 いろいろなトピックを詰め込みましたが、「これら全部を知らないといけない」のようなつもりではなく、いろいろなことを知るきっかけになったらいいなという気持ちなので、あまり身構えずにちょっとずつ読んでもらえたらうれしい気がします。 まえがき 予備知識 規格 用語 精度という語について 記法 表現について 有限値の表現について エンコードについて 丸めについて よくある誤差や勘違いの例 0.1 = 1 / 10? 0.1 + 0.2 = 0.3? 整数の誤差 Rump’s Example 基的な誤差評価 用語に関して 実数の丸め 有理数の丸め 基演算の丸め 差について 複数回の演算 補題たち 桁落ちについて Re: Rump’s example 融合積和 数学関数に関する式の計算 誤差の削減に関して 総和計算 数学関数の精度について 比較演算について 雑

    浮動小数点型の算術とお近づきになりたい人向けの記事 - えびちゃんの日記
    kirakking
    kirakking 2024/02/26
    このあたりの知識を数学的に抑えていなかったので参考になった。Rump’s exampleは知っていたけど、浮動小数点の定義との照らし合わせはこうなるんだ。