مقالات، برنامه نویسی

سخت بودن زبان برنامه نویسی، دلیل برتری نیست!


دو سه سال پیش مطلبی برای کسانی که می خواهند برنامه نویسی را شروع کنند نوشتم (اینجا) و زبان پاسکال را برای شروع پیشنهاد کردم. یکی از دوستانم برای شروع یادگیری برنامه نویسی با من مشورت کرد و گفت میخوام سخت ترین زبان برنامه نویسی را یاد بگیرم تا برنامه نویس تاپی بشم! قضیه از این قرار بود که قبل از من با داماد محترم خودشون مشورت کرده بود و ایشون گفته بود سخت ترین زبان های برنامه نویسی که سی/سی++ و جاوا هستند را یاد بگیرد! از من سئوال کرد که من دلفی و PHP را توصیه کردم. دوستم قبول نکرد و گفت شنیدم دلفی مسخره است و PHP بسیار ضعیفه!!
نمیدانم این چه حرف نامربوطی است که بین بعضی ها رایج شده، اینکه PHP ضعیف است و جاوا قویترین و بهترین است! از کسانی مثل دوست من که هیچ دانشی در مورد برنامه نویسی ندارند انتظاری نیست، اما این حرف ها را من از همکاران برنامه نویس و مدیران شرکت های نرم افزاری هم شنیده ام! این ها حتی یک سرچ کوچیک هم در مورد PHP انجام نداند تا با پروژه های قدرتمندی که با این زبان انجام شده اند، آشنا شوند. پروژه وردپرس فقط یکی از 100ها پروژه موفقی است که با PHP انجام شده است. بحث را نمی خواهم اینطور ادامه دهم، PHP فقط یک مثال است.

spl2

خیلی ها فکر می کنند هر چه یادگیری یک زبان برنامه نویسی سخت تر باشد، حتماً بر زبان های دیگر برتری دارد. این تفکر در دنیای امروز واقعاً مسخره است! به طور مثال یکی از سخت ترین زبان های برنامه نویسی سی++ است. به نظر شما یک برنامه نویس سی++ چه برتری بر یک برنامه نویس ویژوال بیسیک دات نت دارد!؟ تفاوت ها نسبی است. مثلاً برنامه نویس سی++ می تواند یک درایور سخت افزاری بنویسد اما برنامه نویس وی بی دات نت نمی تواند. حالا به نظر شما کدام بهتر می توانند یک وب اپلیکیشن بنویسند!؟ کدام سریعتر می تواند یک نرم افزار تولید کند!؟ کدامیک ابزارهای قوی تری برای توسعه در اختیار دارد!؟ خروجی کدامیک سریعتر اجرا می شود!؟
اخیراً بسیاری از برنامه نوسان سی++ به جاوا و سی شارپ روی آورده اند. چرا!؟ مگر سی++ سخت تر نیست! پس چرا این ها به یک زبان ساده تر روی آورده اند!؟
پاسخ این است که در دنیای امروز، برنامه نویسان باید پلت فرم محور باشند نه زبان محور. زبان برنامه نویسی هر چقدر هم که قوی و سخت باشد، اگر توسط یک پلت فرم قدرتمند و شناخته شده پشتیبانی نشود هیچ ارزشی نخواهد داشت. به طور مثال در سیستم عامل لینوکس از سی++ به خوبی پشتیبانی می شود اما در وب اینطور نیست. این سی++ را به یک انتخاب مناسب برای نوشتن برنامه های مبتنی بر لینوکس و به یک انتخاب نا مناسب برای نوشتن برنامه های مبتنی بر وب تبدیل می کند. PHP در وب به خوبی پشتیبانی می شود و برای توسعه برنامه های تحت وب بسیار مناسب است اما در بقیه موارد حرفی برای گفتن ندارد.

