J Sharp

הבהרה: הכותרת הנכונה של המאמר היא #J. סימן ה־# הוחלף מפאת הגבלות טכניות.

#J (מבוטא בעברית: ג'יי שארפ) היא שפת תכנות אימפרטיבית, מובנית, ומונחית עצמים מבית מיקרוסופט שנועדה לשמש כשפת מעבר למתכנתי ++J ו־Java, על מנת שיוכלו להשתמש בידע ובאפליקציות הנוכחיות שלהם בסביבת־ של מיקרוסופט. השפה הוצגה לראשונה בשנת 2002 ופיתוחה הופסק בשנת 2007. התמיכה לגרסה הסופית של #J הסתיימה באוקטובר 2017. היא פותחה במרכז הפיתוח של מיקרוסופט בהייטק סיטי בהיידראבאד, הודו.

 הבדלים בסיסיים בין #J ו-Java 
שתי השפות משתמשות באותו תחביר כללי אך נעשו מספר שינויים ב-#J על מנת שתתמוך בסביבת . לדוגמה, על מנת להשתמש בתכונות ב-  עם מחלקה סטנדרטית של JavaBeans, יש לכתוב לפני כן פעולות setter (אתחול תכונות) ו־getter (אחזור תכונות) את ההערה הבאה:
/** @beanproperty */
ולשנות את שם המשתנה הפרטי (משתנה שניתן לגשת אליו ישירות מהמחלקה בו הוא נמצא בלבד - private)  כדי שיהיה שונה מהסיומת של שמות ה־getXxx ו־setXxx.

 לא ממירה קוד מקור בשפת Java ל-Java Bytecode (קובצי class.) ולא תומכת בפיתוח java appletApplet - יישום קטן אשר רץ בתוך הדפדפן. או יכולה להחזיק applets ישירות בדפדפן אינטרנט, אם כי היא כן מספקת  פעולת מעטפתפעולת מעטפת היא פעולה אשר תפקידה המרכזי הוא לזמן פעולות אחרות (Wrapper)  הנקראת "Microsoft J# Browser Control" אשר מאחסנת אותם כ־ActiveX. לבסוף, Java Native Interface (או בקיצור, JNI, ) ו־Raw Native Interface (או בקיצור, RNI) מוחלפים ב־P/Invoke; #J לא תומכת ב־Remote Method Invocation (או בקיצור: RMI).

ציטוט ממגזין InfoWorld (בתרגום לעברית) על השפה: הממשק של #J ל־NET Framework. הוא יציב, אך לא רציף ומגובש כמו של #C. בפרט, קוד בשפת #J לא יכול להגדיר תכונות, אירועים, דלגייטים (delegates) ו־Value types חדשים. #J יכול להשתמש במבני הנתונים הללו אם הם מוגדרים באסמבלי וכתובים בשפה אחרת, אך זו חוסר היכולת של #J להגדיר מבני נתונים חדשים אשר מגבילה את השפעתה ואת התפעוליות הבינית (היכולת להעביר מידע בין מערכות באופן שימושי) שלה.

 ראו גם 
 #C – שפת תכנות
 ++J – שפת תכנות
 Java – שפת תכנות
  – שכבת תוכנה של מיקרוסופט

 קישורים חיצוניים 

 Visual J# Design Choices: A Conversation with Pratap Lakshman at the Wayback Machine (archived 2007-04-16)
 P/Invoke
 J# בוויקיפדיה האנגלית

הערות שוליים

קטגוריה:תוכנות שהושקו ב-2002
קטגוריה:שפות תכנות