並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 357件

新着順 人気順

OCamlの検索結果121 - 160 件 / 357件

  • Caramel: massively scalable, type-safe applications

    caramel is a functional language for building type-safe, scalable, and maintainable applications Install Docs Discord Code

      Caramel: massively scalable, type-safe applications
    • すぐにコードを書いて試せる!オンラインプログラミング実行環境8選 - paiza times

      StockSnapによるPixabayからの画像 こんにちは。倉内です。 初心者がプログラミング学習を始めるときにつまずきがちな環境構築ですが、今はWebブラウザ上で書いたコードをすぐに実行できる「オンライン実行環境」が充実しているので利用しない手はありません。 ほとんどのオンライン実行環境が複数の言語に対応しており、プログラミング学習はもちろん、「普段使っていない言語だけどちょっと試してみたい」といったときにも非常に便利です。 しかし無料で利用できるサービスだけでも数が多く、どれを使うとよいか迷う方もいらっしゃるかもしれません。 そこで今回は、おすすめのオンライン実行環境を対応言語や入力補完機能の有無などの項目で比較してみました。各サービスの特徴も紹介しますので、目的に合わせて使い分けてみてください! 基本項目比較 今回取り上げるのは、無料で利用できる以下の8つのサービスです。表では以下

        すぐにコードを書いて試せる!オンラインプログラミング実行環境8選 - paiza times
      • 代数的データ型と初等代数学

        「関数プログラミングとはなんですか?」と問われたときには「デ,データファースト……(震え声)」と答えることが多いのだが,実際 Haskell や OCaml などの言語を特徴付けるものとして,代数的データ型 (Algebraic Data Type; ADT) の存在は無視できないだろう.その有用性ゆえに,近年では新たな言語の策定の際にその概念が輸出され,Rust や Swift などの言語にも採用されている. 「代数的データ型とはなんですか?」と問われたときには——問われたことがないのでわからないのだが——おもむろに ghci か utop を立ち上げて,解説を始めるのではないかと思う.ひとしきり解説をした後,「つまり直積の直和なんですよ〜🙌✨」と言って話を締めくくるだろう. int 型や float 型など,「メモリ上の表現」という計算機の気持ちに極めて寄り添ったプリミティヴなデータ

          代数的データ型と初等代数学
        • 関数型言語初心者にこそおすすめしたい"OCaml"の特徴

          2019年7月29日、Opt Technologiesが主催するイベント「Fun Fun Functional (2) 関数型言語Lightning Talks!!」が開催されました。関数型プログラミングについて楽しく学び、知見を共有することを目的に開催されている本勉強会。今回は6名のエンジニアが、関数型プログラミング言語にまつわるユニークな発表を行いました。プレゼンテーション「関数型初心者にこそおすすめしたい言語 "OCaml" 」に登壇したのは、cedretaber氏。講演資料はこちら 関数型初心者にこそおすすめしたい言語 "OCaml" cedretaber氏(以下、cedretaber):「関数型初心者にこそおすすめしたい言語 "OCaml"」ということで、またOCamlの話だということになってしまうんですが。 自己紹介、cedretaberと申します。 「ドワンゴから来ました」っ

            関数型言語初心者にこそおすすめしたい"OCaml"の特徴
          • Node.jsの設計をつらつらと概観する - Qiita

            株式会社Global Mobility ServiceでソフトウェアエンジニアのインターンをさせてもらっているShirubaです。グローバルな環境で利用されている社会的サービスの開発の一端を担いたい志ある方は、ぜひ緩くお話ししましょう〜。バックエンドはNode.jsを使っています。🙋‍♂️→ 採用ページ Node.jsについて色々資料を読んでメモをとったりしていたので、一度まとめておきたくて、この記事を書くことにしました。V8やLibuvなど低レイヤ技術の設計をベースにNode.jsを概観していきます。 Node.jsとは Node.js公式によるNode.jsの定義は以下です。 Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。 https://nodejs.org/ja/about/ Nod

              Node.jsの設計をつらつらと概観する - Qiita
            • 週刊Railsウォッチ(20201124)strict loading violationの振る舞いを変更可能に、Railsモデルのアンチパターン、quine-relayとさまざまなクワインほか|TechRacho by BPS株式会社

              2020.11.24 週刊Railsウォッチ(20201124)strict loading violationの振る舞いを変更可能に、Railsモデルのアンチパターン、quine-relayとさまざまなクワインほか こんにちは、hachi8833です。今回は短縮版でお送りいたします。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 ⚓Rails: 先週の改修(Rails公式ニュースより) 公式の更新情報から見繕いました。 元記事: Enhanced strict loading, multiple databases and mor

                週刊Railsウォッチ(20201124)strict loading violationの振る舞いを変更可能に、Railsモデルのアンチパターン、quine-relayとさまざまなクワインほか|TechRacho by BPS株式会社
              • GitHub - OCamlPro/owi: OCaml WebAssembly Interpreter

                Owi is a toolchain to work with WebAssembly. It is written in OCaml. It provides a binary with many subcommands: owi c: a bug finding tool for C code that performs symbolic execution by compiling to Wasm and using our symbolic Wasm interpreter; owi fmt: a formatter for Wasm; owi opt: an optimizer for Wasm; owi run: a concrete Wasm interpreter; owi script: an interpreter for Wasm scripts; owi sym:

                  GitHub - OCamlPro/owi: OCaml WebAssembly Interpreter
                • building-software.md

                  building-software.md Some thoughts on building software Lately I have been busy reading some new books on Domain Driven Design (DDD) and software architecture -- including a short yet eye-opening one in Python and a great one in F#. At the same time, it seems that more people in the Functional Programming world are looking at more formal approaches to modelling -- some examples here. This has brou

                    building-software.md
                  • SCamlによるTezosプログラミング#0

                    SCaml という Tezos ブロックチェーン のためのスマートコントラクト記述言語とコンパイラを作って元旦にリリースしました。 コンセプトの紹介(英語) リリースのお知らせ(英語) プロジェクトページ レポジトリ 第0回: コンセプトの説明 第1回: 準備 第2回: 概観 第3回: ウォレット操作 第4回: スマートコントラクトのデータ型 第5回: はじめての SCaml コントラクト 第6回: もう少し複雑なコントラクト。パラメータとストレージ 第7回: 投票コントラクトを書いてみる このブログではSCamlを使ったTezosスマートコントラクトプログラミングについて少しずつ日本語で連載をしていきたいと思います。 初回はプログラミングではなく、SCamlの基本設計コンセプトについてです。一部、プログラミング言語設計についての知識がなければ理解できないところがありますが、読み飛ばされて

                      SCamlによるTezosプログラミング#0
                    • 世界のプログラミング言語(27) デキるやつが使ってる『OCaml』は実用的な関数型言語

                      OCamlは関数型言語の一つで、実用性の高さで人気があります。オブジェクト指向や強い静的型付けなどの特徴を持ち、実行速度がC言語並みに速いことも特徴の一つです。筆者の中ではデキるプログラマーが好んで使っているイメージがあります。Microsoftが開発した.NET対応言語のF#をはじめ、多くの言語にも大きな影響を与えました。今回は、OCamlについて紹介します。 OCamlのWebサイト OCamlについて OCamlは、もともとプログラミング言語ML言語の方言の一つです。もともと、「Objective Caml」という名前でしたが、OCamlに改名されました。つまり、OCamlのOはオブジェクト指向のOなのです。1996年にフランスのINRIA(フランス国立研究所)で開発されました。 残念ながら原稿執筆時点では、TIOBE Indexなどの人気プログラミング言語ベスト50にはランクインし

                        世界のプログラミング言語(27) デキるやつが使ってる『OCaml』は実用的な関数型言語
                      • Build faster with Buck2: Our open source build system

                        Buck2, our new open source, large-scale build system, is now available on GitHub. Buck2 is an extensible and performant build system written in Rust and designed to make your build experience faster and more efficient. In our internal tests at Meta, we observed that Buck2 completed builds 2x as fast as Buck1. Buck2, Meta’s open source large-scale build system, is now publicly available via the Buc

                          Build faster with Buck2: Our open source build system
                        • OCamlの型検査は決定不能

                          1990年代から(少なくとも一部の人に)知られていることですが、OCamlの型検査は決定不能です。この文書では、ML系モジュールシステムにおけるシグネチャマッチングの仕組みを説明した後、OCamlの型検査器がどのように無限ループに陥るかを確認します。 シグネチャマッチングML系言語において、シグネチャは、モジュールのインターフェイスを表すために用いられます。あるモジュールが何らかのシグネチャに適合していることを保証するためにsignature ascriptionという機構があります。 Standard MLでは、M : SやM :> Sという風に書くと、モジュールMがシグネチャSに適合していることを保証できます。M : Sはtransparent signature ascriptionと呼ばれ、M :> Sはopaque signature ascriptionと呼ばれます。 シグネチ

                          • OCamlとCoqでブロックチェーンプログラミング

                            2019年7月29日、Opt Technologiesが主催するイベント「Fun Fun Functional (2) 関数型言語Lightning Talks!!」が開催されました。関数型プログラミングについて楽しく学び、知見を共有することを目的に開催されている本勉強会。今回は6名のエンジニアが、関数型プログラミング言語にまつわるユニークな発表を行いました。プレゼンテーション「OCamlとCoqでブロックチェーンプログラミング 」に登壇したのは、yoshihiro503氏。 OCamlとCoqでブロックチェーンプログラミング yoshihiro503氏(以下、yoshihiro503):みなさんこんにちは。こういう鶏のアイコンのyoshihiro503です。今日「OCamlは良いぞ!」という話をします。株式会社ドワンゴのDMC開発部に所属しています。 簡単に自己紹介を

                              OCamlとCoqでブロックチェーンプログラミング
                            • A pipe operator for JavaScript: introduction and use cases

                              The proposal “Pipe operator (|>) for JavaScript” (by J. S. Choi, James DiGioia, Ron Buckton and Tab Atkins) introduces a new operator. This operator is an idea borrowed from functional programming that makes applying functions more convenient in many cases. This blog post describes how the pipe operator works and what its use cases are (there are more than you might expect!). The two competing pro

                              • F#とASP.NET CoreのMinimal APIを使ってAPIをつくる - Uzabase for Engineers

                                こんにちは、Product Teamのあやぴーです。 今回はここ1年くらい私のいるチームで使っているF#とASP.NET Coreを使ったAPI開発について簡単にまとめていきます。 F#ってなんだ? なぜ、今F#を採用したのか Minimal APIを使って、APIをつくる アプリケーションの雛形をつくる 任意のHTTPステータスとJSONレスポンスを返却する ルートパラメータやJSONボディの受け取り方 最後にF#を採用してみた雑感 F#ってなんだ? F#はMicrosoft(MSFT)が開発した、いわゆる関数型言語の特徴(第一級関数,イミュータブルデータなど)を持つ言語です。.NET VM上で動き、OCaml(ML系)に近いシンタックスを持っているというのがユニークなところです。また.NET VM上で動作するため、C#などのライブラリを使うことができるのもメリットです。JVM上で動くS

                                  F#とASP.NET CoreのMinimal APIを使ってAPIをつくる - Uzabase for Engineers
                                • OCamlコンパイラのバックエンドを提供するMalfunctionが面白そう - Arantium Maestum

                                  OCamlのDiscuss掲示板を眺めていたらこんなプロジェクトについての言及があった: github.com Malfunction is a high-performance, low-level untyped program representation, designed as a target for compilers of functional programming languages. OCamlコンパイラの中間表現であるLambda言語(とほぼ同等のもの)を受け取り、OCamlバイトコードかnativeコードへのコンパイルをしてくれるようだ。 (追記:バイトコードにコンパイルできるというのは間違い。実際にはOCamlコンパイラとは別なLambda言語インタプリタがある) Lambda IRはOCamlコンパイラにフラグを渡すと出力してくれる。以前少し調べていくつか記事

                                    OCamlコンパイラのバックエンドを提供するMalfunctionが面白そう - Arantium Maestum
                                  • Algebraic Effects for React Developers

                                    It’s in words that the magic is—Abracadabra, Open Sesame, and the rest—but the magic words in one story aren’t magical in the next. The real magic is to understand which words work, and when, and for what; the trick is to learn the trick. - John Barth, Chimera It’s been quite some time since Hooks were officially stabilized in React 16.8, and with them came a fundamentally different way of underst

                                      Algebraic Effects for React Developers
                                    • Unikernelについての現状調査 - Fixstars Tech Blog /proc/cpuinfo

                                      ※本記事の内容は、2020年2月の約1か月間のインターンシップにおける成果です。 Unikernelについて知っていますか? 私は知っています。 Unikernelとは、アプリケーションをライブラリOSの必要最小限の機能のみとリンクさせ、単一アドレス空間で、直接ハードウェア上やハイパーバイザ上にて動作するようにしたマシンイメージのことです。 本記事では、車載向けのマイコンなどの組み込みシステム上において、最小サイズのマシンイメージで目的の機能を実現することができる手段として、Unikernelという方向性に可能性を見出し、その概要と、2020年2月現在に現存しているUnikernelのプロジェクトについて調査しました。 Unikernelとは Unikernelという呼称は、2013年に発表された論文 Unikernels: Library Operating Systems for th

                                        Unikernelについての現状調査 - Fixstars Tech Blog /proc/cpuinfo
                                      • 時間を加味したモデリング - DeNA Testing Blog

                                        こんにちは、SWETの鈴木穂高(@hoddy3190)です。 現在SWETチームにて仕様の欠陥をなるべく早くみつける取り組みにチャレンジしています。 欠陥をみつけるタイミングが早ければ早いほど、開発中の手戻りに伴うコストを抑えられます。 たとえば、仕様作成フェーズ、実装フェーズ、QAフェーズの順で開発が進んでいくときに、仕様の欠陥が実装フェーズやQAフェーズでみつかると実装やQAのやり直しを引き起こしかねません。 そうした大きな手戻りを抑えるために仕様の欠陥をなるべく仕様作成フェーズでみつけることを目指します。 対象領域に出てくる要素をモデリングすることは、仕様に潜む欠陥を開発の早い段階でみつけるための、有効な手段のひとつです。 要素には、開発者がこれから作るシステムや、そのシステムのユーザー、そのシステムと直接的または間接的に相互作用する外部のシステムが含まれます。 単に図を書くというモ

                                          時間を加味したモデリング - DeNA Testing Blog
                                        • Dark's new backend will be in F#

                                          Welcome HN! Dark is a programming language, structured editor, and infrastructure—all in one—whose goal is to make it 100x easier to build backend services. Check out the website, our What is Dark post, and How Dark deploys in 50ms for more. Thanks for checking us out! Part of a set with Leaving OCaml and Why Dark didn't choose Rust. Nothing in my life so far would have prepared me for the fact th

                                            Dark's new backend will be in F#
                                          • Writing a Game Boy Emulator in OCaml

                                            IntroductionFor the past few months, I have been working on a project called CAMLBOY, a Game Boy emulator written in OCaml that runs in the browser. You can try it out on the following demo page: Demo Page I included several homebrew ROMs in the demo, so please try them out (I recommend Bouncing ball and Rocket Man Demo). You can also play with it in your mobile browser as it runs at 60 FPS on rec

                                              Writing a Game Boy Emulator in OCaml
                                            • 「コンピュータを操る」

                                              「コンピュータを操る」 浅井 健一 著、 「コンピュータを操る」 プログラミングを通して「情報科学的なものの考え方」を学ぶ サイエンス社、 2020 年 2 月 出版、 Computer and Web Sciences Library 2 各章で作られるゲーム 4章: 白いゲーム画面が出る。 5章: 背景画像と自転車の画像が表示される。 6章: 自転車が左に動く。(ユーザはまだ何もできない。) 7章: 自転車を矢印キーによって動かせるようになる。 8章: 自転車が動けるのは道路上のみになる。 9章: 自転車に積んでいる牛乳、ヨーグルトの量が表示されるようになる。 10章: 一番、左上の配送先に牛乳を届けると数が変化する。 自宅に戻ると牛乳の数が 9 に戻る。 11章: 各配送先に牛乳、ヨーグルトを届けられるようになる。 プログラミング環境 全部で 5.3M ほどあります。 回線が細いと読

                                              • Haskellライクな構文をEgisonに実装している話 - momologue

                                                これは言語実装Advent Calendar 2019の2日目の記事です。 私は少し前から、楽天技術研究所でEgisonの開発アルバイトをしています。入社してから初めての大きなプロジェクトとしてEgisonの構文を新しくするというのを担当しているので、その紹介と、設計/実装で悩んだ(でいる)ことなどを書こうと思います。 Egisonとは Egisonについて聞いたことがないという人はとりあえず公式サイトを見てほしいのですが、概要としては 表現力豊かなパターンマッチ(非線形パターン*1など) (上のパターンマッチを利用して実装された)数式処理システム を強みとし、プログラムや数式を簡潔に記述できることに重きを置いているプログラミング言語です。 これまでEgisonはS式(Lispのようなカッコが多い文法)の構文を持っていましたが、Lispに習熟している人を除く大抵の人にとってはS式はあまり読

                                                  Haskellライクな構文をEgisonに実装している話 - momologue
                                                • 協調型スケジューリング vs. 先取り型スケジューリング

                                                  この記事はCooperative vs. Preemptive: a quest to maximize concurrency powerの翻訳・意訳記事になっています。 動機 私のチームはJavaを多用しています。システムを構築するために、ウェブサーバやデータベースドライバなど、多くのものに、スレッドを介した同時実行機能を内蔵した、実績のあるオープンソースのJavaライブラリを使用しています。 また、ビジネス特有のロジックを実装する際には、Javaのスレッド化命令を利用して同時実行を実現しています。 しかし、時間が経つにつれ、パフォーマンスの問題が見えてきました。 Javaアプリには合計1万個のスレッドが実行されていたため、ホストのRAMをすべて占有してしまうサービスがありました。 64ビットのJVMのスレッドのスタックサイズが1024バイトであるため、スレッドが1万もあるとスタックだ

                                                    協調型スケジューリング vs. 先取り型スケジューリング
                                                  • 小さいMLの型推論機を書いた

                                                    intro# 最近、五十嵐先生のプログラミング言語の基礎概念を読んでいました。コンパクトにlet多相までの知識がまとまっており非常に読みやすかったです。 OCamlの学習がてら実際に言語を実装してみようと思い、 筑波大学の講義資料を参考にさせていただきました。 環境構築・実装にあたってはいくらか大変だった部分があるのですがこれらは気が向いたら別途記事にします。 duneの使い方 OCamlでのテストの仕方 OCamlのCI環境の構築 on GitHub Actions OCamlでのパーサーコンビネータの作り方・使い方 Menhirやocamlyaccなどは意図的に使いませんでした 今回作ったもの自体はこちらにあります。watiko/minicaml 振り返り# さて、参考書では最終的にlet多相を有した言語としてPolyTypingML4というものを扱います。文法や型についての定義は以下

                                                      小さいMLの型推論機を書いた
                                                    • mrcjkb.dev - Algebraic data types in Lua (Almost)

                                                      Posted on August 17, 2023 Lua, in the realm of Neovim, is a curious companion. For personal configuration tweaks, it’s incredibly responsive, giving me immediate feedback. Moreover, when I’m uncertain about an idea’s potential, Lua offers a forgiving platform for prototyping without commitment. Yet, as the maintainer of a few plugins, who otherwise works with Haskell professionally, I have mixed f

                                                      • Direct-style Effects Explained

                                                        Direct-style Effects Explained By Noel Welsh on 24 Apr 2024 Direct-style effects, also known as algebraic effects and effect handlers, are the next big thing in programming languages. At the same time I see some confusion about direct-style effects. In this post I want to address this confusion by explaining the what, the why, and the how of direct-style effects using a Scala 3 implementation as a

                                                        • Dream — Tidy, feature-complete web framework

                                                          let hello who = <html> <body> <h1>Hello, <%s who %>!</h1> </body> </html> let () = Dream.run @@ Dream.logger @@ Dream.router [ Dream.get "/" (fun _ -> Dream.html (hello "world")); ] Dream is an easy-to-use, boilerplate-free Web framework, whose entire API fits on this page! It supports TLS, WebSockets, and GraphQL. HTTP/2 support is transparent. It also includes: a nice log and OCaml runtime confi

                                                          • llrl programming language

                                                            github.com/yubrot/llrl Rust + LLVMで自作言語をセルフホスティングした話 Rust + LLVM による自作プログラミング言語処理系。大きな特徴は以下の 3 つ。 Hindley-Milner ベースの型推論による静的型付け (+型クラス) Lisp-like な S 式によるシンタックスと LLVM JIT によるマクロ 完全なセルフホスティングコンパイラ実装 目標: セルフホスティング llrl は複合的な理由で作り始めたが、とにかく一度完全にセルフホストされた言語処理系を実装したいという気持ちからセルフホスティングを最優先の目標とした。 プログラミング言語のセルフホスティングは、以下のような明確なゴールを設定できる。 何らかの既存のプログラミング言語によって自作言語コンパイラを実装する → 世代 0 自作言語、およびその標準ライブラリをコンパイラを実装

                                                              llrl programming language
                                                            • プログラミング学習、最初はどの言語を選ぶべき?未経験者向けに解説 - paiza times

                                                              こんにちは。倉内です。 初めてプログラミングを学ぶとき、どのプログラミング言語を選ぶといいでしょうか? とりあえず体験してみたいだけであれば学習コストが低いものを選ぶのがいいと思います。また、やりたいこと(たとえば、Webサービス作りたい、機械学習やりたい、ゲーム開発したいなど)があるなら、もちろんそれを実現するのに適した言語やフレームワーク、周辺技術を学ぶほうがいいでしょう。楽しく学び続けるためには大切なことです。 しかし、プログラミングを学習して未経験からITエンジニアを目指そうと考えているなら、「そのプログラミング言語は業務において需要があるか?」つまり「未経験でも応募できる求人が多いか?」という視点を持ってみてもいいかもしれません。特に、新卒や第二新卒ではなく中途採用で未経験からITエンジニアになる場合、実務経験を売りに転職できるわけではないので、需要が極端に少ないものを学んでもそ

                                                                プログラミング学習、最初はどの言語を選ぶべき?未経験者向けに解説 - paiza times
                                                              • The KDL Document Language

                                                                KDL is a small, pleasing document language with xml-like semantics that looks like you're invoking a bunch of CLI commands! It's meant to be used both as a serialization format and a configuration language, much like JSON, YAML, or XML. It looks like this: package { name "my-pkg" version "1.2.3" dependencies { // Nodes can have standalone values as well as // key/value pairs. lodash "^3.2.1" optio

                                                                • Rustacean のための F# 入門

                                                                  これは、 F# Advent Calendar 2021 の15日目の記事です なぜ F# なのか 皆さん Rust 書いてますか?良い言語ですね。私も好きです。私は C や C++ をちゃんと扱ったことがなかったので、Rust を学ぶことで、ムーブセマンティクスや左辺値と右辺値、スタックとヒープの使い分け、static dispatch と dynamic dispatch やスレッド安全性を徹底する方法など多くのことを学びました。 ゼロコスト抽象化を目標に掲げているだけあり、広い領域に適用できる言語である一方で、業務上は Rust が適さない場面も多くあります。一言でいうと、「借用チェッカがオーバーキルになる場合」です。 例えば 探索的なプログラミング データサイエンス GUI などです。私の場合、コーディングを通してドメイン知識を理解することが業務の殆どを占めるので、借用チェッカに煩

                                                                    Rustacean のための F# 入門
                                                                  • Eio 1.0 Release: Introducing a new Effects-Based I/O Library for OCaml

                                                                    Eio 1.0 Release: Introducing a new Effects-Based I/O Library for OCamlby Isabella Leandersson, Thomas Leonard, and Anil Madhavapeddy on Mar 20th, 2024 The OCaml 5 update brought much-anticipated support for programming on multiple cores. It also introduced support for concurrency via effect handlers – one of the first mainstream languages to do so. This significant update has had profound performa

                                                                      Eio 1.0 Release: Introducing a new Effects-Based I/O Library for OCaml
                                                                    • 静的型付けでnull安全なAltJSの評価と選定

                                                                      2019年09月版. 静的型付けでnull安全なAltJSの評価と選定. 比較整理する必要があったので比較しました. 間違っている所などの指摘を受けたいので広く公開します. ちなみに私は2015年頃はDartを推していたようですね. 当時のTypeScriptはstrictNullChecksも@typesも無かったのであまり魅力的に感じなかったようです. 私の提言 結論から書きます. 個人的にはPureScriptを推したいですが, 流石に他の人にとっては学習コストが大きすぎると思ったので, 基本的に以下のような感じに選ぶと良いと思いました. 外部ライブラリの使用がメッセージ単位でまとまる程度に収まる → Elm Reactを使いたい → Reason VueやAngularなどReact以外のフレームワークをガッツリ使う, Node.jsをサーバーサイドでメインで使う, 小規模なスクリ

                                                                        静的型付けでnull安全なAltJSの評価と選定
                                                                      • C# と Rust が両方そなわり最強に見える

                                                                        これは ビットバンク株式会社 Advent Calendar 2020 の 4 日目の記事です。 Bitbank システム部の宮本ジョーです。 普段はビットコイン関連開発を専門としていますが、今回はビットコインに直接関係のない内容について書きます。 C# と Rust を同時に使用して開発するためのプラクティスについてです。 イントロ 私は Bitcoin のライトニングネットワーク関連の処理を .NET で行うためのライブラリを自作しています。 似た内容の Rust ライブラリがユーザーも増え安定してきているらしいため、こちらを直接呼び出すことで自前実装に伴う保守の負担を減らせないか検討してみました。 このアプローチはうまくいき、 C# のウェブアプリケーションフレームワークからライトニングネットワークの処理を行うサーバを現在作成しています。 この記事では、実装時に気付いた C# と R

                                                                          C# と Rust が両方そなわり最強に見える
                                                                        • Appendix: Influences - The Rust Reference

                                                                          Rust is not a particularly original language, with design elements coming from a wide range of sources. Some of these are listed below (including elements that have since been removed): SML, OCaml: algebraic data types, pattern matching, type inference, semicolon statement separation C++: references, RAII, smart pointers, move semantics, monomorphization, memory model ML Kit, Cyclone: region based

                                                                          • Using TLA+ in the Real World to Understand a Glibc Bug

                                                                            Using TLA+ in the Real World to Understand a Glibc Bug by Malte Skarupke TLA+ is a formal specification language that you can use to verify programs. It’s different from other formal verification systems in that it’s very pragmatic. Instead of writing proofs, it works using the simple method of running all possible executions of a program. You can write assertions and if they’re not true for any p

                                                                              Using TLA+ in the Real World to Understand a Glibc Bug
                                                                            • The Next 7000 Programming Languages

                                                                              In 1966 the ACM published Peter Landin’s landmark paper “The next 700 programming languages” [22]. Seven years later, Springer’s “Lecture Notes in Computer Science” (LNCS) was born with Wilfred Brauer as editor of the first volume [5]. Impressively, the contributed chapters of this first volume covered almost every topic of what we now see as core computer science—from computer hardware and operat

                                                                                The Next 7000 Programming Languages
                                                                              • David Heinemeier Hansson - CoRecursive Podcast

                                                                                00:00 - Intro 01:22 - Why Did Rails Succeed? 07:52 - Why Ruby? 10:44 - The Benefits of Obscure Technology 14:49 - Fighting the Monoculture 22:23 - Ruby VS OCAML 26:10 - Coding as Writing, Not Math 27:22 - Enterprise Java People 31:01 - Does Speed Matter? 32:03 - Stop Copying Google 36:13 - Micro Services Are a Mistake 39:51 - React And Single Page Apps Are a Worse Mistake 44:33 - Test Driven Devel

                                                                                  David Heinemeier Hansson - CoRecursive Podcast
                                                                                • 「プログラミング言語の基礎概念」を読んだ

                                                                                  Amazonで五十嵐 淳のプログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト))。アマゾンならポイント還元本が多数。五十嵐 淳作品ほか、お急ぎ便対象商品は当日お届けも可能。またプログラミング言語の基礎概念… ちなみにこの本は CoPL 本という通称で呼ばれることも多いので、このエントリでもそう呼ぶこととする。 どんな本?書籍名に「基礎概念」とあるとおり、技術書というよりは教科書に近い。著者の五十嵐先生も京都大学情報学研究科の教授なので、多分ご自身の授業などで副読本として使ってるんじゃなかろうか。 大学の教科書、と書くと難解そうなイメージを持たれるかもしれないけど、高校レベルの数学 + なにかしらのプログラミングの経験があれば十分読み進められる内容と思う。 本の構成としては、文中でプログラミング言語を定義していき、その言語にすこしずつ機能を拡張しながら下記を学べるようになってい

                                                                                    「プログラミング言語の基礎概念」を読んだ