زمان کنونی: 10-28-2020, 01:02 PM درود مهمان گرامی! (ورودثبت نام)



گیت هاب، سرویسی که طی ۱۰ سال دنیای برنامه نویسی را تغییر داد


ارسال موضوع  ارسال پاسخ 
  • 0 رأی - میانگین امیتازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
امتیاز موضوع:
 
گیت هاب، سرویسی که طی ۱۰ سال دنیای برنامه نویسی را تغییر داد
نویسنده پیام
MAPSA آفلاین
همکار انجمن
****

ارسال ها: 66
تاریخ عضویت: Sep 2017
اعتبار: 0
ارسال: #1
گیت هاب، سرویسی که طی ۱۰ سال دنیای برنامه نویسی را تغییر داد
[تصویر: add28906-0910-467c-a752-d2198f47b3b5.jpg?w=750]

گیت هاب در طول ۱۰ سال به یکی از تأثیرگذارترین پلتفرم‌های ا*****یستم برنامه‌نویسی تبدیل شد و امسال در ازای ۷.۵ میلیارد دلار به مایکروسافت پیوست.

۱۰ سال پیش، تام پرستون ورنر، کریس وانستراث و پی‌جی هایت گروهی را برای انجام یک پروژه‌‌ی تقریباً تفریحی شکل دادند. هدف آنها، انجام این پروژه به‌صورت پاره‌وقت و در روزهای تعطیل بود. این گروه هیچ‌گاه تصمیم نداشت پروژه‌ی تفریحی خود را به کسب‌وکار دائمی تبدیل کند. پس از مدت کوتاهی، پتانسیل‌های این پروژه برای گروه روشن شد. ایده‌ی آنها واقعا ارزشی بیش از یک پروژه‌ی آخر هفته‌ای داشت. در نهایت این ایده،‌ شیوه‌ی برنامه‌نویسی و همکاری توسعه‌دهندگان را در جهان تغییر داد. ایده‌ی آنها، گیت‌هاب بود.

گیت‌هاب در مدت ۱۰ سال فعالیت خود، شیوه‌ی برنامه‌نویسی مردم را تغییر داد. این سرویس نه‌ تنها کدنویسی را آسان‌تر کرده، بلکه سبک تفکر برنامه‌نویس‌ها را نیز در مورد برنامه‌نویسی تغییر داده است.

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

[تصویر: bfbc40e3-f4e6-4901-9c6c-87022b7563e3.jpg]

تیم گیت‌هاب، با استفاده از ابزار خارق‌العاده‌ی گیت، محصولی به‌صورت نرم‌افزار به‌عنوان سرویس یا SaaS عرضه کرد. آنها با استفاده از این سرویس متن‌باز و پیاده‌سازی عالی ایده‌ی خود، از این پروژه و ا*****یستم متن‌باز، به‌راحتی کسب درآمد کردند. این موفقیت‌های سریع باعث شد تا مایکروسافت (که زمانی دشمن اصلی ا*****یستم متن‌باز بود) به خرید شرکت علاقه‌مند شود.

در این مطلب زومیت، به بررسی تاریخچه‌ی فعالیت این سرویس پرطرفدار می‌پردازیم. برای درک بهتر پیشرفت گیت‌هاب، بهتر است نگاهی به ا*****یستم توسعه‌ی نرم‌افزار در سال ۲۰۰۸ داشته باشیم.

۲۰۰۷ تا ۲۰۱۱: کدنویسی تیمی و نرم‌افزارهای اجتماعی
اگرچه استیو جابز و بیل گیتس به‌عنوان بزرگترین تأثیرگذاران در دنیای کامپیوترهای شخصی شناخته می‌شوند. پرداختن به این تاریخچه‌ی جذاب، بدون توجه به کارهای مهم بزرگانی همچون لینوس توروالدز، دور از انصاف است. توروالدز، مهندس نرم‌افزار فنلاندی بود که سیستم‌عامل محبوب لینوکس، محصول نوآوری‌های او است.

لینوکس در سال ۱۹۹۱ عرضه شد و دوقطبی ویندوز / مک را به چالش کشید. این سیستم‌عامل متن‌باز، با سرعت بالا بین گیک‌‌های دنیای فناوری محبوب شد. افرادی که می‌خواستند کنترل بیشتری روی سیستم‌عامل خود داشته باشند.

[تصویر: f1180297-7f39-43b6-84d2-910e35ece516.jpg]

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

