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

12 08 2009

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

spl2

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

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

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

farasun.wordpress.com

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

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

مطالب مرتبط :





بررسی بهترین ویرایشگرهای متن آنلاین برای توسعه دهندگان وب

6 08 2009

یکی از تصمیمات مهمی که هر توسعه دهنده وب هنگام ایجاد یک وب سایت خواهد گرفت، همانا انتخاب یک ویرایشگر متن مناسب است. بسیاری از سیستم های مدیریت محتوای تحت وب، برای تولید محتوای متنی، ویرایشگرهایی با امکانات قالب بندی متون غنی (Rich Text) به کاربرانشان ارائه می دهند. نمونه های این ویرایشگرها را در هنگام نوشتن مطلب جدید در وبلاگ هایتان دیده اید. به طور مثال وردپرس، برای ایجاد مطلب یا صفحه، یک ویرایشگر با امکانات قالب بندی متن، درج تصویر و لینک در متن به شما می دهد.

rte

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

TinyMCE

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

FCKeditor

ویرایشگریست که سعی می کند بیشتر امکانات ویرایشگرهای تحت دسکتاپ مانند MS Word را در وب پیاده سازی کند. سبک است و برای استفاده از آن احتیاجی به نصب در کامپیوتر کلاینت ندارد. این ها جملاتی است که در وب سایت رسمی FCKeditor در وصف آن نوشته شده اند. این ویرایشگر قدرتمند با تمامی مرورگرهای استاندارد سازگار است و با بیشنر زبان های برنامه نویسی تحت وب مجتمع می شود. امکانات مناسب برای قالب بندی متن، پشتیبانی از CSS، آپلود تصاویر، مرور فایل های روی سرور، ایجاد جدول، درج فرم فیلد، منوی راست کلیک (Context Menu) اختصاصی، پوسته اختصاصی، تشخیص خودکار مرورگر کاربر و خروجی HTML مطلوب از قابلیت های این ویرایشگر هستند.

Yahoo! UI Editor

یاهو یکی از پیشرو ترین شرکت های وب در زمینه تولید ابزارهای مربوط به توسعه دهندگان وب است. کنترل Rich Text Editor یاهو یکی از بهترین و قدرتمند ترین راه حل ها در این زمینه است. از امکانات این ویرایشگر میتوان به مجوز اوپن سورس، قابلیت های خوب قالب بندی متون، پشتیبانی از مرورگرهای مختلف، تنظیمات قابل انعطاف، پشتیبانی از قابلیت کشیدن و رها کردن و روش شیء گرا در برنامه نویسی آن اشاره کرد. این کنترل جزئی از پروژه کتابخانه YUI شرکت یاهو! است.

FreeRichTextEditor

یک ویرایشگر قدرتمند و مبتنی بر جاوا اسکریپت که با اضافه کردن فقط سه خط کد به صفحات خودتان می توانید به کاربران خودتان لذت استفاده از یک ویرایشگر زیبا و قوی را بدهید. ظاهر این ویرایشگر شبیه به MS Word ساخته شده که کاربران با آن احساس نا آشنایی نکنند. تقریباً تمام امکاناتی که از یک ویرایشگر تحت وب انتظار دارید، FreeRichTextEditor دارای آن می باشد.

NiceEdit

یک ویرایشگر بسیار سبک، کم حجم و با نصب آسان است که روی تمام مرورگرها و سیستم عامل های موجود به خوبی کار می کند. هر چند مانند TinyMCE و FCKeditor قوی نیست و امکانات کمتری دارد اما برای کسانی که یک ویرایشگر ساده و بدون دردسر نیاز دارند بسیار مناسب است. این ویرایشگر سبک فقط 35کیلوبایت حجم دارد و فقط از دو فایل (js و icon) تشکیل شده است. این را با تعداد فایل های دیگر ویرایشگر ها مقایسه کنید. پشتیبانی از متد HTTP Post و AJAX برای ذخیره متن خروجی، کم حجم بودن، اسفاده آسان هم برای برنامه نویسان و هم برای کاربران نهایی، تنظیمات قابل انعطاف و پشتیبانی از تمامی مرورگرهای استاندارد از مزایای استفاده از NiceEdit هستند.

FreeTextBox

