Draft:Odin (programming language): Difference between revisions

Content deleted Content added
mNo edit summary
mNo edit summary
Line 15:
| designer = Ginger Bill
| released = {{start date and age|2016|07|07}}
| latest release version = dev-2023-0x<ref>{{cite web |title=Latest releases |url=https://github.com/odin-lang/Odin/releases|access-date=}}</ref>
| latest release version =
| latest release date =
| latest preview version =
Line 25:
| file ext = .odin
| website = {{URL|//odin-lang.org/}}
| influenced by = [[Pascal (programming language)|Pascal]]<ref>https://gamefromscratch.com/odin-programming-language/</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 |url=https://www.youtube.com/watch?v=M763xHjsPk4 |access-date=2022-07-06}}</ref>, [[GLSL]]<ref>https://odin-lang.org/docs/faq/</ref>
}}
'''Odin''' is an [[imperative programming|imperative]], [[General-purpose programming language|general-purpose]], [[staticallycompiled typedprogramming language|compiled]], [[distinctlystatically typed]], and [[compileddistinct programming language|compiledtypes]] using [[system programming language]] designed by [[Ginger Bill]]<ref>https://www.youtube.com/watch?v=2YLA4ajby00</ref>
 
The language is designed for "high performance, modern systems, and built-in [[Data-oriented_design|data-oriented]] data types", supports: [[compile-time]] [[parametric polymorphism]], [[Type introspection|runtime reflection]], [[cross-compilation]], [[manual memory management]], [[array programming]], and [[AoS_and_SoA|SOA]] data types.<ref>https://www.youtube.com/watch?v=iCqW_RepcW0</ref><ref>{{Cite web|title=Overview|url=https://odin-lang.org/docs/overview/|access-date=2022-10-20|website=odin-lang.org}}</ref><ref>https://graphitemaster.github.io/odin_review/#quality-of-life</ref><ref>https://medium.com/swlh/something-is-happening-to-our-programming-languages-and-i-like-it-a66447beade</ref>
 
== Example ==
Line 58:
 
== Design ==
Odin is designed asto beingbe an alternative for the [[C_(programming_language)|C programming language]]<ref>{{cite onweb |title=Introducing Odin Lang (Japanese) |url=https://qiita.com/sh1so6/items/40bdda93d6fa2f094fd7 |website=Qiita |access-date=2019-09-29}}</ref><ref>{{cite web |title=Why I like Odin |url=https://hasenjudy.wordpress.com/2022/08/25/odin-praise/ |website=Hasen |access-date=2022-08-25}}</ref> to achieve the "high performance," on "modern systems"<ref>https://odin-lang.org/</ref><ref>https://www.c3-lang.org/compare/#odin</ref>, with features like compile-time [[parametric polymorphism]], [[array programming]], and [[Type_introspection|runtime reflection]].
 
=== Syntax ===
Line 119:
 
====Matrix support====
A <code>matrix</code> is a [[Matrix_(mathematics)|mathematical type]] built into Odin<ref>{{cite web |title=A review of the Odin programming language |url=https://graphitemaster.github.io/odin_review |website=graphitemaster |access-date=10 September 2022-09-10}}</ref>. It is a regular array of numbers, arranged in rows and columns. Odin's matrix support allows for ''matrix-array and matrix-matrix operations'' making it a [[Basic_Linear_Algebra_Subprograms#Level_3|Level 3 Basic Linear Algebra Subprogram]]ing language.
 
<syntaxhighlight lang="text">
Line 143:
 
==Comparisons with other languages==
The syntax of Odin resembles [[Go (programming language)#Syntax|Go]]'s syntax<ref>{{cite web |title=Low-Level Programming with Odin Lang |url=https://dev.to/patrickodacre/low-level-programming-with-odin-lang-perfect-for-beginners-5cc3 |website=Dev |access-date=21 September 2022-09-21}}</ref> with many adjustments.
 
Compared to C, Odin: