マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2023.04.26

【OSS情報】C言語代替プログラミング言語「 Odin 」

【OSS情報】C言語代替プログラミング言語「 Odin 」

【OSS情報】C言語代替プログラミング言語「 Odin 」

Odinのロゴ
コードのイメージ

Odinの「概要」

「Odin」(オーディン)とは、
「データ指向」かつ「明確な型付け」を備えたオープンソース汎用プログラミング言語です。

「C言語の代替手段」として開発されています。

設計基本原則

・シンプル
・読みやすさ
・スケーラビリティ
・最小限
・直交性の追求
・プログラム=「データを他の形式のデータに変換」
・コード=「アルゴリズムを表現するもの」「型システムではない」
・古いプログラミング言語には「知識と知恵」が埋め込まれている

→odin-lang.org →docs →faq →#what-are-the-guiding-principles-behind-the-design-of-odin

アーキテクチャサポート

・AMD64
・AArch64
・ARM64
・wasm32

→odin-lang.org →docs →faq →#what-architectures-does-odin-support

ユースケース

・システムプログラミング
・ゲーム開発
・リアルタイムアプリケーション開発
・組み込みシステム開発
・WebAssembly開発
・クロスプラットフォーム開発

Odinの「特徴」

最新コンピューター向けにゼロから設計

・SOAデータ型
・配列プログラミング
・その他の機能のサポート

データ指向言語

・オブジェクト指向言語ではない
・メソッドを提供していない
・「データ」と「コード」は別の概念として扱うべきである
・データに「動作」があってはならないと考える
・ユーザーは必要に応じて「仮想プロシージャテーブル」を作成できる

→odin-lang.org →docs →faq →#is-odin-an-object-oriented-language

ハイパフォーマンス

・「メモリレイアウト」「メモリ管理」「カスタムアロケータ」などを低レベルで制御

主要グラフィックスAPI の公式ライブラリを提供

・OpenGL
・Vulkan
・Direct3D11
・Direct3D12
・Metal
・WebGL 1/2 など

手動メモリ管理ベース言語

・Odinプログラマーが「メモリ管理」「追跡管理」を実施する必要がある
・Odinは、暗黙的システムを通じて、メモリ管理を支援

→odin-lang.org →docs →overview →#allocators

「暗黙的数値型変換」は非実装

・Odinは「明示的な変換」を使用する
・移植性が高まる
・言語を単純化できる

→odin-lang.org →docs →faq →#why-does-odin-not-have-implicit-numeric-type-conversions

「暗黙的プロシージャのオーバーロード」は非実装

・暗黙的プロシージャオーバーロードは、スコープシステムを複雑にする
・プロシージャはプロシージャ内でネストできる

→odin-lang.org →docs →faq →#why-does-odin-have-explicit-procedure-overloading-but-not-implicit-procedure-overloading

「例外処理」は非実装

・制御構造に「例外処理」(try-catch-finally)を結合するとプログラムの理解が複雑になる
・Odinでは「複数の戻り値」を使用して「シンプルなエラー処理」を使用
・エラー値が「どのプロシージャから来たのか?」が明らかになる

→gingerbill.org →article →2018/09/05 →exceptions-and-why-odin-will-never-have-them

Odinの「機能」

言語機能

・UTF-8サポート
・カスタムアロケーター
・コンテキストシステム
・配列プログラミング
・メモリレイアウトの高度な制御
・エンディアン固有の整数型
・map型の実装
・型推論
・複数の戻り値
・ステートメントレベルで切り替え可能な境界チェック など

→odin-lang.org →docs →faq →#what-does-odin-offer-over-other-languages

エディタサポート機能

・Sublime Text
・GNU/Emacs
・Vim など

→github.com →odin-lang →Odin →wiki →Odin-Libs →#editor-support

ライブラリ機能

・「odin-gl_font」:フォントレンダリングをすばやくセットアップ
・「bindgen」:「C言語ヘッダファイル」を「Odinバインディングファイル」に変換
・「odinhttp」:シンプル「Odin http(s)」クライアント
・「mani」:Lua双方向バインディングジェネレーター
・「glcache」:キャッシュされたOpenGL呼び出し など

→github.com →odin-lang →Odin →wiki →Odin-Libs →#libraries

バインディング機能

・「odin-gl」:「Core OpenGL 4.5」のバインディング
・「odin-openssl」:「OpenSSL」のバインディング
・「odin-lua」:「Lua」のバインディング など

→github.com →odin-lang →Odin →wiki →Odin-Libs →#bindings

Odinの「オフィシャルサイト情報」

オフィシャルサイト

→odin-lang.org

GitHubページ

→github.com →odin-lang →Odin

主要開発元

Odinは「Odin開発コミュニティ」が中心となり開発が進められています。

→odin-lang.org →community

ライセンス情報

Odinのライセンスは「BSD 3-Clause “New” or “Revised” License」です。

詳細について、こちらを参照ください。

→github.com →odin-lang →Odin →LICENSE

動作要件

→odin-lang.org →docs →install →#requirements

インストール

→odin-lang.org →docs →install/

ショーケース

→odin-lang.org →showcase

【お知らせ】ITセミナー「マジセミ」のご紹介

「 マジセミ 」では、日々、多くのIT関連セミナーを開催しています。

参加者のみなさまのために「本当に役立つ情報の提供」を目標としています。

また、「 マジセミ 」を通じて、デジタル関連プロダクト(サービス)との「新たな出会いの場」「新たな体験の場」を創造することで、「IT業界の発展」「製造業の発展」「エンジニアの活躍促進」の実現を目指しています。

多くのセミナーの中から「ご自身のスキルやビジネスを強化できるセミナー」を見つけて、ぜひ一度、ご参加ください。

マジセミのイメージロゴ


参考サイト
→github.com →odin-lang →Odin
→odin-lang.org

おすすめの記事

【デジタル寺田の3分用語解説】 「 心理的安全性 」が無い職場とは?🤐

デジタル寺田の3分用語解説

2025.03.17

【デジタル寺田の3分用語解説】 「 心理的安全性 」が無い職場とは?🤐

「 心理的安全性 」が低い職場とはどのような環境なのか、具体的な特徴を解説します。「質問しづらい雰囲気」「失敗を報告できない隠蔽体質」「発言をためらう風土」など、心理的安全性の欠如がもたらす影響を詳しく紹介し、安全な職場づくりの重要性も解説します。

【デジタル寺田の3分用語解説】 「 ウェルビーイング 」とは?😊

デジタル寺田の3分用語解説

2025.03.10

【デジタル寺田の3分用語解説】 「 ウェルビーイング 」とは?😊

「 ウェルビーイング 」とは、身体的・精神的な健康だけでなく、社会的・経済的にも満たされた状態を指します。企業にとっては、健康経営の推進により生産性向上や離職率低下などのメリットがあります。本記事では、ウェルビーイングが注目される背景や企業の具体的な取り組みについて詳しく解説します。

【デジタル寺田の3分用語解説】 「 AIエージェント 」は、人間の管理職の代わりになるか?🤖

デジタル寺田の3分用語解説

2025.03.11

【デジタル寺田の3分用語解説】 「 AIエージェント 」は、人間の管理職の代わりになるか?🤖

「 AIエージェント 」は営業マネージャーの業務をどこまで代行できるのか?「データ分析」「フィードバック」「自動日程調整」の可能性を探り、未来の管理職のあり方を考察します。AIが進化する中で、人間の役割はどう変わるのか詳しく解説します。