پر استفاده ترین ویرایشگر متن در دنیای ASP.NET است. بسیاری از وب سایت های مبتنی بر تکنولوژی ASP.NET از FreeTextBox به عنوان ویرایشگر HTML استفاده می کنند. کاملاً با IE و فایرفاکس سازگار است و امکانات خوبی به کاربر نهایی جهت قالب بندی متن می دهد. نسخه های اخیر این ویرایشگر روی پلت فرم مونو هم اجرا می شود.

RTE ASP.NET Control

اگر شما هم مثل من یک برنامه نویس ASP.NET هستید، حتماً با User Controlها آشنایی دارید. هدف این پروژه در کدپلکس جمع آوری تمامی امکانات یک ویرایشگر متن غنی در یک کنترل ASP.NET است. فایل dll این ویرایشگر را به شاخه bin پروژه خود اضافه کنید و به راحتی در هر صفحه ای که خواستید از آن استفاده کنید. متاسفانه کیفیت خروجی این کنترل هنوز به سطح مطلوبی نرسیده و به جز IE و فایرفاکس، از مرورگر دیگری پشتیبانی نمی کند.

Silverlight RichTextEditor

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

farasun.wordpress.com

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

مطالب مرتبط :





[Code to look] شنبه 20 تیر 88

11 07 2009

سلام، قرار بود هر 10 روز يکبار در اين وبلاگ شاهد پست هايي با عناون “Code to look” باشيد که شامل لينک هايي به سورس کدهاي آموزشي جالب و مناسب باشد. متاسفانه به علت هاي گوناگوني اين کار انجام نشد و حالا با گذشتن دو ماه از اولين پست Code to look، دومين مطلب اين دسته بندي جديد وبلاگ منتشر مي شود. از اين به بعد هر يک ماه يکبار و نه هر 10 روز يکبار، در اين وبلاگ شاهد يک مطلب در اين دسته بندي خواهيد بود. يک ماه هم فرصت مناسبي است براي من که کدهاي جالب پيدا کنم و هم براي شما که حداقل نگاهي به آن ها بيندازيد.

کد نمونه های دات نت

Writing Thread Safe Code in C#x

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

دريافت کنيد

مثال ساده کار با Entity Framework

یک مثال ساده که نحوه کار کردن با Entity Framework را به شما در قالب یک پروژه ASP.NET آموزش می دهد. Entity Framework یک فریم ورک ORM برای دات نت فریم ورک است که مایکروسافت در سرویس پک دات نت فریم ورک 3.5 آن را عرضه نموده است.

دريافت کنيد

ايجاد يک Skype bot در دات نت

نحوه ارتباط با نرم افزار Skype و ایجاد یک سیستم جواب دهی خودکار در این نرم افزار را توسط دات نت و سی شارپ به شما آموزش می دهد.

دريافت کنيد

ساخت يک اپليکيشن سه لايه با استفاده از سيلورلايت 3، x.NET RIA Services و Azure TableStorage کد نمونه روز!

azurePlatform_web

اگر با مباحث تئوری “محاسبات ابری” آشنایی دارید، زمان آن رسیده است که به صورت عملی با این مفهوم آشنا شوید. این کد نمونه به شما نشان می دهد که چگونه می توان با استفاده از ابزارهای توسعه مایکروسافت یک اپلیکیشن روی ابر ساخت. در این پروژه سیلورلایت 3.0 به عنوان لایه نمایش، x.NET RIA Services برای لایه Business logic و Azure TableStorage برای پیاده سازی لایه دسترسی به داده مورد استفاده قرار گرفته اند.

دريافت کنيد

پياده سازي مرتب سازي در يک مجموعه Generic

عنوان اين کد نمونه بسيار واضح است. نويسنده اين کد نمونه، از LINQ براي مرتب سازي يک Generic Collection بهره گرفته است.

دريافت کنيد

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

قرار نیست فقط برای دوستان دات نتی کد نمونه معرفی کنم و دوستان PHPکار را فراموش کنم!

کد نمونه های PHP

اسکریپت کاربران آنلاین سایت

سیستم تصدیق هویت کاربر با PHP و MySQL

ایجاد تصاویر بند انگشتی یا Thumbnail روی هوا!

اسکریپت ایجاد صفحه دانلود در هر سایتی با قابلیت شمارش تعداد دریافت فایل ها

نکاتی برای افزایش بهره وری PHP و MySQL در سرور – مقاله

پردازش پیشرفته رشته ها با تکنیک های Regular Expression - مقاله

