Red (programming language): Difference between revisions

Content deleted Content added
Added another source referring to Software Freedom Day 2011.
Added further reading section, along with source and book
Line 22:
| file_ext = .red, .reds
}}
'''Red''' is a [[programming language]] designed to overcome the limitations of the programming language [[Rebol]].<ref name="GS">{{cite web |title=Getting Started with GUI Programming using Red Language |url=https://www.studytonight.com/post/getting-started-with-gui-programming-using-red-programming-language |website=Studytonight |access-date=September 17, 2021}}</ref> Red was introduced in 2011 by Nenad Rakočević{{Sfn|Balbaert|2018}}, and is both an [[imperative programming|imperative]] and [[functional programming]] language. Its syntax and general usage overlaps that of the interpreted Rebol language.<ref>{{cite web |title=Interview with Nenad Rakocevic about Red, a Rebol inspired programming language |url=https://www.notamonadtutorial.com/interview-with-nenad-rakocevic-about-red-a-rebol-inspired-programming-language/ |website=Not a Monad Tutorial| access-date=August 28, 2015}}</ref>
 
The implementation choices of Red intend to create a [[Solution stack|full stack]] programming language:{{Sfn|Balbaert|2018}}<ref name="MUO">{{cite web |title=6 Unusual & Groundbreaking Programming Languages to Learn in 2023|url=https://www.makeuseof.com/programming-languages-to-learn-in-2023/ |website=makeuseof.com |date=18 October 2023}}</ref> Red can be used for extremely high-level programming ([[Domain-specific language|DSL]]s and [[Graphical user interface|GUI]]s) as well as low-level programming ([[operating system]]s and [[device driver]]s). Key to the approach is that the language has two parts: ''Red/System'' and ''Red''.<ref name="developpez">{{cite web |last1=Lucas |first1=Mathis |title=Red: an imperative and functional programming language that is also a "full battery" language|url=https://programmation.developpez.com/actu/346670/Red-un-langage-de-programmation-imperatif-et-fonctionnel-et-decrit-comme-un-langage-a-pile-complete-c-est-a-dire-qu-il-peut-etre-utilise-pour-la-programmation-de-haut-niveau-et-de-bas-niveau/ |website=developpez |date=21 July 2023 |access-date=16 January 2023}}</ref>
 
* ''Red/System'' is similar to C, but packaged into a Rebol lexical structure{{snd}} for example, one would write {{Smalltalk|if x > y [print "Hello"]}} instead of {{C-lang|if (x > y) {printf("Hello\n");} }}.
Line 39:
 
==Features==
Red's syntax and semantics are very close to those of [[Rebol]].{{Sfn|Balbaert|2018}}<ref>{{cite web |title=The Dynamic Mapping Architecture |url=https://etd.ohiolink.edu/apexprod/rws_etd/send_file/send?accession=toledo1639760375713532&disposition=inline |website=OhioLINK |date=December 2021}}</ref> Like Rebol, it strongly supports [[metaprogramming]] and ___domain-specific languages ([[___domain-specific language|DSLs]]) and is therefore a highly efficient tool for dialecting (creating embedded DSLs). Red includes a dialect called Red/System, a C-level language which provides system programming facilities.<ref name="developpez"></ref> Red is easy to integrate with other tools and languages as a DLL (libRed) and very lightweight (around 1&nbsp;MB). It is also able to cross-compile to various platforms (see Cross Compilation section below) and create packages for platforms that require them (e.g., .APK on Android).<ref name="developpez"></ref> Red also includes a fully reactive cross-platform GUI system based on an underlying reactive dataflow engine, a 2D drawing dialect comparable to SVG, compile-time and runtime macro support, and more than 40 standard datatypes.
 
==Goals==
Line 113:
==References==
{{Reflist}}
 
== Further reading ==
* {{Cite book |last1=Balbaert |first1=Ivo |date=May 2018 |title=Learn Red - Fundamentals of Red|publisher=[[Packt Publishing]]|isbn=978-1789130706 |language=en}}
 
==External links==