J Sharp – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
Jona1357 (שיחה | תרומות)
עדכון
שורה 11:
| אתר אינטרנט = https://docs.microsoft.com/en-us/previous-versions/msdn10/bb188593(v=msdn.10)
}}
'''#J''' (מבוטא ב[[עברית]]: '''ג'יי שארפ''') היא [[שפת תכנות]] אימפרטיבית, מובנית, ומונחית עצמים מבית [[מיקרוסופט]] שנועדה לשמש כשפת מעבר למתכנתי [[++J (שפת תכנות)|++J]] ו־[[ג'אווה (שפת תכנות)|Java]], על מנת שיוכלו להשתמש בידע ובאפליקציות הנוכחיות שלהם ב־בסביבת־{{משמאל לימין|[[.NET|.NET Framework]]}} של מיקרוסופט. השפה הוצגה לראשונה בשנת [[2002]] והופסקופיתוחה פיתוחההופסק בשנת [[2007]]. התמיכה לגרסה הסופית של #J הסתיימה ב[[אוקטובר]] [[2017]]. היא פותחה במרכז הפיתוח של [[מיקרוסופט]] ב[[הייטק סיטי]] ב[[היידראבאד]], [[הודו]].
 
== הבדלים בסיסיים בין #J ו-Java ==
שתי השפות משתמשות באותו תחביר כללי אך ישנםנעשו מספר שינויים ב-#J על מנת שתתמוך בסביבת {{משמאל לימין|.NET}}. לדוגמה, על מנת להשתמש בתכונות ב- {{משמאל לימין|.NET}} עם מחלקה סטנדרטית של [[JavaBeans]], יש לכתוב לפני כן פעולות setter (אתחול תכונות) ו־getter (אחזור תכונות) את ההערה הבאה:
<syntaxhighlight lang="Java">
/** @beanproperty */
</syntaxhighlight>
ולשנות את שם משתנההמשתנה הפרטי (משתנה שניתן לגשת אליו ישירות מהמחלקה בו הוא נמצא בלבד - <code>private</code>) כדי שיהיה שונה מהסיומת של שמות ה־getXxx ו־setXxx.
 
{{משמאל לימין|J#}} לא ממירה קוד מקור בשפת Java ל-Java [[Bytecode]] (קובצי class.) ולא תומכת בפיתוח ''java applet''<ref>Applet - יישום קטן אשר רץ בתוך הדפדפן.</ref> או יכולה להחזיק ''applets'' ישירות ב[[דפדפן|דפדפן אינטרנט]], אם כי היא כן מספקת [[פעולת מעטפת|wrapper]] {{אנ|Wrapper function}} (פעולת מעטפת)<ref>פעולת מעטפת היא פעולה אשר תפקידה המרכזי הוא לקרואלזמן לפעולהפעולות אחרות אחרת.</ref> ( ''Wrapper'' ) {{אנ|Wrapper function}} הנקראת ''"Microsoft J# Browser Control"'' אשר מאחסנת אותם כ־[[ActiveX]]. לבסוף, ''Java Native Interface'' (או בקיצור, ''JNI'', {{אנ|java native interface}}) ו־Rawו־''Raw Native Interface'' (או בקיצור, ''RNI'' ) מוחלפים ב־P/Invoke{{הערה|[https://docs.microsoft.com/en-us/dotnet/standard/native-interop/pinvoke Platform Invoke] באתר Microsoft Docs {{אנגלית}}}};{{כ}} #J לא תומכת ב־Remoteב־''Remote Method Invocation'' (או בקיצור: ''RMI'').
 
ציטוט ממגזין [[InfoWorld]] (בתרגום לעברית) על השפה: [[ממשק (תכנות)|הממשק]] של #J ל־NETל־[[.NET|NET Framework.]] הוא יציב, אך לא רציף ומגובש כמו של [[סי שארפ|#C]]. בפרט, קוד בשפת #J לא יכול להגדיר [[תכנות מונחה-עצמים|תכונות]], אירועים, [[סי שארפ#תכנות פונקציונלי|דלגייטים]] (delegates) ו־[[Value type|Value types]] חדשים. #J יכול להשתמש ב[[מבנה נתונים|מבני הנתונים]] הללו אם הם מוגדרים ב[[שפת סף|אסמבלי]] וכתובים בשפה אחרת, אך זו חוסר היכולת של #J להגדיר מבני נתונים חדשים אשר מגבילה את השפעתה ואת [[תפעוליות בינית|התפעוליות הבינית]] ( היכולת להעביר מידע בין מערכות באופן שימושי ) שלה.
 
== ראו גם ==
שורה 34:
* [https://web.archive.org/web/20070416013526/http://msdn2.microsoft.com/en-us/vjsharp/bb188610.aspx Visual J# Design Choices: A Conversation with Pratap Lakshman] at the [[Wayback Machine]] (archived 2007-04-16)
* [https://docs.microsoft.com/en-us/dotnet/standard/native-interop/pinvoke P/Invoke]
* [[:en:J_Sharp|J# בויקיפדיה האנגלית]]
 
==הערות שוליים==