لطفا جاواسکریپت مرورگر خود را فعال سازید!

نحوه فعال سازی در کروم
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
نحوه فعال سازی در فایرفاکس
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
انتخاب یک زبان برنامه‌نویسی، فرهنگ سازمانی کسب‌وکار شما را دستخوش تغییر می‌سازد!

انتخاب یک زبان برنامه‌نویسی، فرهنگ سازمانی کسب‌وکار شما را دستخوش تغییر می‌سازد!

زبان‌های برنامه‌نویسی تاحدودی طرز تفکر دولوپرها و شرکت‌هایی که از آن‌ها استفاده می‌کنند را دستخوش تغییر می‌سازند و همین می‌شود که استارتاپ‌های حوزهٔ فناوری -که غالبا با زبان‌های برنامه‌نویسی سروکار دارند- سبک‌و‌سیاق متفاوتی نسبت به سایر کسب‌وکارهای داشته و این امکان را دارند تا خود را بارها و بارها «بازآفرینی» کنند. در این مقاله قصد داریم ببینیم که انتخاب یک زبان برنامه‌نویسی چگونه و به چه شکل می‌تواند Mindset (طرز تفکر) کاربرانش را دگرگون سازد. در ادامه، با سکان آکادمی همراه باشید.

زبان Ruby که در ساخت و طراحی بسیاری از سایت‌های دنیای وب مانند Twitter و Hulu استفاده شده، توسط دانشمند ژاپنی علوم کامپیوتر Yukihiro Matsumoto ابداع شده است؛ در زمان ایجاد این زبان، Matsumoto از یک رمان علمی-تخیلی به نام Babel-17 به نویسندگی Samuel R. Delany در سال 1966 ایده می‌گرفت. در این رمان، زبانی به همین نام اختراع شده که ذهن افرادی را که به این زبان صحبت می‌کنند، ارتقاء می‌دهد. قهرمان داستان در جایی می‌گوید: «Babel-17 این‌قدر زبان دقیق و منطقیه که توی هر موقعیتی باشی، بهش تسلط کامل داری!» Matsumoto هم با اختراع زبان Ruby در پی همین بود؛ به عبارت دیگر، زبانی ابداع کند تا طرز تفکر برنامه‌نویسان را از نو طراحی کرده و ارتقا دهد.

ایدۀ Matsumoto شاید خیلی بلندپروازانه باشد، اما خیلی هم عجیب و افراطی نیست؛ دیولپرها همیشه تصور می‌کنند که زبان‌های برنامه‌نویسی چنان تاثیری روی ذهن دارند که رویۀ حل مشکلات و حتی انتخاب مشکلات را تغییر می‌دهند. جالب است بدانیم که برخی برنامه‌نویس‌های متفکر با سوالی تحت عنوان «از کدام زبان استفاده می‌کنید؟» دست به سنجش شرکت‌ها، محصولات نرم‌افزاری، و هم‌رده‌های خود می‌زنند. 

