सभी को नमस्कार!
हाल ही में, अगला सी ++ साइबेरिया 2019 नोवोसिबिर्स्क में आयोजित किया गया था। सम्मेलन में एक आरामदायक माहौल था और कई अच्छी रिपोर्टें थीं। रिपोर्ट की वीडियो रिकॉर्डिंग अब प्रकाशन के लिए तैयार की जा रही है। मैंने अपने दो लगातार बोलने वालों के साथ बोलने का अवसर लिया, जो शायद ही कभी सम्मेलनों को याद करते हैं और हमेशा उत्कृष्ट रिपोर्ट बनाते हैं: एंटोन पोलुखिन एंटोश्का और पावेल फिलोनोव ।
एंटोन सी ++ मानकीकरण कार्य समूह की अंतर्राष्ट्रीय बैठकों में आईएसओ में रूस के प्रतिनिधि हैं, सी ++ भाषा मानक, बूस्ट पुस्तकालयों और बूस्ट सी ++ एप्लीकेशन डेवलपमेंट कुकबुक के लिए कई स्वीकृत प्रस्तावों के लेखक हैं।
पावेल कास्परस्की लैब में एक डेवलपर और शोधकर्ता हैं। वह साइबर-भौतिक प्रणालियों की सुरक्षा सुनिश्चित करने के लिए मशीन सीखने के तरीकों में शामिल हैं, और शिक्षण में लगे हुए हैं। सम्मेलन से वीडियो की प्रतीक्षा करते हुए, मेरा सुझाव है कि आप हमारी बातचीत की प्रतिलिपि पढ़ें।