البته کسی که سی++ بلد باشد و بعد از آن مثلاً PHP را شروع کند خیلی سریعتر و بهتر از کسی که قبلاٌ مثلاً با ویژوال بیسیک آشنا بوده،PHP را یاد می گیرد. همانطور که گفتم پلت فرم از زبان خیلی مهم تر است. من می توانم به شما قول دهم که شما می توانید در عرض 3 ماه سی++ را به طور کامل یاد بگیرید، اما نمی توانید در فقط 3 ماه یک برنامه نویس وب حرفه ای شوید. یادگیری سینتاکس یک زبان برنامه نویسی هر چقدر هم که مشکل باشد، در 3 یا 4 ماه میسر می شود اما یادگیری یک پلت فرم برنامه نویسی مانند دات نت و حرفه ای شدن در آن به این سادگی ها نیست!

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

farasun.wordpress.com

اگر علاقه مند بودید، نظر خود را بنویسید تا بحث را ادامه دهیم.

مشترک فید فراسان شوید! نمی دانید فید چیست!؟

مطالب مرتبط :

19 نظر برای “سخت بودن زبان برنامه نویسی، دلیل برتری نیست!

    1. بابا توج از توصیه 2 تا سه سال پیش شما معلوم می شود شما زیاد برنامه نمی نویسید و عادت دارید برنامه ها را به طور معمولی بنویسید و با راه حل های قبل میلاد مثل قالب برنامه نویسان ایرانی , توصیه شما به زبان پاسکال صرف این بوده که در دانشگاه یاد گرفته اید و یا ایننکه پس از آموزش آن سریع با دلفی یکی از پر باگ ترین کم÷ایل های دنیا برنامه نوشتی و ذوق زده شدی . توصیه من به شما این است که اول برای توصیه کردن بروی تکنیک های برنامه نویسی را در یک موضوع خاص مثل شبیه سازی مدارات در کامپیوتر آموزش ببینی بعد توصیه کنی پاسکال یا دلفی و یا از این جوز زبان ها را کارکنی تا بفهمی c++ و یا زبانهای سخت یعنی چه . ولی در کل با حرف موافقم که هر سختی درست نیست گاها احمقانه و غیر حرفی می باشد و گاهی هم نیاز نسیت به اسن سختی باشد.

  1. ممنون بابت مطالب مفیدتون.
    واقعا اینطوریه…البته برای کسی که می خواد بعدا تو برنامه نویسی حرفی برا گفتن داشته باشه.
    اما متاسفانه اینجا اصلا این موضوع مهم نیست، به عبارتی پاس کن برو جلو هست…
    وقتی یه امتحان آبکی می گیرن که از مفاهیم پایه ای مثل کلاس و تابع و 50 درصد میوفتن و 40 درصد با نمره پایین پاس می کنن تعجبی هم نداره که آقایون اساتید و یا آقایونی که بعدا جز اساتید می شن بیان و بگن که مثلا PHP ضعیفه.
    در هر صورت متشکر از پستتون.

  2. متاسفانه شدیدا در این مورد حق با شماست و باز هم متاسفانه سر منشا این طرز فکر غلط از بعضی از مراکز آموزش عالی ماست … این مشکل الان به نوعی دیگه داره توی انتخاب سیستم عامل مشکل ساز میشه … کاربران شدیدا متعصب لینوکس در مقابل حریفان ویندوزی … نکته جالب در این نوع طرز فکر اینه که هر دو طرف حق دارن در مورد نظرشون ولی جلو تر از نوک دماغشون و نمی بینن … با بند آخرت شدیدا موافقم :
    «استفاده نابجا از ابزارهای قدرتمند نشان از نا آگاهی و آماتور بودن شما دارد»
    ولی من دوست دارم اینجوری بیانش کنم که : » همیشه هدف وسیله رو توجیه می کنه » که جدای از منطق کومونیستیش ولی در این نوع بر خوردها شدیدا کاربردیه .

    بازم ممنونم ازت که همچین بحثی رو شروع کردی …

  3. بله ایمان جان.پست خوبی بود.بخصوص این طرز تفکر متاسفانه در میان ایرانی‌ها خیلی وجود داره .همه هم میخوان برنامه نویس تاپ بشن به قول خودشون!!!.این برمیگرده به این مسئله که خیلی‌ها نمیدونند واقعا دنبال چی هستند و هدفشون چی هست.برای تبدیل شدن به یک برنامه نویس خوب خیلی پیش شرط ها لازم و ضروریه و مهمترینشون اینه که قبل از انتخاب یک زبان برنامه نویسی طرف باید مسیر و هدف خودش رو مشخص کنه و اونوقت بسته به هدف خودش یک زبان برنامه نویسی رو انتخاب کنه و در اون به کسب مهارت بپردازه و بهش مسلط بشه.اولین تصمیم مهمی هم که گرفته میشه در این راه این هست که آیا طرف میخواد یک برنامه نویس تحت وب بشه یا یک دسکتاپ اپلیکیشن دولوپر.خوب کسی که هنوز به این شناخت نرسیده که کدوم سمت رو میخواد انتخاب کنه و به عنوان آینده حرفه ای خودش در نظر بگیره و با نگاه کردن به دهن دیگران میخواد انتخاب خودش رو انحام بده و دچار جو زدگی هم میشه هرگز نمیتونه انتخاب خوبی داشته باشه و 100% چند صباحی بعد از کار کردن روی یک زبان برنامه نویسی به سراغ یک زبان دیگه میره و همش از این زبان به اون زبان سوییچ میکنه و سرآخر از برنامه نویسی خسته میشه و به هیچ جا نمیرسه.پیش شرط دیگه که خیلی مهمه داشتن خلاقیته.هرکسی نمیتونه یک برنامه نویس خوب بشه و ارتباط مستقیمی بین خلاقیت و برنامه نویس خوب بودن وجود داره.انتخاب بهترین زبان برنامه نویسی فقط میتونه توسط خود فرد انجام بگیره.خود فرد باید به درجه ای از آگاهی و شناخت برسه که بتونه بسته به نیاز خودش و مسیری که انتخاب کرده و معلومات و دانشی که بوسیله مطالعه زیاد و مشورت با افراد واقعا مجرب در این حرفه درباره توانایی های زبان های برنامه نویسی و نقاط قوت و ضعف هرکدام بدست آورده و جمع بندی همه این نکات انتخابش رو انجام بده.این حرف که فلان زبان برنامه نویسی کلاسش بالاتره و اینها مال افراد بی دانش و فاقد درک درست از برنامه نویسی هست.این افراد هرگز برنامه نویس نخواهند شد و اندر خم یک کوچه سرگردان خواهند ماند!

    1. @ محمود : مرسی محمود جان، به نکات خیلی خوبی اشاره کردی. داشتن هدف برای شروع و خلاقیت برای ادامه دادن، خیلی مهمه.

  4. دوست عزیز
    باید به این موضوع هم توجه می کردید که قدرت زبان برنامه نویسی در چه چیز هایی هست؟
    ویژگی های زبان های برنامه نویسی خوب در چه چیز هایی است؟
    اون موقع می توانید درک کنید که چرا سی پلاس پلاس و جاوا را قوی می گویند و پی اچ پی را ضعیف.
    پیاده سازی خیلی از مفهوم ها در زبان هایی مثل جاوا و سی ++ بسیار ساده است . ولی همان مفاهیم در پی اچ پی قابل پیاده سازی نیست.
    کتابخانه ها و فریم ورک هایی که زبان جاوا دارد قابل مقایسه با پی اچ پی نیست.
    برای پروژه که مثال زدید ، باید بگم ورد پرس در مقابل پروژه های دیگر حتی کوچک هم حساب نمی شود.
    آی بی ام مرکز تحقیقاتی داره به اسمه دولوپرز ورک ، می تونید به مقاله های اونجا سر بزنید ،‌یا توی ویکیپدیا نگاه کنید که پروژه ها یی مثل وب اسفیر آی بی ام با چه زبانی پیاده سازی شده.
    ابزار های توسعه تیمی در زبان ها در چه سطحیه.
    نکته مهم دیگه ای که هست منحنی یادگیری هستش ، در پی اچ پی شما از روز اول قادر به کد نویسی هستید ولی در جاوا اینطوری نیست.ولی نکته مهم تر این است که کدی که شما با پی اچ پی در ابتدای یادگیریتان نوشته اید کدی کاربردی و استاندارد است یا خیر.
    منم نظر شما را دارم برای دوستتان ، پی اچ پی برای شروع جالب است ، ولی برای رشد کردن حتما جاوا را هم امتحان کنند.
    موفق باشید

    1. @ bamdad dashtban : بحث من چیز دیگری است. من درک میکنم که بسیاری از مفاهیمی که سی++ می تواند پیاده سازی کند را دیگر زبان ها مثل PHP نمی توانند. اما نکته همینجاست : هر ابزاری را برای کاری ساخته اند. PHP برای کاری ساخته شده که نیازی به پیاده سازی اون مفاهیم نداره. هر ابزاری باید در جای مناسب و موقعیت خودش مورد استفاده قرار بگیره. نکته اصلی مطلب من همین بود. و اینکه کسی که می خواهد برنامه نویسی را شروع کند فقط به صرف سخت بودن یک زبان آن را بهترین از هر لحاظ نداند.
      ممنون بابت نظر مفیدتون

  5. برای طراح وب شدن آخه فقط موضوع یادگیری یک زبون برنامه نویسی مثل PHP نیست. ایرانی جایی نیست که اونجا هر کسی وظیفه ی مخصوص به خودش رو داشته باشه بخ خصوص در شرکت های کوچک و متوسط. یک طراح وب باید علاوه بر تسلط بر زبان های تحت سرور، با مقوله ی طراحی وب و زبان های HTML، CSS، JavaScript و… هم آشنایی داشته باشه. حالا بخش گرافیکی که دیگه به کنار.
    همین موضوع باعث میشه که نتونه وظیفه ی اصلیش رو به درستی انجام بده و در جاهایی کم کاری کنه.
    در مورد PHP هم بگم که من حدود 7 ساله که دارم با این زبان کار میکنم و بسیار هم ازش راضی هستم. تیم PHP خیلی فعاله و مدام در حال بهبود و پیشرفته کردنش هستند و آینده ی خیلی خوبی میشه براش انتظار داشت./

    1. @ محمدرضا: بله، متاسفانه در ایران، شرکت های نرم افزاری خیلی کوچک هستند و معمولاً یک نفر باید کار چند نفر را انجام دهد. یکی از دلایل مهم پیشرفت نکردن ایران در صنعت نرم افزار همین نکته است.
      موفق باشید

  6. خوب متاسفانه بزرگترين عيب PHP ساده بودنش هست. آدماي آماتور چون سريع را ميافتن و چارتا كد PHP مينويسن و سايت آپلود ميكنن بعدش كلي مشكلات امنيتي و غيره پيش مياد .
    خيلي هاشون كه فقط از PHP بازكردن تگ ش رو بلدن.
    و تا سالهاي سال هم برنامه هاي ساخت يافته و شي گرا نمي نويسن.
    من وقتي كار روي ZendFramework رو شروع كردم تازه فهميدم برنامه نويسي php يعني چي .
    حالا نميخوان فريمورك استفاده كنن لااقل الگوهاي طراحي استاندارد و حدااقل موارد امنيتي رو رعايت كنن.
    من هر چقدر تست و بررسي كردم به اين نتيجه رسيدم براي برنامه نويسي تحت وب LAMP واقعا راه حل خوبيه.

  7. بله ایمان جان php خیلی خوبه ولی نمی دونم آیندش چطور خواهد به نظر من تو آینده این همه سایت وجود نخواهد داشت

  8. سلام دوست عزیز
    راستش بصورت تصادفی به صفحه ات رسیدم
    خواستم در مورد پست های php شما یه نگاه بیاندازم ولی با تعجب دیدم صفحه به حالت فیلترینگ در میاید.گفتم بگم تا برطرف کنید.
    اینم از سیستم فیلترینگ ایران…فوق پیشرفته است بی …

    حق یارتان ….روح سبز

  9. این جمله رو یکی از استادام در رابطه با کارایی زبونهای مختلف بهم گفت،
    «هر چیزی برای کار خودش ساخته شده، مثلا کسی نمیره با شاتگان مگس بکشه. میره مگس کش بر میداره.»

بیان دیدگاه