هر فرد غریبه‌ای با پاسخ این سوال می‌تواند شرکت‌های نرم‌افزاری قدرتمند و باارزش را بشناسد و با محصولات و خدماتی که روی زندگی روزمرۀ ما تاثیر می‌گذارند آشنا شود؛ شاید انتخاب یک زبان مانند Ruby ،PHP یا C برای ساختن محصول نرم‌افزاری جدید به ظاهر یک تصمیم خصوصی و داخلی باشد، اما در واقع می‌تواند تاثیر زیادی روی مردم بگذارد. برای شناختن ظاهر فیسبوک و طرز کار آن و خدمات فعلی و بعدی آن برای مردم، باید با زبان PHP آشنا شد که مارک زاکربرگ برای ساخت فیسبوک به کار گرفته است (البته پس از مدتی، مهندیسن فیسبوک زبانی تحت عنوان Hack را ابداع کردند و برگرفته از همین زبان PHP بود (برای آشنایی بیشتر با این زبان، به مقالهٔ ابداع زبان هک توسط فیسبوک مراجعه نمایید.)

می‌توان گفت که زبان PHP در میان برنامه‌نویسان کمترین عزت و احترام را دارا است! یک وبلاگ صاحب‌نظر دربارۀ معایب زبان PHP، آن را تحت عنوان «الگویی بدقواره» توصیف کرد، بسیاری از سایر دولوپرها برنامه‌نویسانِ این زبان را آماتور و ناشی تلقی می‌کنند. Jeff Atwood یکی از مسئولان اصلی سایت Stack Overflow گفته که «مهندسی بی‌مانندی که در ساخت فیسبوک استفاده شده، قصه و افسانه‌ای بیش نیست؛ سازندگان فیسبوک با ویندوز XP کد PHP می‌نوشتند. آن‌ها هکر در معنای وقیح کلمه بودند.» ظرف 10 دقیقه، Atwood القابی مانند «هیولای بدپیکر»، «بیماری واگیردار» و «خانۀ جن‌زده» به PHP نسبت داد!

بیشتر زبان‌های برنامه‌نویسی موفق، یک فلسفه کلی یا سری اصولی دارند که اصطلاحات و منطق آن‌ها را در یک مجموعه کلی نظم می‌دهد اما PHP به این صورت نیست. حتی سازندۀ آن Rasmus Lerdorf هم بی‌محابا اقرار می‌کند که همین‌ طوری سرهم‌اش کرده است. وی در مصاحبه‌ای در سال 2003 گفت «نمی‌دونم چطور جلوش رو بگیرم؛ اصلا بلد نیستم چطوری زبان برنامه‌نویسی بسازم! فقط ادامه می‌دادم و مراحل منطقی رو به ترتیب اضافه می‌کردم.»

یک مثال مورد علاقۀ برنامه‌نویس‌ها، یک فانکشن PHP به اسم mysql_escape_string است که قبل از فرستادن یک کوئری به دیتابیس، اینپوت مخرب را از آن جدا می‌کند (به عنوان نمونه‌ای از یک ورودی مخرب می‌توان به فرمی در یک وبسایت اشاره کرد که آدرس ایمیل کاربر را می‌خواهد، و یک هکر، کدی در آن فرم قرار می‌دهد که پسورد را افشا می‌کند!) وقتی که متوجه باگ در این فانکشن شدند، فانکشن جدیدی به PHP اضافه کردند تحت عنوان mysql_real_escape_string اما هرگز آن فانکشن باگ‌دار را حذف نکردند! نتیجۀ کار، چیزی شده شبیه به دو دکمۀ کنار هم در کابین خلبانی: یکی از دکمه‌ها چرخ‌های فرود را باز می‌کند، و دیگری همین کار را با امنیت بیشتری انجام می‌دهد (این کار نه‌تنها توهین به شعور دولوپرها است، بلکه فرمولی است برای یک سورس‌کد مزخرف.)

اما با وجود این تنفر فراگیر از PHP، قسمت زیادی از فضای وب با همین زبان ساخته شده است. طبق آمار، 39 درصد وبسایت‌های حال حاضر دنیا با PHP ساخته شده‌اند. Facebook، Wikipedia، و سیستم‌های مدیریت محتوای وردپرس، دروپال و جوملا همگی با زبان برنامه‌نویسی PHP پیاده‌سازی شده‌اند و دلیل این مسئله هم این است که PHP با وجود این همهٔ این نواقص، برای شروع عالی است.

نام این زبان در ابتدا از حروف اول Personal Home Page گرفته شده است؛ با PHP اضافه کردن محتوای پویا مانند تاریخ یا نام کاربر به صفحات ثابت HTML خیلی آسان شد. جهش از مرحلهٔ سروکله زدن با یک وبسایت به مرحله نوشتن یک برنامۀ تحت وب آنقدر با PHP راحت شده بود که اصلا حس نمی‌شد. در یک کلام، برای چنین کاری اصلا نیازی به تخصص و حرفه‌ای بودن نبود.

Ori Livneh یکی از مهندس‌های نرم‌افزاری Wikimedia Foundation است که این شرکت، پروژۀ Wikipedia را اداره می‌کند. او گفته که آماده‌به‌کار بودن PHP برای موفقیت این پروژه، نقشی حیاتی داشته است. وی در مصاحبه‌ای گفت «همیشه از PHP متنفر بودم و هستم.» پروژۀ Wikipedia به خاطر وابستگی به این زبان، نواقص بزرگی در طراحی دارد اما PHP این امکان را فراهم کرد تا کسانی که تخصصی در مهندسی نرم‌افزار نداشتند، بتوانند به سادگی کد بزنند. به همین صورت بود که Wikipedia توانست مثلا الفبای باستانی مصری را نشان دهد یا علائم و نوت‌های موسیقی را به کار ببرد.

اما چیزی مثل گوگل را نمی‌شود با PHP ساخت، چون گوگل برای گوگل شدن می‌بایست یک کار را خوب و کامل انجام می‌داد (جستجوی گوگل می‌بایست سبک و سریع و با طراحی مهندسی دقیق انجام می‌شد.) پس با زبان‌های قوی‌تری مثل Java، Python و ++C ساخته شد. اما فیسبوک در ابتدا مثل بازارچه‌ای از آزمایش‌های کوچک و منویی پر از دکمه، پست، و ابزار برای جلب توجه مخاطب بود و PHP هم به خوبی از عهدهٔ چنین کاری بر‌می‌آمد.

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

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

سلاح مخفی Minsky
در مقام مقایسه، شرکت تجاری-مالی Jane Street Capital در سوی دیگر طیف قرار دارد. این شرکت با 400 کارمند، حدود 2 درصد از میزان تجارت سهام روزانه در آمریکا را به خود اختصاص می‌دهد. Yaron Minsky مدیر بخش تکنولوژی این شرکت است و دکترای علوم کامپیوتر دارد. حدود 10 سال پیش، از یکی از کارمندانش خواسته بود که سیستم تجاری شرکت را به زبان ناشناخته‌ای به اسم OCaml بنویسد. این زبان در یک موسسهٔ پژوهشی در فرانسه برای تقویت سیستم کامپیوتری اثبات نظریات ریاضی ساخته شده بود. قبل از Minsky کسی از این زبان برای پروژۀ واقعی استفاده نکرده بود. اما Minsky می‌خواست این زبان را جایگزین Excel کند.

موفقیت OCaml به خاطر ویژگی‌ای به نام Type System است که چیزی شبیه Grammar Checker در نرم‌افزار آفیس ورد است با این تفاوت که به جای کشیدن خط قرمز زیر کلمات اشتباه، اجازه نمی‌دهد برنامه اجرا شود. برنامه‌هایی که در مرحله تولید با تایپ سیستم نوشته می‌شوند، خیلی معتبرتر هستند به خصوص وقتی که قرار باشد 30 میلیارد دلار در روز محاسبه کنند!

Minsky می‌گوید تایپ سیستم OCaml باگ‌ها را شناسایی می‌کند و برنامه‌نویسان شرکت می‌توانند به مشکلات مهم‌تر رسیدگی کنند. شاید به مرور زمان آنقدر ایرادگیری این زبان را توسعه داده باشند که به یک زبان جدید تبدیل شده باشد و جایی برای تفکر اشتباه وجود نداشته باشد.

اما زبان OCaml هم معایب خاص خود را دارد. مثلا باید توضیحاتی در کد نوشته شود که OCaml با کمک آن توضیحات بتواند ایراد کد را شناسایی کند. یک عیب دیگر این است که ریاضی به کار رفته در این زبان بسیار پیچیده است و کدنویسی با این زبان کار هر برنامه‌نویسی نیست (البته این می‌تواند به نوعی مزیت برای Jane Street باشد.)

بیشتر برنامه‌نویسان با وجود تنفر از PHP از محصولات آن مانند Facebook و Wikipedia استفاده می‌کنند و از همان طرز تفکر پیروی می‌کنند. اما همین سختی و پیچیدگی OCaml فرصتی ایجاد کرده که فقط افراد خاص با صلاحیت‌های خاص و با تفکر هوش رقابتی جذب شرکتی بشوند که کارکنان آن در زمان فراغت و استراحت، شطرنج 4 نفره بازی می‌کنند (ظاهرا گوگل هم با طراحی زبان Go هدفی مشابه را دنبال می‌کند. Go می‌خواهد وب را به محیطی شیک‌تر و کارآمدتر تبدیل کند. این زبان، مثل دستمال قرمزی است که فقط کدنویس‌های جسور و تنوع‌طلب را جذب می‌کند.)

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

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

قسمتی از این راه حل، عبارت بود از ساختن کامپایلری که کد PHP فیسبوک را به کد سریع‌تر ++C برگردان کند؛ معجزۀ دیگری که باید انجام می‌شد، مهندسی زبان‌شناسانۀ کامپیوتری بود که برنامه‌نویسان فیسبوک بتوانند با حفظ فرهنگ PHP خود، کد بهتری بنویسند.

گروه نجات، با ابداع گونه‌ٔ جدیدی از زبان PHP به نام Hack به هدف خود رسیدند. Hack همان PHP است که تایپ سیستم اختیاری به آن اضافه شده؛ یعنی برنامه‌نویس می‌تواند یا همان کد درهم و سریع PHP را بنویسد، یا با اضافه کردن Annotation به کد، به تایپ سیستم اجازه بدهد صحت کد را بررسی کند. فیسبوک می‌خواست کدنویسان با همان سرعت و آسایش با زبان بومی خود به پیش بروند، اما دیگر مثل گذشته چیزی را خراب نکنند. سال گذشته زاکربرگ از یک شعار مهندسی جدید رونمایی کرد با این مضمون که «با حفظ ثبات زیرساخت، با سرعت به پیش بروید.»

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

آنقدر این کار را کردند که لوگوی Fail Whale قرار گرفته در پیج تعمیر توئیتر، شهرهٔ خاص و عام شد. توئیتر قسمت‌های عظیمی از اسکلت سایت را با زبان Scala جایگزین کرد تا بتواند جلوی این مشکل را بگیرد. جای تعجب ندارد که Scala هم مانند OCaml توسط دانشمندان ساخته شده بود، تایپ سیستم قوی دارد، و به صحت و عملکرد بیشتر بها می‌دهد، حتی به قیمت گرفتن آزادی و لذت از برنامه‌نویسان!

درست همان‌طور که استارتاپ‌ها با فهمیدن راه کسب درآمد بالغ می‌شوند، می‌توانند با استفادهٔ هوشمندانه از قدرت زبان‌های برنامه‌نویسی طرز تفکر سازمانی خود را تغییر دهند. Guido van Rossum طراح زبان برنامه‌نویسی پایتون است که 7 سال برای گوگل کار کرد و در حال حاضر هم در Dropbox مشغول به کار است. او می‌گوید وقتی که یک شرکت نرم‌افزاری تا حد معینی رشد می‌کند، تنها راه جلوگیری از بحران، استفاده از زبانی است که از همان اول برنامه‌نویس را بیشتر درگیر کند. به قول وی «حس می‌کنی داره از سرعتت کم می‌کنه، چون باید هر چیز رو ۳ بار بگی.» به همین دلیل، خیلی از استارتاپ‌ها تا حد ممکن برای تغییر زبان منتظر می‌مانند. اما با یک زبان سخت‌گیرتر، اعضای شرکت کد یکدیگر را بهتر می‌فهمند و محصول نهایی ثبات لازم برای استفاده روزمره را خواهد داشت.

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

شما از چه زبانی استفاده می‌کنید؟ این زبان چه تاثیری روی شخصیت و طرز تفکر شما داشته است؟ به نظر شما تاثیر این زبان روی شما، مخرب بوده یا سازنده؟ در قسمتی از مقاله گفتیم که هر زبان فلسفه و اصول خود را دارد. به نظر شما کدام زبان بهترین اصول و فلسفه و در نتیجه مثبت‌ترین تاثیر را روی کاربر دارد؟ نظرات و دیدگاه‌های خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.

منبع