کنترل نسخه‌ی نرم‌افزار، شبیه به نقاط و موقعیت‌های Restore است که کامپیوترها ذخیره می‌کنند. این فرآیند، به افراد حاضر در تیم برنامه‌نویسی امکان می‌دهد تا بدون دخالت در کدهای یکدیگر، نسخه‌های خود را روی برنامه توسعه دهند. دو اصطلاح عمومی در این فرآیند، فورک کردن (Forking) و شاخه‌های مستقل (Branching) هستند.

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

پیش از عرضه‌ی گیت، برنامه‌نویسان برای همکاری‌های گروهی انتخاب‌های محدودی داشتند. یکی از این انتخاب‌ها با نام Subversion یک ابزار متن باز برای کنترل نسخه بود. این ابزار در آن زمان و حتی اکنون،‌ بین برنامه‌نویسان مشهور است. البته کمبودهای ساب‌ورژن مختص آن نبود. در واقع همه‌ی ابزارهای این حوزه، کمبودهایی داشتند که ناشی از ذات برنامه‌نویسی گروهی و تیمی بود.

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

[تصویر: f00e4728-7795-43a0-913b-5144ab5eaea5.jpg]

عرضه‌ی گیت در سال ۲۰۰۵ همزمان با رنسانس دنیای متن‌باز بود. در آن زمان استفاده از لینوکس به اوج محبوبیت خود رسیده بود و اولین نسخه‌های اپلیکیشن‌های وب ۲ در حال انتشار بودند. بسیاری از شرکت‌ها، پروژه‌های خود را روی سرورهای متن‌باز منتقل می‌کردند. در آن زمان اگرچه گیت مشکل اصلی کدنویسی گروهی را با عرضه‌ی قابلیت فورک مطرح کرد، اما یک چالش بزرگ هنوز بر قوت خود باقی بود. برنامه‌نویس‌ها در پیدا کردن پروژه‌های متن‌باز مشکل داشتند. در واقع برنامه‌نویس‌های بسیار زیاد روی پروژه‌های بسیار متعدد و جذاب کار می‌کردند اما گویی کسی از دیگری خبر نداشت.

پی‌جی و کریس پیش از صحبت در مورد پروژه‌ی خود، در وبسایت CNET مشغول به کار بودند. آنها از طرفداران پلتفرم برنامه‌نویسی Ruby on Rails بودند و در زمان کار در این وب‌سایت، بهبودهای متنوعی را به کد اصلی ریلز اضافه کردند. در این میان،‌ پیدا کردن کسی که کدهای آنها را بررسی کند، مشکل اصلی بود.

در آن زمان، ریلز نیز مانند بسیاری از پروژه‌های متن‌باز توسط گروه کوچکی اداره می‌شد که اضافه کردن و اعمال تغییرات جدید را به‌صورت دستی و سلیقه‌ای انجام می‌دادند. این برنامه‌نویس‌ها اصطلاحا دروازه‌بان پروژه بودند. پی‌جی و کریس تلاش‌های زیادی کردند تا دروازه‌بان‌های ریلز به کد آنها نگاه کرده و در صورت صلاحدید، آن را به پلتفرم اصلی اضافه کنند.

حتی در صورت موافقت یکی از این دروازه‌بان‌ها، باز هم اضافه کردن کد جدید چالش‌های خاص خود را داشت. در واقع، همکاری در چنین پروژه‌هایی به‌جای معلومات برنامه‌نویسی، به آشنایی با تیم اصلی نیاز داشت.

[تصویر: 55e7d356-ecd1-43c5-96e8-8ab51dd5bbb4.jpg]

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

البته گیت هم با تمام نقاط قوت، از کمبود ابزارهای همکاری تیمی رنج می‌برد. به‌علاوه، اشتراک کد بین دو برنامه‌نویس هنوز هم دشوار بود. تصور کنید تیم برنامه‌نویسی باید دائما بسته‌های کامل کد را برای یکدیگر ارسال می‌کردند. همین مورد ساده، نیاز شدید به گیت‌هاب در آن زمان را نشان می‌دهد.

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

ورنر در مورد روزهای ابتدایی عرضه‌ی گیت می‌گوید:

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

[تصویر: e5479bae-8653-4abb-9753-55c14a620819.jpg]

با تمام این کمبودها، ورنر که برنامه‌نویس روبی در منطقه‌ی Bay Area بود، ایده‌ی جالبی در مورد گیت پیدا کرد. ورنر در حال کار روی پروژه‌ای به‌نام Grit بود. این ابزار، به برنامه‌‌نویس‌ها امکان می‌داد تا با استفاده از روشی شی‌گرا و با بهره از روبی آن ریلز، به منابع کد پروژه‌های متن‌باز در گیت دسترسی داشته باشند. ورنر و وانستراث برای اولین بار یکدیگر را در یک باشگاه ورزشی ملاقات کردند. آنها در همان دیدار در مورد این پروژه با هم بحث و تبدل نظر کردند.

