Shen

Shen היא שפת תכנות פונקציונלית ולוגית ממשפחת ניבי Lisp . פיתוחה החל בשנת 2010 על ידי קבוצה של 11 מתכנתים מרחבי העולם, שבראשם דוקטור מארק טרבר יוצר השפה. משמעות המילה "Shen" בסינית היא רוח / נפש. לפי טרבר, הרציונל אשר מאחורי השפה, הוא ליצור שפת תכנות אשר יכולה לרוץ בכל פלטפורמה ומערכת הפעלה, בעוד שהיא משלבת את המיטב מתכנות פונקציונלי ולוגי. בנוסף, לפי דבריו של טרבר בשפה זו לא יהיו שגיאות הנובעות מחוסר התאמה בין טיפוסי נתונים. Shen פותחה כשדרוג של שפת התכנות Qi עם סט פקודות מקוצר ככל האפשר, שיכול לרוץ בפלטפורמות רבות ומשלב פיצ'רים שחסרים ב-Qi, שהכילה רק כ-15% מהפעולות המובנות ב-Common Lisp.

== הצוות ==
=== חברי צוות נוכחיים (נכון לשנת 2020) ===
{| class="wikitable"
|+
!שם חבר הצוות
!תפקידו ופועלו<ref>לא מצוינים בקטע זה את הכל התפקידים, השוליים לא הוכללו .</ref>
|-
|דוקטור מארק טרבר
|מייסד שפת Shen, מחזיק הרישיון, מנהל הצוות הנוכחי ובנוסף יצר את ההיסב <ref>היסב (באנגלית: Porting) היא התאמת קוד תוכנה מסביבת העבודה שבה הוא נכתב, לסביבת עבודה חדשה, בין אם סביבת חומרה כגון מעבד אחר או סביבת תוכנה כגון מערכת הפעלה. גרסת התוכנה המותאמת לסביבה חדשה נקראת "היסב", "פורט", או "port". מונח זהה קיים בתקשורת מחשבים, אך במשמעות שונה בתכלית.</ref>הראשון של Common Lisp ל-Shen.
|-
|ראמיל פארקשאטוב
|בנה את ההיסבים של Javascript ו- Python ל-Shen.
|-
|ברונו דפרארי
|בנה ומתחזק ( נכון לשנת 2020) את ההיסב של Scheme ל-Shen
|-
|מארק ת'ום
|בנה ומתחזק (נכון לשנת 2020) את ההיסב של Haskell ל-Shen.
|-
|אדיטיה סיראם
|בנה ומתחזק את ההיסב של Emacs Lisp (נכון לשנת 2020) ל-Shen .
|-
|טאטסויה צודה
|בנה ומתחזק ( נכון לשנת 2020) את ההיסב של C ל-Shen.
|}

=== חברי צוות לשעבר ( נכון לשנת 2020 ) ===
{| class="wikitable"
|+
!חבר צוות לשעבר
!פועלו
|-
|וסיל דיאדוב
|בוגר המוסד לטכנולוגיה אלקטרונית במוסקבה, והמנהל הטכני של תאגיד IRIS Ltd. מימן חלק נרחב מבניית שפת Shen, ואחסן את אפליקציות ה-Shen הראשונות באתר Github.
|-
|קיאן ווילקוס
|חוקר עצמאי ומתכנת. ביצע את האחסון לגרסאות של Shen באתר Github.
|-
|האקן ראברג
|יועץ עצמאי שעובד בעיקר בשפת התכנות Clojure, יצר את היסבי ה-Clojure ו-JVM <ref>JVM מריצה את ה Bytecode של Java, שמגיע בדרך כלל ממהדר של Java.</ref> ל-Shen.
|-
|קארל שפירו
|עבד בעבר בתאגידי התוכנה GENSYM,Franz Inc, ו Google, בה עבד כמהדנס בכיר בפרויקט ה-Android. השפיע על העיצוב של Shen.
|-
|גרג ספורייר
|גרג בנה ותחזק את ההיסב של שפת Ruby ל-Shen.
|}

== טיפוסים ==

# Symbols – לדוגמה: hello, shen_is_great, abcdef
# Strings (מחרוזות) – כל התווים שמסתיימים ב־s".
# Booleans(משתנים בוליאנים) – true, false.
# Streams
# Exceptions
# Vectors
# Functions
# Lists
# Tuples
# Closures
# Continuations

== דוגמאות קוד ==

== ראו גם ==
* Lisp
* Haskell

== קישורים חיצוניים ==
* 
* [http://shenlanguage.org/shenin15min.htm מדריך לכתיבת Shen]
* [http://gravicappa.github.io/shen-js/shen.html#/.doc/welcome.html כתיבת קוד ב-Shen ללא הורדה למחשב]
* [http://shenlanguage.org/shenintro.mp4 סרטון הסברה קצר של מתכנן השפה, דוקטור מארק טרבר]
* [https://groups.google.com/forum/?hl=en#!forum/qilang פיד החדשות של מפתחי Shen]

;מאמרים
* [http://shenlanguage.org/shenpaper.pdf "Coding a Lisp Interpreter in Shen"]: a Case Study by Mark Tarver; a practical case study of working with Shen to code a Lisp interpreter.
* [https://github.com/Shen-Language/wiki/wiki/Sequent-Calculus "Shen Tutorial: Sequent Calculus"] by Neal Alexander; a Prolog based study on Shen's interpretation of sequent calculus.
* [https://bluishcoder.co.nz/2016/08/30/kicking-the-tires-of-shen-prolog.html "Kicking the Tyres of Shen Prolog"]
* [https://bluishcoder.co.nz/2019/10/03/defining-types-in-shen.html "Defining Types in Shen"] by Chris Double

==הערות שוליים==

קטגוריה:שפות תכנות פונקציונליות