البته این امکان وجود ندارد که هرکس برای تمام کارهای مورد نیازش، خودش دست به کار شده و برنامه مربوطه را بنویسد. زیرا این کار بسیار زمانبر و عملا غیرممکن است، اما میتوان طرحها، ایدهها و برنامههایی را که معادل آنها تاکنون طراحی نشده است و یا نیاز ما را به شکل مطلوب پاسخ نمیدهند، خودمان با استفاده از یکی از همین زبانها پیادهسازی کنیم و در کنار رفع نیاز کاربری، از اینکه خودمان به رایانه فرمان انجام کاری را دادهایم لذت ببریم.
اگر قصد آغاز برنامهنویسی را دارید توصیه میشود از یک زبان سطح بالا و ساده و در عین حال توانمند آغاز کنید تا علاوه بر این که بسادگی آن را فرا میگیرید، بتوانید از قدرت آن نیز در برنامههای خود بهره برده و نرمافزارهای کارا تولید کنید.
ما سعی میکنیم از این پس به برخی جنبههای کلی برنامهنویسی و مفاهیم مرتبط با آن بپردازیم تا دیدگاه برنامهنویسی را تکمیل کرده و کاربران را در مسیر طراحی و ساخت نرمافزارهای کارا و اصولی قرار دهیم. البته باید توجه داشت که طی مسیر به عهده خود کاربر است و نمیتوان در اینجا به آموزش گام به گام و ترفندهای برنامهنویسی پرداخت.
در پایان مطالعه این سری مقالات نمیتوان گفت که شما میتوانید با یک زبان خاص برنامه بنویسید. برای برنامهنویسی عملی کتابهای گوناگونی گردآوری یا ترجمه شدهاند که میتوانید از آنها استفاده کنید و پا به پا با آن پیش رفته تا در نهایت برنامه خود را تولید کنید. چیزی که شما از این مقالات خواهید آموخت، نحوه صحیح نگرش به برنامهسازی و گامهای اساسی و مفاهیم موجود در این شاخه از علم رایانه است. از آن پس میتوانید با هر زبانی، برنامهنویسی را آغاز کرده و با دیدگاه جامعی که کسب میکنید به سرعت در آن پیشرفت کنید.
انتخاب برحسب نیاز
گاهی افراد به طور کامل نمیدانند که چه انتظاری از برنامه مورد نظر خود دارند و این آگاهی را ندارند که میخواهند با زبان برنامهنویسی به چه هدفی دست یابند و در نهایت چه نرمافزاری تولید کنند. هنگامی که شخص به این مرحله از آگاهی نرسیده باشد نیاز دارد که امکانات و زمینههای فعالیت دنیای رایانه را بررسی کرده و از بین آنها، زمینه مورد علاقه خود را پیدا کند و به این ترتیب دامنه انتخابهای خود را کوچکتر کرده تا بتوانند در نهایت به انتخاب صحیح خود دست یابد. هنگامی که فرد هدف خود را از برنامهنویسی تعیین و انتظارات خود را از یک زبان مشخص کرد آنگاه از بین گستره وسیع زبانهای برنامهنویسی، به یک مجموعه کوچکتری از زبانها میرسد که میتواند با بررسی امکانات و تواناییهای هر کدام از آنها با سرعت بیشتری به انتخاب نهایی خود برسد.
بنابراین قدم اول در انتخاب زبان مناسب شما، تعیین اهداف و انتظاری است که از آن دارید. پس از آن فاکتورهای دیگری مطرح خواهند شد که شما را به مقصود نزدیکتر میکند.
توانایی و سادگی
هر یک از زبانهای برنامهسازی به هدف خاصی طراحی شدهاند. زبانهای بسیاری هم هستند که همهمنظوره بوده و پاسخگوی گستره وسیعتری از نیازهاست. اما این بدان معنا نیست که هر آنچه که در فکر شماست میتواند همگی با یک زبان پیادهسازی شوند. بنابراین اگر به دنبال زبانی هستید که توانایی انجام همه کارها را داشته باشد خوب است بدانید که چنین زبانی هنوز طراحی نشده است. البته منظور ما از توانایی، قابلیت به همراه سادگی است وگرنه پیش از این نیز گفته بودیم که زبان اسمبلی قابلیت تولید همه نوع نرمافزار با هر نوع کارکردی را دارد. اما نه به سادگی! شاید نوشتن یک برنامه که با یک زبان برنامهنویسی سطح بالا تنها به یک دقیقه زمان نیاز دارد، در اسمبلی به هفتهها و ماهها زمان نیاز داشته باشد. بنابراین از این پس مفهوم توانایی انجام کار را، توانایی همراه با سادگی عمل در نظر بگیرید. پس از آن باید از بین نیازهای خود و اولویت آنها، با توجه به توانایی زبانها به انتخاب درست برسید.
اصلاح دیدگاه
باید توجه داشت که در انتخاب زبان یا زبانهای مورد نیاز خود نباید به قضاوتها و برداشتهای غیرعلمی، جانبدارانه و تعصبی توجه کرد. بعضی از افراد به علتآن که پاسخ نیازهای خود را به راحتی از یک زبان گرفتهاند، شیفته آن زبان شده و روی آن زبان تعصب پیدا میکنند.
به همین دلیل به ضعفهای احتمالی آن زبان را نادیده گرفته یا تواناییهای زبانهای دیگر را درمقابل زبان محبوب خود کمرنگ جلوه میدهند. اینگونه افراد معمولا نمیتوانند راهنمای خوبی برای مبتدیان در انتخاب زبان باشند.
زیرا دیدگاه و نیازهای افراد با یکدیگر متفاوت بوده و ممکن است مسائلی را که آنها به علت محبوبیت زبان خود نادیده میگیرند برای شما مساله مهمی باشد.
این را به خاطر داشته باشید که زبانهای مطرح دنیا توسط یک نفر طراحی و توسعه نیافتهاند و تیمی مجرب و کار کشته آنها را حمایت میکنند. هر یک از این تیمها یا شرکتها برای محبوب کردن محصول و جهت راضی نگهداشتن مخاطبین خود، همواره در جهت بهبود آن تلاش میکنند و با علم روز و فناوریهای نوین در این زمینه پیش میروند. بنابراین صحیح نیست که با دیدگاه جانبدارانه توانمندیهای یکی و نقاط ضعف دیگری را پررنگ جلوه داد. وقتی که دو یا چند زبان در زمینهای خاص، بین همه زبانهای دیگر در دنیا مطرح و محبوب میشوند بدون شک همگی تواناییهای خاص خود را داشتهاند که توانستهاند پا به پای سایر رقبا حرکت کنند. بنابراین بهتر است به طور دقیق آنها را بررسی کنیم و پس از یک مطالعه از نقاط ضعف و قوت هر یک، با توجه به انتظار خود به قضاوت بپردازیم و ابزار خود را انتخاب کنیم.
به هنگام مطالعه در مورد زبانها حتما توجه داشته باشید که منبع مورد استناد شما موثق باشد. هیچ منبعی به اندازه سایت سازنده یک زبان یا ابزار نمیتواند موثق باشد. پس از آن میتوان به مقالات علمی و تحلیل کارشناسان بدون تعصب استناد کرد. گاهی در تالارهای گفتگو که جای بسیار مناسبی برای مطرح کردن سوالات و اشکالات است، بحثهایی مطرح میشود که به دلیل کافی نبودن اطلاعات برخی افراد شرکتکننده در بحث، به هیچ عنوان قابل استناد نیستند، چه بسا مسائلی بیان میشوند که به کلی اشتباه بوده و حتی عکس آن صحیح است. برخی از افراد نیز دو زبان ارائه شده توسط یک شرکت و حتی در یک بسته نرمافزاری را با یکدیگر مقایسه کرده و یکی را به دیگری ترجیح میدهند. در حالی که برتری زبانها باید به طور موردی و در زمینه خاص و با توجه به هدفی که دنبال میکنند، آن هم توسط کارشناس فن تعیین شود.
ضعف یکی قوت دیگری
هر چه زبان برنامهنویسی دست کاربر را برای تغییرات جزییتر و دسترسیهای سطح پایینتر بیشتر باز گذاشته باشد، برنامهنویسی با آن مشکلتر خواهد بود و در مقابل هر چه زبان سادهتر شده باشد، جزییات بیشتری از دید کاربر پنهان شده و آن زبان نسبت به اعمال جزیی از انعطاف کمتری برخوردار خواهد بود.
به عنوان مثال زبانی همچون VB (Visual Basic) در بسیاری از موارد و زمینهها، کار را بشدت برای برنامهنویس ساده کردهاند. به گفته طراحان این زبان در مایکروسافت، علت طراحی این زبان نیز همین بوده است. چراکه ابزار و زبان دیگری از همین شرکت به نام++ Visual C ارائه شده است که از نظر قابلیت انجام کار زبان توانمندی است، اما در آن کمتر به سادگی کار توجه شده است و این به خاطر افزایش اختیارات برنامهنویس بوده است. شاید اگر قرار باشد معادل برنامهای را که درVB با چند خط دستور نوشته میشود، در++ VC بازنویسی کنیم به دهها خط کد نیاز داشته باشیم. در مقابل ممکن است دست برنامهنویس++ VC در نوشتن برنامههای سیستمی و نزدیک به سختافزار، نسبت به برنامهنویسVB بازتر باشد. این وظیفه شماست که انتظارات خود را تعیین کنید و در صورت انتخاب صحیح، زبان برنامهنویسی وظیفه دارد که آن انتظارات را تامین کند. ما در این مقالات هدف آموزش یک زبان برنامهنویسی خاص را دنبال نمیکنیم، بلکه به دنبال بیان مفاهیم موجود در این شاخه از علم رایانه و کسب دیدگاه در این زمینه هستیم، پس از آن که اطلاعات شما در این راستا به حد لازم رسید میتوانید زبان دلخواه خود را انتخاب کنید.
برای بیان مفاهیم و پیشروی در برنامهنویسی در موارد مورد نیاز زبان دلفی (پاسکال شیءگرا) را انتخاب کردهایم و پایه بیان اصول و مفاهیم را براساس این زبان بیان خواهیم کرد و در موارد لازم، برای درک بهتر برخی مسائل، گریزی به زبانهای دیگر ازجمله++ C، زبانهای تحت وب و... نیز خواهیم زد.
هیچ منبع و مرجعی بیشتر از سایت ارائهکننده یا سازنده یک ابزار یا زبان نمیتواند موثق و قابل استناد باشد.
پارسا ستودهنیا
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم