並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 584件

新着順 人気順

ProgrammingLanguageの検索結果81 - 120 件 / 584件

  • Pythonは遅い遅い言われてJITとか中途半端なことせずにフルネイティブコンパイラを作ったらどうですか?

    回答 (13件中の1件目) 現代の「インタプリタ」ってほぼVMコードへのコンパイル+VMでの実行で、よほどナイーブな実装でない限り既にかなり速いです。そのままVMコードへのコンパイルをネイティブコードへのコンパイルにしてもたいして速くならないんですよ。 結局何に時間かかってるかというと実行時の型検査やディスパッチ、アロケーションで、そこを何とかしないといくらネイティブコンパイルしても速くなりません。そのためには: 1. 部分的にでも型宣言などを取り入れて静的型付けに寄せる 2. コンパイル時解析をうんと頑張って型推論や生存期間解析する 3. 実行時にどんなデータが来るかを見てから部分...

      Pythonは遅い遅い言われてJITとか中途半端なことせずにフルネイティブコンパイラを作ったらどうですか?
    • Lispを実装したくなったら読んでほしい本6選 - Arantium Maestum

      言語実装 Advent Calendar 2022の1日目の記事として書いた。 Lisp Advent Calendar 2022でも枠が空いていたのでダブル投稿。 プログラミング言語を実装してみたい!と思ったらまずは簡単なLispインタプリタから始めるというのは一つの王道だと思う。 複雑な構文解析は要らず最低限の再帰下降法パーサで手に入る構文木を、そのまま再帰的な関数で実行していくtree walking評価器。メモリ確保もヒープにそのまま置いていって、メモリ解放は実装言語のGCに任せるなりプログラムの終了時までやらなかったり。そんなインタプリタを作る経験から得られるものは非常に大きく、どんなプログラマでも一回は試してみてもいいのではないか?と思っている。(個人的な感想です) そんな簡易Lispを実装してみて沼にハマってしまい、より精緻な言語処理系を作りたいと思ったとする。その時点で:

        Lispを実装したくなったら読んでほしい本6選 - Arantium Maestum
      • 美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita

        「本記事は、技術的な視点から情報を提供することを目的としております。内容については可能な限り正確性を期しておりますが、記事内の見解は執筆者の意見や理解に基づいており、すべての方にとって普遍的な結論を示すものではありません。技術の分野は常に進化し、新たな知見が追加されることもあります。ご意見がある場合には、建設的な対話を歓迎いたしますが、批判的な意見を展開する際も、お互いの尊重を大切にしたコミュニケーションを心がけていただけると幸いです。」 タイトル: 「東京プログラマー リスプを書かずにはいられない物語」 新宿の夜景を見下ろすカフェで、主人公の大輔は、ノートパソコンに向かって静かにキーボードを叩いていた。彼は東京で働くプログラマー。コードの世界に浸り、特に最近夢中になっているのが関数型言語LISPだった。 LISPは、数学のように純粋で美しいロジックが展開できる言語。大輔は「この関数型の世

          美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita
        • COBOL技術者の減少と、技術の「時限爆弾」に我々はどう向き合うべきか ~「昭和100年」を前に~【フォーカス】 レバテックラボ(レバテックLAB)

          TOPフォーカスCOBOL技術者の減少と、技術の「時限爆弾」に我々はどう向き合うべきか ~「昭和100年」を前に~【フォーカス】 立命館大学情報理工学部教授 上原 哲太郎 情報セキュリティ学者。デジタル・フォレンジック研究会会長や情報セキュリティ研究所理事を務め、官公庁のセキュリティ対策支援や、警察組織のサイバー犯罪アドバイザーなどを行う。「PHS反対運動の父」を掲げる。研究室には大量の菓子類を常備している。学生にはスナック系やブラックサンダーが好評。 公式サイト 立命館大学 研究者学術情報データベース X 「昭和100年問題」と呼ばれる年問題があります。西暦ではなく、元号である「昭和」を用いて、年の値を数字2桁固定で処理しているシステムが、COBOLなどで記述された企業や自治体の一部ソフトウェアに存在することに起因します。 当時の仕様のまま今も昭和換算で運用を続け、無理やり「2024年=

            COBOL技術者の減少と、技術の「時限爆弾」に我々はどう向き合うべきか ~「昭和100年」を前に~【フォーカス】 レバテックラボ(レバテックLAB)
          • Goエラーハンドリング戦略

            Goのエラーハンドリングが採ったスタイル 多値返し 直積(関数の返値とエラーを両方返す) try-finallyをdeferという機構でカバー panicはプロセスを落とすためのもの Goはこの戦略でエラーハンドリングを行うとしましたので、「多値はなぜタプルじゃないんだ?」、「直和(返値orエラー)で十分じゃ?」「panic-recoverでtry-catchできそう?」などいう様な他の処理系の風習を持ち込むことは意味がありません。そしてそれらの提案の多くはすでに検討されリジェクトされてきた経緯があります。 「try組み込み関数」プロポーザルなんかも検討されマージ直前くらいまで進んだこともありますが、「Goのエラーハンドリング」にとって一長一短がありました。その欠点課題は解決できずに最終的にリジェクトされました。 「多値返し」は実にCPUフレンドリーな機構で、C言語の関数呼び出し規約にちょ

              Goエラーハンドリング戦略
            • 「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由 | ログミーBusiness

              テーマは「動的型付け言語と大規模開発」まつもとゆきひろ氏:まつもとゆきひろです。Matzチャンネル17回目ということでお送りします。ちょっと前になりますが9月28日に私が技術顧問を始めたクラウドサーカスという会社さんがテックイベントを開催されて、その時のテーマが「動的型付け言語と大規模開発」というテーマでした。 その時に話したこととか、話そうとしたこと、話そうと思っていたんだけど時間の関係で話せなかったことなどを補足する意味も含めて今日はちょっと放送しようかと思います。というか、分量が多いので2回に分けて話そうかなと思っています。 このクラウドサーカスのイベントのテーマは別に私から指定したわけではなくて、先方が「こんなテーマで話したいんだ」とか「聞きたいんですけど」ということで設定されたんですね。 「動的型付け言語と大規模開発」。例えばRubyとか、Ruby on Railsとかで開発をし

                「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由 | ログミーBusiness
              • 全世界のソフトウェア開発者は4700万人。最も多いのがJavaScript開発者で2800万人、Java、Pythonが続く。スラッシュデータの調査

                全世界のソフトウェア開発者は4700万人。最も多いのがJavaScript開発者で2800万人、Java、Pythonが続く。スラッシュデータの調査 IT業界に関する調査を行っているSlash Dataは、全世界のソフトウェア開発者に関する調査結果を発表しました。 発表によると、全世界のソフトウェア開発者は合計で約4700万人。そのうち最も多く使われているプログラミング言語がJavaScriptで、約2800万人のソフトウェア開発者が利用しています。 2位がJavaで約2320万人、3位がPythonで2290万人、4位がC++で1630万人、5位がPHPで1150万人と続いています。 言語ごとの開発者の増加ペースで見ると、JavaScriptを利用する開発者はこの1年で280万人増加したものの増加ペースは鈍化。 スラッシュデータは、この鈍化はJavaScript開発者をめぐる人材市場が成

                  全世界のソフトウェア開発者は4700万人。最も多いのがJavaScript開発者で2800万人、Java、Pythonが続く。スラッシュデータの調査
                • Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜

                  エディタ支援 言語の公式がエディタ支援(LSP等)を提供しているかを示しています。 自動テスト 言語の公式が自動テスト(ユニットテスト等)を備えているかを示しています。 リンタ 言語の公式がリンタを提供しているかを示しています。 ビルドシステム 言語の公式がビルドシステムを提供しているかを示しています。 パッケージマネージャ 言語の公式がパッケージマネージャを提供しているかを示しています。 フォーマッタ 言語の公式がフォーマッタを提供しているかを示しています。 手続き型 言語のプログラミングパラダイムが手続き型プログラミングを強くサポートしているかどうかを示しています。 オブジェクト指向 言語のプログラミングパラダイムがオブジェクト指向プログラミングを強くサポートしているかどうかを示しています。 関数型 言語のプログラミングパラダイムが関数型プログラミングを強くサポートしているかどうかを示

                    Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜
                  • 「Rust」が10周年--エレベーター故障から始まったシステムプログラミング言語の歴史

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

                      「Rust」が10周年--エレベーター故障から始まったシステムプログラミング言語の歴史
                    • アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)

                      GNU Assembler互換(サブセット)のアセンブラをGo言語でフルスクラッチで作ってみました。 開発22日目で自作Goコンパイラ(をセルフホストしたときに出力される20万行のアセンブリ)をアセンブルすることに成功しました。 どうやって作ったかというと、小さいコードを GNU Assembler (以下 as) に食わせて出力されたバイナリを観察する、を繰り返して中のロジックを推定し再現しました。as の実装は見ていません。(一瞬見たけど巨大すぎて何もわからなかった) アセンブラ自作は、やってみるとコンパイラ自作よりだいぶ簡単でハマりポイントも少ないので、学習テーマとしてはおすすめです。2箇所ほど難所(命令エンコーディングのルールを理解するのと、ジャンプ命令の最適化)がありましたがそれ以外はさくさく楽しく作れました。 作ってみた結果、アセンブリ言語の理解が深まったのはもちろんのこと、E

                        アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)
                      • textlint - Linterの作り方

                        [fit] textlint - Linterの作り方 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info Book: JavaScript Primer アジェンダ Linterを作る人向けの話 Linterの考え方とアーキテクチャを一致させる 使うものを作ろう、作るために使おう textlint とは 自然言語(日本語や英語など)に対するLinter MarkdownやHTMLなどのマークアップ言語に対応している ビルトインのルールは0 利用できるルールは100以上ある 多くのルールはオフラインで動くので、外部に入力してる内容を送信しない CI/CDに組み込める自然言語のチェッカー(表記揺れ、スペルチェック、誤用、読みやすさのチェックなど) textlint users Translation: Angul

                        • Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena

                          オブジェクト指向言語の話をするときに便利なように、Javaを中心にプログラミング言語をまとめてみました。 Javaに影響与えるか、Javaから影響を受けるか、という感じですね。 Simula オブジェクト指向はここから始まったと言われています。 クラス、オブジェクト、継承、仮想関数(多態)といった、オブジェクト指向の基本要素が備わっていました。 ただし、「オブジェクト指向」という言葉は生まれていません。 Smalltalk Simulaから発想を得て「オブジェクト指向」という言葉を生んだのはアラン・ケイでした。 しかし、モデルとしてはSimulaとは異なりメッセージングを主体としたものでした。また、アラン・ケイの「オブジェクト指向」はプログラミングのパラダイムだけではなく、人がコンピュータをどのように扱うかというメタファであり、ダイナブックというハードウェアやそのユーザーインタフェースを含

                            Javaを中心に偏見ベースでプログラミング言語の関係をまとめた - きしだのHatena
                          • The Rust Programming Language 日本語版 - The Rust Programming Language 日本語版

                            The Rust Programming Language 日本語版 著:Steve Klabnik、Carol Nichols、貢献:Rustコミュニティ このテキストのこの版ではRust 1.58(2022年1月13日リリース)かそれ以降が使われていることを前提にしています。 Rustをインストールしたりアップデートしたりするには第1章の「インストール」節を読んでください。 HTML版はhttps://doc.rust-lang.org/stable/book/で公開されています。 オフラインのときは、rustupでインストールしたRustを使ってrustup docs --bookで開けます。 訳注:日本語のHTML版はhttps://doc.rust-jp.rs/book-ja/で公開されています。 rustupを使ってオフラインで読むことはできません。 また、コミュニティによるい

                            • 企業にとってのプログラミング言語の位置づけ - 覚書

                              プログラミング言語の良し悪しについては昔から活発に議論されてきました。このような議論の中で企業がどのようなプログラミング言語を採用するかについて釈然としない思いをしたかたも多々いらっしゃるかと思います。典型的には「なぜ自分の会社では俺の好きな言語を採用しないのか」です。この「なぜ」の一部に回答する、かつ、そこに共感しないまでも理解してもらうのが本記事の目的です。 この手の会話は炎上しがちであり、かつ、私はそのようなことはしたくないので個々の言語の名前は挙げません。そのためやや抽象的な表現が多くなりがちですがご容赦ください。また、筆者はここで書く価値観が絶対というつもりはなく、読者のみなさま個人のプロジェクトは自分の欲望の赴くままに好きなものを使えばいいと思っています。 企業は継続的にプログラムの開発やメンテナンスをする必要があります。これを念頭に置くと、使いこなせる人が多い言語であれば複数

                                企業にとってのプログラミング言語の位置づけ - 覚書
                              • 【第1回・後編】エンジニア和田卓人のこれからを形作る技術 | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

                                『テスト駆動開発』や『SQLアンチパターン』をはじめとする技術書の翻訳者、さまざまなIT企業をわたり歩く技術顧問、さらに最近ではエンジニアリング文化を伝える講演者としても活躍されている和田卓人さん(https://twitter.com/t_wada)。 そのソフトウェアエンジニアとしての素顔を株式会社一休CTOの伊藤直也さん(https://twitter.com/naoya_ito)が聞き出す対談の後編では、現在とこれからのIT業界におけるプログラミング言語のトレンド、具体的にはRustを始めとする静的型付き言語への視座から、 ソフトウェアエンジニアとして新しい技術を学び続けるうえでの態度について語り合います。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク

                                • JavaScript エンジンの高速化

                                  これらの JavaScript エンジンのうち、以下では特に JavaScriptCore を扱います。 最適化の基本戦略 JavaScript をはじめとする動的言語は、主にインタープリタにおいて実行されます。しかし、インタープリタはコンパイルされたコードと比較して実行に時間を要するという欠点があります。そこで、インタープリタの最適化では、バイトコードの JIT コンパイルが最初に行われます。 しかし、コンパイルには当然時間がかかります。少しでも高速化されたコードを生成するには、より多くの時間をコンパイルにかけなければなりません。コンパイルによる速度向上とコンパイルのレイテンシはトレードオフの関係にあります。 そこで、多くの JavaScript エンジンは、インタープリタと多階層の JIT コンパイラの組み合わせで構成されています。次の図は、主要な JavaScript エンジンの設計

                                    JavaScript エンジンの高速化
                                  • 元JavaエンジニアがGoに感じた「表現力の低さ」と「開発生産性」の話 - DMM inside

                                    |DMM inside

                                      元JavaエンジニアがGoに感じた「表現力の低さ」と「開発生産性」の話 - DMM inside
                                    • 「BASIC」誕生60周年--コンピューター利用を容易にしたシンプルな言語の歴史

                                      「Python」や「JavaScript」が学ばれるようになるずっと前、米国時間1964年5月1日の夜明け前の暗闇の中で、コンピューター史におけるささやかながら非常に重要な出来事がダートマス大学で幕を開けた。数学者のJohn G. Kemeny氏とThomas E. Kurtz氏がGeneral Electricの「GE-225」メインフレームを操作して、独自に考案した言語の最初のプログラムを実行した。その言語こそ、初心者向け汎用記号命令コード、すなわち「BASIC」だ。 BASICは最初に普及した言語ではない。その栄誉を得たのは、ビジネス分野では「COBOL」、エンジニアリング分野では「FORTRAN」だった。しかし、1960年代半ばから1980年代初頭までは、コンピュータープログラミングの初心者の多くが最初にBASICを学んでいた。 コンピューティングが縁遠く、少々難解な分野だった世代

                                        「BASIC」誕生60周年--コンピューター利用を容易にしたシンプルな言語の歴史
                                      • Asahi Linuxのリードデベロッパがアップストリームメンテナーを辞任、背景に“C vs. Rust”対立に端を発したブリゲーディング | gihyo.jp

                                        Linux Daily Topics Asahi Linuxのリードデベロッパがアップストリームメンテナーを辞任⁠⁠、背景に“C vs. Rust”対立に端を発したブリゲーディング 僕はもう、カーネル開発プロセスやコミュニティ管理アプローチになんの信頼も置いていない(I no longer have any faith left in the kernel development process or community management approach.)―2020年のプロジェクトローンチ以来、Asahi Linuxのリードデベロッパを務めてきたHector Martinは2月7日、Appleシリコン(ARM)コードのアップストリームカーネルメンテナーを辞任する意向をLinux開発者メーリングリストで表明した。突然の辞任の背景には、Cベースの古参メンテナーとRustコード推進派の対

                                          Asahi Linuxのリードデベロッパがアップストリームメンテナーを辞任、背景に“C vs. Rust”対立に端を発したブリゲーディング | gihyo.jp
                                        • 新しい言語を勉強する意味あるんだろうか…?

                                          別に何の言語でも良いけど、とりあえず自分が手を出せそうなpythonを題材にする 恥ずかしながら、Webアプリケーションの世界しか知らないから、有効な使い道が分かっていない Pythonを使えば、スタンドアローンなアプリケーションも作れるし、コンソールベースのバッチも作れるって言うのは分かる でも、自分が思い浮かぶサービスは、ブラウザベースのアプリケーションで事足りる 例えばwebページのスクレイピングをして、その結果を分析してユーザーが見たい形式で表示するアプリケーションを作りたいとする 軽く頭の中で設計すると、分析の要件定義さえ出来れば、jsとphpとWebサーバー周りをこねくり回せば大体作れるだろうな…っていう結論にいたる 視野が狭いだけなんだろうけど、勉強するモチベーションを捻出出来ない

                                            新しい言語を勉強する意味あるんだろうか…?
                                          • Ruby が YJIT でなんで速くなるのか? Lazy Basic Block Versioning をサクッと理解してみた - estie inside blog

                                            estie でソフトウェアエンジニアをしている徳永(@yTo_9)です。 estie では Ruby を書いたりTypeScriptを書いたりしています! estie 夏のブログ祭りにかこつけて、せっかくなら普段は追わない部分だけど、気になっていたYJITなるものを深掘りしてみようと思い、「YJITがなぜRailsアプリケーションの高速化を実現できたのか」を調べてみたので紹介したいと思います。 「どうせ難しいんでしょ?」と思いながら調べてみたのですが、講演や論文の説明がわかりやすく、意外に概要を把握することは難しくありませんでした。 YJIT の核となっているのは Lazy Basic Block Versioning (LBBV) という手法で、これはRubyだけに限らず動的言語全般に適用可能な強力なアプローチであることがわかりました。 「あるタイプの条件分岐は、ほとんどの場合で片側しか

                                              Ruby が YJIT でなんで速くなるのか? Lazy Basic Block Versioning をサクッと理解してみた - estie inside blog
                                            • Pythonの波に飲み込まれたRuby、日本のケータイ敗戦との共通点

                                              プログラミングの学習を始めようとする人がする定番の質問がある。「どのプログラミング言語を選べばいいか」というものだ。 私はこのコラムで以前、JavaScriptからプログラミングを始めてはどうかと書いた。JavaScriptはWebブラウザーさえあれば動作するからだ。例えば「Chrome」であれば、F12キーを押して「Console」タブを選ぶだけで、JavaScriptの対話実行環境を利用できる。 関連記事: 保存していないクレジットカード情報が漏洩する謎、鍵はあのプログラミング言語 もっとも、JavaScriptは最初に学ぶ言語としては少し癖が強いとも感じている。どちらかというと、2番目か3番目に学ぶことで視野が広がるタイプの言語ではないだろうか。 私が初心者に勧めるとしたら候補は2つある。「Ruby」と「Python」だ。 私がRubyを勧める理由は、「プログラミングの楽しさ」を体験

                                                Pythonの波に飲み込まれたRuby、日本のケータイ敗戦との共通点
                                              • 「IBM COBOL for Linux on x86」発表。x86サーバ上のRHELやUbuntu Serverでz/OS互換のCOBOLコンパイルや実行を可能に

                                                米IBMはx86サーバ上のLinux環境でCOBOL言語のコンパイルや実行を実現する「IBM COBOL for Linux on x86 1.1」を発表しました。 IBM COBOL for Linux on x86 1.1は、「IBM COBOLコンパイラファミリー」の最新製品として、IBM Enterprise COBOL for z/OSおよびIBM COBOL for AIXとの互換性を備えています。 また、Enterprise COBOL for z/OSと同じ最適化技術がIBM COBOL for Linux on x86 1.1に用いられ、コンパイラの基本的なバックエンドも共有されているため、高速な処理が実現できるとのこと。 TXSeriesのマルチプラットフォームに対応。Db2 for Linux/UNIX/Windowsに対応。Db2ファイルシステムはシーケンシャル、イ

                                                  「IBM COBOL for Linux on x86」発表。x86サーバ上のRHELやUbuntu Serverでz/OS互換のCOBOLコンパイルや実行を可能に
                                                • WebAssembly所感

                                                  WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想 WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 Webサンドボックス JavaScript および asm.js Javaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

                                                    WebAssembly所感
                                                  • TypeScript の型定義に凝りすぎじゃね? - Neo's World

                                                    TypeScript の型定義に凝りすぎじゃね? ここ数年で、Qiita や Zenn で TypeScript の話を見かける機会が多くなった。JavaScript には Java のような型定義がなく、初心者の混乱の元・ひいては障害の元になりうるのはよく分かる。 しかし、最近どうにもこうにも、TypeScript でむりくり型定義するような Tips を多く見かけて、疑問に思っている。たかが TypeScript に頑張り過ぎじゃね? と。 【TS】TypeScript 4.0 の新機能 - Qiita こういう新機能とか、追加されるのはいいんだけど、本当に便利なんか?と思ってしまう まず、TypeScript による型定義は単なる Linter でしかない。コードが実行される時は基本的に JavaScript に変換され、TypeScript の構文で記した型定義は消失する。コーディ

                                                      TypeScript の型定義に凝りすぎじゃね? - Neo's World
                                                    • Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ

                                                      Ruby の開発をしている技術部の笹田です。娘が自転車に乗り始め、まだ不安なためずっとついていなければならず、少し追っかけまわしただけで息切れがヤバい感じになっています。運動しないと。 ここ数年、Ruby で並列処理を気軽に書くための仕組みである Ractor を Ruby 3.0 で導入するという仕事を、クックパッドでの主務として行ってきました(クックパッドから、これ、と言われていたわけではなく、Ruby を前進させるというミッションの上で行ってきました)。 Ractor は、もともと Guild という名前で開発をはじめ、2020年の春頃、Ractor という名前に変更することにしました。いくつかの機会で発表しています。下記は、RubyKaigi での発表の記録です。 A proposal of new concurrency model for Ruby 3 - RubyKaigi

                                                        Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
                                                      • Google、超高速に評価可能でポータブルな式言語「Common Expression Language」(CEL)発表

                                                        Google、超高速に評価可能でポータブルな式言語「Common Expression Language」(CEL)発表 式言語とは一般に、プログラミング言語の一部やネットワークなどの構成ファイル、テンプレートファイルなどの中で、簡易な式やロジック、ポリシーなどを記述する際に使われる言語のことです。 こうした用途では、さまざまなプラットフォームに対応する移植性、起動時やプログラムの実行中に評価されることがあることから高速に評価が完了すること、安全に評価が実行できること、用途に応じて拡張しやすいこと、などが求められます。 CELは超高速に評価、ポータブル、サブセットサポート CELは正にこうした要件に対応した式言語となっており、Googleは次のような特徴があるとしています。 ナノ秒からマイクロ秒程度の高速な評価に最適化されている C++、Java、Goでサポートされるスタックによるポータブ

                                                          Google、超高速に評価可能でポータブルな式言語「Common Expression Language」(CEL)発表
                                                        • WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進

                                                          WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進 WebAssemblyのガベージコレクション機能が、Chrome 111 Devリリースにおいて試験的実装を示すOrigin trialとして実装されることが分かりました。 WebAssemblyのガベージコレクション機能はまだ仕様策定段階ですが、試験的機能として実装が登場することで仕様策定の作業などが進むと同時に、いわゆる高級言語でのWebAssembly対応が広がることも期待されます。 WASM GCはChromeのフィーチャーフラグで有効化 ChromeブラウザにはStable、Beta、Dev、Canaryなど、開発の段階に分かれた複数のリリースチャンネルがあります。 現在リリースされているChrome 111 Devリリースチャンネル

                                                            WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
                                                          • 動的型付き言語は素早くプロジェクトを立ち上げるのに向いており、静的型付き言語は長期間の保守にむいているという仮説 - kmizuの日記

                                                            注:誤解されないように最初にこの記事の意図を書いておくと、古典的な静的型付き言語VS.動的型付き言語の論争をするつもりはありません。これまで色々なプロジェクトを観察(風聞も含む)して来たところ、そういう傾向があるのではないかという仮説です。それと、文脈として主にWebアプリケーション開発する時のことを想定しており、それ以外のケースはいったん脇に置いています。WebアプリケーションだとPHP(動的型付き言語)の方が圧倒的に事例多いのではという感想もありそうですが、その辺りを考え出すと話がこんがらがるので、これもいったん脇においています。 たとえば、色々な事例を見聞きするに、スタートアップ企業において動的型付き言語であるRubyのWebアプリケーションフレームワークであるRuby on Rails(RoR)は好まれる傾向にあります。近年のPythonの動向はさておき、未だにRoRの求人がかなり

                                                              動的型付き言語は素早くプロジェクトを立ち上げるのに向いており、静的型付き言語は長期間の保守にむいているという仮説 - kmizuの日記
                                                            • PHPの時代は終わった? プログラミング言語のランキングで、2001年以来の最低シェアを記録【やじうまWatch】

                                                                PHPの時代は終わった? プログラミング言語のランキングで、2001年以来の最低シェアを記録【やじうまWatch】
                                                              • Pythonが教育用途において十分だという話

                                                                Pythonが教育用途において十分だという話 今話題のPythonを教えている現役の講師です。Pythonを教える際に重視すべきだと考えている機能等について書いておきます。 dataclass / Pydantic 自分は型ヒントよりもdataclassやPydanticを使った型付けを重視しています。いわゆるクラスベースな言語の書き方が大事だと考えています。 dataclass Pythonは動的型付け言語であり、interface相当の機能すらclassの構文で書く変わった言語です。近年Pythonの型ヒントは少しづつ充実してきていますが発展途上であることは否めないですし、何より実行時にその型であることは保証されないので、dataclass等を使った開発スタイルが依然強力だと考えています。 Python+TypeScriptというようなスタックを使う際には両言語の差に混乱するでしょう。

                                                                  Pythonが教育用途において十分だという話
                                                                • マイクロソフト、「C#は進化させ続ける」「Visual Basicに新しい構文の導入はしない」。.NETのプログラミング言語に関する最新の戦略を明らかに

                                                                  マイクロソフト、「C#は進化させ続ける」「Visual Basicに新しい構文の導入はしない」。.NETのプログラミング言語に関する最新の戦略を明らかに マイクロソフトは、.NETでサポートする3つのプログラミング言語「C#」「F#」「Visual Basic」の今後に関する戦略を、最新版にアップデートしたことを明らかにしました。 下記はマイクロソフトで.NETのプリンシパルプログラムマネージャを務めるKathleen Dollard氏のツイート。 We've updated our .NET Language Strategy. You can read more and get the links here: https://t.co/SsmZJBSEUA — Kathleen Dollard (@KathleenDollard) February 6, 2023 最新版の戦略はこれま

                                                                    マイクロソフト、「C#は進化させ続ける」「Visual Basicに新しい構文の導入はしない」。.NETのプログラミング言語に関する最新の戦略を明らかに
                                                                  • Java 30周年記念! Javaの30年をふりかえる

                                                                    JJUG CCC 2025 Spring 発表資料

                                                                      Java 30周年記念! Javaの30年をふりかえる
                                                                    • これから流行る言語 | 雑記帳

                                                                      新言語にできることはまだあるかい なんとかWIMPS 最近(1ヶ月くらい前)、こんな記事が出ました: 新しいプログラミング言語が出てこない(新しく出てた言語を追記) – きしだのHatena Kotlin, TypeScript, Rust, Swift以降にみんなが話題にするような新しい言語が出てこない、それはなぜか、みたいな趣旨です。客観的に見れば「新しい言語は常に出続けている」わけですが、「みんなが話題にするような」というのが多分曲者なんでしょうね。 例え話をすると、新しい若木は常に生えてきているんだけど、大木に成長するには時間がかかるので、大木にしか興味のない人には「この8年間で新しい大木は登場していない」と判断してしまうのかもしれません。 まあ私としても、Web (HTTP) APIを書く言語とか、JSON色付け係が使う言語はもう出揃ってしまったのかもしれないという気はしなくもな

                                                                      • Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ

                                                                        先月、国内最大のセキュリティ研究会であるコンピュータセキュリティシンポジウム 2020(CSS 2020)が開催され、そこで、Rust言語を用いてファームウェア、OS、言語処理系を設計・実装した話を発表しました。本来、CSS 2020はリアルで開催されるはずでしたが、コロナ禍の影響でオンライン開催となり発表動画作成が求められました。せっかく作った動画をこのまま捨て置くのももったいないと思い、ここで供養したいと思います。 www.youtube.com 概要 内容は、Rust言語を用いて、AArch64のセキュアワールド内で動作するファームウェア、OS、プログラミング言語処理系を実装した話となります。と言っても、まだまだ基本的な部分しか実装しておらず、実現目標に対して2〜3割と言ったところですが、どうぞご笑覧ください。 ブート部分は多少アセンブリ言語を使っていますが、その他の部分はRustで

                                                                          Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
                                                                        • MoonBit が WebAssembly 時代の理想(の原型)だった

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

                                                                            MoonBit が WebAssembly 時代の理想(の原型)だった
                                                                          • RustもJuliaやGoみたいに廃れて消えていく気がしている。 - Qiita

                                                                            Juliaは一時期すごい流行って数値計算の王座になると期待されライブラリも大量に作られたけど、結果Pythonの座を置き換えるにはいたらなかった。Goもコンテナ化との相性がよて一時期すごい流行ったけど、なんだかんだみんなJavaとかPHPとかRubyとか書いてる。 Rustもここ数年すごい流行ってるけど、JuliaとかGoみたいに飽きられて廃れていく気がする。 流行に敏感な人がなんか面白い言語あるぞーと騒ぎ出す。 様々なライブラリが乱立して色々出来るようになる。 数年かけて言語そのものが良くなっていき、ライブラリも淘汰や共通化されて成熟していく。 成熟したライブラリの開発は飽きられてメンテナンスされなくなる。 メンテナンスされてないライブラリを使いたくないから誰もその言語に参入しなくなる。 結果として言語そのものが衰退して、もとの成熟していてメンテナンスされ続けている言語とライブラリをみん

                                                                              RustもJuliaやGoみたいに廃れて消えていく気がしている。 - Qiita
                                                                            • 令和の時代にPerlに入門する - ハンドルネームの敬称は省略できます

                                                                              こんにちは、id:rokuokunです。 Perlとの出会いは突然やってきます。 いつ求められてもサッと対応できるように、いち早くPerlを書けるようになっておきましょう。 perl --version 今回入門するにあたり使用するバージョンは Perl 5.40.0 です。 インストール作業については割愛しますが、困ったらplenvを使っておけばいいと思います。 ❯ perl --version This is perl 5, version 40, subversion 0 (v5.40.0) built for darwin-2level Copyright 1987-2024, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Pu

                                                                                令和の時代にPerlに入門する - ハンドルネームの敬称は省略できます
                                                                              • Node.jsでTypeScriptのコードを実行できるようになるかも - 技術探し

                                                                                module: add --experimental-strip-types by marco-ippolito · Pull Request #53725 · nodejs/node It is possible to execute TypeScript files by setting the experimental flag --experimental-strip-types. Node.js will transpile TypeScript source code into JavaScript source code. During the transpi... 💁‍♀️ まだマージされてない点に注意してください --experimental-strip-typesというフラグを実行時に付けることにより、Node.jsでTypeScriptのコードを実行できるようになる

                                                                                  Node.jsでTypeScriptのコードを実行できるようになるかも - 技術探し
                                                                                • Objective-C小史

                                                                                  Mediumより。 BY ハンセン・スー これまでに、ユーザがダウンロードしたiPhoneアプリは1,400億を超えています1。iPhoneの成功は、サードパーティ製アプリのエコシステムに関係しています。2008年にApp Storeがデビューしたとき、すべてのアプリは、Apple以外のコミュニティではほとんど使われていなかったプログラミング言語Objective-Cで書かれていました。それ以来、Objective-Cの使用は爆発的に増加し、アプリを作る開発者たちのゴールドラッシュとなりました。Appleは2014年に新しい言語Swiftを導入しましたが、AppleのiOSオペレーティング・システムのほとんどは今もObjective-Cで書かれており、今後何年もAppleのデバイスで使用されるでしょう。 多くのプログラマがObjective-Cを知ったのは、iPhoneアプリ革命の時でした

                                                                                    Objective-C小史

                                                                                  新着記事