آیا می‌دانید مجموعه سورس‌کد شرکت گوگل چقدر است؟

آیا می‌دانید مجموعه سورس‌کد شرکت گوگل چقدر است؟

اگرچه که از روی میزان درآمد یک شرکت می‌توان به بزرگی آن پی‌برد، اما گاهی‌اوقات از روی زیرساخت یک شرکت -که در حوزهٔ برنامه‌نویسی یکی از این زیرساخت‌ها سورس‌کد است- نیز می‌توان به بزرگی یک شرکت پی برد. گفته می‌شود که سیستم‌عامل ویندوز که از سال ۱۹۸۰ تاکنون در حال توسعه و تکمیل است، چیزی در حدود ۵۰ میلیون خط کد دارا است و همین سورس‌کد عظیم، سیستم‌عامل ویندوز را به یکی از بزرگ‌ترین نرم‌افزارهای نوشته شده تا حال حاضر مبدل می‌سازد. اگرچه که ۵۰ میلیون خط کد چیز کمی نیست، اما در مقایسه با سورس‌کد سرویس‌های گوگل، ویندوز اصلاً حرفی برای گفتن ندارد!

مقایسهٔ سورس‌کد گوگل با ویندوز مایکروسافت
یکی از اعضای گوگل به نام Rachel Potvin در یک کنفرانس مهندسی که در سیلیکون‌ولی برگزار شده بود، تخمین زد که سورس‌کد مورد نیاز برای اجرای کلیهٔ سرویس‌های شرکت گوگل -یا بهتر بگوییم شرکت الفبا- از موتور جستجوی گوگل گرفته تا جیمیل، گوگل‌مپس، یوتیوب، گوگل داکس، کلندر و غیره، چیزی در حدود ۲ میلیارد خط کد است. یعنی چیزی ۴۰ برابر حجیم‌تر از سیستم‌عامل ویندوز!

مقایسهٔ سورس‌کد گوگل با لینوکس
اگر بخواهیم نرم‌افزارهای گوگل را با سیستم‌عامل اپن‌سورس گنو/لینوکس مقایسه کنیم، بایستی بگوییم که در لینوکس چیزی در حدود ۱۵ میلیون خط کد وجود دارد که در ۴۰ هزار فایل مجزا قرار گرفته‌اند اما این در حالی است که مهندسین شرکت گوگل ۱۵ میلیون خط کد را صرفاً در یک هفته در ۲۵۰ هزار فایل مختلف بازبینی می‌کنند.

مقایسهٔ سورس‌کد گوگل با فیسبوک
شرکت فیسبوک هم که سورس‌کد آن چیزی در حدود ۲۰ میلیون خط است، از سیستم کنترل نسخهٔ اختصاصی خود استفاده می‌کند. خبر خوب این که این دو غول دنیای اینترنت -گوگل و فیسبوک- در تلاش هستند تا از سیستم کنترل نسخه‌ای تحت عنوان Mercurial، یک نسخهٔ اپن‌سورس تهیه کرده تا سایر شرکت‌های کوچک و بزرگ هم بتوانند از آن استفاده کنند.

تعداد مهندسینی که به این سورس‌کد دسترسی دارند، چیزی در حدود ۲۵۰۰۰ نفر است. نکتهٔ جالب توجه اینکه این ۲ میلیارد خط کد صرفاً در یک ریپازیتوری (مخزن) نگهداری می‌شوند که بدون شک می‌توان لقب «بزرگ‌ترین ریپازیتوری نرم‌افزاری دنیا» را به آن داد. این ریپازیتوری چیزی شبیه به گیت‌هاب است اما با این تفاوت که صرفاً در اختیار توسعه‌دهندگان داخل شرکت گوگل است.

مسلماً مهندسین گوگل برای هندل کردن این حجم عظیمی از سورس‌کد، نیاز به یک ساز و کار کنترل نسخه همچون گیت دارند. این سیستم اختصاصی کنترل نسخهٔ خود گوگل است که نام آن Piper بوده و وظیفهٔ کنترل کلیهٔ کامیت‌های برنامه‌نویسان را به عهده دارد. این ۲۵۰۰۰ مهندس نرم‌افزار گوگل، در هر روز ۴۵۰۰۰ کامیت انجام می‌دهند که رقم قابل‌توجهی است و این نشان از رو به رشد بودن کلیهٔ نرم‌افزارهای ساخت گوگل است.

جالب است بدانیم که در گوگل، مهندسین نرم‌افزار رتبه‌بندی می‌شوند و به سورس‌کدهای خیلی حساس مثل سورس‌کد الگورتیم پیج‌رنک گوگل، فقط عدهٔ خاصی از مهندسین دسترسی دارند و این سورس‌کدها هم در مخازن به خصوص و مجزایی نگهداری می‌شوند.

همچنین با توجه به اینکه سیستم‌عامل‌های اندروید و کروم خیلی مرتبط با فناوری‌های تحت وب گوگل نیستند، ریپازیتوری‌های این سیستم‌عامل‌ها نیز مجزا بوده و برای کنترل آنها نیز از سیستم‌های کنترل نسخهٔ مجزایی استفاده می‌شود.

لازم به ذکر است آمار و ارقام اعلام شده در این پست باتوجه به پویا بودن صنعت توسعهٔ نرم‌افزار، روز به روز دستخوش تغییرات گشته و مسلماً تا چند سال آینده، این ارقام چند برابر خواهند شد.

منبع


فرنوش فهیم