مقايسه پايتون و سي شارپ بر طبقبر اساسبر طبقبر طراحي سايت در مشهد پايه يمبتني برمبني بر سبك اجرايي كدهاعليرغم مفسري بودن لهجه پايتون و كامپايلري بودن گويش سيشارپ، سبك اجرايي اين دو لهجه شباهتهاي معناداري با يكديگر دارا هستند. در هر دو لهجه، «كد منبع» (Source Code) در قالب فولدر متني (ممكن ميباشد متشكل از تعدادي فولدر متني باشد) ذخيره مي گردد.
زماني كه پوشه دربردارنده كدهاي منبع وارد كامپايلر سيشارپ مي شود، فولدر exe. يا اين كه dll. تحت عنوان خروجي بوسيله كامپايلر به وجود خواهد آمد. اين پوشههاي دربردارنده «لهجه واسطهاي» (Intermediate Language) ميباشد كه براي ماژول مجال اجراي NET. تعريفوتمجيد شدهاست. آن گاه، كدهاي ماشيني (اين كدها، در پلتفرمهاي متعدد نظير ويندوز، مك و لينوكس گوناگون خواهد بود) متناظر به وسيله كامپايلر NET. ساختوساز و انجام ميشوند.
در نقطه مقابل، مفسر پايتون كدهاي منبع را به «بايتكدهاي ماشين مجازي» (Virtual Machine Bytecodes) پايتون تبديل مينمايد. در غايت، با اجراي بايتكدهاي ساخت و ساز گرديده، كدهاي منبع اپ درج شده به لهجه پايتون به اعمال در ميايند.
مقايسه پايتون و سي شارپ بر طبق قواعد دستوري و كد نويسي (شباهتها)يكي سؤالات مهمي كه ممكن ميباشد نرمافزارنويسان و بسطدهندگان، در هنگام گذار از گويشهاي متفاوت به يكياز گويشهاي پايتون يا اين كه سي شارپ بپرسند اين ميباشد كه قواعد دستوري گويش آن ها، به كدام يك از زبانهاي پايتون يا اين كه سي شارپ بيشترين شباهت را داراست. درين قسمت، شباهتهاي ساختاري في مابين گويشهاي اپليكيشننويسي پايتون و سيشارپ، به ويژه از نظر قواعد دستوري گزينه محاسبه قرار خواهد گرفت. ارزيابي شباهتهاي جان دار در قواعد دستوري اين دو گويش، نقش مهمي در تعيين پايتون يا اين كه سي شارپ تحت عنوان لهجه كد نويسي پيشفرض يوزرها، به ويژه يوزرها رشتهاي، خواهد داشت.
در صورتيكه كه يوزرها (اپنويسان رشتهاي) قصد مسافرت از يك لهجه به گويش ديگر را داشته باشند، چك شباهت ساختاري و قواعد دستوري در ميان آنها، روند گذار از پايتون به سيشارپ يا اين كه برعكس را به مراتب بي آلايشخيس خواهد كرد.
اگرچه دو گويش پايتون و سيشارپ، خصوصيتها و مفاهيم متفاوتي از يكديگر دارا هستند، با اين درحال حاضر، شباهتهاي ساختاري نيز في مابين آنان مشاهده ميشود. به جز ساختارهايي نظير كلاس، رينگها و امرها كنترلي (نظير لغات شرطي if) كه در همه گويشهاي نرمافزارنويسي شيءگرا وجود دارااست، ساختارهاي مشترك ديگري در بين پايتون و سيشارپ جان دار ميباشد كه درپي به آنان پرداخته گردد.
مقايسه پايتون و سي شارپ بر پايه ي قابليت و امكان همروندي در كدهااز ورژن 5 گويش اپنويسي سيشارپ و ورژن 3.5 لهجه پايتون، هر دو گويش از عبارات كليدي async/await پشتيباني مينمايند. از روش اين قابليت و امكانها، لهجههاي اپنويسي قادرند تا همروندي در كدها را به صورت بهتري رئيس نمايند. دو قطعه كد ذيل، به كارگيري از امكان async/await را در لهجههاي پايتون و سيشارپ اكران ميدهند.
امكان async/await در گويش پايتون:
1234567891011import randomimport asyncio async def greet_after(who, when): await asyncio.sleep(when) print(f"Hello, {who}") async def main(): tasks = [asyncio.create_task(greet_after(x, random.random())) for x in ["John", "Jill", "Jane", "Jake"]] await asyncio.wait(tasks) asyncio.run(main())امكان async/await در لهجه سيشارپ:
C#
123456789async Task GreetAfter(string who, int when){ await Task.Delay(when); Console.WriteLine($"Hello, {who}");} var random = new Random();var taks = new[] { "John", "Jill", "Jane", "Jake" }.Select(x => GreetAfter(x, random.Next(0, 999)));await Task.WhenAll(taks);
شنبه ۰۱ خرداد ۰۰ | ۱۶:۱۰ ۴ بازديد
تا كنون نظري ثبت نشده است