Mohammed Aldoub م.محمد الدوب
Mohammed Aldoub م.محمد الدوب

@Voulnet

13 تغريدة 2 قراءة Feb 02, 2023
رأيت بتويتر بعض التغريدات الفارغة والخاطئة على المقارنات بين لغات البرمجة من نواحي الأمان والسهولة وغيرها.
وهناك عدة أخطاء كارثية لا يراها إلا الممارس الحقيقي.
أولاً هناك فرق كبير بين لغة البرمجة language والمنصة المبنية فيها framework.
ولذلك المقارنة بين aspdotnet و php خطأ
الphp هي اللغة نفسها بينما الaspdotnet هي منصة ويب مبنية على لغات الdotnet مثل C# وVBNET.
المقارنة الصحيحة بين اللغات نفسها php vs C# او بين المنصات aspdotnet vs laravel على سبيل المثال.
اما المقارنة بين aspdotnet و php مقارنة جاهلة كمن يقارن بين عمود الإنارة وطاقيتي.
ولذلك تجد مقارنات ظالمة وخاطئة مثلا:
هل الphp أكثر أمان من الasp؟
هل الdjango أكثر أمان من الphp؟
هل الGo أكثر أمان من الruby؟
هذا كله خطأ بخطأ.
إما مقارنة اللغات php c# go ruby python
.
او مقارنة المنصات asp laravel django rubyonrails و غيرها من المنصات الشهيرة.
ولذلك تجد بمنصات الويب خواص متشابهة للحماية من الثغرات التقليدية بالويب وقد تكون هذه الخواص هي الdefault مثلا:
- حماية من الxss عن طريق default encoding.
-حماية من الsqli عن طريق الORM او prepared statements.
-نظام session mngmnt تلقائي.
-نظام تحقق من الهوية.
هنا يمكن المقارنة
اما المقارنة بين اللغات نفسها دون استخدام مميزات المنصات فأنا اضمن لك سهولة وجود ثغرات بالgo والjava تماما كما تجدها بالphp والC# فهي لغات تسمح لك بأن تقوم بكل ما تريد.
المقارنة بين اللغات (خصوصا ما عدا C/C++) تكون مبينة علي:
- السهولة (او التعود).
- ذوقك.
- وجود نظام packages.
اما كون اللغة آمنة أو لا فهذا يعتمد على فهم المبرمج وخبرته.
نفس المبرمج الفاشل في php سيفشل بالpython والGo.
المبرمج الحذر الذي يفهم ويكتب VBNET يستطيع ان يتعلم ruby ويكتب فيها أكواد آمنة ممتازة.
بلاش تحزب على موضوع اللغات فنحن مو ناقصين. يكفينا الاندرويد vs الايفون.
اما استخدام اللغة في داخل المؤسسة فهو أمر لا يعتمد على طبيعة اللغة أبدا بل على طبيعة المؤسسة وعقود الدعم الفني فيها وعقود التدريب ونوعية سيرفراتها.
الجهة التي تستخدم oracle كثيرا ستجدها غالبا تستخدم java والتي تستخدم أنظمة amazon aws ستجدها غالبا تبتعد عن الaspdotnet و هلم جره
إذا كان للمؤسسة طاقم متعود ومتدرب على أنظمة php سواء برمجة او إدارة وتشغيل سيكون من الغباء تضييع وقتها بتجريب كل اللغات بل الأفضل لها رفع مستواها الحالي بنفس اللغة.
الجهة التي تقفز من شيء إلى آخر دائما إما انها وضعت لنفسها ميزانية للبحث والتجربة R&D( شي جميل) او انها غير ناضجة.
الذي ينتقد aspdotnet ماهو رده على استخدام stackOverflow لها؟
الذي ينتقد php ماهو رده على استخدام Facebook لها؟
قوقل تستخدم python و Go.
و Github تستخدم Ruby.
هناك عامل واحد بينهم:
كلهم اعتمدوا لغة يكثرون استخدامها ويقومون بالتعمق فيها أكثر واستثمار العلم والفهم فيها.
FIN
@r3nop0c انا استثنيت الC بالأعلى لهذا السبب.
لكونه unmanaged بالكامل.
طبعا هذا ميزة فيها وليس عيب ولكن يحتاج للتعامل الحذر فقط.
@r3nop0c هناك buffer overflow في الجافا عند استخدام JNI مثلا مثل ما فيه buffer overflow في C# باستخدام unsafe او marshalling لكن كلا الحالتين حالات استثنائية ولا تدخل ضمن الاستخدام العادي للغة.
@r3nop0c طيب كلامك يدعم الفكرة إلى ذكرتها بسلسلة التغريدات وهي أن المبرمج هو من يكتب الكود الآمن من غيره. مبرمج C# يستخدم unsafe بكثرة والخطأ هذا ذنبه أكثر مما هو ذنب اللغة. ما اقدر ألوم اللغة

جاري تحميل الاقتراحات...