farasun.wordpress.com

امیدوارم این مطلب برای شما مفید واقع شود.

برای از دست ندادن مطالب بعدی این وبلاگ مشترک فید فراسان شوید! نمی دانید فید چیست!؟





کدهای PHP را با NetBeans بنویسید!

21 12 2008

شاید شما هم مثل من برای نوشتن کدهای PHP از ادیتورهای کد مثل Notepad++ یا jEdit استفاده می کنید. شاید هم از نرم افزارهای دیگری همچون Rapid PHP یا Zend Studio استفاده می کنید. همانطور که می دانید رقیب قدرتمند PHP یعنی ASP.NET دارای IDE بسیار قدرتمندی به نام Visual Studio است که تمام نیازهای یک برنامه نویسی حرفه ای را برطرف می کند. برنامه نویسان ASP.NET از این نظر نسبت به برنامه نویسان PHP برتری محسوسی داشتند. تا اینکه شرکت معظم Sun Microsystems چند ماه پیش محیط توسعه نرم افزار خود یعنی NetBeans را به صورت آزمایشی ارائه کرد، در حالی که در نسخه جدید از PHP و Ruby on rails نیز پشتیبانی می کرد. این خبر بسیار خوبی برای برنامه نویسان PHP بود. هم اکنون که NetBeans 6.5 به صورت کامل ارائه شده، می تواند انتخاب مناسبی برای محیط توسعه شما باشد.netbeans_193x45

NetBeans یک محیط قدرتمند مجتمع توسعه نرم افزار (IDE) کدباز و رایگان است که از طرف شرکت Sun برای توسعه برنامه های جاوا ارائه شده بود که هم اکنون برای توسعه دهندگان PHP نیز مناسب می باشد. با NetBeans می توانید پروژه ی خود را مدیریت کنید، از قابلیت های Code completion، Code refactoring و دیباگر استفاده کنید و پروژه های خود را سریعتر و بهینه تر از قبل توسعه دهید. قالبیت auto complete در NetBeans تنها توابع از پیش تعریف شده در php را پشتیبانی نمی کنید، بلکه توابعی که شما در سرتاسر پروژه تان تعریف کرده اید را نیز شامل می شود.

PHP Code Completion example

PHP Code Completion example

NetBeans امکانات بسیار زیادی برای هرچه سریعتر نوشتن کدهای php در اختیار شما قرار می دهد، به طور مثال وقتی می خواهید یک تابع را صدا بزنید، NetBeans در مقداردهی پارامترها به شما بسیار کمک خواهد کرد. یا مثلاً کافیست تایپ کنید func و کلید tab را فشار دهید تا NetBeans قالب پیش فرض بلاک یک تابع را برای شما بسازد. همچنین NetBeans توضیحات تمام توابع داخلی php را از phpdoc به شما نشان می دهد تا مشکلی در استفاده از توابع نداشته باشد. (تقریباً مانند کاری که ویژوال استادیو انجام می دهد)

یکی از نیازهای بسیار حیاتی برنامه نویسان php که در NetBeans برطرف شده Variable Refactoring نام دارد. شاید شما هم قبلاً چنین مشکلی داشتید که از یک متغیر خیلی زیاد در یک فایل استفاده کرده اید و حالا میخواهید نام آن را تغییر بدهید. یا به صورت دستی و یا با استفاده از قابلیت Replace ایدتورهای مختلف مشکل خود را حل کردید. حالا NetBeans به صورت اتوماتیک این کار را برای شما انجام می دهد.

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

NetBeans 6.5 پشتیبانی کاملی از خطایابی سمت سرور با استفاده از افزونه XDebug دارد. همچنین در این محیط به جز کدهای php می توانید کدهای CSS, HTML و جاوا اسکریپت نیز به خوبی بنویسید. NetBeans 6.5 محیط توسعه قدرتمندی است که دارای امکانات پیشرفته دیگری نیز هست که ما قصد نداریم در این مقاله به آن ها بپردازیم.

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

اطلاعات بیشتر در مورد پشتیبانی PHP در NetBeans

متاسفانه دانلود مستقیم NetBeans برای ایرانی های داخل کشور مقدور نیست، دوست خوبم سالار خلیل زاده نحوه دریافت NetBeans 6.5 را برای ایرانی ها در اینجا توضیح داده است.

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :