توصیه بزرگان فناوری : به سمت زبان های Rust یا GO بروید
سازمان آژانس امنیتی NSA گفته است که زبانهای C و ++C رو اگه ممکن هست بذارید کنار و برید به سمت Rust، Swift، Java، Go و امثال آن چون معتقد است که مشکلات حافظه و امنیت مربوط به این موضوع بسیار مهم هست و این دو زبان باید کنار گذاشته شود و باید با زبانهایی که امن هستند, استفاده شود.
در ادامه مدیر ارشد فناوری مایکروسافت هم گفته است که آره ما باید از این به بعد پروژههای جدید رو با سی و سی پلاس پلاس توسعه ندهیم و کنار گذاشته شود و به سمت زبان راست برویم و از این توصیه هم حمایت خواهیم کرد.
به همین خاطر هم تیم The Register از کمیته و سازندهٔ سی پلاس پلاس در این باره توضیح و نظرش رو خواسته است که سازندهٔ سی پلاس پلاس در پاسخ پست اخیری که فرستادم رو گفته است.
نظرش این هست که طبیعی است، مردم و به ویژه مدیران به هر چیز جدیدی اولش به به چه چه میکند! به خصوص مدیران فکر میکنند هر چیز جدیدی قرار است زندگی اون ها رو آسون کند و پس یه واکنش در موردش دارند، در ادامه به این اشاره کرده که ما سالهاست در بهبودهای امنیتی در کمیته کار کردیم و هدفمون هم همین بوده و مهم هم هست.
استراستروپ: اکنون استاندارد سی پلاس پلاس به نوع کامل و ایمنی حافظه رسیده و میتونیم این تضمین رو داشته باشیم که با سی پلاس پلاس مدرن همه چیز به خوبی پیش می رود. توجه هم داشته باشید که هر زبانی (ایمن) از جمله Rust دارای حفرههایی است که امکان توسعهٔ کد نا امن رو فراهم میکند. (در واقع منظورش اینه شعار ندهید).
در ادامه به مستند Core Guidelines اشاره داشته است و گفته برای کدنویسی ایمن دستورالعملهای اساسی رو ما در این بخش گفتهایم چرا که هر کدی که به صورت دلخواه نوشته شود, نمیتواند ایمن باشد.
در ادامه اشاره کرده است که در حال بهبود هرچه بیشتر راندمان با حفظ پایداری در دامنهٔ بیشتری از دنیای نرمافزاری هستیم به طوری که باید این رو هم در نظر گرفت امروزه میلیاردها خط کد به زبان سی پلاس پلاس مستقر شدهاند و به همین دلیل تعویض کدها، به سادگی ایمنسازی آنها یک کار بسیار بزرگی است، هرچند مدیران مایکروسافت و ناسا هم گفته است که حتی اگه الآن بخواهیم کار جایگزینی کلی انجام دهیم دهها سال طول میکشه و به این سادگی هم نیست.
استراستروپ هم اشاره داشته که کدهای قدیمی سی و سی پلاس پلاس رو باید به سبک نوین (Modern) بنویسید، انجام این کار ضروری است و در صورت عدم بهروز رسانی با تودهٔ عظیمی از کدهای نا امن سی و سی پلاس پلاس روبرو خواهیم بود.
توصیههای شخصی من:
۱. به توصیههای هر طرف دقت کنید (از نظر من جایگزینی بیمعناست).
۲. به دستورالعملهای استاندارد توجه کنید، اصلاً در دنیای مهندسی دستورالعمل استاندارد وظیفه آن همین هست که شما رو در مسیر درستی قرار بدهد.
۳. ابزارهای کمکی و آنالیز رو در محیطهای توسعه به کار بگیرید (این امر برای هر ابزاری مفید هست).
۴. زبانی مثل سی پلاس پلاس اسباببازی امروز و فردا نیست، سالهاست در دنیای نرمافزار حکمرانی میکنه و کمیته هم همینطور دست بسته ننشسته است که برای این صحبتها که دنیای نرمافزار محکوم به عقب افتادگی بشود. حتی مجموعهٔ همهٔ زبانهایی که به عنوان جایگزین مطرح شدن پیشنویسههای بهروز رسانی آن به اندازهٔ استانداردهای قبلی سی پلاس پلاس نیست! این یک معنا دارد، اون هم بهروز رسانی عظیم و اساسی و پوستاندازی بسیار شدید استاندارد هست که خودش را با احتمالات آینده هماهنگ و ادغام خواهد کرد.
همانطور که استاندارد تأکید کرده است، کدهای شما در نسخههای جدید ایمن هستند و مدیریت چنین چیزی در یک پوستاندازیِ سی پلاس پلاس، بسیار بزرگ و اقعاً شاهکار است.
پیوند های زیر:
In Rust We Trust: Microsoft Azure CTO shuns C and C++
NSA urges orgs to use memory-safe programming languages
پیوند منابع