پرستون ورنر در این فکر بود که سرویسی برای ذخیره‌ی تمام کتاب‌‌خانه‌های برنامه‌نویسی توسعه دهد. برنامه‌نویس‌ها در این سرویس قابلیت همکاری در پروژه‌ها و یادگیری در مورد گیت را داشتند.پرستون ورنر همان‌جا نام Git Hub را برای ایده‌اش انتخاب کرد.

کار روی اولین نسخه‌ی از گیت‌هاب در یکم اکتبر سال ۲۰۰۷ شروع شد. در ساعت ۱۰:۲۴ جمعه، ۱۹ اکتبر، وانستراث اولین کامیت را در گیت‌هاب ایجاد کرد و دنیای برنامه‌نویسی را تغییر داد.

وقتی پرستون ورنر و وانستراث در سال ۲۰۰۷ کار روی پروژه‌ی گیت‌هاب را شروع کردند، به‌هیچ وجه هدفی برای تجاری کردن آن یا ایجاد کسب‌وکار با آن را نداشتند. آنها برای همکاری به این ابزار نیاز داشتند و به همین دلیل آن را توسعه دادند. نکته‌ی مهم در مورد راه‌حل این دو نفر آن است که تقریبا همه‌ی برنامه‌نویس‌ها صرف‌نظر از زبان و پلتفرم، مشکل مشابهی را تجربه کرده‌اند. در نتیجه‌ی این نیاز همگانی، پتانسیل بالای پروژه‌ی آنها بسیار زود روشن شد.

[تصویر: 9d425298-d1ab-46a2-be0b-ebefc5920eec.jpg]

در هفته‌های بعد، ورنر و وانستراث در روزهای آخر هفته به بهبود پروژه‌ی خود می‌پرداختند. ورنر بخش‌های طراحی را بر عهده داشت و وانستراث ایده‌های مورد نظر او را پیاده‌سازی می‌کرد. ورنر در مورد آن ماه‌های اولیه می‌گوید:

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

سرانجام در ژانویه‌ی سال ۲۰۰۸ پس از ماه‌ها کار بی‌وقفه و جلسات و تبادل نظرهای دونفره، گیت‌هاب به‌صورت عمومی عرضه شد. این سرویس ابتدا به‌صورت آزمایشی و خصوصی ارائه شد. وانستراث و ورنر در ایمیل‌هایی به دوستانشان در سیلیکون ولی، از آنها در خواست کردند که از سرویس جدید استفاده کنند. پاسخ و نظرات افراد به این پروژه‌ی جدید، بسیار سریع، مثبت و امیدوارکننده بود. یک ماه بعد، GitHub به‌صورت رسمی به‌عنوان یک شرکت ثبت شد. نام شرکت ابتدا Logical Awesome بود که به گیت‌هاب تغییر کرد.

اگرچه آن دو نفر ایده‌ی جدی برای تبدیل کردن پروژه‌شان به کسب‌وکار سودآور نداشتند؛ اما پتانسیل تجاری آن به‌حدی بود که کشش لازم را برای طرح درآمدزایی ایجاد کرد. در آوریل سال ۲۰۰۸، سه ماه پس از عرضه‌ی نسخه‌ی بتا و همزمان با انتشار رسمی سایت اصلی، جفری گروزنباخ بنیان‌گذار وبسایت آموزشی PeepCode پیامی برای کریس ارسال کرد. جفری در این پیام گفته بود که کدهای خود را به گیت‌هاب منتقل کرده است.

[تصویر: ce68f70a-2931-4f13-81ba-7cc21b75a35a.jpg]

گروزنباخ فردی بود که با وجدان خود، روند درآمدزایی را به گیت‌هاب نشان داد. او به کریس گفت از این که به‌صورت رایگان از گیت‌هاب برای پروژه‌های شرکتی استفاده می‌کند، احساس خوبی ندارد. پیام‌های این‌چنینی در ماه‌‌های بعدی هم ارسال شدند که نشان‌دهنده‌ی ارزش بالای این سرویس بودند. کاربران فعال گیت‌هاب با وجود رایگان بودن سرویس ترجیح می‌دادند وجهی را به صاحبان سایت پرداخت کنند.
09-19-2020 01:59 PM
یافتن تمامی ارسال های این کاربر نقل قول این ارسال در یک پاسخ
تبلیغات
MapsaControl.ir

ارسال موضوع  ارسال پاسخ 


پرش به انجمن: