در يك نشست تعاملي ++C، هدرها ميتوانند از پيش بارگذاري شده و
حجم بيشتري از كامپايل مجدد ميتواند بطور سريعتري انجام شود زيرا اين
هدرها از قبل در سيستم حاضر هستند. هيچ مرحله لينكي وجود ندارد، تمام
شيوههاي UnderC مراجعات غير مستقيمي به Pcode واقعي دارند بنابراين
نيازي به عبور از تمام مراجعات تابعي كه آدرسها را متصل ميكنند وجود
ندارد. اين ويژگي خصوصا هنگاميكه هدرها براي سيستم وارد شدهاي هستند
كه به ندرت تغيير ميكند، بسيار خوب عمل ميكنند. هنگاميكه هدرها به يك
نشست تعاملي بارگذاري ميشوند، برنامههاي آزمايش VTK در ++C
ميتوانند در عرض چند ميلي ثانيه مجددا كامپايل شوند. اين مسئله باعث شد
براي سازماندهي محيط اسريپتينگ ++C بطور موثر، راهي به ذهن من
برسد: مفسر بعنوان سرور، مقيم ميماند و يك راهانداز اسكريپت مشتري
كوچك با آن ارتباط برقرار ميكند و از آن براي اجراي اسكريپتها استفاده
ميكند. وضعيت كامپايلر ثابت ميماند و هدر نياز دارند كه تنها در اولين اجرا
به حساب آورده شوند. اين ميتواند يك اجراي فوقالعادي براي يك كاربرد
اسكريپتينگ CGI باشد. خود اسكريپتها ميتوانند برنامههاي اصلي كوچكي
باشند كه مابقي سيستم فراخواني ميكنند و وضعيت بايستي بطور خودكار
مابين ارتباطات مجزا حفظ شود.
با اين شيوه، مشكل وابستگي نيز بيشتر قابل كنترل است. براي مثال يك تغيير
عمومي بر روي كلاس، يك شيوه ديگر است. با وجود آنكه ممكن است آن
تعريف كلاس در سرتاسر سيستم مورد نياز باشد (احتمالا صدها هزار خط و يا
بيشتر)، ما تنها با كامپايل مجدد خود كلاس نياز داريم زيرا طرح كلي كلاس
تغيير نكرده است. در واقع شما تنها نياز داريد خود شيوه را كامپايل نمائيد.
پس اين امكان وجود دارد كه محيطي را ايجاد كنيد كه سيستمهاي بزرگ
++C، اغلب در عرض چند ميلي ثانيه (بجاي دقيقهها و ساعتها) در آن قابل
ويرايش باشند. يك انتقاد در اين مورد اين است كه شما را تشويق به
Hacking ميكند، اما در عين حال اين شيوه شما را به آزمايش كل سيستم
نيزتشويق ميكند. برنامهنويسي اكتشافي مشوق يك انتقال از فكر كردن به قابل
اجراهاي يكپارچه است. در اينجا "برنامهاي" كه "راهاندازي" شده باشد وجود
ندارد. در عوض شما در داخل سيستم قرار داريد. من متوجه شدهام كه در
هنگام اشكالزدائي كاربردهاي GUI در محيطهاي سنتي زمان بسيار زيادي
به هدر ميرود كه جاي آزمايش شما را ميگيرد. اما در داخل سيستمهاي
تعاملي، كد ميتواند در هنگاميكه سيستم در حال اجرا است اصلاح شود.
چيزيكه در مورد اين امكانات متوجه شدم اين است كه يك زبان شيگراي
سنتي مانند ++C هنوز ميتواند در يك سبك اكتشافي مورد استفاده قرار
گيرد و ما ميتوانيم از مشكلاتي كه واقعا در اجراهاي سنتي پيش ميآيند
عبور كنيم.
علاقه مندی ها (بوک مارک ها)