RubyKaigi 2022 -- Tsu, Mie, Japan September 10, 2022
![Ruby programming with types in action](https://cdn-ak-scissors.b.st-hatena.com/image/square/9e90b97cfc4e4b87782b682c6d3fbed3435d7382/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F153af8ff3d0641d2a0af105af9f33c97%2Fslide_0.jpg%3F22628305)
2022-09-09改訂: gcc バージョンが古すぎたのと、C が内部計測でなかった点を改め計測しなおしました。結果、Rust は C より速くはなくなりました。紛らわしいことで、ごめんなさい。また、gcc のバージョンアップに伴い、Python および Ruby についてはビルドと計測をしなおしたので、これらも少し速い値に変わっています。この点もどうぞあしからず。 2022-09-10追記:ご要望のあった Python numba.njit 使用時と Go の結果を追加しました。PHP は JIT 有効化が面倒だったので断念しました^^; 2022-09-10追記2:C の計測で clock() を使うのはフェアではないという指摘がありましたので、念のため clock_gettime() を使用したコードに差し替えました。結果に大きな差はありません。 2022-09-10追記3:PHP
mruby/cが工業用ミシンの不良率を8割削減、ローコード開発環境への展開も:ET&IoT 2021 しまねソフト研究開発センターは、「ET&IoT 2021」の「フクオカしまねmruby×IoTパビリオン」において、軽量の組み込み機器向けプログラミング言語「mruby/c」の採用事例や、プログラミングに詳しくない初学者や製造業の技術者向けのローコード開発環境などを紹介した。 しまねソフト研究開発センターは、「ET&IoT 2021」(2021年11月17~19日、パシフィコ横浜)の「フクオカしまねmruby×IoTパビリオン」において、軽量の組み込み機器向けプログラミング言語「mruby/c」の採用事例や、プログラミングに詳しくない初学者や製造業の技術者向けのローコード開発環境などを紹介した。 mruby/cは、軽量Rubyとして知られるmrubyをさらに小型化した組み込み機器向けプログ
Ruby is awesome. We love its readability, flexibility, and developer-centric nature. Still, here at Mars, we also love Go because it has its own sense of simplicity and magic, too. Simply put, Go holds advantages over Ruby in some aspects: it’s faster, statically typed, and comes with cool concurrency primitives out of the box. This being said, some intrepid readers might find themselves grappling
今年から、できるだけシェルスクリプトを書くのをやめようとしている。私が毎日 zsh に打ち込んでいるのも広義のシェルスクリプトだし、自分用の雑なスクリプトを書くことはあるけれど、チームの他の人も将来に使ったり改変したりするようなものは、なるだけ他の言語を使っている。 シェルスクリプトを書くのは難しいし、その難しさは、学ぶに値しないといったら言い過ぎかもしれないけれど、2021年に初心者が取り組むべき問題とは言い難いと思う。 シェルは悪いプログラミング言語である Bash Strict Mode とかを使ってみても、シェルスクリプトには落とし穴が多すぎる。自分で書いたものを自分で使っている分には大丈夫なのだけど、スクリプトがチーム内で使われるようになると、考慮していなかったところ、例えばファイル名に空白文字が含まれるとか、そういうレベルの微妙なところで、ちゃんと書かれていないスクリプトは壊れ
自分は Ebiten という 2D ゲームエンジン (ゲームライブラリ) を趣味で開発しています。使用しているプログラミング言語は Go です。 2013 年 6 月に最初のコミットを行ったので、現在 8 周年の 9 年目です。 Ebiten は「くまのレストラン」などのモバイル及び Nintendo Switch 向けゲームで使われており、一定の実績があります。 ゲームエンジンの開発は一朝一夕では終わりません。Unity や RPG ツクールといった既製品がある中、ゲームエンジンをわざわざ自作することは酔狂かもしれません。ではなぜそのようなことをしたのでしょうか。端的に言うと「ミニマムな API で実用的な 2D ゲームが作れるかどうか」ということを証明したかったのです。自分の美的感覚の追求です。この目的に気づいたのは割と最近のことです。やっていくうちに「自分がやりたかったのはこういうこ
負数が含まれる剰余を計算した場合、言語に跨がって一意な結果が得られない。 -5 % 3 5 % -3 C -2 2 C++ -2 2 Java -2 2 Ruby 1 -1 Python 1 -1 Common Lisp 1 -1 さて、なぜこんなことが起きるのかというと、剰余には複数の定義が存在するからである。 m ÷ n = q … rこの r を剰余と言うが、 r の範囲が 0 ≤ r < n 最小非負剰余 -n/2 ≤ r < n/2 絶対値最小剰余 の二つの定義があり、一般的には前者の「最小非負剰余」を用いるようである。 m が負数、 n が正数の場合は、先程の表にあるプログラミング言語は以下のように分類される。 絶対値最小剰余 C C++ Java 最小非負剰余 Ruby Python Common Lisp しかし、最小非負剰余では r が正数になる必要があり、剰余の結果が
GWは、ゲートウェイじゃなくゴールデンウィークです。 タイトルの通り、連休の多くの空き時間を言語実装に費やしてしまった...。 github.com とにかく、スターがついて承認されたいという気持ちが強いです(結論ファースト)。 今のところ、この辺りの機能はできている。 四則演算 Rustでの/Luaでのグローバル関数定義 関数内ローカル変数 if/then/else文 配列ベースの繰り返し(ただ、配列操作ができない) フィボナッチ数を求めるとこんな感じ。 2.4 GHz / 8コア Intel Core i9 のMacで実行した。といってもシングルコアしか使わないのだが。 function dofib(n) if n < 2 then return 1 else return dofib(n-1) + dofib(n-2) end print("Unreachable!\n") end
プログラミング言語「Julia」開発者さんの文章がとても好きなので、雰囲気重視で訳しました。結構意訳です。原典:https://julialang.org/blog/2012/02/why-we-created-julia/ =================================================「どうして Julia を作ったか」 それは、僕らが欲張りだからだ。 Matlab はめっちゃ使う。僕らの中にはLispの天才もいるし、PythonやRuby のすげー奴、Perl を巧みに使いこなす奴もいる。毛も生えない子供の頃からMathematica で遊んだ奴もいる。いまだにツルツルな奴だって仲間だ。Rではアホみたいにたくさんグラフを書いた。C言語からは、いつだって冒険の匂いがする。 ぜんぶ、大好きだ。面白いし、いろいろなことができる。何かをしたいと思った時--科
つよつよチャンネルは、bravesoft CEO&CTOの菅澤英司氏がエンジニア的に「おもしろい話」や「ためになる話」を届けるチャンネルです。今回は、Ruby言語の父であるまつもとゆきひろ氏がふだんの開発の方法とRuby3.0について話しました。 新しいことをやるためにはエネルギーがいる 菅澤英司氏(以下、菅澤):言語開発者のまつもとさんが今もプログラミングをされているということで、どうしているのかがすごく気になっていまして。例えば、設計は頭の中で考えてから作るのか、書きながら進んでいくのかとか。 まつもとゆきひろ氏(以下、まつもと):段階にもよるんですけど、私のふだんのフェーズはどちらかと言うと、バグを直したり、部分的な改善をしたりがほとんどなんですよ。バグを直すためのプログラムが、期待していない動きをするとき、期待する動きに直すにはどうしたらいいだろうかと考えて直すという感じです。 問
「正直9年経ったいまでもfor文ググってる」 という議論記事があった。正直なところ私もググる方の人だ。私の感想: ポンとテキストエディタだけ渡された時に書けるか自信ないぞ...IDEがあればまあ大丈夫かなあ。 JavaScriptだけじゃない。言語色々扱うしという言い訳。正規表現とか毎度調べる。 だから世の中にチートシートというものがあるのだ。お気に入りチートシート多数。 実戦でどうしているか?結局周りのソースを見て馴染む書き方にしていますよ多分。 暗記するかしないかは受験勉強みたいなもので、コーディング面接に受かるなら必要。暗記そのものには意味はないとは思う。 競技プログラミングが使えないとかいう論もあったな。 ググり力も大事。 でも「最低限」もできないのはやはり恥ずかしい気持ちはある。 なんかこれ英語できるできないと似てるな。英語なんてGoogle翻訳、DeepL翻訳あればいいけど、実
新しくプロダクト開発を始める時、あなたはどの言語でコードを書くことを選ぶでしょうか? シンプルに、スピーディーに開発が行える言語?メモリ効率や実行速度に優れた言語?はたまた一生使い続けると愛を誓った言語でしょうか。 今回は、そんな言語選定における選択肢としてのDSL(ドメイン固有言語)とその作り方について、Rubyを用いたコードを通して紹介していきます。 大和 拓朗(おおわ たくろう) 株式会社メンバーズ メンバーズエッジカンパニー Webエンジニア 2018年中途入社。SNS分野でのフィード広告運用システム・キャンペーン管理システムの開発に従事。 最近のブームは、リモートワーク定着を口実にしたホームオフィス環境の整備やスマートホーム化。お寿司とドーナツが好き。 GPLとDSL 言語選定は、プロダクトに求められる要件(保守性やパフォーマンス、セキュリティなど)を基準に、言語自体の性質、業界
Beautiful Codes https://www.beautifulcodes.in/ Beautiful Codesの特徴 「Beautiful Codes」は、プログラミング言語に合わせて構文の色分けもしてくれるコード画像ジェネレーターです。実に、150以上の言語に対応。フォントやテーマ、背景なども自由に調整が可能です。 Beautiful Codesで画像を作成する 「Fonts」は、約1,000種類用意されています。プレビュー画面にも即時反映されるので、出来栄えを確認しながら選択する楽しさがあります。 「Mode」は、クラスやファンクション、変数など選んだ言語に合わせて構文を色分けしてくれる。Java、TypeScript、Python、Rubyなど、メジャーな言語は、ほぼ網羅されています。 画像の右上には、タイトルが挿入可能。メッセージやクラス名などにも使えそう。 最後に、
今回も誰も興味ないシリーズなので今まで書いてこなかったのですが、Semantic Versioningに関して幻想を抱いている人がいる可能性があり、そういう方にどうしても現実を知っておいて欲しかったので書きました。3行要約(と可能なら余談)だけでも読んでいただけると幸いです。 3行要約 Semantic Versioning 2.0.0にはバージョン"比較"の定義はあるが、バージョン"制約"(>= 2.1.3みたいなやつ)の定義がない その結果、同じsemver準拠ライブラリでも制約の解釈が異なり結果が真逆になる というかそもそもsemver使ってるエコシステムが少なすぎる 背景 セキュリティアドバイザリでは特定のバージョンが脆弱であることを示すためにバージョン制約が使われることが多いです。例えば >=1.2.0 <1.2.6みたいなやつです。この場合、1.2.5は脆弱だが1.2.6は修正
こうして見ると、True(真)の方がFlase(偽)より大きいという言語が多く感じます。しかしこれほどプログラミング言語ごとに結果が異なるというのも面白いものです。 以下の年表は言語の登場時期と真偽型の大小の結果を示したものです。 プログラミング言語の登場時期と真偽型の大小結果の年表 真偽型から見る言語の歴史 冒頭でも紹介したように、プログラミング言語の黎明期である1959年に登場したCOBOLには真偽型はありません。そして、1972年に登場したC言語にもありません。とは言え、COBOLにもC言語にも条件分岐文はあります。通例では数値の0が偽であり、それ以外の値は真であると判断されます。 なお、C言語では真偽型こそないものの、マクロを利用してTRUEが1、FALSEが0と定義することが通例となっています。WindowsのAPIでもこのように定義されています。また論理否定演算子『!』を使って
はじめに 僕は仕事でRuby on Railsを使ってWebアプリケーションを開発しているので、JavaScriptはそれなりに使えます。 ですが、サーバーサイドで使っているRubyに比べると、JavaScriptの習熟度はそれほど高くありません。 とくに、文法が一気にブラッシュアップされたES2015(ES6)以降の知識は「なんとなく把握はしているが、あくまでなんとなく」といった感じです。 また、最近よく名前を聞くようになったTypeScriptも「名前は知っているが使ったことはない」というのが現状です。 というわけで、「そろそろちゃんと勉強しておかないと」という思いから、以下の本を購入してみました。 JavaScript Primer 迷わないための入門書 (アスキードワンゴ) 作者:azu,Suguru Inatomi発売日: 2020/06/10メディア: Kindle版プログラミ
Coding Dojoはアメリカのユニコーン企業が使用しているプログラミング言語、フレームワーク、データベースのデータを求人情報から収集した。 【全画像をみる】注目のユニコーン企業が使っているプログラミング言語、フレームワーク、データベース 対象となったユニコーンは、WeWork、Stripe、Airbnb、SpaceXなど。 人気の言語はJavaScript、Java、そしてPython。KotlinやGoといった新しい言語も人気になりつつある。 ウィーワーク(WeWork)、ストライプ(Stripe)、エアビーアンドビー(Airbnb)、スペースX(SpaceX)のような数十億ドル規模のスタートアップがどのような開発言語を使っているのかと疑問に思ったとしても、もう調べる必要はない。 開発者をトレーニングし、就職をサポートする「Coding Dojo」は、求人サイト「Indeed」と開発
2018年12月14日、品川シーズンテラスカンファレンスにてRubyアソシエーションが主催するイベント「Ruby Business Users Conference 2018 Winter」が開催されました。すでにRubyを活用しているユーザーや、これからRubyをビジネスに活用しようと考えている人が集い、情報交換を行いました。基調講演「プログラミング言語サバイバル」に登壇したのは、一般財団法人Rubyアソシエーション理事長のまつもとゆきひろ氏。Rubyの開発をはじめて25年、今日のプログラミング言語の潮流とRuby開発者として感じている危機感について語りました。 プログラミング言語サバイバル まつもとゆきひろ氏(以下、まつもと):どうもこんにちは、まつもとと申します。今日は「プログラミング言語サバイバル」というタイトルでお話をしようと思います。 今年は、2月にイベントをやりましたが、Ru
文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai|noteという記事を読みました。 この記事に書かれていることが私の身にも覚えがあります。特に私と同い年の方のようなので自分に重ねてしまうところもあります。 ですが多少似たところはあってもやっぱり他人なので全然違う体験もしています。そういう体験を書いてみようと思います。もし該当記事を読んで絶望した人がいるなら別の例もあるよということで参考にしてください。 私は「パソコンの中身が知りたい。多分プログラミングとかいうやつを勉強したら分かる気がする。」くらいのモチベーションでプログラミングをはじめました。 ゴールがあやふやですし、結局のところ「プログラミングをする」が目標になってるので迷子になるのは必至ですね。実際そういう時期がありました。 そんな私でも今はプログラマとして生きています。以下に、私が遭遇した課題とそ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く