- הבהרה: הכותרת הנכונה של המאמר היא #J. סימן ה־# הוחלף מפאת הגבלות טכניות.
#J (מבוטא בעברית: ג'יי שארפ) היא שפת תכנות אימפרטיבית, מובנית, ומונחית עצמים מבית מיקרוסופט שנועדה לשמש כשפת מעבר למתכנתי ++J ו־Java, על מנת שיוכלו להשתמש בידע ובאפליקציות הנוכחיות שלהם בסביבת־.NET Framework של מיקרוסופט. השפה הוצגה לראשונה בשנת 2002 ופיתוחה הופסק בשנת 2007. התמיכה לגרסה הסופית של #J הסתיימה באוקטובר 2017. היא פותחה במרכז הפיתוח של מיקרוסופט בהייטק סיטי בהיידראבאד, הודו.
הבדלים בסיסיים בין #J ו-Java
שתי השפות משתמשות באותו תחביר כללי אך נעשו מספר שינויים ב-#J על מנת שתתמוך בסביבת .NET. לדוגמה, על מנת להשתמש בתכונות ב- .NET עם מחלקה סטנדרטית של JavaBeans, יש לכתוב לפני כן פעולות setter (אתחול תכונות) ו־getter (אחזור תכונות) את ההערה הבאה:
ולשנות את שם המשתנה הפרטי (משתנה שניתן לגשת אליו ישירות מהמחלקה בו הוא נמצא בלבד - private
) כדי שיהיה שונה מהסיומת של שמות ה־getXxx ו־setXxx.
J# לא ממירה קוד מקור בשפת Java ל-Java Bytecode (קובצי class.) ולא תומכת בפיתוח java applet[1] או יכולה להחזיק applets ישירות בדפדפן אינטרנט, אם כי היא כן מספקת פעולת מעטפת[2] (Wrapper) (אנ') הנקראת "Microsoft J# Browser Control" אשר מאחסנת אותם כ־ActiveX. לבסוף, Java Native Interface (או בקיצור, JNI, (אנ')) ו־Raw Native Interface (או בקיצור, RNI) מוחלפים ב־P/Invoke[3]; #J לא תומכת ב־Remote Method Invocation (או בקיצור: RMI).
ציטוט ממגזין InfoWorld (בתרגום לעברית) על השפה: הממשק של #J ל־NET Framework. הוא יציב, אך לא רציף ומגובש כמו של #C. בפרט, קוד בשפת #J לא יכול להגדיר תכונות, אירועים, דלגייטים (delegates) ו־Value types חדשים. #J יכול להשתמש במבני הנתונים הללו אם הם מוגדרים באסמבלי וכתובים בשפה אחרת, אך זו חוסר היכולת של #J להגדיר מבני נתונים חדשים אשר מגבילה את השפעתה ואת התפעוליות הבינית (היכולת להעביר מידע בין מערכות באופן שימושי) שלה.
ראו גם
קישורים חיצוניים
הערות שוליים
- ^ Applet - יישום קטן אשר רץ בתוך הדפדפן.
- ^ פעולת מעטפת היא פעולה אשר תפקידה המרכזי הוא לזמן פעולות אחרות
- ^ Platform Invoke באתר Microsoft Docs (באנגלית)