Nim (programming language): Difference between revisions

Content deleted Content added
Lo que habia que hacer ya esta hecho
Tag: references removed
Es que asi se ve mas bonito :V
Tag: categories removed
Line 26:
 
Nim is statically typed.<ref name="Nim Syntax">{{cite web |url=https://akehrer.github.io/posts/getting-started-with-nim |title=Nim Syntax |last=Kehrer |first=Aaron (akehrer) |website=GitHub |access-date=2015-01-05}}</ref> It supports compile-time [[metaprogramming]] features such as syntactic macros and [[Macro (computer science)#Syntactic macros|term rewriting macros]].<ref name="manual">{{cite web |url=https://nim-lang.org/docs/manual.html#term-rewriting-macros |title=Nim Manual |website=Nim-lang.org |access-date=2014-07-20}}</ref> Term rewriting macros enable library implementations of common data structures such as bignums and matrices to be implemented with an efficiency as if they were builtin language facilities.<ref name="strangeloop">{{cite web |url=https://thestrangeloop.com/sessions/nimrod-a-new-approach-to-meta-programming |archive-url=https://web.archive.org/web/20140713011227/https://thestrangeloop.com/sessions/nimrod-a-new-approach-to-meta-programming |dead-url=yes |archive-date=2014-07-13 |title=Strangeloop Nim presentation |access-date=2015-04-30}}</ref> Iterators are supported and can be used as first class entities<ref name="manual"/> in the language as can functions, these features allow for [[functional programming]] to be used. Object-oriented programming is supported by [[Inheritance (object-oriented programming)|inheritance]] and [[multiple dispatch]]. Functions can be generic and can also be overloaded, [[Generic programming|generics]] are further enhanced by the support for type classes. [[Operator overloading]] is also supported.<ref name="manual"/> Nim includes tunable automatic [[Garbage collection (computer science)|garbage collection]] based on deferred [[reference counting]] with [[Reference counting#Dealing with reference cycles|cycle detection]].<ref name="gc">{{cite web |url=https://nim-lang.org/docs/gc.html |title=Nim's Garbage Collector |website=Nim-lang.org |access-date=2018-01-10}}</ref> In 2014, Andrew Binstock (editor-in-chief of [[Dr. Dobb's Journal]]) said "Nimrod [former name] ... presents a most original design that straddles [[Pascal (programming language)|Pascal]] and [[Python (programming language)|Python]] and compiles to C code or JavaScript."<ref>{{cite web |url=http://www.drdobbs.com/jvm/the-rise-and-fall-of-languages-in-2013/240165192 |title=The Rise And Fall of Languages in 2013 |last=Binstock |first=Andrew |date=2014-01-07 |website=[[Dr. Dobb's Journal]] |access-date=2018-10-08}}</ref> Today, Nim compiles to C++ too.
 
== History ==
{{Expand section|date=February 2018}}
Nim's initial development began in 2005 by Andreas Rumpf. The first version of the Nim [[compiler]] was written in [[Pascal (programming language)|Pascal]] using the [[Free Pascal]] compiler.<ref name="pas-sources">{{cite web |url=https://github.com/Araq/Nim/tree/ea1f1ec6d4d6c776eb0f81c2bebdd4cb4c817ebe/nim |title=Nim Pascal Sources |website=GitHub |access-date=2013-04-05}}</ref> In 2008, a version of the compiler written in Nim was released.<ref name="news">{{cite web |url=http://nim-lang.org:80/news.html |title=News |website=Nim-lang.org |access-date=2016-06-11 |archive-url=https://web.archive.org/web/20160626002904/http://nim-lang.org/news.html# |archive-date=2016-06-26 |dead-url=no |df= }}</ref> The compiler is [[free and open-source software]] and is being developed by a group of volunteers working with Andreas Rumpf.<ref name="contributors">{{cite web |url=https://github.com/Araq/Nim/contributors |title=Contributors |website=GitHub |access-date=2013-04-05}}</ref> The language was officially renamed from ''Nimrod'' to ''Nim'' with the release of version 0.10.2 in December 2014.<ref>{{cite web |url=https://nim-lang.org/blog/2014/12/29/version-0102-released.html |title=Version 0.10.2 released |date=2014-12-29 |first=Dominik |last=Picheta |website=Nim-lang.org |access-date=2018-10-17}}</ref>
 
== Language design ==
Line 170 ⟶ 166:
 
== External links ==
* {{Official website}}
* {{GitHub|nim/nim}}
* [http://stackoverflow.com/tags/nimi/info Information about Nim] on [[Stack Overflow]]
 
[[Category:Concurrent programming languages]]
[[Category:Functional languages]]
[[Category:Multi-paradigm programming languages]]
[[Category:Procedural programming languages]]
[[Category:Programming languages created in 2008]]
[[Category:Software using the MIT license]]
[[Category:Statically typed programming languages]]
[[Category:Systems programming languages]]
[[Category:2008 software]]
[[Category:Programming languages]]
[[Category:Cross-platform software]]
[[Category:Free compilers and interpreters]]