सेर्गेई: सभी को नमस्कार! यह सर्गेई प्लैटोनोव है, अब हम C ++ साइबेरिया सम्मेलन में हैं। आज हम अपने नियमित वक्ताओं - एंटोन पोलुखिन और पावेल फिलोनोव से बात कर रहे हैं। हाउ आर यू
पावेल: शानदार! हम नोवोसिबिर्स्क में वापस आ गए हैं।
सर्गेई: अब हम सही साइबेरियाई जंगलों का सामना कर रहे हैं।
पावेल: अच्छा दृश्य, अच्छे लोग, बहुत दिलचस्प विषय।
एंटोन: और फिलहाल यह मॉस्को की तुलना में यहां गर्म है।
सेर्गेई: मैं आपसे आज सी + + के बारे में बात करना चाहूंगा, लेकिन अजीब बात यह है कि यह सी ++ सम्मेलन में लगता है। विभिन्न चीजों के बारे में। उदाहरण के लिए, मुझे इस बात में बहुत दिलचस्पी है कि आप मास्को से नोवोसिबिर्स्क सम्मेलन में क्यों आ रहे हैं, और यह पहली बार नहीं है।
पावेल: अपने लिए, मैं कह सकता हूं कि मेरे पास एक मुख्य कारण है - मैं वास्तव में किसी को कुछ बताना पसंद करता हूं। मैं इसे अपने पास नहीं रख सकता जब मैं किसी नई दिलचस्प चीज़ के बारे में सीखता हूं, तो एक ओर, मुझे हमेशा संदेह होता है कि क्या यह वास्तव में अच्छा है, दिलचस्प है, मुझे लोगों को बताने और यह देखने की ज़रूरत है कि वे इस पर क्या प्रतिक्रिया देंगे - चाहे वे थूकेंगे या उन्हें फिर से आने के लिए कहेंगे। और इस तथ्य को देखते हुए कि वे थूकते नहीं हैं, वे टमाटर फेंकते नहीं हैं, लोग शायद उन चीजों को पसंद करते हैं जो मेरे लिए फट रहे हैं। मैं उनकी बात सुनना और चर्चा करना चाहता हूं। इसके अलावा, यह हमेशा सिर्फ सवारी करने के लिए एक खुशी है। पहली बार मैं नोवोसिबिर्स्क में सी ++ साइबेरिया सम्मेलन में था, और दूसरी बार भी। ठीक वैसे ही, मैं यहाँ नहीं जाऊँगा।
एंटोन: अन्य शहरों की यात्रा करना हमेशा दिलचस्प होता है। यह नोवोसिबिर्स्क में अद्भुत है, यह मॉस्को की तुलना में यहां गर्म है। गीली बर्फ गले की मैल पर नहीं डालती है। एक प्लसस!
सर्गेई: बेशक, मैं असंतुष्ट हूं और एक कारण के लिए यह सवाल पूछ रहा हूं। मेरे पास काम करने वाले समूह की यादें हैं 21 और कैसे, मेरी राय में, यह दिखाई दिया। मुझे उस आदमी को सुनने में दिलचस्पी है जिसने वास्तव में ऐसा किया था। यह कैसे हुआ कि अब समिति पर रूस का प्रतिनिधित्व किया जाता है?
एंटोन: यह सेंट पीटर्सबर्ग में सी ++ रूस में हुआ। मुझे याद है कि मैं अपनी पत्नी के साथ लिफ्ट में गया था, गोर निशानोव ( ट्विटर ) पहले से ही वहां खड़ा था, मुझे एहसास हुआ कि यह अंतर्राष्ट्रीय मानकीकरण समिति में पता लगाने का एक शानदार तरीका है। दरअसल, मैंने उनसे इस बारे में पूछा था। और गोर कुछ इस तरह है: “तुम्हें पता है, आज तुम मेरे लिए इस सवाल के साथ आने वाले पहले से बहुत दूर हो। यैंडेक्स के लोग आपसे संपर्क करते हैं। ” मैं जवाब देता हूं कि मैं यैंडेक्स में थोड़े समय के लिए काम कर रहा हूं, और यह वर्णन करने के लिए कहा कि ये लोग कैसे दिखते थे - मैं उनसे भी संपर्क करूंगा। गोर ने मुझे सब कुछ बताया। मैं उनके द्वारा वर्णित लोगों के पास गया। और यह वास्तव में पता चला है कि यांडेक्स सी ++ के बराबर रहने और एक अंतरराष्ट्रीय समिति में रूसी डेवलपर्स के हितों का प्रतिनिधित्व करने के लिए एक प्रकार का कार्य समूह बनाने जा रहा था। समूह बनाया गया। केवल यैंडेक्स कर्मचारी नहीं हैं, अन्य कंपनियों के कर्मचारी हैं।
पावेल: अब, कास्परस्की लैब से, एंटोन बिकिनेव समूह के हिस्से के रूप में भी काम करता है। आज, दुर्भाग्य से, वह हमारे साथ नहीं है।
एंटोन: वैसे, एंटोन एक बहुत ही शांत काम करता है - वह अपने हाथों और पैरों के साथ संकलक के अंदर चढ़ गया और हमारे प्रस्तावों में से एक को लागू करने की कोशिश करता है। यहां तक कि उनके पास कम या ज्यादा काम करने वाला प्रोटोटाइप भी है।
पावेल: वैसे, वह आपके बारे में शिकायत करता है कि आप तेजी से प्रस्ताव लिखते हैं क्योंकि वह उन्हें कंपाइलर में लागू करने का प्रबंधन करता है।
एंटोन: हाँ, यह है।
सर्गेई: यानी, एंटोन बिकिनेव हमारे कामकाजी डब्ल्यूजी के ऐसे मुख्य समूह के रूप में यहां काम करता है? यह सुनकर अच्छा लगा कि सम्मेलनों का इसमें हाथ था। मुझे उम्मीद है कि हर कोई समझता है कि यह कितना उपयोगी और दिलचस्प है। यह पता चला है कि काम के समूह में जाने के लिए आपको यैंडेक्स में काम नहीं करना पड़ेगा?
एंटोन: सामान्य तौर पर, आपके विचार को C ++ मानकीकरण समिति में लाने या इसके लिए प्लसस का हिस्सा बनने के लिए एक कार्यदल का हिस्सा होना आवश्यक नहीं है।
पावेल: ऐसा लगता है कि आप साइट पर जा सकते हैं और अपना सुझाव छोड़ सकते हैं।
एंटोन: हाँ, https://stdcpp.ru पर । वहां आप विचार साझा कर सकते हैं, अन्य प्रतिभागियों के विचारों पर चर्चा कर सकते हैं। कई विचार हैं, लेकिन सब कुछ लेने के लिए पर्याप्त हाथ नहीं हैं। इसलिए, यदि कोई व्यक्ति विचारों के लिए कम से कम कुछ प्रस्तावों के विशिष्ट ड्राफ्ट लिखना शुरू कर देता है, तो यह सभी के लिए आसान हो जाएगा, और ये विचार जल्दी से समिति को मिलेंगे।
पावेल: आपको क्या लगता है, एंटोन, जिसमें प्रस्ताव या कुछ और कार्य समूह का सबसे बड़ा योगदान व्यक्त किया गया है?
एंटोन: हमने पेशेवरों में सभी स्थिर प्रतिबिंब के लिए एक दिशा बनाई। जैसा कि मुझे अभी याद है: constexpr_vector
बनाने का एक प्रस्ताव था - एक अलग वर्ग जिसे केवल एक कॉन्स्ट्रेक्स संदर्भ में उपयोग किया जा सकता है। डेविड बाहर आता है (डेविड वंदेवोर्डे) और इस बात के बारे में बात करता है। पूरा हॉल खुशी से चिल्ला रहा है, चलो यह करते हैं। और वह इस तरह है: "लेकिन हम मानक पुस्तकालय में सभी वर्गों की तरह नकल करना चाहते हैं? कोई दूसरा रास्ता नहीं। ” “शायद constexpr_new?
"" नहीं, यह काम नहीं करता है। और मैं इस तरह हूं: चुनौती स्वीकार की गई। और तीन महीने बाद, मैंने और साशा ज़ैतसेव ने एक प्रोटोटाइप बनाया जो std::vector
को एक कॉन्स्ट्रेक्स संदर्भ में काम करने की अनुमति देता है। यह सीधे क्लेंग पर काम करता है, यहां तक कि कंपाइलर में भी मुझे कुछ भी नहीं खेलना है। हमने उसे डेविड को दिखाया, वह कहता है: “आह! अच्छी तरह से? नहीं, आपने यहां धोखा दिया। ” हम मान गए। वह कहता है: “नहीं, ठीक है, बेशक तुम कर सकते हो। वैसे, क्यों नहीं " उसके बाद, उन्होंने constexpr_vector
साथ पेपर को बाहर फेंक दिया और काम करना शुरू कर दिया ताकि मानक पुस्तकालय के सभी कंटेनर कॉन्स्ट्रेक्स संदर्भ का उपयोग कर सकें। अब वहां पहले से ही बहुत सारे लोग हैं। हम काम करने वाले समूह से मूल रूप से कॉन्स्टैक्स के साथ सभी एल्गोरिदम को याद करते हैं, लुई डियोन कंटेनरों को कॉन्स्ट्रेक्स के साथ याद करते हैं, और डेविड भाषा के मूल को कुशलता से किसी प्रकार के कॉन्सटेक््रप को नया बनाते हैं।
सर्गेई: क्या यह आवंटनकर्ताओं के बारे में है?
एंटोन: हाँ। आवंटन करने वालों में एक समस्या थी।
सेर्गेई: महान! ये बड़े बदलाव की तरह लग रहे हैं।
एंटोन: एक और 6 साल, और वे मानक में दिखाई देंगे ;-)
पावेल: नहीं, शायद, हमारे पास अपनी उंगलियों पर उन्हें इतनी जल्दी छूने का समय नहीं होगा।
एंटोन: कॉन्स्टेक्सप्रूट कंटेनर बीसवीं कक्षा में होना चाहिए। constexpr एल्गोरिदम निश्चित रूप से हिट।
पावेल: यही है, बस कुछ साल?
सर्गेई: यदि 2019 अब शुरू हो गया है, तो 20 वीं मानक 2020 में कहीं होगी। खैर, हाँ, शायद कुछ साल।
पावेल: इसके अलावा, अगर मुझे सही ढंग से याद है, तो मानक लेखकों की तुलना में कंपाइलर हमेशा पिछड़ते रहे हैं, अब मैं अक्सर कंपाइलर के माध्यम से एक प्रयोग के रूप में पहली बार कुछ करने के प्रयास देखता हूं - जो एंटोन कर रहा है वह आप बता रहे हैं। और उसके बाद ही इसे मानकों के रूप में लें।
सेर्गेई: इससे पहले, मुझे याद है, वहाँ अभी भी टीआर था।
एंटोन: लेकिन उन्हें टीएस के पक्ष में फेंक दिया गया। बहुत कुछ बदल गया है, हाँ :-)
सेर्गेई: अर्थात्, अब आधुनिक संकलक में आप नेमस्पेस ts
भी जोड़ सकते हैं?
एंटोन: अब यह संकलक के एक्सटेंशन वाले चेकबॉक्स के साथ किया जाता है, अर्थात्, कोराउटाइन टीएस हैं, आप उन्हें क्लैंग और विज़ुअल स्टूडियो में आज़मा सकते हैं। मॉड्यूल टीएस हैं, और वे हर जगह समान नहीं हैं। लाइब्रेरी सामान, मल्टीथ्रेडिंग, नेटवर्किंग पर टीएस हैं।
सर्गेई: यह अभी भी आवंटनकर्ताओं के साथ भाषा का मूल है, क्या यह भी एक निश्चित अलग ध्वज द्वारा निर्धारित किया गया है?
एंटन: इसे अलग झंडा नहीं दिया जाएगा। डेविड (डेविड वन्देवोर्डे) - कंपाइलर डेवलपर्स में से एक, ईडीजी फ्रंट-एंड डेवलपर्स में से एक, उसने बस इसे लागू किया। यह माना जाता है कि यह ठीक है, यह कुछ भी नहीं तोड़ता है, हम अन्य नए नहीं चाहते हैं, यहां कुछ प्रयोग करना बेकार है, सब कुछ काम करता है। महान, हम खींच रहे हैं।
सर्गेई: बहुत अच्छा।
पावेल: वैसे, सम्मेलनों के विषय पर लौटते हुए। एंटोन, आप C ++ रूस में न केवल एक लगातार वक्ता हैं, बल्कि सीपीपी कॉन, सीपीपी, सीपीपी नाउ की बैठक में भाग लेते हैं, शायद कुछ और। क्या आप किसी तरह तुलना कर सकते हैं और कह सकते हैं कि आपको क्या अंतर दिखाई देता है? क्या ये वही लोग हैं, समान विषय हैं, या यह महसूस करता है कि, आप कैसे आगे बढ़ते हैं, इस विषय पर या सम्मेलन की भाषा में परिवर्तन होता है?
एंटोन: सिद्धांत रूप में, यह महसूस किया जाता है कि रूस में सम्मेलनों में बहुत मजबूत डेवलपर्स हैं। आप उन्हें बहुत जटिल विषय बता सकते हैं। मैंने एक और सम्मेलन में एक बहुत ही कठिन विषय, मैजिक_गेट, और कहीं और बताने की कोशिश की, और मुझे एक डूड याद है, जैसा कि मैंने कहा, बाहरी उत्तेजनाओं का जवाब देना बंद कर दिया। वह सिर्फ बैठता है और पलक नहीं झपकाता है। मैंने सोचा, शायद मैं एक मजाक सम्मिलित कर सकता हूं - मैंने इसे डाला, मजाक किया - उसने भी पलक नहीं झपकाई। फिर वह चारों ओर हो गया। लेकिन इस तरह के कट्टर को केवल यहाँ बताना शायद बेहतर होगा।
सर्गेई: और केवल एंटोन बिकिनेव के लिए । यह सिर्फ इतना है कि हमने कहानी को सिर्फ रात के खाने के समय याद किया, जब आप किसी मीटिंग में मैजिक_गेट के बारे में बात कर रहे थे।
पावेल: एंटोन ने इस बैठक में भाग लिया और आपसे ऐसा कठिन सवाल पूछा कि वह स्पष्ट रूप से आपके द्वारा बताए गए से आगे निकल गया। ऐसा लगता है कि प्रकारों की सूची में खोज रैखिक नहीं है, लेकिन बाइनरी खोज की सहायता से। आपने उसे उत्तर दिया और पूछा कि वह इसे कैसे जानता है। जिस पर एंटोन ने उल्लेख किया कि वह मैजिक_गेट के स्रोतों को पढ़ रहा था, जो आपकी रिपोर्ट से पहले पूरी रात आपके गीथहब पर है, और यह पता लगाने की कोशिश कर रहा है कि यह कैसे काम करता है।
एंटोन: हमारे पास एंटोन बिकिनेव के साथ एक पुरानी अजीब कहानी है। मैंने देखा कि किस तरह उसने एक-दूसरे को जानने से पहले ही बूस्ट में एक-दो कर दिया। और उसके बाद, मैंने देखा कि उसने क्लैंग और कॉन्स्ट्रेप दोनों में एक पुल का अनुरोध किया। मैंने इस पुल अनुरोध को देखा, और किसी कारण से मुझे उस क्षण का नाम याद आया। शायद इसलिए क्योंकि बूस्ट से क्लैंग के लिए दोस्त महान है! फिर मैं सी ++ साइबेरिया में 17 वें प्लस के बारे में बात करता हूं, अगर कॉन्स्ट्रेक्स के बारे में, और दोस्त दर्शकों से रोता है: "हां, मैंने भी क्लैंग में यह थोड़ा सा किया था।" मैं ऐसा हूँ: "आप एंटोन बिकिनेव हैं!"
सर्गेई: सी ++ साइबेरिया जोड़ता है।
पावेल: इसके अलावा, अगर मुझे सही ढंग से याद है, तो यह साइबेरिया में था कि हमने मास्टर कक्षाओं पर पहला प्रयोग शुरू किया। पहले तो उन्होंने उन पर प्रयास करने की कोशिश की, यह देखने के लिए कि क्या यह प्रारूप जाएगा। और जैसा कि पिछले 3-4 सम्मेलनों के अभ्यास से पता चलता है, यदि आप सी ++ रूस की गिनती करते हैं, तो मुझे लगता है कि नया प्रारूप बहुत अच्छा चला गया। उदाहरण के लिए, मेरे पास अब अवसर है, 40 मिनट में नहीं, किसी विषय को दूर करने की कोशिश करने के लिए, लेकिन शांति से 6 घंटे के लिए लोगों को वह सब कुछ बताने के लिए जो मुझे लगता है कि आवश्यक है। अगर लोग तैयार होते हैं, तो मैं जो कुछ भी कर सकता हूं, उसे छह घंटे से अधिक समय तक बताता हूं।
एंटोन: कार्यशालाएँ मज़ेदार हैं। कभी-कभी वे ऐसे प्रश्न पूछते हैं जो आप जैसे हैं: "अरे, ऐसा क्यों?" और कई दिनों से आप यह समझने की कोशिश कर रहे हैं कि यह विशेष संकलक लैपटॉप पर, इस विशेष कंपाइलर पर काम क्यों नहीं कर रहा है। और कंपाइलर या किसी और चीज में किसी प्रकार की त्रुटि है। ऐसा लगता है कि आप मास्टर क्लास में सिर्फ कुछ बताने के लिए आते हैं, लेकिन इसके बजाय आपको एक उपयोगी फीडबैक मिलता है जो कुछ सुधारने में मदद करता है।
सर्गेई: सम्मेलन के आयोजक और सामुदायिक क्यूरेटर के दृष्टिकोण से, मैं कहूंगा कि कार्यशालाएं मेरे लिए बहुत उपयोगी हैं, क्योंकि कभी-कभी लोग इसके लिए जाते हैं, कुछ बुनियादी ज्ञान प्राप्त करते हैं, इसे आगे विकसित करते हैं, इसे लागू करते हैं और इसके बारे में एक रिपोर्ट के साथ वापस आते हैं। कई लोग मेरे पास आए और कहा कि वे आप में से एक के लिए एक मास्टर क्लास गए थे, उन्हें विषय में बहुत रुचि थी, और उन्होंने अपनी रिपोर्ट बनाई।
पावेल: एंटोन, मुझे याद है कि आप बूस्ट पर किताब के लेखक भी हैं, अब दूसरा संस्करण पहले से ही बाहर है। मुझे बताएं कि आपने इसे लिखने का फैसला कैसे किया? उदाहरण के लिए, मैं अभी भी अपने विचारों को इतने जटिल प्रारूप में, अपनी राय में व्यक्त करने का उपक्रम नहीं करूंगा।
एंटोन: बूस्ट में यह एक व्यस्त महीना था, मैं वहां किसी के साथ बहस कर रहा था, किसी के साथ गाली-गलौज कर रहा था और कह रहा था कि क्या गलत किया जाना चाहिए। उन्होंने मुझे आश्वस्त किया और, ऐसा लगता है, मुझे आश्वस्त किया। और प्रकाशक सिर्फ उन लोगों की तलाश कर रहा था जो बूस्ट पर एक किताब लिखेंगे। ऐसा लगता है कि उन्होंने बूस्ट मेलिंग सूची में देखा, सबसे सक्रिय प्रतिभागी को देखा, जिन्होंने बाकी सभी की तुलना में अधिक आत्मविश्वास से बात की, और मुझे चुना।
पावेल: आपने बूस्ट में योगदान देना कैसे शुरू किया? क्या यह नौकरी थी या सिर्फ एक शौक था?
एंटोन: यह इस तथ्य के कारण था कि मुझे समझ नहीं आया कि बूस्ट कैसे काम करता है। हमने काम में बूस्ट का इस्तेमाल किया। मेरे बहुत पहले कामों में से एक था बूस्ट, और मुझे यह भी पता नहीं था कि यह वहां कैसे काम करता है, यह क्यों काम करता है।
पॉल: बूस्ट एक जादुई पुस्तकालय का अब तक का एक सा है।
एंटोन: और मैंने देखना शुरू किया, समझा, और कुछ समय पर मुझे अचानक महसूस हुआ कि यहाँ lexical_cast
आप बेहतर कर सकते हैं। फिर मैंने उस lexical_cast
को लिखा, lexical_cast
से एलेक्सी, चलो इस पैच को लागू करें, लेकिन उसने मुझे जवाब नहीं दिया। मैंने उसे दो या तीन और पैच लिखे।
पावेल: यदि मुझे सही याद है, तो आपको अपने पैच को बढ़ावा देने में मुखर होना होगा।
एंटोन: बिल्कुल। हमेशा खुला स्रोत के साथ। नतीजतन, अनुचर ने कहा कि वह अब पूरी तरह से सिलाई कर रहा है, उसके पास बहुत कुछ है, और मेरे lexical_cast
एक lexical_cast
बनने की पेशकश की। मुझे खुशी हुई और मैं सहम गया। और फिर Boost.Any, Boost.Variant मैं धीरे से मुझ पर लटका दिया। उस क्षण में उन्होंने अपने पुस्तकालयों, Boost.TypeIndex, Boost.Stacktrace, जो अब एक मानक के रूप में स्वीकार किया है, की एक जोड़ी लिखी।
पावेल: आपको तैयार पुस्तकालयों में नई सुविधाओं के लिए विचार कहां से मिलते हैं?
एंटोन: कुछ चीजें, उदाहरण के लिए, Boost.DLL - इस व्यक्ति ने बूस्ट मेलिंग सूची को लिखा, वे कहते हैं, देखो, मेरे पास एक अच्छा पुस्तकालय है, यह बहुत ही डरावना, जटिल और दिलचस्प चीजें करता है। मैंने उसकी तरफ इस तरह देखा: "ठीक है, हाँ, हाँ, हाँ, ओह, लेकिन मैं ऐसा चाहूँगा!" मैंने इस दोस्त से संपर्क किया और सुझाव दिया कि मैं प्लगइन्स के साथ अलग से काम करने के लिए कुछ टुकड़ा निकालूं। उन्होंने इसे अलग से निकाल लिया, और यह पता चला कि यह टुकड़ा उस आदमी की तुलना में बहुत पहले मिला जो खुद आदमी करता है। स्टैकट्रेस के साथ, कुछ बिंदु पर मैंने महसूस किया कि स्टैक्ट्रेस को प्राप्त करने के लिए कोई तंत्र नहीं है। हां, कभी-कभी यह धीरे-धीरे मुझ तक पहुंच जाता है। और यही वह क्षण था जब मैंने महसूस किया कि पेशेवरों में स्टैक्ट्रेस को पाने का कोई तरीका नहीं है।
पावेल: ऐसा लगता है कि दो अलग-अलग कामों में मैंने गिरावट में स्टैक के निशान को प्रिंट करने के लिए दो बार एक जैसी लाइब्रेरी लिखी।
एंटोन: और इसलिए मैंने इसे लिया, इसकी कोशिश की, इसे बूस्ट से लोगों को फेंक दिया, उन्होंने कहा कि नहीं, ऐसा नहीं है। फिर मैंने दो बार और कोशिश की, और यहाँ एक संस्करण है, उसने सब कुछ व्यवस्थित किया और जड़ लिया।
पावेल: लेकिन क्या आप इसे किसी तरह अपने काम में इस्तेमाल करते हैं?
एंटोन: हां, हम यैंडेक्स में हैं। टेक्सी Boost.Stacktrace का बहुत सक्रिय रूप से उपयोग कर रही है, यह समान कार्यों के साथ बहुत अच्छा है, उदाहरण के लिए। क्या आपके पास कुछ सामान्य है - JSON के साथ काम करना, कहना। कुछ बिंदु पर उपयोगकर्ता JSON फ़ील्ड को एक्सेस करता है जो वहां नहीं है। बस एक अपवाद फेंक दो? अच्छा, कहीं ऊपर यह पकड़ लेगा। सामान्य तौर पर, उपयोगकर्ता ने इसे कहां कॉल किया था? JSON के साथ काम करने के लिए पूरे कोड में, क्या उपयोगकर्ता के पास सटीक क्षेत्र है जहां वह नहीं पहुंचा है? किस बिंदु पर उसने यह अनुरोध किया था? और स्टैक्ट्रेस पूरी तरह से यह समझने में मदद करता है कि क्या और कहां गलत है, जहां उपयोगकर्ता ने गड़बड़ की।
पावेल: अक्सर आपके द्वारा काम पर उपयोग किए जाने वाले संस्करण खुले स्रोत में फैलने लगते हैं? या क्या आप लगातार आगे और पीछे की विशेषताओं को स्थानांतरित करने की कोशिश कर रहे हैं?
एंटोन: मैं आगे और पीछे की विशेषताओं को स्थानांतरित करता हूं। बेशक, नेतृत्व की अनुमति के साथ। और मैं कहूंगा कि यह एक बहुत ही उपयोगी बातचीत है। उदाहरण के लिए, Yandex.Taxi में, हमने देखा कि स्टैकट्रेस के लिए स्ट्रींग () फ़ंक्शन गायब है। यह मानकीकरण प्रस्ताव में है, यह हर जगह वर्णित है, लेकिन यह बूस्ट में नहीं है। इस तथ्य के बावजूद कि यह मुझे लग रहा था कि वह वहां थी, मैंने बूस्ट से पूरे मानकीकरण प्रस्ताव को फाड़ दिया। बूस्ट में जोड़ा गया। सभी लोग खुश हैं।
पावेल: वैसे, काम करने वाले समूह में वापस आ रहा है। शायद, आप तुरंत सी ++ साइबेरिया के बाद अगली बैठक में जाएं?
एंटोन: हां, मैं कल सुबह विमान में सवार होऊंगा, 40 घंटे की उड़ान, और उसी दिन मैं कोना के लिए उड़ान भरूंगा। बैठक के एजेंडे पर, पूरी समिति को यह तय करना होगा कि C ++ 20 कैसा दिखेगा। इसमें क्या मिलेगा। C ++ 20 से पहले अंतिम स्टॉप केवल एक बग फिक्स होगा। मॉड्यूल और कॉरआउट अब एजेंडे में हैं।
पावेल: दो महत्वपूर्ण विशेषताएं जिनके बारे में लंबी और तीखी बहसें हैं।
एंटोन: मॉड्यूल के साथ सब कुछ कम या ज्यादा स्पष्ट है, वे स्वीकार किए जाते हैं, लेकिन कोरटुइन के साथ यह पूरी तरह से समझ से बाहर है, क्योंकि इस बैठक में बस कोरटाइन के लिए तीसरा प्रतिस्पर्धी प्रस्ताव दिखाई दिया। यह पूरी तरह से अलग है, कोरटाइन्स टीएस में पूरी तरह से अलग है, और मजबूत बिंदु हैं। बेशक, कमजोर लोग हैं। यह स्पष्ट नहीं है कि यह बिल्कुल कैसे जाएगा। और आमतौर पर लोग कोरटाइन के लिए कैसे तैयार होते हैं।
पावेल: अगले सी ++ रूस के लिए आपकी क्या योजनाएं हैं? क्या आप से एक रिपोर्ट चाहते हैं?
एंटोन: हाँ, निश्चित रूप से। मैं कुछ लेकर आऊंगा शायद पिलोरमा के बारे में।
सेर्गेई: ठीक है, बहुत-बहुत धन्यवाद दोस्तों! मैंने अब आपको वापस नहीं पकड़ा है। सबको बाय! सी ++ रूस में मिलते हैं ।
सी ++ रूस सम्मेलन में प्रशिक्षण के बारे में कुछ शब्द
जैसा कि पावेल ने इस साक्षात्कार में कहा है, प्रशिक्षण और मास्टर कक्षाओं में एक निर्विवाद लाभ होता है: मध्यस्थ को पूरे विषय को कुछ ही घंटों में लाने का अवसर होता है, बजाय नियमित रिपोर्ट के 50 मिनट के भीतर रखने का प्रयास करने का।
धीरे-धीरे, मास्टर कक्षाएं एक परंपरा बन रही हैं। हमने पहली बार उन्हें 2017 में आयोजित किया, फिर हमने सी ++ साइबेरिया में उनका परीक्षण किया। इस साल तीन मास्टर कक्षाएं होंगी। आप इस साक्षात्कार में उनमें से दो के नेताओं से पहले ही मिल चुके हैं।
सैद्धांतिक जानकारी और व्यावहारिक अभ्यासों को मिलाकर एक मास्टर क्लास छह घंटे का होता है। प्रतिभागियों की एक छोटी संख्या प्रत्येक के साथ अलग-अलग काम प्रदान करती है। यह, सबसे पहले, निश्चित रूप से, अभ्यास है। तो सभी मास्टर वर्गों को स्थापित आधुनिक C ++ कंपाइलर के साथ एक लैपटॉप की आवश्यकता होगी।
चुनने के लिए तीन मास्टर कक्षाओं की पेशकश की गई: "C ++ में एप्लाइड फंक्शनल प्रोग्रामिंग" इवान Čukić द्वारा संचालित किया जाएगा, और "सी ++ डेवलपर के लिए निरंतर एकीकरण" और "स्मार्ट और आधुनिक सी ++" हमारे डेवलपर्स, पेवेल लेवोनोव और एंटोन पोलुखिन का काम होगा।
इवान का मास्टर वर्ग प्रवेश स्तर के लिए नहीं है, यह उन पहेलियों के लिए उपयुक्त होगा जो धारणा के दरवाजे खोलना चाहते हैं। इवान बेलग्रेड विश्वविद्यालय में एक शोधकर्ता हैं, जो KActivities, कंटूर डेमॉन, लैंसलॉट और अन्य केडीई परियोजनाओं के अनुरक्षक हैं। यह होगा, जैसा कि आप समझ सकते हैं, कार्यात्मक प्रोग्रामिंग के बारे में। बस मामले में, प्रतिभागियों को जीसीसी और क्लैंग के नवीनतम संस्करणों की सलाह दी जाती है। थोड़ी देर बाद हम एक VirtualBox छवि को बाहर रख देंगे जिसकी आपको ज़रूरत है। निम्नलिखित विषयों को मास्टर वर्ग में शामिल किया जाएगा: कार्यात्मक प्रोग्रामिंग से दूर एसटीएल है, कार्यात्मक वस्तुएं क्या हैं, एसडीडी :: आह्वान और मोनाड्स, भिक्षु, सन्यासी। और कुछ और साधु।
आप पहले से ही Kaspersky Lab Pavel Filonov के इस डेवलपर शोधकर्ता से परिचित हैं। वह प्रतिभागियों को अपने सीआई को कानन और ट्रैविस के साथ बनाने के लिए आमंत्रित करेगा। पावेल निरंतर एकीकरण की विधि भी बताएंगे, और व्यावहारिक भाग में वह ओपन सोर्स पर एक होम प्रोजेक्ट / वर्क के उदाहरणों और क्लोज्ड सोर्स कोड के साथ काम करने वाले प्रोजेक्ट का उपयोग करके समस्याओं को हल करना सिखाएंगे।
स्वाभाविक रूप से, आपको सी ++ में प्रोग्राम करने में सक्षम होना चाहिए, किसी भी ओएस के साथ एक लैपटॉप लाना, मुख्य संकलक में से एक, ताजा सीमेक (आपको सीएमकेलिस्ट्सटेक्स्ट के वाक्यविन्यास को समझने की आवश्यकता है), गिट, पायथन 3 और पिप 3 और खातों का एक गुच्छा। इस बारे में अधिक जानकारी साइट पर विवरण में है ।
और अंत में, antoshkka से एक मास्टर वर्ग उचित अनुकूलन के कौशल के लिए समर्पित है। बस मामले में, मैं आपको याद दिलाता हूं: वह Yandex.Taxi सेवा के एक वरिष्ठ डेवलपर हैं, C ++ मानकीकरण समिति की अंतरराष्ट्रीय बैठकों में WP 21 के प्रतिनिधि हैं, एक भाषा मानक के लिए स्वीकृत प्रस्तावों के लेखक, बूस्ट के डेवलपर आदि। एंटोन समयपूर्व अनुकूलन की लगातार त्रुटियों के साथ उदाहरणों पर विचार करेंगे, फिर प्रतिभागी मानक पुस्तकालय के एल्गोरिदम और जटिलताओं, विशेषताओं वाले कंटेनरों, मूवमेंट शब्दार्थ और इसके अप्रत्याशित व्यवहार, मल्टीथ्रेडिंग पर विचार करेंगे। चूँकि पाठ्यक्रम व्यावहारिक है, सभी विषयों की जाँच Google बेंचमार्क बेंचमार्क के लिए C ++ लाइब्रेरी का उपयोग करके प्रयोगात्मक रूप से की जाएगी। पाठ्यक्रम के लिए आपको केवल मूल सी ++ ज्ञान और सी ++ 11 समर्थन के साथ नवीनतम संकलक की आवश्यकता होगी।
उपरोक्त सभी निश्चित रूप से आपके संदर्भ के लिए केवल एक संक्षिप्त संदर्भ है। सत्य का एकमात्र वास्तविक स्रोत सम्मेलन स्थल है , जहां सब कुछ विस्तृत और स्पष्ट रूप से कहा गया है। उदाहरण के लिए, यह आपके लैपटॉप पर इसके संस्करणों के साथ आवश्यक सॉफ्टवेयर को स्पष्ट रूप से सूचीबद्ध करता है।
C ++ रूस सम्मेलन 19-20 अप्रैल, 2019 को मास्को में आयोजित किया जाएगा। टिकट आधिकारिक वेबसाइट पर खरीदे जा सकते हैं। महत्वपूर्ण: 1 मार्च से, टिकट की कीमतों में वृद्धि होगी। यदि आप फरवरी की कीमतों पर खरीदना चाहते हैं, तो आपको इसे अभी करना चाहिए।