قررت إجراء مقابلة مع أحد أصدقائي الأمريكيين - روب فوجتفين. كان يعمل كمبرمج فورتران في الثمانينات ، لذلك فهي تجربة فريدة من نوعها.
روب فوجتفين ، كارسون سيتي ، نيفادا ، الولايات المتحدة الأمريكيةK: مرحبا روب. سمعت أنك تعمل كمبرمج فورتران منذ عدة سنوات. هل هذا صحيح؟ كيف كانت الصناعة تنظر إلى الوراء؟R: صباح الخير ، كيريل.
في الثمانينات من القرن الماضي ، كسبت رزقي كمبرمج فورتران في صناعة التعدين ، وخاصةً في معالجة بيانات الاستكشاف وتقديمها بيانياً. كنا نستخدم أجهزة VAX الصغيرة من شركة Digital Equipment Corporation. كان ذلك في وقت كانت فيه أجهزة الكمبيوتر المكتبية تزداد شعبية ، وكانت اللغات الإجرائية مثل FORTRAN تتحدى اللغات الموجهة للكائنات. أيضًا ، كانت أنظمة عرض الرسومات تتحول من محطات خلايا الحروف إلى شاشات العرض المستندة إلى نافذة X.
تم تصميم FORTRAN ("FORmula TRANslation") لبرامج مكثفة حسابيًا ، وليس لديها مكتبات رسومية خاصة بها لعرض المعلومات. كانت هناك الشركات التي باعت مكتبات FORTRAN روتين كبير لتوفير هذه القدرة. لم يتم تصميمها حتى الآن لتنامي شعبية تقنية X-window.
عندما اضطررنا إلى الانتقال من أجهزة كمبيوتر VAX باهظة الثمن إلى أجهزة كمبيوتر أرخص ، كان علينا أن نكتب برامج هجينة تستخدم FORTRAN للحسابات و C ++ للعرض. كان فوضوي بعض الشيء في البداية. تركت هذه الوظيفة لشيء مختلف تمامًا (بناء متحف تعدين) ولم أقم بأي برمجة منذ ذلك الحين.
لا يزال يستخدم FORTRAN اليوم في البحث العلمي للعمل المكثف الحسابي ، لكنني متأكد من أنه تم تكييفه للعمل مع أنظمة العرض الرسومية من خلال روتين فرعي خارجي مكتوب في التعليمات البرمجية وجوه المنحى.
K: كيف كان مشروعك الأكثر إثارة للاهتمام على فورتران (أو FORTRAN ، كما كان يسمى سابقا) يبدو؟R: كنت أكتب برنامج تخطيط المناجم لمنجم نحاسي مفتوح. سيتم رسم ملامح ارتفاع المنجم على الشاشة مثل الخريطة. يمكن لمهندس المناجم استخدام الماوس لرسم مضلع حول جزء من المنجم حيث يتم تفجير الأرض وإزالتها. سيقوم البرنامج بالاستعلام عن شبكة ثلاثية الأبعاد لبيانات ثقب الحفر وتحديد كمية النحاس التي سيتم استردادها من هذا الجزء من الأرض. إحدى مهامي هي كتابة الكود لتعديل خطوط الكنتور لحساب المادة التي تمت إزالتها. اضطررت إلى اختراع هذا الإجراء من البداية ، واستغرق الأمر أكثر من أسبوع لتطوير الخوارزميات لكل نوع ممكن من تقاطع الخطوط. نحن نأخذ هذه العملية كأمر مسلم به الآن في كل مرة نجري فيها عملية متجهة في Adobe Illustrator أو أوتوكاد. لكن تلك لم تكن موجودة آنذاك ، وكنت مرتاحًا بشكل خاص لمعرفة كيفية القيام بذلك.
K: ما كان أفضل نجاح لديك معها؟R: اكتشفت أن الخوارزمية الخاصة بي يمكنها أيضًا "إعادة المواد" في الحفرة المفتوحة عن طريق عكس الاتجاه الذي تم فيه رسم المضلع. وهذا يعني أن مهندس التعدين يمكن أن يخلق مكب نفايات على الأرض لم يعد لديه خام نحاس تحته. لقد كانت طفرة في قدرات تصميم البرنامج.
K: ما كان أسوأ الفوضى الخاصة بك؟R: في بعض الأحيان تدخل خوارزمية تعديل الكفاف في حلقة لا نهاية لها ، وتجبر المهندس على قتل البرنامج والبدء من جديد. لقد اكتشفت حالة خاصة عندما تكون هناك نقطة على مضلع المهندس تحتوي على الإحداثيات نفسها بالضبط. لم تتوقع خوارزمي هذا الاحتمال وافترض أن المضلع لا يمكن أن يكون دقيقًا. ومع ذلك ، بعد عدة أيام من تصحيح الأخطاء ، قمت بإصلاح الخوارزمية للعمل في جميع الحالات.
K: أجهزة الكمبيوتر ولغات البرمجة حققت تقدما كبيرا منذ ذلك الحين. كيف تشعر حيال هذه التغييرات؟R: نظرًا لأن أجهزة الكمبيوتر أصبحت أصغر وأكثر قوة وأقل تكلفة ، فقد أصبح الناس يتوقعون المزيد والمزيد من أجهزتهم. يواصل المبرمجون دفع حدود ما يمكن القيام به. كانت البرمجة الموجهة للكائنات هي الشيء الكبير ، وكانت الاختلافات في لغة C تحظى بشعبية كبيرة. كان Fortran لا يزال المحرك الرائد للعديد من التطبيقات العلمية والهندسية ، لكن تطبيقات Fortran كانت ملفوفة في غلاف خارجي من الشفرة الموجهة للكائنات لمزيد من وظائف الرسومات وإدخال المستخدم. بدا أن هناك المزيد من اللغات المتخصصة مع زيادة قوة الحوسبة ، مع نمو Java من Sun Microsystems (اكتسبتها فيما بعد Oracle) وتصبح Javascript (من Netscape). تم تشغيل نظام التشغيل UNIX ، وأفسح MS-DOS الطريق إلى Windows ، وظهرت مجموعة كاملة من لغات البرمجة كل عشر سنوات منذ ذلك الحين. معظم هذه الميزات مبنية على التطورات السابقة لتصبح أسهل في الاستخدام وإضافة الوظائف ، مثل توزيع مهام حسابية في مؤشرات ترابط متوازية عبر معالجات متعددة وموارد أخرى.
لقد استمتعت بقراءة هذا الأسبوع أن C ++ قد تفوقت على Python مؤخرًا في أفضل ثلاث لغات برمجة مستخدمة. من المحتمل أن يستمر ترتيب المراكز الثلاثة الأولى في التغير مع زيادة طاقة المعالجة وتوسيع قدرات الأجهزة وتطوير المزيد من التطبيقات التي لم يتم تخيلها بعد. حتى مع كل هذه اللغات الأخرى ، لا يزال هناك العديد من التطبيقات العلمية والهندسية الجديدة التي يتم كتابتها في فورتران ، ولا تزال اللغة تتحسن. أحدث إصدار هو فورتران 2018.
تحتاج نكتة Fortran المفضلة إلى حد ما من الإعداد: في Fortran ، يتم تخزين المتغيرات التي تبدأ بالأحرف I و J و K و L و M و N (المتغيرات بين I و N كما في INteger) على أنها أعداد صحيحة في الكمبيوتر. يتم تخزين تلك التي تبدأ بأية أحرف أخرى كأرقام حقيقية في الذاكرة. إذن النكتة هي:الله حقيقي ... ما لم يعلن صراحة عددًا صحيحًا.K: سمعت أنك تتعلم JavaScript الآن. ما الذي جعلك تقرر العودة إلى صناعة تكنولوجيا المعلومات؟R: في وظيفتي الحالية ، أنا أستخدم منتجات Adobe على أعداد كبيرة من الصور. يتمتع Adobe بقدرة نصية يمكن تنفيذها باستخدام Javascript. أريد أن أتعلمها حتى أكون أكثر فاعلية من خلال معالجة مجموعات كبيرة من الصور والقيام بأشياء لا يمكن القيام بها بسهولة من الوظائف القائمة على هذه البرامج.
أنا أستخدم QuickBase أيضًا ، وبعض الوظائف التي أريدها تعتمد على ما يبدو على المكالمات الخارجية التي يمكن كتابتها في Javascript.
ومن الغريب أني لم أحضر أي درس في فورتران أو سي + + عندما كنت في الكلية أو بعد ذلك. لقد تعلمت ذلك بمفردي عن طريق تحديد ما أردت القيام به والبحث عن كيفية تحقيق ذلك. يبدو Javascript أكثر تعقيدًا لهذا النهج ، لذا فأنا أعتمد على YouTube للحصول على تعليمات عبر الإنترنت. سنرى مدى سرعة أن أكون منتجًا بهذه الطريقة.
K: لقد بدأت للتو لتعلم WordPress. هل يمكن أن تخبرنا عن تجربتك في صنع المواقع الإلكترونية؟R: لقد صنعت أول موقع إلكتروني لموقع الزوار الذي قمت ببنائه في منجم للنحاس في عام 1997. بدأت باستخدام Apple iWeb ، ثم انتقلت إلى Adobe Dreamweaver عندما أثبت iWeb أنه غير مناسب. ظللت الموقع لمدة خمس سنوات حتى غادرت تلك الشركة في عام 2002.
لم أقم بإنشاء موقع ويب مرة أخرى حتى عام 2016 عندما كنت أبحث عن عمل وأردت إنشاء سيرة ذاتية على الإنترنت لأصحاب العمل المحتملين لرؤية قدراتي. اخترت WIX كوسيلة للحصول على شيء بسرعة ، ثم استخدمته لتجربة موقع ويب آخر للمتعة فقط.
الآن أنا أتطلع إلى تعلم WordPress مع صديق في أوكرانيا كان لطيفًا بما يكفي لتدريبني.
K: إجابات رائعة ، روب! شكرا لأخذ وقتك للإجابة على كل هذه الأسئلة.