Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

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

タグの絞り込みを解除

programmingに関するzyzyのブックマーク (162)

  • 新しくプログラミング言語を作る際に文字列型をどうするべきか

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

    新しくプログラミング言語を作る際に文字列型をどうするべきか
    zyzy
    zyzy2025/12/04非公開
    Rust形式が良いのでは? と思ったら大体そんな感じの話だった(HaskellのTextがutf-8になったの知らんかった)。JVM系列はここがネックよな。
    • そのコードはなぜそうなっているのか、AIとの対話記録によりコードのコンテキストを保存する。オープンソースのコードエディタ「Zed」が新記録機能「DeltaDB」の開発表明

      そのコードはなぜそうなっているのか、AIとの対話記録によりコードのコンテキストを保存する。オープンソースのコードエディタ「Zed」が新記録機能「DeltaDB」の開発表明 オープンソースとして開発されている高速なコードエディタ「Zed」の開発元であるZed Industries社は、Zedの新機能としてAIへの指示やAIによるコード編集の内容を詳細に保存する「DeltaDB」の開発意向を表明しました。 Zedエディタは、GitHub社が主導して開発し人気のあったAtomエディタの開発者が、Atomエディタの開発終了後に新たに開発を始めたコードエディタです。Rustで開発されていることなどを主な理由として、軽量で高速な動作を大きな特徴としています。 GitコミットではAIとの対話によるコンテキストが失われてしまう 多くのコードエディタと同様に、ZedにもさまざまなAIモデルに対応したAIによ

      そのコードはなぜそうなっているのか、AIとの対話記録によりコードのコンテキストを保存する。オープンソースのコードエディタ「Zed」が新記録機能「DeltaDB」の開発表明
      zyzy
      zyzy2025/08/26非公開
      AIへの指示書は事実上の仕様書なんだから仕様書を残せるようにした方がいい、と言うのは確かに。
      • Unison 言語から、「次」の言語を考察したい

        関数型まつり以降、Unison 言語が気になっています。 最近、試しにAI用のLSPとか作ってたんですが、既存のプログラミング言語処理系にやや限界を感じています。既存言語の人間用のファイル参照とline:character の補完というインターフェースが、AIの操作単位と噛み合ってないじゃないか?という懸念です。 関数型まつりでも発表があった、関数型ドメインモデリングの Scott Wlaschin 氏いわく「副作用のない関数だけでプロジェクトを構成すれば、関数名はただの名前空間のルックアップテーブルに過ぎなくなり、その合成だけでドメインを表現できる」とし、関数を組み合わせるスタイルの Railway OrientedProgramming を提唱していました。 関数型まつりで Unison 関連の発表があったわけではないんですが、関数型言語のうち自分がほしい特性をAI相談したら、そ

        Unison 言語から、「次」の言語を考察したい
        zyzy
        zyzy2025/08/19非公開
        へー、nixの言語版みたいな感じか。面白そう。エフェクトシステムが前提なのは今時だな。
        • Linux創設者、Googleエンジニアのコードを「ゴミ」と一蹴 | XenoSpectrum

          Linuxの創造主、Linus Torvalds氏が、Googleエンジニアから提出されたRISC-V関連のコードを「ゴミ(garbage)」と一蹴し、プルリクエストを却下した。この出来事は、オープンソース界の巨頭が、品質と規律に対する揺るぎない姿勢を改めて示したものとして、大きな波紋を呼んでいる。 静寂を破った「ゴミ」発言事件が起きたのは、Linux 6.17カーネルのマージウィンドウ(新機能を取り込む期間)が閉じようとしていた2025年8月8日金曜日のことだ。GoogleAndroidチームに所属するエンジニア、Palmer Dabbelt氏が、次期カーネル向けのRISC-Vアーキテクチャ関連の機能追加を求めるプルリクエストを提出した。 これに対し、週末にかけてTorvalds氏から返されたのは、彼の代名詞とも言える、率直かつ痛烈な拒絶の言葉だった。Linuxカーネルメーリングリ

          Linux創設者、Googleエンジニアのコードを「ゴミ」と一蹴 | XenoSpectrum
          zyzy
          zyzy2025/08/13非公開
          あー……高級言語圏のお作法をOSに持ってったら怒られた、と。しかもやるなと言っておいた締め切り間際に滑り込ませるお行儀の悪さで。まぁそらそうなるか。
          • プログラミング自動化の果てに

            並列モード 事前準備:Google Calendar Tasks に乱雑にメモを書き留めてる 特にやることを決めずに tmux(or zellij) で3分割で並べる メモを拾って投げ込む ログが止まってないかだけを見ている メインタスクのトークン消費を圧迫しない範囲で、他タスクの流量を調節 ApproachingUsage Limit... がでてないと、仕事してる気にならない アイデアモード 並列モードの一つを「思いつきための実験するための枠」に 「このURL/論文読んで、試しに実装して再現して」 「こういうLint プラグインがほしいんだけど作れる?」 「WebGPUpytorch 移植できる?」 重要: 中身をまったく見てない 一通り走りきった後で、どのように成功/失敗したかを確認 うまくいったらGitリポジトリや利用単位に切り出す ゴール設定からワークフロー設計 ゴー

            zyzy
            zyzy2025/07/28非公開
            Lean4も行けるんだ!? 凄いな。
            • YAMLは人間が読みやすい、書きやすいと言われてるらしいが、JSONのほうが普通..

              YAMLは人間が読みやすい、書きやすいと言われてるらしいが、JSONのほうが普通に読みやすくないか? インデントは人間に優しいという幻想を捨てよう

              YAMLは人間が読みやすい、書きやすいと言われてるらしいが、JSONのほうが普通..
              zyzy
              zyzy2025/07/27非公開
              tomlでよくない? と思ってたら既にさんざん書かれてた
              • Programming Vehicles in Games

                Programming Vehicles in Games The fundamental principles needed to get a functional vehicle in your game. From my talk at the Better Software Conference on July the 13th, 2025. Table of Contents The special case of cars Chasing the Feel: TheIterative Path to AV-Racer A Conceptual Model of VehicleSimulation The Engine The Gearbox Implementing the engine and drivetrain: From Curve to Code The engi

                Programming Vehicles in Games
                zyzy
                zyzy2025/07/27非公開
                摩擦の図示すげー
                • React は次の10年を生き残れるか:3つのトレンドから考える

                  React Tokyo ミートアップ #7 のメイントークのスライド。 https://react-tokyo.connpass.com/event/358171/

                  React は次の10年を生き残れるか:3つのトレンドから考える
                  zyzy
                  zyzy2025/07/20非公開
                  もう12年経ってる事が地味に衝撃
                  • amazonの出したIDE「kiro」がめちゃくちゃ未来だったのでClaude Codeユーザーの人はみんな一度試してみてほしい

                    amazonの出したIDE「kiro」がめちゃくちゃ未来だったのでClaude Codeユーザーの人はみんな一度試してみてほしい どうもこんにちは、昨日AmazonがVS CodeベースのIDEである「kiro」をリリースしました この分野ではcursorやWindsurf、アドオンですがClaude Codeなど様々な選択肢があります そんな中であえてAmazonが出してきたIDEのコンセプトは Vibe coding ……ではなく、 Viable Code だそうです 細かい説明は公式HPを見てもらうとして、他との違いは 「仕様書駆動開発」 を明確に打ち出している点ですAIとのコーディングは難しい 特にClaude Codeを弄り倒している人なら常々感じてると思いますが、AIに適切な指示を与えて適切な作業をしてもらうのは非常に難しいです それを解決しようとみんな「sowで書いて」だっ

                    amazonの出したIDE「kiro」がめちゃくちゃ未来だったのでClaude Codeユーザーの人はみんな一度試してみてほしい
                    zyzy
                    zyzy2025/07/16非公開
                    結局古典的なフローをちゃんとやる仕組みがあるとありがたいという話に戻ってくるわけか。
                    • テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum

                      テキストエディタのデータ構造 Gap method Piece Table method Piece Table の構造 Piece Table の実装 Piece Table のメソッド まとめ テキストエディタのデータ構造 テキストエディタで採用されているデータ構造にはいろいろあります。 こちらの論文 Data Structures forText Sequences では各種データ構造について比較検討されています。 多くは、Gap method や Piece table method をベースにしたものが多いのではないでしょうか(図で言う最下部の中心の丸印に当たります)。最近では Rope なども有名ですね。 Gap method Gap method では、現在のカーソル位置で、テキストバッファを2つに分割し Gap を間に挟み、カーソル位置に対する編集(テキスト追加/削除)を

                      テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum
                      zyzy
                      zyzy2025/07/12非公開
                      言われてみればなるほどの挙動。
                      • LLMは新しい抽象化をもたらす - Martin Fowler's Bliki (ja)

                        この分野の声が大きい人たちと同じように、私も生成AIシステムがソフトウェア開発にどのような役割を果たすのかについて大きな関心を持っています。LLM(大規模言語モデル)の登場は、アセンブラから最初の高水準プログラミング言語への移行と同じくらい、ソフトウェア開発を大きく変えると思います。その後に開発された言語やフレームワークは、抽象化のレベルや生産性を向上させましたが、プログラミングの質に同じレベルのインパクトを与えるものではありませんでした。しかし、LLMには最初の移行と同程度のインパクトがあると思います。しかも、単に抽象化のレベルを上げるだけでなく、「非決定的なツールでプログラミングするとはどういうことか」という問いを私たちに投げかけています。 高水準言語は、新しいレベルの抽象化をもたらしました。アセンブラを使うときには、特定のマシンの命令セットを考える必要がありました。単純な操作でさえ

                        zyzy
                        zyzy2025/07/10非公開
                        要するにLLMは実質非決定的コンパイラじゃないか、って話か。まぁそもそも大半のプログラムはコンパイラかデータ整形マシンではあるが
                        • テスト用に適当なドメインを注入したいときは .invalid を使うとよさそう - Lambdaカクテル

                          tl;dr foobarhogehoge.invalidは絶対にリクエストが飛ばないのでおすすめ あらすじ 書いていたコードは、とあるミドルウェア向けに内部利用するURLを環境変数で受け取るようになっていた。普段は実際の内部のURLが書かれているのだが、テスト時には以下のようにダミーを設定していた: FOOBAR_EXTERNAL_URL="https://example.com/foobardummy" テストではこのURLを利用しないのだが、内部で環境変数のバリデーションを行っている都合上、とりあえず適当なURLを指定しなければ起動してくれないから、こうなっていた。重ねて言うが、実際はこの環境変数を利用していないのでこれでいい。 しかしこれだと、うっかり内部の様子がおかしくなったりエンジニアが狂ってしまった場合に、example.comに当にアクセスしてしまう。なおかつ、セキュリティ

                          テスト用に適当なドメインを注入したいときは .invalid を使うとよさそう - Lambdaカクテル
                          zyzy
                          zyzy2025/07/03非公開
                          知らんかった
                          • 値の不変性と変数の不変性についての整理 - kubell Creator's Note

                            はじめに 先日「関数型まつり2025」にて「成立するElixirの再束縛(再代入)可という選択 - Speaker Deck」という内容で発表させていただいたのですが、関連して、今回、いろいろな言語における値の不変性と変数の不変性について整理したいと思います。 値の不変性と変数の不変性 まず、しばしば混同されがちな「値の不変性」と「変数の不変性」の違いについてです。 値の不変性 (Immutable Value) こちらは、一度作成された値(データ)そのものが変更できない性質を指します。不変な値を変更しようとすると、実際には元の値を変更するのではなく、変更内容を反映した新しい値が作成されます。 変数の不変性 (Immutable Variable) これは、一度値を代入された変数に、別の値を再代入できない性質を指します。多くの言語で const (JavaScript,C++) や fi

                            値の不変性と変数の不変性についての整理 - kubell Creator's Note
                            zyzy
                            zyzy2025/06/30非公開
                            この辺Scala通ってると「varやvalで使い分けるのが変数の不変性、コレクションが可変に入ってる奴か不変に入ってる奴かが値の不変性」って分かりやすく理解できる奴/この記事はシャドウイングの話してないだろ
                            • AIでプログラマ不要になるというのは、プログラミング言語構文わかればプログラム組めるという誤解に基づくのでは - きしだのHatena

                              AIで日語で指示をあたえればプログラムを作ってくれるようになって、プログラミング知識がなくても誰でもプログラムが組めるとか、プログラマが不要になるとかいう話が盛り上がってますね。 けど、実際にプログラマをやって、AIコーディングエージェントを使っていれば、プログラミング知識がなくても可能な領域というのはそんなに広くないことを感じていると思います。 たとえば、ほぼプロンプト一発で作ってもらった刺身タンポポゲームがあります。 このプロンプトはこんな感じです。 刺身にタンポポを乗せるゲームJavaのSwingで作って。 刺身かネコが0.75秒ごとに表示されます。 刺身は、白い皿に、赤い板状の切り身が3枚のっています。 ネコは顔だけ表示されます。かわいくおねがいします。 表示のシーケンスは次のようになります。 共通の影が右から中央に0.1秒で移動します。 刺身かネコが0.5秒表示されて、0.1

                              AIでプログラマ不要になるというのは、プログラミング言語構文わかればプログラム組めるという誤解に基づくのでは - きしだのHatena
                              zyzy
                              zyzy2025/06/23非公開
                              ちょっと構文に融通が利くなでしこ感
                              • 「関数の副作用の有無」よりも大事なもの | 雑記帳

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

                                zyzy
                                zyzy2025/06/23非公開
                                思ってたよりむしろ純粋だと最適化にいろいろと便利なんだな、ってなった。
                                • コードの寿命・データの寿命・互換性の寿命

                                  これを記事にしている 2025 年 5 月の二年ほど前 (2023-06-02) に、縁あって明治大学 情報科学科での特別講義 [1] を担当させてもらいました。 身内の評判は悪くなかったのでスライドは公開していたんですが、単にGoogle Slides を公開状態にしただけだったんですね。 [2] これではあとから参照・引用するのも難しく、ちょっともったいないかと思ったので、いまさらながら記事の形でまとめなおしておくことにしました。 一年も経てば情報が古くなってしまうコの業界です。賞味期限切れの話もあると思いますが、話のネタにでもしてもらえれば幸いです。 講義の対象と目的 この講義、目的は2つあって、まず「最新の情報科学トピックに触れる」こと。 それから、就職活動が始まる3年生がメインの対象者なので、 今後のキャリアプランとか人生指針に関するいろいろな視点を持ってもらうことです。 この

                                  コードの寿命・データの寿命・互換性の寿命
                                  zyzy
                                  zyzy2025/05/26非公開
                                  データ蓄積しない系は基盤系で実質スクリプト実行装置みたいなものという洞察が目から鱗。確かに。
                                  • Koto Programming Language

                                    A lightweight scripting language forRust applications. About Docs Install Playground About News Docs Playground

                                    zyzy
                                    zyzy2025/03/30非公開
                                    rustで組み込むための小型スクリプト言語
                                    • TypeScript使いの憂鬱:never型はプロパティを持つか | 雑記帳

                                      never型とプロパティアクセスTypeScriptにはneverという型があります。先日も記事にしましたが、簡単に言うとこれは「値を持たない型」です。 never型は、あらゆる型に対してその部分型として振る舞います。例えば、never が number の部分型であることは次のコードでわかります: type T<U extends number> = {}; type A = T<string>; // stringはnumberの部分型ではないのでエラー type B = T<never>; // neverはnumberの部分型なのでコンパイルが通る さて、部分型関係と、「その型の式に対してできる操作の集合」の関係について考えましょう。あまり面白い例を思いつかなかったのでアレですが、次の型を考えます: type UserInfo = { name: string }; type D

                                      zyzy
                                      zyzy2025/03/25非公開
                                      typescriptちょいちょい気持ち悪い挙動するな
                                      • 入門リトライ

                                        Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End

                                        入門リトライ
                                        zyzy
                                        zyzy2025/03/12非公開
                                        キャッシュまで作り始めると面倒すぎるぞ……と思ったが最後にGateway通す手が出てきた。キャッシュやるなら要るわな。
                                        • zyzy
                                          zyzy2025/03/12非公開
                                          あれ一応公式なんだ?

                                          お知らせ

                                          公式Twitter

                                          • @HatenaBookmark

                                            リリース、障害情報などのサービスのお知らせ

                                          • @hatebu

                                            最新の人気エントリーの配信

                                          処理を実行中です

                                          キーボードショートカット一覧

                                          j次のブックマーク

                                          k前のブックマーク

                                          lあとで読む

                                          eコメント一覧を開く

                                          oページを開く

                                          はてなブックマーク

                                          公式Twitter

                                          はてなのサービス

                                          • App Storeからダウンロード
                                          • Google Playで手に入れよう
                                          Copyright © 2005-2025Hatena. All Rights Reserved.
                                          設定を変更しましたx

                                          [8]ページ先頭

                                          ©2009-2025 Movatter.jp