Draft:Odin (programming language): Difference between revisions

Content deleted Content added
Added link to book, removed link to blog post, added reference to first commit
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 19:
| paradigms = [[Imperative programming|imperative]], [[Procedural programming|procedural]]
| designer = Bill Hall
| released = {{start date and age|2016|0706|0702}}
| latest release version = dev-20232025-1106<ref>{{cite web |title=Odin releaseRelease dev-20232025-1106 |website=[[GitHub]]· odin-lang/Odin |url=https://github.com/odin-lang/Odin/releases/tag/dev-20232025-1106 |website=GitHub |access-date=2023-11-273 June 2025 |language=en}}</ref>
| latest release date = {{Start date and age|2025|06|02}}
| latest preview version =
| latest preview date =
| typing = [[Static typing|Static]], [[Strong typing|strong]], [[Type inference|inferred]], [[Nominal_type_system|nominal]], [[Structural_type_system|structural]], [[Generic programming|generic]]
| platform = [[x86-64]], [[ARM architecture|ARM]]/[[AArch64|ARM64]], [[WebAssembly]]
| operating system = [[Microsoft Windows|Windows]], [[Linux]], [[macOS]]
| license = [[BSD_licenses#3-clause|3-clause BSD]].<ref>{{cite web |title=BSD 3-clause license |website=[[GitHub]] |url=https://github.com/odin-lang/Odin/blob/master/LICENSE|access-date=2023-11-27}}</ref>
| file ext = .odin
| website = {{URL|https://odin-lang.org/}}
| influenced by = [[Pascal (programming language)|Pascal]]<ref>{{cite web | url=https://gamefromscratch.com/odin-programming-language/ | title=ODIN Programming Language | date=13 April 2022 }}</ref>, [[C (programming language)|C]], [[Go (programming language)|Go]], [[Oberon-2]], [[Newsqueak]], [[JAI_(programming_language)|Jai]]<ref>{{cite web |title=Jai vs Odin systems programming languages | website=[[YouTube]] |url=https://www.youtube.com/watch?v=M763xHjsPk4 |access-date=2022-07-06}}</ref>, [[GLSL]]<ref>{{cite web | url=https://odin-lang.org/docs/faq/ | title=Frequently Asked Questions }}</ref>
}}
'''Odin''', also known as '''odinlang''', is an [[imperative programming|imperative]], [[General-purpose programming language|general-purpose]], [[compiled programming language|compiled]] and [[statically typed]] [[system programming language]].<ref>{{cite web | url=https://www.youtube.com/watch?v=2YLA4ajby00 | title=Interview with Odin language creator gingerBill | website=[[YouTube]] }}</ref><ref>{{cite book |last1=Zylinski |first1=Karl |title=Understanding the Odin Programming Language |date=December 9, 2024 |edition=1st |url=https://www.amazon.com/Understanding-Odin-Programming-Language-Zylinski-ebook/dp/B0DQ1V7LW4 |access-date=24 May 2025}}</ref> It is designed as an alternative to the [[C_(programming_language)|C programming language]]<ref>{{cite web |title=Introducing Odin Lang (Japanese) |url=https://qiita.com/sh1so6/items/40bdda93d6fa2f094fd7 |access-date=2019-09-29 |website=Qiita}}</ref><ref>{{Cite web |date=2022-11-04 |title=Programming Games by Hand Using Odin |url=https://community.codenewbie.org/patrickodacre/programming-games-by-hand-using-odin-55lh |access-date=2023-11-27 |website=CodeNewbie Community 🌱 |language=en}}</ref>. It has features such as compile-time [[parametric polymorphism]], [[array programming]], and [[Type_introspection|runtime reflection]].<ref name=":0">{{cite web |title=Odin programming language review (quality of life) |url=https://graphitemaster.github.io/odin_review/#quality-of-life}}</ref><ref>{{Cite web |title=Writing an Operating System in Odin |url=https://flysand7.hashnode.dev/writing-an-os-kernel-in-odin |access-date=2023-11-27 |website=flysand7's blog |date=22 November 2023 |language=en}}</ref><ref>{{Cite web |last=hasen |date=2022-08-25 |title=Why I like Odin |url=https://hasenjudy.wordpress.com/2022/08/25/odin-praise/ |access-date=2023-11-27 |website=Hasen Judy |language=en}}</ref>
 
The language comes with bindings for several libraries and graphics APIs such as [[OpenGL]], [[DirectX]], [[Simple DirectMedia Layer|SDL]] and [[Vulkan]].<ref>{{Cite web |last=Mike |date=2022-04-13 |title=ODIN Programming Language |url=https://gamefromscratch.com/odin-programming-language/ |access-date=2023-11-27 |website=GameFromScratch.com |language=en-US}}</ref><ref>{{Cite web |title=Odin/vendor at master · odin-lang/Odin |url=https://github.com/odin-lang/Odin/tree/master/vendor#readme |access-date=2023-11-27 |website=GitHub |language=en}}</ref>
 
== History ==
Work started on the language in July 2016<ref>{{cite web |title=Odin first commit |url=https://github.com/odin-lang/Odin/commit/f7a669d342c96451a3e0be84e2e51af8631f90ec |website=GitHub |access-date=24 May 2025 |language=en}}</ref>. Designer Bill Hall decided to make a language that could replace his needs for [[C (programming language)|C]] and [[C++]].<ref>{{Cite web |date=2016-07-08 |title=The Odin Programming Language |url=https://handmade.network/forums/t/1338-the_odin_programming_language#7533 |access-date=2023-11-27 |website=Handmade Network |language=en-US}}</ref> Since then the language has been developed as open source on GitHub.<ref>{{Citation |title=The Odin Programming Language |date=2023-11-27 |url=https://github.com/odin-lang/Odin |access-date=2023-11-27 |publisher=Odin}}</ref>. It was considered sufficiently widely used to be added to GitHub's Linguist in July 2020<ref>{{cite web |title=Odin's pull request to Linguist |url=https://github.com/github-linguist/linguist/pull/4676 |website=Github}}</ref>.
 
==Notable software built with Odin==
* [['''EmberGen]]''', a real-time [[Voxel|volumetric]] [[Fluid_animation|fluid simulator]] by [[JangaFX]]<ref>{{cite web | url=https://jangafx.com/software/embergen/ | title=EmberGen: Real-Time Fluid Simulations for Fire, Smoke, and Explosions! }}</ref><ref>{{cite web | url=https://gamefromscratch.com/embergen-real-time-fluid-simulation-2/ | title=EmberGen Real-Time Fluid Simulation | date=9 May 2022 }}</ref><ref>{{cite web | url=https://www.allanmckay.com/289/ | title=Episode 289 - EmberGen | date=9 March 2021 }}</ref>
 
== See also ==
{{Portal|Free and open-source software|Computer programming}}
* [[Go (programming language)|Go]]
* [[D (programming language)|D]]
* [[V (programming language)|V]]
* [[Rust (programming language)|Rust]]
* [[Zig (programming language)|Zig]]
 
==References==
Line 47 ⟶ 54:
 
== External links ==
* {{Official website|https://odin-lang.org/}}
 
* [https://odin.handmade.network/ Odin at Handmade Network]
*{{Official website|https://odin-lang.org/}}
*[https://odin.handmade.network/ Odin at Handmade Network]
 
[[:Category:Programming languages]]
[[:Category:Cross-platform free software]]
[[:Category:Cross-platform software]]
[[:Category:Free compilers and interpretersopen source compilers]]
[[:Category:Programming languages created in 2016]]
[[:Category:Statically typed programming languages]]
[[:Category:Systems programming languages]]
[[:Category:Software using the BSD license]]
{{Drafts moved from mainspace|date=November 2021}}