



ماضي وحاضر ومستقبل Visual Studio
التقى InfoQ بجيسون زاندر ، نائب رئيس الشركة لفريق Visual Studio في Microsoft خلال حدث إطلاق Visual Studio 2012 الذي عقد في 12 سبتمبر 2012 في سياتل ، واشنطن. غطت هذه المحادثة الحصرية الواسعة النطاق كل شيء بدءًا من خطط الامتثال لمعايير C99 / C + 11 ، إلى الدعم عبر الأنظمة الأساسية وكيف تحاول Microsoft الموازنة بين احتياجات مطوري الشركات واحتياجات المستخدمين المستقلين الأصغر حجمًا.
لذلك ، أثناء القيام بهذا العمل ، لا أستفيد من موارد الشركة أو ميزة الإجابة التلقائية ، لذلك إذا وجدت أشياء أعتقد أنها كانت صعبة للغاية ، فنحن بحاجة إلى إصلاح ذلك "، يمكنني تقديم هذه التعليقات إلى فريق منتج Visual Studio.
لذلك بالنسبة للبيئة المحددة التي أستخدمها ، عادةً ما أكتب الكثير من C # وأستخدم VS2012 Ultimate و Team Foundation Service.
أحد الأشياء التي أحب أن أفعلها مع تطبيقاتي هو العودة وتجربة تجربة النشر في المتجر حتى أتمكن من العمل مع أحد شركاء النظام الأساسي لدينا - في الواقع سترى في المتجر تجربة النشر لنظام التشغيل Windows الذي أضفناه بالفعل بعض الوظائف لتأليف هذه التطبيقات لتسهيل إرسال التطبيقات إلى المتجر - لأن أحد الأشياء التي وجدتها في وقت مبكر هو أنها تطلب مجموعة من لقطات الشاشة ، فهي تطلب مجموعة من البيانات. لكن في الأصل لم نمنحك أبدًا طريقة لتعيين هذا المحتوى داخل Visual Studio. لذلك كان أحد الأشياء التي طلبتها هو ، "أريد أن يساعدني المصممون الفعليون داخل المنتج في اكتشاف ذلك" - لمساعدتي في معرفة ما أرسلته من المتجر حتى لا يتم رفضي لمجرد أنني فاتني شيء ما.
InfoQ: الآن ، أنت لست مدير المشروع المباشر ولكنك تشرف على الفريق بأكمله. هل أنت قادر على تطبيق بعض التركيز على طلبات الميزات التي تقوم بها؟ كيف تدخل ملاحظاتك؟
زاندر: حسنًا ، الطريقة التي نحاول بها ونقوم بالتخطيط لدورة المنتج هي التأكد من أن لدينا تراكمًا للمنتج ، مشابه جدًا لما أظهرناه في الكلمة الرئيسية للإطلاق. لذلك نريد الأدوات للتحدث عن نفسها بالفعل. بشكل عام ، ما يعنيه ذلك هو أننا نتبع نهجًا منضبطًا للغاية. وظيفتي من نوع المستوى التنفيذي هي المساعدة في وضع الإستراتيجية والرؤية للمنتج للتأكد من أننا نفهم على المستوى العالي ما نحاول القيام به.
الآن بعد ذلك ، أحاول حقًا السماح للفرق بالدخول واكتشاف ، "ماذا ستعني هذه الأهداف؟" - لكن لدينا فقط فريق استثنائي. أستفيد من القدوم وعرض Visual Studio على الأشخاص ، ولكن هناك الكثير من الأشخاص الذين أعرض فكرتهم.
لذا ، بينما لا أريد الدخول وأقوم بتصعيد الأمور - ولكن الحقيقة هي أنه إذا وجدت شيئًا ما لا يعمل بشكل جيد وأنا أستخدمه كعميل ولدي مشكلة ، أعتقد أن العملاء سيكون لديهم نفس المشكلة ، لذا فإن الفريق دائمًا ما يكون جيدًا جدًا في إصلاح المشكلات التي يشعر فيها أن العميل سيواجه مشكلة.
InfoQ: لقد حصلت على احتياجات سوق الشركات: إدارة دورة حياة التطبيقات ، وحاجة المطورين إلى الحفاظ على قواعد التعليمات البرمجية الكبيرة ، وإدارة فرق التطوير الكبيرة ، وبعد ذلك لديك هؤلاء المطورين الأصغر حجمًا الذين قد يكونون أكثر ذكاءً. كيف توازن بين احتياجات مطوري الشركات واحتياجات المطورين الأصغر والأكثر استقلالية؟
زاندر: بالنسبة لي أحد الأشياء هو جعل التكنولوجيا مناسبة لأن لدينا الكثير من الوظائف المعقدة للغاية. لذا فإن هدفي هو كيف يمكنني أن أريحك في البيئة ثم أوصلك إلى النقطة التي تكون فيها مستعدًا لاتخاذ الخطوة التالية.
تعد منتجات Visual Studio Express مثالًا جيدًا على ذلك. إنها صغيرة جدًا ولها غرض محدد لمجرد إنشاء تطبيق Windows Phone أو إنشاء تطبيق Windows RT ؛ قم بالاختيار.
هذا مثال حيث لا أقدم لك كل الوظائف المتبقية ، لأن ما يتم توفيره بسيط وأسهل في الفهم. لكنه لا يزال يحافظ على الجودة المهنية للمحتوى الذي يقف وراءه.
نفس الشيء بالنسبة لخدمة Team Foundation Service: يمكنني فقط الانتقال إليها واستخدامها في بعض المهام أو بعض التخطيط. إذا كنت أرغب في ربط التكامل والتوزيع المستمر ، يمكنني القيام بذلك أيضًا. نحن نسمح لك بالانضمام إلى المستوى الذي تريده.
ما وجدته هو أن هناك شركات لديها "شركات ناشئة داخلية". هناك مجموعات من المطورين حتى في الشركات الكبيرة جدًا ما زالوا يقومون ببعض الأشياء الرائعة حقًا.
لذلك أعتقد في النهاية أننا نريد بناء أدوات احترافية ، والحصول على نتائج احترافية ، والتأكد من أنها متاحة للطلاب ، الذين ربما يعملون في غرفتهم في "الشيء الكبير التالي" حتى شركة Fortune 100 التي توظف 5000 مطور. نريد أن نتأكد من أننا نوسع.
InfoQ: دعنا نتحدث عن دعوات Microsoft لدعم معايير مثل C99 و C ++ 11 بشكل كامل. قالت Microsoft شيئًا ما على غرار: لدينا تركيز كبير على C ++ ونصبح أصليًا بهذه الطريقة وليس لدينا الوقت أو الموارد لدعم المعايير الكاملة. ما هو رأيك في هذا ، وكيف تقرر الشركة نهجها؟
زاندر: حسنًا ، هذا أمر مثير للاهتمام حيث الطريقة التي أنظر إليها هي أننا شاركنا بالفعل في هيئات المعايير لفترة طويلة حقًا. نحن نؤمن بهم. Herb Sutter هو رجل كبير حقًا ، فنحن نرسل رجلًا كبيرًا حقًا يتمتع بخبرة كبيرة ، ونؤمن بالفعل بعملية المعايير.
الآن في نهاية اليوم ، لدينا قدر كبير من الأشياء علينا سحبها
في. أحد الأشياء التي سأضطر إلى القيام بها في النهاية هو المساعدة في اختيار المكان الذي سنضع فيه أولوياتنا ، وأحيانًا يكون لدينا أشياء لا تزال قيد العمل المتراكم وقت الإصدار والتي سيتم إنجازها لاحقًا. في هذه الحالة بالذات يمكنني القول إننا استخدمنا الكثير من مواردنا للتأكد من أن لدينا دعمًا من الدرجة الأولى لنظام التشغيل Windows 8 وبناء تلك البيئة. لا تقوم غالبًا بإنشاء بيئة برمجة لنظام مثل Windows سيضم مئات الملايين من المستخدمين النهائيين.
أردنا بالتأكيد التأكد من أن ذلك يعمل بشكل جيد. على سبيل المثال ، إذا توصلنا إلى شيء حقق أداءً جيدًا بشكل استثنائي في معايير ترميز C ++ ولكن لا يمكنك استخدام C ++ كلغة لاستهداف Windows 8 ، فسيكون ذلك سيئًا حقًا. كان من الممكن أن يكون هذا النوع الخاطئ من المقايضة.
لذلك في هذه الحالة ، اتخذنا الخيار الذي يريد حقًا أن يعمل Windows 8 بشكل جيد ، لكن هذا لا يعني أننا لسنا ملتزمين بالمعايير.
InfoQ: هذا منطقي. قد يتسرع المجتمع أحيانًا في إصدار الأحكام ، ولكن هذا يساعدني في فهم وجهة نظرك.
زاندر: حسنًا ، الطريقة التي أنظر بها هي أننا في نفس الجانب ، نريد تطوير اللغة ، نريد أن نرى النوع الجيد من الأشياء التي تأتي من هناك. الحقيقة هي أنني أعتقد أن الناس متحمسون حقًا لأن لدينا بيئة C ++ استثنائية حقًا ، المصحح ، IDE ، تلك الأنواع من الأشياء. حتى الأشخاص الذين يكتبون في النهاية لأهداف أخرى سيرغبون في كثير من الأحيان في استخدام Visual C ++ للقيام بالكثير من التطوير اليومي ، حتى لو في نهاية اليوم يمكنهم التحقق من ذلك في نظام وتشغيله من خلال GCC.
أعتقد أن الشغف حول هذا يأتي من ، "مرحبًا ، أريد استخدام أدواتك ، أنا أحب أدواتك ، أريد الاستفادة من بعض الأشياء المعينة ...". الحقيقة هي أننا سنصل إلى هذه الأشياء ، فنحن نؤمن بالمعايير وننفذ المعايير. هيرب على حق ، لدينا أيضًا أشياء أخرى نحاول تقديمها. إنه سيناريو كلاسيكي لإدارة المشروع.
InfoQ: هذه نقطة جيدة ، ومشكلة جيدة: سبب غضب الناس و / أو الجدل هو أنهم يريدون استخدام Visual Studio ...
زاندر: ... وأريدهم [يضحكون]. أنا واثق من أننا سنحصل على مجموعة كاملة من هذه الأشياء. قد يستغرق الأمر وقتًا أطول قليلاً مما يبحث عنه الأشخاص.
InfoQ: في الأصل ، فهمت أن استجابة Microsoft هي "حسنًا ، لدينا موارد محدودة" ، ولكن هناك الكثير من البرامج التي يمكن أن تستفيد من الدعم الكامل للمعايير.
زاندر: Windows 8 هو تركيز كبير بالنسبة لنا ...
InfoQ: ... وهذا ليس شيئًا يمكنك إدارة ظهرك له.
زاندر: لا ، لا ... وأعتقد أنك سمعت ستيف يتحدث من وجهة نظر المطور عن الحجم الهائل للأجهزة التي ستقدمها Microsoft هناك - إذا كنت أبحث عن فرصة كمطور سوف ألقي نظرة على ذلك وأذهب "واو". إنه إصدار جديد من Windows. إذا كان لدي العديد من المستخدمين المستهدفين الذين يمكنني كتابة تطبيقات لهم ، فهذه مجرد فرصة رائعة. أنت حقا تريد ذلك. ومرة أخرى ، إذا كنت من مستخدمي C ++ ، فأنت تريد استهداف مئات الملايين من الأشخاص ، وأريدهم بالتأكيد أن يفعلوا ذلك.
InfoQ: بالتأكيد. الشيء الذي كان مثيرًا للاهتمام بالنسبة لي ، سمعته مذكورًا من قبل ثم تم تعزيزه اليوم هو جدول الإصدار المتداول لـ VS2012. لذلك في الكلمة الرئيسية أعلنوا عن التحديث 1 CTP هذا الشهر والإصدار المخطط له بحلول نهاية العام. هل تقرر كيف سيعمل هذا الجدول خلال العامين المقبلين؟ في أي نقطة تقول إن VS Next هو ما هو قادم ، وأن VS2012 قد انتهى حتى لا يكون هناك المزيد من التحديثات؟
زاندر: نعم ، لقد اتضح أنك إذا نظرت إلى نمطنا ، حتى مع VS2010 ، فقد قمنا بعمل نكهة من هذا القبيل. عندما تم إصدار VS2010 ، كان ذلك في أبريل 2010 ، وقد مرت بضع سنوات منذ ذلك الحين. لقد أصدرنا بالفعل أدوات الطاقة الإنتاجية على أساس منتظم وأصدرنا 4 حزم ميزات أضافت وظائف إضافية وضمن ذلك قمنا بشحن إصدارات متعددة من Windows Azure SDK واثنين من Windows Phone SDK.
الآن أعتقد أن ما نقوم به مع إصدار VS2012 هو نهج أكثر رسمية ، وبدلاً من إصداره وفقًا لمنصة معينة أو حدث معين ، دعنا نرى في الواقع ما إذا كان بإمكاننا الدخول في نوع مستمر من التسليم لذلك. هذا ما نحاول تحقيقه. أعتقد أنه فيما يتعلق بإنجازها ، يجب أن تتوقع أن ترى خدمة Team Foundation Service تشحن بسرعة كبيرة جدًا ونحاول اختيار الإيقاع المناسب للعميل.
نحن ندرك أنه إذا أعطتك Microsoft إصدارًا جديدًا من Visual Studio كل 3 أيام ، فأنا لست متأكدًا من أنك ستكون سعيدًا بذلك. لذلك نريد موازنة هذين النهجين ونفكر في أن الجدول الزمني للإصدار الربع سنوي منطقي ، لكنه لن يكون دقيقًا دائمًا لأننا لنفترض أن إصدار Azure الجديد سيصدر بعد 3 أسابيع من ربع السنة ... قد نقوم بالفعل بتعديل الشكل المرئي تحديث الاستوديو حتى 4 أشهر هذه المرة وشهرين في المرة القادمة. لذلك نحن نريد هذا النوع
المرونة وإلا يمكن أن تتراكم عمليات التسليم المستمرة على بعضها البعض.
InfoQ: لقد ذكرت تلك الإصدارات الخارجية SDK: الهاتف ، Azure ، وما إلى ذلك. هل تتوقع ربط هذه الإصدارات بالتحديثات ربع السنوية لـ VS2012 بدلاً من إصدارها على أنها حزم SDK خارجية؟
زاندر: نعم ، سيكون هذا هو التفضيل بالتأكيد ... مرة أخرى أفكر في الأمر من منظور المطور ، ولا أعتقد أنني سأكون سعيدًا إذا كنت سأحصل على تحديث لبرنامج Visual Studio متبوعًا على الفور ببرنامج تحديث لإحدى منصات SDKs. أريد نوعًا من التعقل حول كيفية وصول الأشياء.
حقيقة الأمر هي أن لدينا جدولنا الزمني لبرنامج Visual Studio والأدوات ، كما أن الأنظمة الأساسية لها جداولها - خاصة إذا كنت تعمل على نظام أساسي للمستهلك مثل الهاتف أو نظام التشغيل اللوحي ، فأنت تختار. تلك لديها دورات بيع معينة وأماكن يتوقعها الناس فيها بحيث تكون هناك فتحات معينة تريد أن تسقط الإصدارات فيها. أظن أن ما سيفعله هو الإدارة على أساس كل حالة على حدة ، لكننا سنلتزم بمبادئ تبسيط الأمر - اسمح لي بمواكبة الابتكار الجديد.
لقد سألت في الأصل عن متى سأعود إلى إصدار جديد ، وستكون هناك حالات ما زلنا نقوم بذلك. ما زلت أعتقد أنه في بعض الشركات على وجه الخصوص ، يرغبون حقًا في أن يكونوا أكثر إصرارًا عندما يختارون الأشياء ، عندما يعيدون أدواتهم لموظفيهم ويريدون نوعًا أكبر من البوب. سأخبرك أيضًا أن إضافة شيء مثل دعم Windows 8 كان من الصعب جدًا القيام به مع VS2010 لأنه كان هناك مثل هذا التغيير الأساسي في التكنولوجيا. إذا جئنا وأجرينا هذا المستوى من التغيير مرة أخرى لقاعدة تقنية جديدة ، فمن غير المرجح أن أعود وأحدث VS2012. يمكننا إضافة بعض هذه الأشياء الأخرى فيما بينها.
InfoQ: هل هذا يعني أن الإصدار التالي من .NET Framework يمكن نشره في VS2012 بدلاً من طلب VS Next؟
زاندر: في كثير من الأحيان سنفعل ذلك إذا كان ذلك ممكنًا. يمنحنا وجود VS2012 target Framework 4.5 و Visual Studio 2010 target 4.0 ميزة أخرى قد تكون أكثر دقة. VS هو تطبيق مُدار ، تمت كتابته باستخدام .NET ، مما يعني أنه إذا كنت أريد الدخول واستخدام الإصدار التالي ، فمن الجيد بالنسبة لي أن أكون قادرًا على التقاط الإصدار الجديد من إطار العمل وتطوير الأدوات التي يمكن بعد ذلك استهداف إطار العمل. على سبيل المثال ، إذا كنت أرغب في استخدام دعم غير متزامن كميزة لغة داخل Visual Studio ، فيجب أن أستهدف 4.5 من أجل الحصول على هذه الميزة.
يساعدنا هذا أيضًا على تقوية الإطار ، واختباره ، والتأكد من أنه سيعمل بشكل جيد ، لذا مرة أخرى ، تناول طعام الكلاب الخاص بنا.
InfoQ: متى ترى أن مشروع Roslyn أصبح مدمجًا رسميًا في Visual Studio؟
زاندر: نعم ، أعتقد أن النمط الذي يجب النظر إليه هو الطريقة التي قدمنا بها LINQ كميزة لغة ، لذلك إذا كنت تتذكر ما حدث ، فقد قدمنا CTP لـ LINQ يمكنك تثبيته باستخدام إصدار Visual Studio الحالي في ذلك الوقت. لم يكن مترجمًا مدمجًا في VS ، ولكن مترجمًا آخر يمكنك استخدامه واستهدافه ثم إرسال ملاحظات إلينا.
لذلك سيكون لديك الخطة الموازية مع المترجم الرسمي المتاحة ، والآخر يمكنك استخدامها جنبًا إلى جنب للاختبار. تريد أن تكون دورة المنتج بأكملها متاحة لإجراء جميع الاختبارات ، لأنه لا يمكننا تكرار رمز الجميع ، لذا نود الحصول على دورة منتج كاملة. والآن بعد أن أصبحت في CTP وناضجة جدًا ، أتوقع أن نأخذ هذه الوظيفة ونبدأ في نقلها بشكل أكثر شيوعًا. لذلك في وقت ما سيكون لدينا إصدار من VS حيث يكون افتراضيًا وهو الإصدار الذي تستخدمه دائمًا.
InfoQ: إذن قد تكون هناك فترة انتقال حيث تختار بين أحدهما أو الآخر؟
زاندر: نعم ، هذا صحيح ، لكن فترات التقاطع هذه عادةً ما تكون أكثر في المعاينات ، و CTPs ، و betas ، وهذا النوع من الأشياء. إذا قمت بتثبيت Roslyn ، فستضيف قوالب مشروع جديدة إلى VS2012 ، وستسمح لك بتأليف تطبيق Roslyn C # أو Roslyn VB. لا تحل محل المجمعات التي نشحنها في VS2012 - لذلك يمكنك في الواقع التبديل بين مترجمي Roslyn وتلك الموجودة في Visual Studio. في مرحلة ما ، سنتخلص فعليًا من فكرة مشروع Roslyn المستقل ، وسيكون مجرد جزء من Visual Studio.
InfoQ: توفر بعض الأدوات الجديدة مثل git-tf بعض الدعم عبر الأنظمة الأساسية بين المطورين و TFS. ما مدى أهمية التوافق عبر الأنظمة الأساسية؟ هل ترى أنه مفيد ، وهل هناك الكثير من الدعم داخليًا؟
زاندر: نعم ، وإليكم الطريقة التي أنظر إليها - ما الذي يهمني حقًا؟ أنا أهتم بنجاح الفرق ، والواقع الذي نتمتع به مع التطبيقات الحديثة هو أنني سأمتلك الكثير من الأجهزة التي سيتم توصيلها. يمكنني استهداف مواقع الويب مباشرة ، وهذا يعطيني خيارًا جيدًا ، ولكن ستكون هناك دائمًا حالة يرغب فيها الفريق في الحصول على تلك التجربة الأصلية .. تطبيق Cocoa هذا ، تطبيق Android هذا ، مهما كان الأمر ، وعندما أقوم ببناء ذلك ، لدي مجموعة من الأدوات التي أستخدمها ، ولذا فمن المنطقي بالنسبة لي أن يحدث ذلك
ه هي الأدوات التي أستخدمها وما زلت أريد أن أكون منتجًا ، وما زلت أريد العمل مع بقية فريقي ، لذلك إذا كان هناك فريق آخر في الممر يبني مكونات الخدمات ويضيفون ميزات جديدة ، فأنا قد ترغب في دعم وتحديث تطبيق Windows Phone الخاص بي ، وتطبيق WinRT الخاص بي ، وتطبيق Android الخاص بي ، وتطبيق Cocoa الخاص بي ، وأريد الاستفادة من هذه الوظيفة الخلفية.
ما زلنا نعمل على نفس الأشياء ، أليس كذلك؟ بالنسبة لي ، في نهاية المطاف ، يتعلق الأمر حقًا بتمكين الفرق ، وتعمل الفرق باستخدام الكثير من التقنيات المختلفة ، لذلك نريد التأكد من أن ذلك يسير على ما يرام. لذا فأنت معتاد على بيئة معينة - أنا متأكد من أن XCode هي أفضل بيئة لكتابة تطبيقات Cocoa ، لذلك يتيح لنا ذلك السماح لك باستخدام تلك البيئة ، ولكن للحصول على عناصر تعاون الفريق.
شكرا على وقتك.
التقى InfoQ بجيسون زاندر ، نائب رئيس الشركة لفريق Visual Studio في Microsoft خلال حدث إطلاق Visual Studio 2012 الذي عقد في 12 سبتمبر 2012 في سياتل ، واشنطن. غطت هذه المحادثة الحصرية الواسعة النطاق كل شيء بدءًا من خطط الامتثال لمعايير C99 / C + 11 ، إلى الدعم عبر الأنظمة الأساسية وكيف تحاول Microsoft الموازنة بين احتياجات مطوري الشركات واحتياجات المستخدمين المستقلين الأصغر حجمًا.
لذلك ، أثناء القيام بهذا العمل ، لا أستفيد من موارد الشركة أو ميزة الإجابة التلقائية ، لذلك إذا وجدت أشياء أعتقد أنها كانت صعبة للغاية ، فنحن بحاجة إلى إصلاح ذلك "، يمكنني تقديم هذه التعليقات إلى فريق منتج Visual Studio.
لذلك بالنسبة للبيئة المحددة التي أستخدمها ، عادةً ما أكتب الكثير من C # وأستخدم VS2012 Ultimate و Team Foundation Service.
أحد الأشياء التي أحب أن أفعلها مع تطبيقاتي هو العودة وتجربة تجربة النشر في المتجر حتى أتمكن من العمل مع أحد شركاء النظام الأساسي لدينا - في الواقع سترى في المتجر تجربة النشر لنظام التشغيل Windows الذي أضفناه بالفعل بعض الوظائف لتأليف هذه التطبيقات لتسهيل إرسال التطبيقات إلى المتجر - لأن أحد الأشياء التي وجدتها في وقت مبكر هو أنها تطلب مجموعة من لقطات الشاشة ، فهي تطلب مجموعة من البيانات. لكن في الأصل لم نمنحك أبدًا طريقة لتعيين هذا المحتوى داخل Visual Studio. لذلك كان أحد الأشياء التي طلبتها هو ، "أريد أن يساعدني المصممون الفعليون داخل المنتج في اكتشاف ذلك" - لمساعدتي في معرفة ما أرسلته من المتجر حتى لا يتم رفضي لمجرد أنني فاتني شيء ما.
InfoQ: الآن ، أنت لست مدير المشروع المباشر ولكنك تشرف على الفريق بأكمله. هل أنت قادر على تطبيق بعض التركيز على طلبات الميزات التي تقوم بها؟ كيف تدخل ملاحظاتك؟
زاندر: حسنًا ، الطريقة التي نحاول بها ونقوم بالتخطيط لدورة المنتج هي التأكد من أن لدينا تراكمًا للمنتج ، مشابه جدًا لما أظهرناه في الكلمة الرئيسية للإطلاق. لذلك نريد الأدوات للتحدث عن نفسها بالفعل. بشكل عام ، ما يعنيه ذلك هو أننا نتبع نهجًا منضبطًا للغاية. وظيفتي من نوع المستوى التنفيذي هي المساعدة في وضع الإستراتيجية والرؤية للمنتج للتأكد من أننا نفهم على المستوى العالي ما نحاول القيام به.
الآن بعد ذلك ، أحاول حقًا السماح للفرق بالدخول واكتشاف ، "ماذا ستعني هذه الأهداف؟" - لكن لدينا فقط فريق استثنائي. أستفيد من القدوم وعرض Visual Studio على الأشخاص ، ولكن هناك الكثير من الأشخاص الذين أعرض فكرتهم.
لذا ، بينما لا أريد الدخول وأقوم بتصعيد الأمور - ولكن الحقيقة هي أنه إذا وجدت شيئًا ما لا يعمل بشكل جيد وأنا أستخدمه كعميل ولدي مشكلة ، أعتقد أن العملاء سيكون لديهم نفس المشكلة ، لذا فإن الفريق دائمًا ما يكون جيدًا جدًا في إصلاح المشكلات التي يشعر فيها أن العميل سيواجه مشكلة.
InfoQ: لقد حصلت على احتياجات سوق الشركات: إدارة دورة حياة التطبيقات ، وحاجة المطورين إلى الحفاظ على قواعد التعليمات البرمجية الكبيرة ، وإدارة فرق التطوير الكبيرة ، وبعد ذلك لديك هؤلاء المطورين الأصغر حجمًا الذين قد يكونون أكثر ذكاءً. كيف توازن بين احتياجات مطوري الشركات واحتياجات المطورين الأصغر والأكثر استقلالية؟
زاندر: بالنسبة لي أحد الأشياء هو جعل التكنولوجيا مناسبة لأن لدينا الكثير من الوظائف المعقدة للغاية. لذا فإن هدفي هو كيف يمكنني أن أريحك في البيئة ثم أوصلك إلى النقطة التي تكون فيها مستعدًا لاتخاذ الخطوة التالية.
تعد منتجات Visual Studio Express مثالًا جيدًا على ذلك. إنها صغيرة جدًا ولها غرض محدد لمجرد إنشاء تطبيق Windows Phone أو إنشاء تطبيق Windows RT ؛ قم بالاختيار.
هذا مثال حيث لا أقدم لك كل الوظائف المتبقية ، لأن ما يتم توفيره بسيط وأسهل في الفهم. لكنه لا يزال يحافظ على الجودة المهنية للمحتوى الذي يقف وراءه.
نفس الشيء بالنسبة لخدمة Team Foundation Service: يمكنني فقط الانتقال إليها واستخدامها في بعض المهام أو بعض التخطيط. إذا كنت أرغب في ربط التكامل والتوزيع المستمر ، يمكنني القيام بذلك أيضًا. نحن نسمح لك بالانضمام إلى المستوى الذي تريده.
ما وجدته هو أن هناك شركات لديها "شركات ناشئة داخلية". هناك مجموعات من المطورين حتى في الشركات الكبيرة جدًا ما زالوا يقومون ببعض الأشياء الرائعة حقًا.
لذلك أعتقد في النهاية أننا نريد بناء أدوات احترافية ، والحصول على نتائج احترافية ، والتأكد من أنها متاحة للطلاب ، الذين ربما يعملون في غرفتهم في "الشيء الكبير التالي" حتى شركة Fortune 100 التي توظف 5000 مطور. نريد أن نتأكد من أننا نوسع.
InfoQ: دعنا نتحدث عن دعوات Microsoft لدعم معايير مثل C99 و C ++ 11 بشكل كامل. قالت Microsoft شيئًا ما على غرار: لدينا تركيز كبير على C ++ ونصبح أصليًا بهذه الطريقة وليس لدينا الوقت أو الموارد لدعم المعايير الكاملة. ما هو رأيك في هذا ، وكيف تقرر الشركة نهجها؟
زاندر: حسنًا ، هذا أمر مثير للاهتمام حيث الطريقة التي أنظر إليها هي أننا شاركنا بالفعل في هيئات المعايير لفترة طويلة حقًا. نحن نؤمن بهم. Herb Sutter هو رجل كبير حقًا ، فنحن نرسل رجلًا كبيرًا حقًا يتمتع بخبرة كبيرة ، ونؤمن بالفعل بعملية المعايير.
الآن في نهاية اليوم ، لدينا قدر كبير من الأشياء علينا سحبها
في. أحد الأشياء التي سأضطر إلى القيام بها في النهاية هو المساعدة في اختيار المكان الذي سنضع فيه أولوياتنا ، وأحيانًا يكون لدينا أشياء لا تزال قيد العمل المتراكم وقت الإصدار والتي سيتم إنجازها لاحقًا. في هذه الحالة بالذات يمكنني القول إننا استخدمنا الكثير من مواردنا للتأكد من أن لدينا دعمًا من الدرجة الأولى لنظام التشغيل Windows 8 وبناء تلك البيئة. لا تقوم غالبًا بإنشاء بيئة برمجة لنظام مثل Windows سيضم مئات الملايين من المستخدمين النهائيين.
أردنا بالتأكيد التأكد من أن ذلك يعمل بشكل جيد. على سبيل المثال ، إذا توصلنا إلى شيء حقق أداءً جيدًا بشكل استثنائي في معايير ترميز C ++ ولكن لا يمكنك استخدام C ++ كلغة لاستهداف Windows 8 ، فسيكون ذلك سيئًا حقًا. كان من الممكن أن يكون هذا النوع الخاطئ من المقايضة.
لذلك في هذه الحالة ، اتخذنا الخيار الذي يريد حقًا أن يعمل Windows 8 بشكل جيد ، لكن هذا لا يعني أننا لسنا ملتزمين بالمعايير.
InfoQ: هذا منطقي. قد يتسرع المجتمع أحيانًا في إصدار الأحكام ، ولكن هذا يساعدني في فهم وجهة نظرك.
زاندر: حسنًا ، الطريقة التي أنظر بها هي أننا في نفس الجانب ، نريد تطوير اللغة ، نريد أن نرى النوع الجيد من الأشياء التي تأتي من هناك. الحقيقة هي أنني أعتقد أن الناس متحمسون حقًا لأن لدينا بيئة C ++ استثنائية حقًا ، المصحح ، IDE ، تلك الأنواع من الأشياء. حتى الأشخاص الذين يكتبون في النهاية لأهداف أخرى سيرغبون في كثير من الأحيان في استخدام Visual C ++ للقيام بالكثير من التطوير اليومي ، حتى لو في نهاية اليوم يمكنهم التحقق من ذلك في نظام وتشغيله من خلال GCC.
أعتقد أن الشغف حول هذا يأتي من ، "مرحبًا ، أريد استخدام أدواتك ، أنا أحب أدواتك ، أريد الاستفادة من بعض الأشياء المعينة ...". الحقيقة هي أننا سنصل إلى هذه الأشياء ، فنحن نؤمن بالمعايير وننفذ المعايير. هيرب على حق ، لدينا أيضًا أشياء أخرى نحاول تقديمها. إنه سيناريو كلاسيكي لإدارة المشروع.
InfoQ: هذه نقطة جيدة ، ومشكلة جيدة: سبب غضب الناس و / أو الجدل هو أنهم يريدون استخدام Visual Studio ...
زاندر: ... وأريدهم [يضحكون]. أنا واثق من أننا سنحصل على مجموعة كاملة من هذه الأشياء. قد يستغرق الأمر وقتًا أطول قليلاً مما يبحث عنه الأشخاص.
InfoQ: في الأصل ، فهمت أن استجابة Microsoft هي "حسنًا ، لدينا موارد محدودة" ، ولكن هناك الكثير من البرامج التي يمكن أن تستفيد من الدعم الكامل للمعايير.
زاندر: Windows 8 هو تركيز كبير بالنسبة لنا ...
InfoQ: ... وهذا ليس شيئًا يمكنك إدارة ظهرك له.
زاندر: لا ، لا ... وأعتقد أنك سمعت ستيف يتحدث من وجهة نظر المطور عن الحجم الهائل للأجهزة التي ستقدمها Microsoft هناك - إذا كنت أبحث عن فرصة كمطور سوف ألقي نظرة على ذلك وأذهب "واو". إنه إصدار جديد من Windows. إذا كان لدي العديد من المستخدمين المستهدفين الذين يمكنني كتابة تطبيقات لهم ، فهذه مجرد فرصة رائعة. أنت حقا تريد ذلك. ومرة أخرى ، إذا كنت من مستخدمي C ++ ، فأنت تريد استهداف مئات الملايين من الأشخاص ، وأريدهم بالتأكيد أن يفعلوا ذلك.
InfoQ: بالتأكيد. الشيء الذي كان مثيرًا للاهتمام بالنسبة لي ، سمعته مذكورًا من قبل ثم تم تعزيزه اليوم هو جدول الإصدار المتداول لـ VS2012. لذلك في الكلمة الرئيسية أعلنوا عن التحديث 1 CTP هذا الشهر والإصدار المخطط له بحلول نهاية العام. هل تقرر كيف سيعمل هذا الجدول خلال العامين المقبلين؟ في أي نقطة تقول إن VS Next هو ما هو قادم ، وأن VS2012 قد انتهى حتى لا يكون هناك المزيد من التحديثات؟
زاندر: نعم ، لقد اتضح أنك إذا نظرت إلى نمطنا ، حتى مع VS2010 ، فقد قمنا بعمل نكهة من هذا القبيل. عندما تم إصدار VS2010 ، كان ذلك في أبريل 2010 ، وقد مرت بضع سنوات منذ ذلك الحين. لقد أصدرنا بالفعل أدوات الطاقة الإنتاجية على أساس منتظم وأصدرنا 4 حزم ميزات أضافت وظائف إضافية وضمن ذلك قمنا بشحن إصدارات متعددة من Windows Azure SDK واثنين من Windows Phone SDK.
الآن أعتقد أن ما نقوم به مع إصدار VS2012 هو نهج أكثر رسمية ، وبدلاً من إصداره وفقًا لمنصة معينة أو حدث معين ، دعنا نرى في الواقع ما إذا كان بإمكاننا الدخول في نوع مستمر من التسليم لذلك. هذا ما نحاول تحقيقه. أعتقد أنه فيما يتعلق بإنجازها ، يجب أن تتوقع أن ترى خدمة Team Foundation Service تشحن بسرعة كبيرة جدًا ونحاول اختيار الإيقاع المناسب للعميل.
نحن ندرك أنه إذا أعطتك Microsoft إصدارًا جديدًا من Visual Studio كل 3 أيام ، فأنا لست متأكدًا من أنك ستكون سعيدًا بذلك. لذلك نريد موازنة هذين النهجين ونفكر في أن الجدول الزمني للإصدار الربع سنوي منطقي ، لكنه لن يكون دقيقًا دائمًا لأننا لنفترض أن إصدار Azure الجديد سيصدر بعد 3 أسابيع من ربع السنة ... قد نقوم بالفعل بتعديل الشكل المرئي تحديث الاستوديو حتى 4 أشهر هذه المرة وشهرين في المرة القادمة. لذلك نحن نريد هذا النوع
المرونة وإلا يمكن أن تتراكم عمليات التسليم المستمرة على بعضها البعض.
InfoQ: لقد ذكرت تلك الإصدارات الخارجية SDK: الهاتف ، Azure ، وما إلى ذلك. هل تتوقع ربط هذه الإصدارات بالتحديثات ربع السنوية لـ VS2012 بدلاً من إصدارها على أنها حزم SDK خارجية؟
زاندر: نعم ، سيكون هذا هو التفضيل بالتأكيد ... مرة أخرى أفكر في الأمر من منظور المطور ، ولا أعتقد أنني سأكون سعيدًا إذا كنت سأحصل على تحديث لبرنامج Visual Studio متبوعًا على الفور ببرنامج تحديث لإحدى منصات SDKs. أريد نوعًا من التعقل حول كيفية وصول الأشياء.
حقيقة الأمر هي أن لدينا جدولنا الزمني لبرنامج Visual Studio والأدوات ، كما أن الأنظمة الأساسية لها جداولها - خاصة إذا كنت تعمل على نظام أساسي للمستهلك مثل الهاتف أو نظام التشغيل اللوحي ، فأنت تختار. تلك لديها دورات بيع معينة وأماكن يتوقعها الناس فيها بحيث تكون هناك فتحات معينة تريد أن تسقط الإصدارات فيها. أظن أن ما سيفعله هو الإدارة على أساس كل حالة على حدة ، لكننا سنلتزم بمبادئ تبسيط الأمر - اسمح لي بمواكبة الابتكار الجديد.
لقد سألت في الأصل عن متى سأعود إلى إصدار جديد ، وستكون هناك حالات ما زلنا نقوم بذلك. ما زلت أعتقد أنه في بعض الشركات على وجه الخصوص ، يرغبون حقًا في أن يكونوا أكثر إصرارًا عندما يختارون الأشياء ، عندما يعيدون أدواتهم لموظفيهم ويريدون نوعًا أكبر من البوب. سأخبرك أيضًا أن إضافة شيء مثل دعم Windows 8 كان من الصعب جدًا القيام به مع VS2010 لأنه كان هناك مثل هذا التغيير الأساسي في التكنولوجيا. إذا جئنا وأجرينا هذا المستوى من التغيير مرة أخرى لقاعدة تقنية جديدة ، فمن غير المرجح أن أعود وأحدث VS2012. يمكننا إضافة بعض هذه الأشياء الأخرى فيما بينها.
InfoQ: هل هذا يعني أن الإصدار التالي من .NET Framework يمكن نشره في VS2012 بدلاً من طلب VS Next؟
زاندر: في كثير من الأحيان سنفعل ذلك إذا كان ذلك ممكنًا. يمنحنا وجود VS2012 target Framework 4.5 و Visual Studio 2010 target 4.0 ميزة أخرى قد تكون أكثر دقة. VS هو تطبيق مُدار ، تمت كتابته باستخدام .NET ، مما يعني أنه إذا كنت أريد الدخول واستخدام الإصدار التالي ، فمن الجيد بالنسبة لي أن أكون قادرًا على التقاط الإصدار الجديد من إطار العمل وتطوير الأدوات التي يمكن بعد ذلك استهداف إطار العمل. على سبيل المثال ، إذا كنت أرغب في استخدام دعم غير متزامن كميزة لغة داخل Visual Studio ، فيجب أن أستهدف 4.5 من أجل الحصول على هذه الميزة.
يساعدنا هذا أيضًا على تقوية الإطار ، واختباره ، والتأكد من أنه سيعمل بشكل جيد ، لذا مرة أخرى ، تناول طعام الكلاب الخاص بنا.
InfoQ: متى ترى أن مشروع Roslyn أصبح مدمجًا رسميًا في Visual Studio؟
زاندر: نعم ، أعتقد أن النمط الذي يجب النظر إليه هو الطريقة التي قدمنا بها LINQ كميزة لغة ، لذلك إذا كنت تتذكر ما حدث ، فقد قدمنا CTP لـ LINQ يمكنك تثبيته باستخدام إصدار Visual Studio الحالي في ذلك الوقت. لم يكن مترجمًا مدمجًا في VS ، ولكن مترجمًا آخر يمكنك استخدامه واستهدافه ثم إرسال ملاحظات إلينا.
لذلك سيكون لديك الخطة الموازية مع المترجم الرسمي المتاحة ، والآخر يمكنك استخدامها جنبًا إلى جنب للاختبار. تريد أن تكون دورة المنتج بأكملها متاحة لإجراء جميع الاختبارات ، لأنه لا يمكننا تكرار رمز الجميع ، لذا نود الحصول على دورة منتج كاملة. والآن بعد أن أصبحت في CTP وناضجة جدًا ، أتوقع أن نأخذ هذه الوظيفة ونبدأ في نقلها بشكل أكثر شيوعًا. لذلك في وقت ما سيكون لدينا إصدار من VS حيث يكون افتراضيًا وهو الإصدار الذي تستخدمه دائمًا.
InfoQ: إذن قد تكون هناك فترة انتقال حيث تختار بين أحدهما أو الآخر؟
زاندر: نعم ، هذا صحيح ، لكن فترات التقاطع هذه عادةً ما تكون أكثر في المعاينات ، و CTPs ، و betas ، وهذا النوع من الأشياء. إذا قمت بتثبيت Roslyn ، فستضيف قوالب مشروع جديدة إلى VS2012 ، وستسمح لك بتأليف تطبيق Roslyn C # أو Roslyn VB. لا تحل محل المجمعات التي نشحنها في VS2012 - لذلك يمكنك في الواقع التبديل بين مترجمي Roslyn وتلك الموجودة في Visual Studio. في مرحلة ما ، سنتخلص فعليًا من فكرة مشروع Roslyn المستقل ، وسيكون مجرد جزء من Visual Studio.
InfoQ: توفر بعض الأدوات الجديدة مثل git-tf بعض الدعم عبر الأنظمة الأساسية بين المطورين و TFS. ما مدى أهمية التوافق عبر الأنظمة الأساسية؟ هل ترى أنه مفيد ، وهل هناك الكثير من الدعم داخليًا؟
زاندر: نعم ، وإليكم الطريقة التي أنظر إليها - ما الذي يهمني حقًا؟ أنا أهتم بنجاح الفرق ، والواقع الذي نتمتع به مع التطبيقات الحديثة هو أنني سأمتلك الكثير من الأجهزة التي سيتم توصيلها. يمكنني استهداف مواقع الويب مباشرة ، وهذا يعطيني خيارًا جيدًا ، ولكن ستكون هناك دائمًا حالة يرغب فيها الفريق في الحصول على تلك التجربة الأصلية .. تطبيق Cocoa هذا ، تطبيق Android هذا ، مهما كان الأمر ، وعندما أقوم ببناء ذلك ، لدي مجموعة من الأدوات التي أستخدمها ، ولذا فمن المنطقي بالنسبة لي أن يحدث ذلك
ه هي الأدوات التي أستخدمها وما زلت أريد أن أكون منتجًا ، وما زلت أريد العمل مع بقية فريقي ، لذلك إذا كان هناك فريق آخر في الممر يبني مكونات الخدمات ويضيفون ميزات جديدة ، فأنا قد ترغب في دعم وتحديث تطبيق Windows Phone الخاص بي ، وتطبيق WinRT الخاص بي ، وتطبيق Android الخاص بي ، وتطبيق Cocoa الخاص بي ، وأريد الاستفادة من هذه الوظيفة الخلفية.
ما زلنا نعمل على نفس الأشياء ، أليس كذلك؟ بالنسبة لي ، في نهاية المطاف ، يتعلق الأمر حقًا بتمكين الفرق ، وتعمل الفرق باستخدام الكثير من التقنيات المختلفة ، لذلك نريد التأكد من أن ذلك يسير على ما يرام. لذا فأنت معتاد على بيئة معينة - أنا متأكد من أن XCode هي أفضل بيئة لكتابة تطبيقات Cocoa ، لذلك يتيح لنا ذلك السماح لك باستخدام تلك البيئة ، ولكن للحصول على عناصر تعاون الفريق.
شكرا على وقتك.