تبليغاتX
طراحی وب سایت
آموزش طراحی وب سایت دینامیک
 
گنو/لینوکس با ویندوز چه تفاوتی دارد؟
یکی از نخستین سوالاتی که در ذهن هر کاربری که به تازگی نام گنو/لینوکس به گوشش خورده است، مطرح می‌شود، این است که خوب گنو/لینوکس چه تفاوتی با ویندوز دارد؟ من در این مقاله قصد دارم بدون اینکه وارد مسایل خیلی فنی شوم، به طور اجمالی این موضوع را تشریح کنم.

لینوکس چیست؟

لینوکس به خودی خود، یک هسته (Kernel) است. هسته، بخش اصلی سیستم‌عامل را تشکیل می‌دهد که کار آن کنترل داده‌ها، مدیریت حافظه، سخت‌افزار، ورود و خروج داده‌ها و تمامی موارد اصلی سیستم‌عامل می‌باشد. همانطور که گفتم، لینوکس به خودی خود سیستم‌عامل به شمار نمی‌رود، بلکه با استفاده از ابزارهایی که پروژه گنو (GNU) برای آن تولید کرده است، تبدیل به یک سیستم‌عامل کامل می‌شود (به همین دلیل است که لینوکس را معمولا گنو/گنو/لینوکس یا GNU/Linux می‌نامند) و با اضافه کردن سایر نرم‌افزارهای بازمتن به آن، می‌توان از آن در موارد متعددی مانند سرویس‌دهنده‌ها، ایستگاه‌های کاری، کامپیوترهای روی‌میزی، ابر رایانه‌ها، ابزارهای صنعتی و پزشکی که دارای سیستم‌های درونه‌ای (Embedded) می‌باشند و… استفاده کرد.
از نظر فنی، گنو/لینوکس را می‌توان نمونه بازمتن و آزاد سیستم‌عامل‌های خانواده یونیکس نامید. زیرا بر اساس استاندارد POSIX پیاده سازی شده و کاملا با آن سازگار است. بنابراین گنو/لینوکس را می‌توان نواده سیستم‌عامل پرسابقه و مستحکم یونیکس دانست که البته خواص خوب آنرا نیز به ارث برده است. اکنون تفاوت‌های اصلی گنو/لینوکس و ویندوز را با هم می‌شماریم:

گنو/لینوکس : سیستم‌عامل آزاد

گنو/لینوکس یک سیستم عامل آزاد و بازمتن است. کد منبع آن در اختیار همگان قرار دارد و همه می‌توانند در کدهای آن تغییر ایجاد کرده و بنا به نیازشان استفاده کنند. آزاد و در دسترس بودن کدهای منبع سبب می‌شود تا بتوانید از طرز کارکرد دقیق سیستم‌عامل مطلع شوید. شما بسیاری از توزیع‌های گنو/لینوکس را می‌توانید به هر تعداد کپی کرده و بین دوستانتان پخش کنید. در سمت مقابل، ویندوز یک سیستم‌عامل اختصاصی است که کد منبع آن سری نگهداشته شده و برای همگان در دسترس نیست. شما نمی‌توانید بفهمید که واقعا در زیر سیستم‌عامل ویندوزتان چه می‌گذرد؟ آیا یک برنامه جاسوسی در آن پنهان نشده است؟ بعید نیست. سیستم عامل ویندوز رایگان نبوده و شما نمی‌توانید آنرا کپی کرده و پخش کنید. در صورت این کار شما خلاف‌کار هستید و جریمه و مجازات خواهید شد. (فعلا نه در ایران ولی در ۴-۶ سال آینده بله)
گنو/لینوکس را به هواپیمایی تشبیه کرده‌اند که هر قسمت از انرا در جایی ساخته‌اند. گنو/لینوکس واقعا محصول کشور خاصی نیست. تعداد زیادی از مردم در سرتاسر جهان در حال کار بر روی بخش‌های مختلف آن و توسعه آن هستند. تعداد برنامه نویسانی که روی بخش‌های مختلف سیستم‌عامل گنو/لینوکس کار می‌کنند، به حدود ۴۰۰ هزار نفر می‌رسد، تفاوت کیفیت کار را مشخص می‌کند.
شما با سیستم‌عامل گنو/لینوکس آزاد هستید. لازم ندارید تا از نرم‌افزارهای اختصاصی استفاده کنید و تحت انقیاد آنها در آیید.

گنو/لینوکس : سرعت، قدرت، پایداری

همانطور که گفتم، گنو/لینوکس نواده سیستم‌عامل یونیکس است. بنابراین ساختار کلی این سیستم‌عامل کاملا با ویندوز متفاوت است. این به این معنی است که مثلا شما نخواهید توانست برنامه‌هایی که در ویندوز دارید، روی گنو/لینوکس اجرا نمایید (البته راه‌هایی وجود دارد – شبیه سازها - ولی در حالت عادی خیر). یکی از خواص اصلی سیستم‌عامل‌های خانواده یونیکس، پایداری و استقامت بسیار بالای آنهاست. این سیستم‌عامل‌ها به این راحتی‌ها خراب نشده و به ندرت نیاز به بوت مجدد پیدا می‌کنند. گنو/لینوکس‌هایی وجود دارند که شما می‌توانید سالها بدون نیاز به بوت، از آنها استفاده نمایید. در سمت مقابل، حتی جدیدترین و پایدارترین سیستم‌های ویندوز نیز اندازه گنو/لینوکس پایدار نیستند. برای بکارگیری سیستم‌های ویندوز به عنوان سرویس دهنده به حافظه و پردازنده‌های قویتری نیاز دارید و مطمین باشید اگر هر چند روز آنرا بوت نکنید، از کار خواهد افتاد! معمولا سیستم‌عامل گنو/لینوکس به راحتی خراب نمی‌شود و برعکس ویندوز مجبور نیستید تا آنرا هر چندماه یکبار مجددا نصب کنید. حتی برخی از انواع گنو/لینوکس به نصب «یکبار برای تمامی عمر» مشهور هستند. این گونه سیستم‌ها را می‌توانید حین کار و حتی بدون بوت، به نسخه‌های جدیدتر ارتقا دهید.

گنو/لینوکس : امنیت، امنیت، امنیت

امروزه در دنیایی متکی بر فناوری اطلاعات زندگی می‌کنیم که هر لحظه به خطر افتادن جریان اطلاعات منجر به بروز خسارت‌های تجاری جبران ناپذیری خواهد شد. امروزه همه به دنبال یک سکوی (Platform) امن‌تر برای اجرای برنامه‌های کاربردی و سروی‌دهنده‌ها هستند. با اینکه مبحث امنیت یک مقوله نسبی است، گنو/لینوکس حرف‌های زیادی برای گفتن در سمت امنیت دارد. بسیاری از قابلیت‌های امنیتی که در ویندوز وجود ندارند و یا فقط با اضافه کردن نرم‌افزارهای اضافی قابل دسترسی می‌باشند، بطور درونی و پیش‌گزیده در گنو/لینوکس پیاده سازی شده‌اند. گنو/لینوکس از ابتدا برای محیط‌های شبکه‌ای و چند کاربره طراحی شده است و همین باعث رعایت مسایل امنیتی از ابتدا در ان شده است، درحالی که ویندوز اینگونه نبوده و درحال حاضر نیز از نظر امنیتی دارای نقاط ضعف فراوانی است. مثلا یک برنامه مخرب با استفاده از همین ضعف‌های امنیتی می‌تواند کل سیستم‌عامل را نابود کند، ولی در صورتی که مورد مشابهی در گنو/لینوکس وجود داشته باشد، حداکثر به دایرکتوری خانگی کاربر اجرا کننده آسیب خواهد رسید، نه کل سیستم‌عامل.
اینطور نیست که گنو/لینوکس فاقد هر گونه اشکال امنیتی باشد، خیر، ولی باز بودن کد منبع آن باعث می‌شود تا بسیاری از اشکالات امنیتی پیش از ایجاد خسارت و در مراحل توسعه و برنامه نویسی برنامه بر ملا شده و رفع شوند. در صورتی که اشکالی نیز در برنامه‌های منتشر شده یافت شود، بدلیل موجود بودن کد منبع سریعا برطرف می‌گردد. در صورتی که در سیستم عامل ویندوز شما باید منتظر مایکروسافت بمانید و بمانید و بمانید (مثلا هم اکنون ۲۱ اشکال امنیتی در مرورگر IE وجود دارد که مایکروسافت هنوز هیچ وصله‌ای برای آن ارایه نداده است). سیستم‌عامل ویندوز دارای اشکالات امنیتی بسیاری است که به راحتی هم کشف نمی‌شوند و هنگامی کشف می‌شوند که خسارات جبران ناپذیری در اثر حمله از طریق آن ضعف‌های امنیتی رخ دهد که امثال آنرا شاهد هستیم. در دنیای امنیت ضرب المثلی وجود دارد که امنیت با مخفی کاری حاصل نمی‌شود.
می‌توان ادعا کرد که تقریبا هیچ ویروسی برای گنو/لینوکس وجود ندارد و این درحالی است که سالیانه بیش از ۱۰۰۰ ویروس و کرم مختلف برای سیستم‌عامل ویندوز ایجاد می‌شود. این بخاطر عدم گسترده بودن گنو/لینوکس نیست (حدود ۷۰ درصد از سایت‌های وب در جهان بر روی سیستم‌عامل‌های خانواده یونیکس و گنو/لینوکس و سرویس‌دهنده وب آپاچی درحال اجرا هستند) بلکه بدلیل وجود حفره‌های امنیتی متعدد ویندوز و سیاست انحصار گرایی مایکروسافت است. یعنی چه؟ مایکروسافت طوری رفتار و سیاست گذاری کرده است که مشتریان خود را تنها به محصولات خودش عادت دهد. بسیاری از کاربران ویندوز از اینترنت اکسپلورر و آتلوک برای مرور وب و پست الکترونیک استفاده می‌کنند. من به عنوان یک ویروس نویس، می‌دانم که اگر ویروسی را برای کاربران ویندوز بنویسم، بر روی کامپیوترهای ۹۰ درصد آنها اثر خواهد کرد. چون اکثرا از IE و Outlook استفاده می‌کنند. ولی در گنو/لینوکس چطور؟ در گنو/لینوکس شما طیف وسیعی از انتخاب و عدم اجبار دارید. من از مرورگر موزیلا استفاده میکنم. دوستی دارم که Konqueror را ترجیح می‌دهد. دیگری از Opera استفاده می‌کند. من از Kmail استفاده می‌کنم. دوستم از Evolution، دیگری از Pine و بعدی از Mutt و برادرم هم از Mozilla Mail. من فقط می‌توانم برای یکی از اینها ویروس بنویسم چون روی بقیه کار نخواهد کرد و عملا میزان اثر آن انداک خواهد بود. ضمنا هیچیک از ویروس‌هایی که برای ویندوز نوشته شده‌اند، بر روی گنو/لینوکس کار نمی‌کنند.

گنو/لینوکس : تعدد سکوهای اجرایی

گنو/لینوکس برخلاف ویندوز بر روی تعداد زیادی از سکوهای مختلف سخت‌افزاری اجرا می‌شود و شما حتی قادرید آنرا برای کار بر روی سکوی مورد نظرتان تغییر دهید. این قابلیت، گنو/لینوکس را برای بکارگیری در سخت‌افزارهای درونه‌ای (Embedded) بسیار مناسب می‌سازد. هسته ۲.۶ گنو/لینوکس این امکان را فراهم می‌سازد تا گنو/لینوکس را بر روی دستگاه‌های بسیار کوچک و یا ابر رایانه‌های بسیار بزرگ اجرا نمایید.

گنو/لینوکس : گسترده‌ترین تنوع در کاربرد

گنو/لینوکس را می‌توانید برای انجام وظایف بسیار متعددی بکار بگیرید. از دستگاه چک کردن اتصالات شبکه، دیوار آتش، مسیریاب (Router) شبکه، سرویس‌دهنده‌های مختلف مانند وب، بانک اطلاعاتی، فایل، چاپ و…، میزهای کار (Desktop)، ایستگاه‌های کاری (Workstations) و… سیستم‌عامل گنو/لینوکس حتی این امکان را دارد که از آن بتوان به صورت یک سیستم زنده و پرتابل استفاده کرد. به این معنی که کل سیستم‌عامل از روی یک دیسک CD اجرا شود و شما آنرا با خودتان جابجا کنید و میزکار و تنظیماتتان را همراه خودتان منتقل کنید. علاوه بر این، این قابلیت برای رفع اشکال و نمایش آن نیز بسیار مفید است.

گنو/لینوکس : تنوع در انتخاب

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

گنو/لینوکس : سیستم‌عاملی حرفه‌ای

گنو/لینوکس یک سیستم‌عامل حرفه‌ای است. یعنی ممکن است یک کاربر کاملا غیر فنی برای مدیریت آن و انجام برخی از تنظیمات سخت‌افزاری دچار مشکل شود و نتواند به راحتی این کار را انجام دهد. البته برخی از توزیع‌های گنو/لینوکس این امور را بسیار راحت (و حتی راحت‌تر از ویندوز) کرده‌اند، ولی با این حال به طور کلی، گنو/لینوکس یک سیستم‌عامل حرفه‌ای است که در عین سادگی، از پیچیدگی‌های فنی زیادی برخوردار است. البته تمام کاربران لازم نیست این امور را بدانند. مثلا یک کارمند دفتری که اموری مانند تایپ و حسابداری را با کامپیوترش انجام می‌دهد، ممکن است از نظر فنی تفاوتی را احساس نکند، ولی گنو/لینوکس خوراکی ۴ ساله برای کاربران خوره فراهم می‌سازد! برخلاف ویندوز، نکات بی‌پایانی برای یادگیری در گنو/لینوکس وجود دارد. این سیستم‌عامل ۴ سال به راحتی شما را مشغول خواهد کرد و می‌توانید مطمین باشید پس از آن بازهم مطالب جدیدی برای یادگیری وجود خواهند داشت! پس خوره‌های کامپیوتری از آن لذت وافری خواهند برد و هرگز آنرا رها نخواهند کرد.
برخلاف ویندوز، در گنو/لینوکس راحت‌تر هستید تا بسیاری از کارهای پیکربندی و سیستمی را از خط فرمان بسیار قدرتمند و عالی آن انجام دهید. با اینکه برای بسیاری از امور مانند ویندوز ابزارهای گرافیکی طراحی شده است، یک کاربر حرفه‌ای واقعا از خط فرمان گنو/لینوکس لذت خواهد برد. خط فرمان ویندوز را اصلا می‌توان خط فرمان نامید؟

گنو/لینوکس : بهشت برنامه نویسان!

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

گنو/لینوکس : یک جعبه ابزار کامل

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

گنو/لینوکس : یکی از زیباترین دستاوردهای بشری

گنو/لینوکس در سایه همکاری و تبادلات علمی هزاران نفر در سرتاسر جهان ایجاد شده و توسعه یافته است. این همکاری چنان گسترده و زیبا بوده و هست، که به سیستم‌عامل گنو/لینوکس لقب «یکی از زیباترین دستاوردهای همکاری جمعی بشر» داده شده است. فرهنگ حاکم در جامعه گنو/لینوکس و بازمتن، فرهنگ کمک، اشتراک اطلاعات و تلاش برای بهبود هرچه بیشتر محصولات و «انجام هرکاری که از دستت برمی‌آید» است. هرکس که می‌خواهد با این سیستم‌عامل کار کند، باید تمامی دیدگاه‌ها و عقاید قبلی خود را درباره نرم‌افزارها و سیستم‌عامل کنار گذاشته و با یک دیدگاه جدید و طرز فکر متحول شده وارد دنیای گنو/لینوکس شود، زیرا با فرهنگ حاکم متفاوتی روبرو خواهد بود. گنو/لینوکس نوید دهنده آزادی است.
منبع:http://www.academist.ir
+ نوشته شده در  یکشنبه بیست و ششم مهر 1388ساعت 15:14  توسط حمید رضا حباب | 
SVG زبانی برای توصیف گرافیک ۲ بعدی و برنامه های گرافیکی در XML است .
▪ این تکنولوژی مخفف کلمات Scalable Vector Graphics میباشد .
▪ SVG برای ایجاد گرافیک های برداری در صفحات وب بکار میرود.
▪ با زوم روی گرافیک کیفیت پایین نمی آید .
▪ هر المانی که در SVG می بینید میتواند نقاشی شود .
▪ SVG یکی از توصیه های کنسرسیوم w۳ میباشد .
SVG نسخه ۱.۱ در ژانویه ۲۰۰۳ برای اولین بار توسط W۳C توصیه شد . شرکت های Sun Adobe, Apple, IBM, Kodak ازجمله شرکت هایی بودند که بر روی این پروژه کار کرده اند .
‌● مزایای SVG نسبت به سایر فرمت های موجود مانند GIF , JPG :
▪ این فرمت توسط برنامه های بسیاری قابل خواندن است ، حتی notepad !
▪ حجم این فایل ها از فرمت های پیکسلی کم تر است .
▪ این عکس ها قابلیت تغییر اندازه بدون از دست دادن کیفیت را دارند .
▪ متون نوشته شده در این عکس ها بصورت TEXT بوده و قابل انتخاب و جستجو میباشد !
▪ SVG با تکنولوژی جاوا کار میکند .و یک استاندارد است .
▪ فایل های SVG کاملا XML هستند .
قابل مقایسه ترین برنامه با SVG را میتوان Flash نامید . با این تفاوت که SVG یک استاندارد بیش از فلش دارد و آن موازی بودن تکنولوژی آن با استاندارد هایی مانند XSL و DOM است . در ضمن فلش یک تکنولوژی اوپن سورس نیست . تنها مشکلی که پیش پای SVG قرار دارد این است که هنوز تمام مرورگر ها بصورت کامل از آن پشتیبانی نمی کنند . گرچه میتوان آینده SVG را روشن توصیف کرد . زیرا بنیاد موزیلا و مایکروسافت هر دو برنامه هایی برای پشتیبانی از SVG در مرورگر هایشان دارند . همچنین برنامه Adobe Golive ۵ بطور کامل از ویرایش SVG پشتیبانی میکند و ادیتور های آن درحال گسترش هستند . باید بدانید که فایل های SVG با پسوند .svg ذخیره میشوند .
● دیدن فایل های SVG در مرورگر :
برای دیدن فایل های SVG در مرورگر شما باید پلاگین Adobe SVG viewer را در سیستم خود نصب کرده باشید. البته اگر از فایرفاکس ۱.۵ استفاده میکنید نیازی به دانلود این پلاگین نیست .چون مرورگر فایرفاکس شما بصورت کامل ازین تکنولوژی استفاده میکند . دانلود پلاگین SVG Viewer
● لیستی از منابع اجرایی SVG
مثالی از SVG در کد های XML (رسم دایره بکمک SVG):

"http://www.w۳.org/Graphics/SVG/۱.۱/DTD/svg۱۱.dtd">
xmlns="http://www.w۳.org/۲۰۰۰/svg">
stroke-width="۲" fill="red"/>

برای دیدن مثال فوق بصورت اجرا شده با یک مرورگر که ازین برنامه پشتیبانی کند به لینکView example بروید . توضیح المنت های کد فوق
برای نشان دادن SVG در فایل های HTML میتوان از ۳ کد برای این کار استفاده کرد :
▪ تگ Embed
▪ تگ Object
▪ تگ iframe
جهت توضیحات بیشتر به بخش آموزشی SVG در W۳schools مراجعه کنید .
● RSS چیست ، چگونه یک RSS بسازیم ؟
RSS برای تبادل اطلاعات کوتاه مانند لینک ها و سرتیتر مقالات ابداع شد و به کاربران اجازه میدهد تا متون کوتاه خبری و لینک های سایت هایی که RSS دارند را بصورت سریع مرور کنند .
RSS مخفف Really Simple Syndication میباشد که بشما اجازه میدهد محتویات سایت خود را دسته بندی کرده و با یک فرمت سریع و استاندارد تیتر مقالات و اخبار سایت خود را در دسترس دیگران قرار دهید. فرمت فایل های RSS همان XML است. و بصورت اتوماتیک آپدیت میشود.
بدون وجود RSS کاربران باید هر روز سایت شما را چک کنند تا بتوانند از تازه های سایت شما باخبر شوند . اما با این تکنولوژی کاربران RSS چندین سایت را در یک برنامه RSS aggregator (یا RSS خوان) در کنار هم می بینند و تایتل نوشته های اخیر سایت شما را بدون مراجعه به سایت شما می بینند .
● RSS برای چه سایت هایی مناسب است ؟
اگر سایت شما مثلا ۶ ماه یکبار یا سالی یکبار بروز می شود ، طراحی خروجی RSS برای آن مفید نخواهد بود . RSS برای سایت هایی مناسب است که مرتبا بروز رسانی می شوند . مانند وبلاگ ها ، سایت های خبری و ...
▪ تاریخچه ای از RSS :
بد نیست بدانید که طراحی اولیه RSS توسط Dave Winer انجام پذیرفت و شرکت نت اسکیپ و OReilly از حامیان پیشرفت آن بودند. نسخه های معروف آن ۰.۹۱ و ۱.۰ و ۲.۰ است . ( RSS نسخه ۱ بدلیل استفاده از استاندارد RDF پیچیده تر و سخت تر از دوتای دیگر است).
یک مثال از فرمت RSS : فایل های RSS از گرامر دستوری ساده ای استفاده می کنند:

[URL="http://www.macromediax.com/"]http://www.macromediax.com[/URL]
macromediax Tutorials
[URL]http://www.macromediax.com/rss[/URL]

▪ RSSآموزش ساخت
اولین خط دستور فوق xml declaration است که نسخه XML و encoding صفحه را مشخص میکند. خط دوم المنت RSS و نسخه آنرا مشخص میکند. در خط سوم تگ قرار دارد . سه خط بعدی تایتل صفحه را با لینکش تعریف میکنند . ۵ خط بعدی تگ می باشد . این تگ همان چیزی است که شما میخواهید آنرا در RSS خود نشان دهید . شما می توانید چندین تگ item پشت سر هم قرار دهید. دو خط انتهایی نیز تگ های باز را میبندد.
RSS در اصل بیانی متفاوت ازXML میباشد و چون وجود خود را از XML دارد باید هنگام ساخت آن به نکات زیر توجه داشته باشید :
ـ تمام المنت های XML باید تگ بسته داشته باشند.
ـ تگ های xml به کوچکی و بزرگی حروف حساس هستند
ـ تودرتو قرار دادن المنت های xml باید بصورت کاملا صحیح انجام شود.
ـ نحوه نوشتن کامنت در RSS شبیه HTML است :
□ پوبلیش نهایی RSS سایتتان:
کد های خود را که نوشتید با فرمت rss.xml روی سایت خود قرار دهید و آدرس آنرا با عنوان RSS روی صفحات سایتتان قرار دهید . حالا سایت شما هم خروجی RSS دارد.

آفتاب
+ نوشته شده در  یکشنبه چهارم مرداد 1388ساعت 11:17  توسط حمید رضا حباب | 

Firmware چیست؟
Firmware چیست؟

جواب دادن به اين سؤال كمي پيچيده است. تا حدودي مي‌توان گفت كه با يك <مفهوم> سر و كار داريم؛ مفهومي به نام <ميان‌افزار>؛ موجوديتي كه نه سخت‌افزار است نه كاملاً مي‌توان آن را نرم‌افزار دانست. بهتر است كمي بيشتر توضيح دهيم. براي مديريت هر سخت‌افزاري يا بهتر بگوييم براي استفاده بهينه از امكانات سخت‌افزاري، نيازمند يك سيستم مديريتي هستيم كه توانايي مديريت و زمانبندي اجرا و كنترل فرآيندها و پردازش‌ها را داشته باشد. در مدل‌هاي پيشرفته (مانند انواع كامپيوتر، برخي از مدل‌هاي گوشي موبايل و انواع Handheld) نام اين سيستم مديريتي سيستم‌عامل و در مدل‌هاي ساده‌تر (مانند انواع پخش‌كننده MP۳، انواع ساده گوشي موبايل همانند نوكيا ۱۱۰۰ و انواع ساده‌تر و دستگاه‌هاي ساده‌تر مانند انواع رايتر) نام آن Firmware يا به فارسي، ميان‌افزار است.
در انواع پيشرفته، كار ميان‌افزار ترجمهِ دستورات نرم‌افزاري به زبان قابل فهم براي سخت‌افزار و در انواع ساده‌تر، مثلاً در يك پخش‌كننده MP۳، تفسير فرامين صادر شده از طريق دكمه و درخواست اجراي فرمان مورد نظر از سيستم يا مدارات موجود در دستگاه است.
محل دقيق ميان‌افزار كمي بالاتر از سخت‌افزار است. در واقع مي‌توان اظهار داشت كه اولين نرم‌افزار مرتبط ( يا حتي تنها نرم‌افزار) با سخت‌افزار، ميان‌افزار است. برنامه‌نويسان مي‌دانند كه محل قرارگيري ميان‌افزار، دقيقاً پايين‌تر از اسمبلر است.
ميان‌افزارها را در كارگاه يا كارخانه به وسيله دستگاه‌هايي به نام Emulator در حافظه‌هاي قابل برنامه‌ريزي و فقط خواندني موسوم به Programable Read- Only Memory) PROM) قرار مي‌دهند. در واقع اين حافظه‌ها را به وسيله Emulator برنامه‌ريزي مي‌كنند. يك نمونه از انواع اين حافظه‌ها همان بايوس كامپيوتر است كه ميان‌افزاري را (همان تنظيمات بايوس) نيز اجرا مي‌كند. محتويات اين حافظه‌ها نيز ايستا است و پس از خاموش شدن دستگاه به اطلاعات موجود در آن‌ها صدمه‌اي وارد نمي‌آيد.
گاهي ممكن است در زمان طراحي و توليد اين ميان نرم‌افزارها (كه در مرحله طراحي و توليد گهگاه به اندازه يك برنامه سنگين محاسباتي زمان‌بر هستند) مشكلاتي به وجود آيد كه تنها در زمان عملكرد مشخص شوند. از اين رو توليدكنندگان سخت‌افزار مرتباً به بررسي ميان‌افزارهاي نصب شده اقدام مي‌كنند و در صورت وجود خطا يا ايراد نرم‌افزاري، اقدام به برطرف نمودن آن ايراد مي‌كنند و نسخه بروز شده آن ميان‌افزار را منتشر مي‌سازند. از اين رو بروز‌رساني ميان‌افزار سخت‌افزار‌هاي نصب شده در كامپيوترمان، گوشي موبايلمان، پخش‌كننده MP۳ و دستگاه‌هاي سخت‌افزاري كه كنترل شبه‌‌نرم‌افزاري دارند، كاري عاقلانه و سنجيده است.
توجه‌در استفاده از دستورالعمل‌هاي ارائه شده نهايت دقت را به كار ببريد.
عصر شبكه هيچ‌گونه مسئوليتي را در خصوص وارد آمدن صدمه‌ و خسارت به دستگاه شما نمي‌پذيرد.
رايتر شما چه CD Writer باشد، چه DVD Writer، فارغ از نوع، مدل و نشان تجاري دستگاه، داراي يك Firmwareاست. مانند تمام نرم‌افزارها، Firmware نيز مرتباً از سوي سازنده ارتقا پيدا مي‌كند. دليل اين كار نيز كاملاً مشخص است؛ برطرف كردن مشكلات و نواقصي كه در زمان طراحي يا توليد و اجراي آن به‌وجود مي‌آيند.
اين مشكلات ممكن است در مراحل اوليه طراحي و توليد خود را نشان ندهند. معمولاً پس از اجراي نرم‌افزار، نمايش انواع باگ‌ها و مشكلات منطقي و غير‌منطقي شروع مي‌شود و شب‌هاي به‌يادماندني‌اي را براي تيم طراحي به يادگار خواهد گذاشت. از اين‌رو هر توليد‌كننده‌اي براي اين‌كه ضمن حفظ اعتبار خود مشكلاتي را كه ممكن است در زمان استفاده توسط كاربر تشخيص داده شوند، برطرف سازد، اقدام به تهيه نسخه‌هاي بهبود يافته Firmware دستگاه‌هاي توليدي خود مي‌نمايد.
توجه داشته باشيد كه ممكن است در زمان استفاده از درايو نوري خود، هرگز متوجه مشكلات موجود نشويد، اما مطمئن باشيد اگر با روشي كه در ادامه معرفي خواهد شد، آگاهي يافتيد كه Firmware بروز شده‌اي از سوي توليد كننده ارائه شده است، به طور حتم مشكل يا مشكلاتي در Firmware دستگاه وجود دارد. بنابراين مي‌توانيد اقدام به بروز‌كردن دستگاهتان كنيد.

مراحل كار

اول از همه بايد نوع و مدل درايو موجود را تشخيص دهيد. براي اين‌كار بهتر است از خود ويندوز كمك بگيريد. البته نرم‌افزارهايي هم وجود دارند كه به بررسي سخت‌افزارهاي نصب شده روي كامپيوتر مي‌پردازند و نشان تجاري، مدل و اطلاعات مختلفي از جمله نگارش و مدل Firmware هر دستگاه را به شما ارائه مي‌دهند.
از قسمت System Properties تب Hardware را انتخاب نماييد و روي دكمه Device Manager كليك كنيد. روي علامت (+) عبارت DVD/CD-ROM Drives كليك كنيد. فهرست درايوهاي نوري موجود روي كامپيوترتان را مشاهده خواهيد كرد. در اين فهرست نام هر دستگاه به همراه مدل آن آورده شده است. به عنوان مثال، به چنين عبارتي برخورد خواهيد كرد:
SONY DVD RW DRU-۸۲۰۸A
اين عبارت علاوه بر نام توليد‌كننده، نوع و مدل دستگاه را نيز نمايش مي‌دهد. اگر از اين روش لذت نمي‌بريد، مي‌توانيد از Nero كمك بگيريد. در مجموعه نرم‌افزاري Nero، برنامه‌اي به نام Nero Info Tool وجود دارد كه از همان ابزارهايي است كه تمام زير‌و‌بم‌‌هاي موجود و مرتبط با درايوهاي نوري را بررسي مي‌كند. مزيت استفاده از اين ابزار اين‌است كه نگارش Firmware درايو را نيز نمايش مي‌دهد.
پس از اين‌كه اطلاعات مورد نظر را استخراج كرديد، به اينترنت متصل شويد و در موتور جست‌و‌جوي گوگل، از كليد‌واژه تركيبي زير براي يافتن فايل مورد نظر استفاده كنيد:
Properties + Firmware + Download&Your Drive name
در عبارت بالا به جاي Your Drive name & Properties نام و مدل دستگاهتان را كه در مرحله قبل استخراج كرديد، بنويسيد. به عنوان مثال، من براي DVD Writer خود بايد چنين واژه‌اي را جست‌و‌جو كنم:
SONY DVD RW DRU-۸۲۰A + Firmware + Download
توجه كنيد كه تنها قسمت اول را تغيير دهيد. با اين‌كار (استفاده از اين كليدواژه) گوگل در سايت‌هايي جست‌و‌جو خواهد كرد كه حاوي لينك‌هايي به منابعي هستند كه شامل آن سه كليد واژه ذكر شده مي‌گردند. مطمئن باشيد كه اولين يا دومين هينت (نتيجه يك جست‌و‌جو در يك موتور جست‌و‌جو، تعدادي هينت يا تطابق است كه به صورت فهرست شده نمايش داده مي‌شوند) شما را به هدف خواهد رساند.
معمولاً تمام تلاش‌هاي ما سرانجام به دانلود يك فايل چندصد كيلوبايتي منتهي خواهد شد. توجه داشته باشيد كه علاوه بر خود توليد كننده، شركت‌ها و حتي اشخاص ديگري نيز اقدام به تهيه Firmware براي دستگاه‌ها مي‌نمايند. بر اساس تجربه بهتر است از نسخه‌اي استفاده كنيد كه توسط خود سازنده ارائه شده است.
پس از اين‌كه فايل يا فايل‌ها را دانلود كرديد، زماني فرا مي‌رسد كه ‌بايد مهم‌ترين و شايد خطرناك‌ترين قسمت كار را انجام دهيد. در اين مرحله بايد يك فايل اجرايي را اجرا كنيد تا روند آپديت‌كردن بايوس به صورت خودكار طي شود. البته قبل از انجام هركاري، روشي را كه سازنده اعلام كرده است، به دقت مطالعه كنيد. ممكن است براي اين كار لازم باشد تغييراتي را به صورت موقت در آرايش سخت‌افزاري كامپيوترتان اعمال كنيد. ممكن است نياز باشد زماني كه شما دو درايو را به يك كابل متصل كرده‌ايد، يكي را از كابل موقتاً جدا نماييد و پس از آپديت شدن بايوس درايو مورد نظرتان، دوباره درايو ديگر را به كابل متصل كنيد.
با اين حال قدر مسلم اين است كه دقت داشته باشيد فارغ از نوع و مدل دستگاه، زماني كه برنامه مشغول آپديت كردن بايوس درايوتان است (كه مدت زمان اندكي است) هرگز برنامه‌هاي ديگري را اجرا نكنيد. قبل از اجرا، اتصال به اينترنت خود را قطع نماييد و برنامه آنتي‌ويروس خود را نيز غير‌فعال كنيد. همچنين هر نوع CD و يا DVD را از درايو خارج كنيد.
دقت كنيد كه ممكن است در طي اين زمان چراغ‌ يا چراغ‌هاي روي درايو روشن شوند يا چشمك بزنند. اين عمل غير عادي نيست. تعجب نكنيد و هرگز اقدام به باز كردن درِ درايو نكنيد. همچنين سعي كنيد برق كامپيوتر قطع نشود! چون ممكن است مجبور شويد درايو را براي تعمير به گارانتي بفرستيد يا در بدترين شكل ممكن، مجلس ختمي براي درايو محبوبتان برگزار كنيد.
اما از هيچ چيز نترسيد. شخصاً بارها اين‌كار را انجام داده‌ام و حتي درايوهاي دوستان و آشنايان را نيز از اين آزمايش‌ها گذرانده‌ام. خيالتان راحت باشد. اين كار را اگر بر اساس روشي كه از سوي توليد‌كننده ارائه شده است انجام دهيد، هيچ مشكلي براي درايو‌تان به وجود نخواهد آمد.
پس از اين‌كه Firmware درايوتان را آپديت كرديد، مطمئناً درايوتان بي‌عيب و نقص‌تر از گذشته كار خواهد كرد، اما انتظار نداشته باشيد كه فرآيند رايت كردن اطلاعات با سرعت بيشتري انجام شود يا سخت‌افزار دستگاهتان تغيير كند. اما مطمئنا خطاهاي كمتري در زمان خواندن و نوشتن انواع ديسك‌ها بروز خواهد نمود.
Pasted from
+ نوشته شده در  چهارشنبه پنجم فروردین 1388ساعت 12:16  توسط حمید رضا حباب | 

روبي؛ زبان برنامه‌نويسي مولد
روبي؛ زبان برنامه‌نويسي مولد
نويسنده: آويد افضل

هرچند سال يک‌بار يک اتفاق بزرگ در جهان برنامه‌نويسي، مسير برنامه‌نويسي را تغيير مي‌دهد. زبان برنامه‌نويسي روبي، يکي از اين اتفاق‌هاي بزرگ است.
روبي1 يک زبان ديناميک، همه‌منظوره، سطح بالا و شيي‌گرا2 است که دستورالعمل‌هاي آن از پرل3 و ديگر ويژگي‌هاي آن از اسمال‌تاک1 الهام گرفته شده است. روبي همچنين از ساختارگرايي و انعکاس پشتيباني مي‌کند. علاوه بر استفاده از سيستم ديناميک، مديريت حافظه در روبي کاملا خودکار است. بنابراين روبي از بسياري از جهات شبيه پيتون، پرل و ليسپ است.

پيدايش

روبي در اواسط دهه 1990 در ژاپن و توسط يوکي هيرو ماتسوموتو که به متز5 نيز معروف است پا به عرصه وجود گذاشت. ماتسوموتو در مورد نامگذاري روبي مي‌گويد: «روبي که در لغت به‌معناي ياقوت است سنگ ماه تولد يکي از همکاران من است.» روبي سنگ متولدين ماه جولاي است.
ماتسوموتو که خود به زبان‌هاي ليسپ، پرل، اسمال‌تاک و پايتون6 مسلط است، در مورد دليل پيدايش روبي مي‌گويد: «من بهدنبال يک زبان اسکريپت‌نويسي مي‌گشتم که از پرل قدرتمندتر و از پايتون شيي‌گراتر باشد. از آنجا که چنين زباني وجود نداشت، تصميم گرفتم زبان ايده‌آل خود را پديد آورم.» به اين ترتيب روبي عضو جديدي از خانواده پرل و پايتون به‌شمار مي‌رود.

امکانات

روبي داراي کتابخانه‌هاي گسترده‌اي است که به همه نيازهاي برنامه‌نويسان به‌خوبي پاسخ مي‌دهد. روبي همچنين کلاس‌هاي FTP، پشتيباني از CGI، پارسرهاي XML، کتابخانه‌هاي پايگاه‌هاي داده، GTK و Qt و حتي يک کتابخانه BTree برخوردار است. کتابخانه‌هاي روبي قابل اتصال به کتابخانه‌هاي پايتون هستند و اين مساله پايه قويتري را براي برنامه‌نويسي روبي فراهم مي‌کند. روبي توسط اکثر سيستم عامل‌ها از جمله لينوکس، Mac OS X، مايکروسافت ويندوز، ويندوز CE، و يونيکس پشتيباني مي‌شود. اجراي روبي روي يونيکس بهترين کارايي را دارد.
متغيرهاي روبي در پنج سطح جهاني7، محلي، کلاس، بلوک و نمونه8 تعريف مي‌شوند. پشتيباني از مديريت استثناها و عبارات منظم، جمع‌آوري اطلاعات زايد به‌طور خودکار، بازنويسي اپراتورها، قابل‌حمل بودن و برخورداري از کتابخانه‌هاي استاندارد بزرگ از مهم‌ترين ويژگي‌هاي روبي به‌شمار مي‌روند.
نسخه استاندارد روبي با استفاده از C نوشته شده است و طراحي آن به‌گونه‌اي است که تنها در يک مرحله تفسير مي‌شود. اکنون، نسخه‌هاي متعددي از زبان روبي وجود دارد که هريک با ديدگاهي خاص خود، روبي را پياده‌سازي کرده‌اند. مهم‌ترين اين نسخه‌ها عبارتند از: MRI، JRuby و IronRuby. پياده‌سازي موسوم به MRI9 متداول‌ترين نسخه مورد استفاده است و پس از آن JRuby قرار دارد که يک پياده‌سازي مبتني بر جاوا است. هر سه نسخه فوق کد را در زمان نوشته شدن کامپايل مي‌کنند. اين ويژگي از مهم‌ترين توانايي‌هاي اين سه نسخه از روبي است. زيرا برنامه‌نويس به‌سرعت از اشتباه خود آگاه مي‌شود.

اصول بنيادي

روبي از يک اصل ساده که اصل به‌حداقل رسانيدن غافلگيري (POLS) ناميده مي‌شود، پيروي مي‌کند: زبان برنامه‌نويسي بايد به‌نحوي رفتار کند که سردرگمي و غافلگيري برنامه‌نويس را به حداقل برساند. ماتسوموتو مي‌گويد: «روبي به‌منظور افزايش سرعت برنامه‌نويسان در توليد کد و تبديل برنامه‌نويسي به کاري جذاب و سرگرم‌کننده نوشته شده است. طراحي واسط کاربر روبي نيز از همين اصل پيروي مي‌کند.» او همچنين تاکيد مي‌کند که روبي نياز‌هاي انسان را بر نياز‌هاي رايانه مقدم مي‌شمارد.
به‌عقيده ماتسوموتو، مردم و به‌خصوص مهندسان رايانه، بر ماشين‌ها تمرکز مي‌کنند. آنها در هنگام طراحي سيستم‌ها به اين مي‌انديشند که چه کاري سيستم را سريع‌تر و بهره‌وري آن را بيشتر مي‌کند. اما آنچه که ما به آن نياز داريم وجود سيستم‌هايي است که براساس ساده‌تر کردن کار ما با ماشين‌ها يا آسان‌تر کردن برنامه‌نويسي طراحي شده باشند.

سرعت توسعه کد

سرعت کدنويسي برنامه‌نويسان در طي سال‌هاي گذشته رشد چشمگيري داشته است. هرچند آمار‌هاي رسمي در اين زمينه موجود نيست، اما به‌طور متوسط هر پنج سال يک‌بار سرعت آماده‌سازي نرم‌افزارها دو برابر مي‌شود.
از اين گذشته اکنون منحني توليد نرم‌افزارهاي قابل نگهداري، رشد خطي دارد. بخش اعظم اين سرعت مربوط به ابزارهايي است که برنامه‌نويسان استفاده مي‌کنند و در قلب اين ابزارها زبان برنامه‌نويسي قرار دارد.
زبان‌هاي برنامه‌نويسي در اصل مشابه يکديگرند. در مقايسه زبان‌هاي گوناگون، شباهت‌هاي کلي زبان‌ها از تفاوت‌هاي آنها بيشتر است. با اين حال، تفاوت‌هاي موجود در ميان زبان‌هاي مختلف اثر قابل‌‌ملاحظه‌اي بر حل مسايل، يافتن راه حل و برهم‌کنش انسان و رايانه دارند. به‌عنوان مثال، در زبان ليسپ، زباني که زيبايي فوق‌العاده و سادگي در مفاهيم را در هم آميخته است، بخش عمده توانايي‌هاي زبان در خدمت رايانه قرار گرفته است و نه در خدمت انسان. زباني که تفسير آن ساده است، الزاما زبان ساده‌اي براي برنامه‌نويسي نيست و اين مساله‌اي است که اغلب برنامه‌نويسان آن را تجربه کرده‌اند. شگفت انگيزترين ويژگي ليسپ اين است که نشان مي‌دهد چگونه مي‌توان با کمترين تعداد قوانين يک زبان رايانه‌اي قدرتمند خلق کرد. در مقابل، روبي چنان هنرمندانه نوشته شده است که کد آن مانند شعر به‌نظر مي‌رسد.
يک مطالعه بسيار جالب در زمينه سرعت توسعه کد نشان مي‌دهد که سرعت توسعه کد رابطه مستقيم با تعداد خطوط کد نوشته شده دارد. تعداد خطوط کد در پروژه‌هاي نوشته شده با++ C و جاوا تقريبا دو برابر تعداد خطوط پروژه پايتون يا پرل است. به اين ترتيب توسعه کد در C++ و جاوا دو برابر زمان مي‌برد. نوشتن کد با روبي سرعت توسعه کد را به مراتب بيشتر از پرل و پايتون افزايش مي‌دهد و در اين زمينه از آنها پيشي مي‌گيرد. دستورات روبي بسيار ساده و قابل درک هستند و کد روبي به‌زبان طبيعي بسيار نزديک است. به‌عنوان مثال، در روبي از نقطه‌‌ويرگول (سمي‌کالن) استفاده نمي‌شود. عدم وجود عواملي نظير نقطه‌‌ويرگول که در برنامه‌نويسي وقفه ايجاد مي‌کند، سبب مي‌شود که برنامه‌نويسي يک روند ساده‌تر و روان‌تر پيدا کند. در حقيقت سادگي دستور زبان روبي و سهولت تعريف کردن کلاس‌هاي جديد سبب مي‌شود که نوشتن کلاس‌ها ساده شده و از آنها در تست کد در حد کلاس استفاده شود. در نتيجه طراحي شيي‌گرا بسيار سريع و ساده مي‌شود. به اين ترتيب برنامه‌نويس درصدد جستجوي راه‌حل‌هاي ديگر بر نمي‌آيد.

ويژگي‌هاي انحصاري

برخي از ويژگي‌هاي روبي، در زبان‌هاي ديگر وجود ندارند. روبي از ساختار closure پشتيباني مي‌کند. در اين ساختار مسووليت هر بخش از کد بر عهده شيي مناسب قرار مي‌گيرد و کد حاصل کد خواناتري خواهد بود. نوشتن حلقه‌هاي for و while در روبي نادر است. همچنين پياده‌سازي ساختارهايي نظير "each" که احتمال رخداد خطا در آن کمتر است، به‌سادگي امکان‌پذير است.
در پروژه‌هاي پيچيده مساله قابليت نگهداري کد، به يکي از مسايل مورد بحث تبديل مي‌شود. طراحي شيي‌گراي مناسب به برنامه ساختار مناسب داده و کد برنامه را منطقي و واضح مي‌کند. آنچه که مسلم است، اين است که همه زبان‌هاي شيي‌گرا تا حدي از شيي‌گرايي پشتيباني مي‌کنند. به‌عنوان مثال زبان C++ بيشترين پشتيباني را از شيي‌گرايي به‌عمل مي‌آورد در حالي‌که جاوا در اين زمينه اندکي ضعيف‌تر عمل مي‌کند. اما روبي از نظر سادگي در نحوه استفاده و قابل پيش‌بيني بودن از همه زبان‌هاي ديگر پيشي گرفته است.

محدوديت‌ها

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

قالب کاري

قالب کاري روبي، روبي‌روي‌ريل10 يا به اختصار ROR ناميده مي‌شود. ROR يک قالب کد باز تحت وب است که در ميان توسعه‌دهندگان کدهاي تحت وب طرفداران زيادي دارد. ROR براي توسعه پروژه‌هاي کوچک و مبتني بر سيستم کلاينت-سرور مناسب است. با استفاده از ROR برنامه‌نويس تنها بايد براي موارد خاصي که در قالب پيش‌بيني نشده است کد بنويسد. به‌عنوان مثال اگر در برنامه کلاسي به‌نام "فروش" وجود داشته باشد، در پايگاه داده‌ها جدولي به همين نام ايجاد مي‌شود. برنامه‌نويس تنها زماني نياز به کدنويسي مجدد دارد که نام جدول به "کالاهاي فروخته شده" تغيير کند. به اين ترتيب استفاده از ROR حجم کد‌نويسي را کاهش مي‌دهد. از ديگر مزاياي ROR مي‌توان به‌وجود کتابخانه‌هاي گسترده جاوا اسکريپت و خروجي به فرم HTML و XML اشاره کرد. ROR در سال 2007 در در سازمان ثبت اختراعات آمريکا موسوم به USPTO به ثبت رسيده است.

پي نوشت :

1. Ruby
2. Object Oriented
3. Perl
4. Smalltalk
5. Matz
6. Python
7. Global
8. Instance
9. Matz’s Ruby Interpreter
10. Ruby on Rails

منبع:جام جم
+ نوشته شده در  شنبه یکم فروردین 1388ساعت 23:38  توسط حمید رضا حباب | 

بازار کار برنامه‌نویس‌ها

برداشت اول‌

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

 

html

برداشت دوم‌

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

از میان سایت‌ها مشابه،سایت elance.com به نظرم پرسروصداتر رسید و تصمیم گرفتم به‌طور جدی آن را بررسی كنم.

 

اقیانوس پروژه‌ها و برنامه‌نویس‌ها

در اولین نگاه، چیزی كه در این سایت جلب نظر می‌كند، آمار تعداد برنامه‌نویسان آماده به كاری است كه در هر دسته و رشته از برنامه‌نویسی حی و حاضرند. آمارها بسیار جالب و معنی‌دار هستند. ركورد‌ دار این عرصه برنامه‌نویسان PHP با بیش از چهارده هزار پروفایل هستند. پس از آن برنامه‌نویسان زبان SQL و پلتفرم دات‌نت به ترتیب با 12935 و 11109 نفر در ردیف پرشمارترین طبقه‌بندی‌ها و زبان HTML با 10655 و جاوا با 10523 نفر بیشترین تعداد پروفایل‌های جویندگان كار را به خود اختصاص داده بودند.

در حال حاضر، كارفرمایان بیش از هجده‌هزار پروژه آماده واگذاری به برنامه‌نویسان طی ماه گذشته معرفی كرده‌اند و بالای 134 هزار نفر برنامه‌نویس در این سایت پروفایل بازكرده‌اند.

 

programming

رقابت شدید و نفس‌گیر

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

در اینجا آدم‌هایی با مهارت‌های بالا، دانش خود را با بهای تقریبی بین ساعتی 15 تا 30 دلار به حراج گذاشته‌اند.

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

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

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

فكر می‌كنم موضوع این سایت و بازارهای مشابه آن در اینترنت به اندازه كافی جالب باشد تا قوه تخیل شما را از بابت ابعاد اقتصادی و فنی و علمی ماجرا به كار اندازد. دیگر به تجزیه و تحلیل من نیازی نیست. تو خود حدیث مفصل بخوان از این مجمل... .

 

بهروز نوعی پور

+ نوشته شده در  سه شنبه بیست و هفتم اسفند 1387ساعت 10:46  توسط حمید رضا حباب | 

مهندس کامپیوتر کیست؟

کاری که مهندس کامپیوتر انجام می‌دهد دقیقاً با اصول هفتگانه‌ای که در مقاله "مهندس کیست؟" عنوان شد، مطابقت دارد. خواه در حوزه نرم افزار و اطلاعات باشد. خواه در حوزه سخت افزار و دستگاه کامپیوتر. دو نکته جالب در این ارتباط آن است که اولاً با جایگزین کردن عبارت «کامپیوتر» و «سیستم‌ها و تجهیزات کامپیوتری» در اصول هفتگانه، یک تعریف جامع و با ارزش از شغل «مهندسی کامپیوتر» به دست می‌آید که می‌تواند مورد استفاده دانش آموزان علاقه مند به ورود به دانشگاه‌ها و تحصیل در رشته کامپیوتر قرار گیرد.

مهندس کامپیوتر

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

 

1-  پژوهشگر صنعتی

2-  توسعه دهنده سخت افزاری یا نرم افزاری (Developer)

3-  مهندس طراح،

4-  مهندس ساخت،

5-  مهندس تولید،

6-  کارشناس یک سیستم یا ابزار خاص،

7-  مدیر (پروژه کامپیوتری، بخش IT، شرکت کامپیوتری و...).

هر یک از این هفت شغل واقعاً یک امر مهندسی است. علی الخصوص باید روی مهندس بودن موارد 1، 2، 6 و 7 تأکید کنم. توجه داشته باشید که مورد 1 متفاوت از یک دانشمند است. یک شغل معروف در گروه 2، «برنامه نویسی» معمول و شناخته شده در سطح جامعه است. جالب این که یک برنامه‌نویس سیستم (System Programmer) را مانند برنامه‌نویسان توانمندی که سیستم عامل‌های لینوکس، ویندوز، مکینتاش، یونیکس و غیره را ساخته‌اند، کمتر می‌توان توسعه دهنده نامید، چون در واقع «طراح نرم افزار» هستند و به گروه 3 تعلق بیشتری دارند.

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

حتی شغل گروه هفت، مدیریت صنعتی در حوزه ی IT، نیز به معنای واقعی کلمه کار مهندسی است. با این تفاوت که متخصصان این گروه لزوماً باید قبلاً در بعضی از 6 مورد قبلی تجربه و دانش کافی داشته باشند. مسأله مدیریت در صنعت IT با توجه به این که اصولاً بعضی امور در کشور ما از بی نظمی و هرج و مرج خاصی برخوردار است، اهمیت فراوانی دارد!

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

 بهروز نوعی‌پور

تنظیم برای تبیان : هاجر ناظمی

+ نوشته شده در  سه شنبه بیست و هفتم اسفند 1387ساعت 10:21  توسط حمید رضا حباب | 

مهندس کیست؟

مهندس

به بهانه پنجم اسفند؛ روز مهندسی

این بحث ممکن است کمی مناقشه بر انگیز باشد، به همین دلیل تعریف واژه "مهندس" را از دائره المعارف بریتانیکا که یکی از معتبرترین کتاب‌های مرجع در جهان است قرض می‌گیرم و توضیحات خود را به آن اضافه خواهم کرد.

معنی تحت اللفظی واژه مهندس یا "engineer" هم در زبان فارسی و هم در ادبیات کشور انگلستان به توصیف ضعیف و نارسایی می‌انجامد. برخلاف ظاهر این کلمه، "مهندس" کسی که هندسه می‌داند نیست! همچنین engineer تنها تکنسین یا کارشناس ماشین آلات و موتورها (engines) نیست.

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

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

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

بنابراین به طور خلاصه -همانطور که در اکثر کتابهای مرجع جهان آمده است- می‌توان گفت عبارت انگلیسی "Problem  Solving" بهترین توصیف برای عمل مهندسی است. این ممکن است شامل جنبه‌های کیفی، کمی، فیزیکی، اقتصادی و غیره باشد. برای این‌که شغل و وظایف یک مهندس را به طور دقیق از شغل و وظایف دانشمند جدا کنیم، می‌توان هفت کار اصلی یک مهندس را به خاطر سپرد:

1. تحقیق (Research) علمی، فنی و صنعتی به منظور کشف را‌ه‌حل‌های تازه و سودمند.

2. توسعه(Development) فنی به منظور اعمال دستاوردهای تحقیقات موجود برای غلبه بر یک مشکل یا بهبود کمی و کیفی سیستم و ابزار.

3. طراحی(Design) یک یا چند ساختار، سیستم یا ابزار با بهره‌گیری از مدل‌های مهندسی، روش‌ها، نیازهای کنونی و شرایط خاص

4. ساخت(Construction) که براساس آن مهندس وظیفه دارد ضمن آماده‌سازی فضا و محیط تولید، رویه ساخت، کیفیت محصول، هزینه تمام شده و نحوه سازماندهی منابع و تجهیزات را مشخص کند.

5. تولید(Production) محصول یا سیستم که شامل "برنامه ریزی و زمان ‌بندی کار" (Planning)، انتخاب و مشخص کردن ترتیب فرآیندها، ابزارها، مواد اولیه، چیدمان (layout)، عناصر و اجزای سیستم نهایی(Components)، آزمایش، بازرسی و عیب‌یابی محصول است.

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

8. مدیریت(Management) ابزارها و سیستم‌ها به خاط تحلیل وضعیت گذشته و حال تجهیزات و دستگا‌ه‌ها، پیش‌بینی وضعیت آینده آن‌ها و سازماندهی منابع مالی، انسانی و اطلاعاتی موجود برای کسب نتایج بهتر در آینده.

 

بهروز نوعی‌پور

تنظیم برای تبیان : هاجر ناظمی

+ نوشته شده در  سه شنبه بیست و هفتم اسفند 1387ساعت 10:20  توسط حمید رضا حباب | 
نقل قول:امروز مطلبی در تک کرانچ خواندم که بسیار جالب بود، موضوع در مورد سقوط وب ۲ و ظهور وب ۳ بود که نویسنده تک کرانچ با استفاده از یک سری آمار بر گرفته از میزان جستجو در گوگل بر اساس واژه وب ۲ و وب ۳ به یک نتیجه گیری رسیده بود که وب ۲ در حال از بین رفتن و جایگزینی آن با واژه وب ۳ است . درمورد وب ۳ کمی جستجو کردم و به مطالب جالبی برخوردم .وب ۳ چیست؟
واژه وب ۳ نخستین بار توسط جان مارکف در سال ۲۰۰۶ در روزنامه نیویورک تایمز طی مقاله‌ای مطرح شد. در این مقاله او تحول و ظهور نسل جدیدی از سرویس‌های اینترنتی را پیش‌بینی کرده بود که ممکن است وب هوشمند نامیده شوند. بعضی از اجزا و اصطلاحاتی که او در مورد وب ۳ ذکر کرده بود، اینها بودند: وب معنایی، جستجوی زبانی طبیعی، مایکروفرمتها ( سرویس‌های تحت وب که بر اساس اطلاعات خواسته شده اطلاعات تکمیل‌تری در اختیار شما قرار می‌دهد) و تکنولوژی‌های هوش مصنوعی.

بر این اساس، وب ۳ را می‌توان در درک و احساس اطلاعات توسط ماشین و ارائه اطلاعاتی کامل براساس این درک برای رسیدن به نتایج مناسب‌تر و منطقی‌تر خلاصه کرد. البته تعریف دیگری برای وب ۳ نیز وجود دارد که توسط نوا اسپیواک یکی از پیشروان جهان پهنا وب پیشنهاد شده است. او پیش‌بینی کرده که دردهه سوم اینترنت ( سالهای ۲۰۱۰- ۲۰۲۰) تغییرات شگرفتی در وب ایجاد خواهد شد شامل :
۱- انتفال وب از شکل تکه تکه به طرحی کاملاً یک‌پارچه ۲- امکان اتصال به وب در همه مکان‌ها ۳- تکنولوژی‌های باز ۴- وب هوشمند ۵- پایگاه داده‌های جهانی ۶- اپلیکیشن‌های هوشمند .

 radarnetworkstowardsawebos

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

web30

بی شک با توجه به سرویس‌های جدیدی که هر روزه در وب امروز متولد می‌شوند، ممکن است به زودی شاهد به وقوع پیوستن تمام رویاهایی که در باب وب ۳ وجود دارد، باشیم چه بسا هم اکنون چندین گام، در جهت وب ۳ برداشته شده باشد.

 منابع: ویکی پدیا و howstuffworks

+ نوشته شده در  دوشنبه بیست و ششم اسفند 1387ساعت 12:14  توسط حمید رضا حباب | 

  نرم افزارهاى متن باز


نرم افزارهاى متن باز
منبع:روزنامه ايران
عده كثيرى از كاربران رايانه تصور مى كنند كه نرم افزار متن باز (open source) به معناى نرم افزارى است كه استفاده از آن آزاد و كامل است و كليه كدهاى منبع نرم افزار در اختيار آنها قرار خواهد گرفت در حالى كه اين تصور، تصورى اشتباه است. ارائه نرم افزارهاى متن باز شامل اصولى است كه اين اصول از سوى شركت هاى سازنده تحت نظر قرار مى گيرد و به شرح زير است:
۱- رايگان : اين دسته از نرم افزارها همواره رايگان عرضه مى شوند و براى استفاده از آن به هيچ مجوزى نياز نيست. در بعضى از مواقع محتواى نرم افزارهاى توليدى از چندين منبع مختلف جمع آورى مى شود و در اختيار كاربران قرار مى گيرد اما اينها نيز رايگان هستند اما در خصوص نسخه هاى اضافى نرم افزارها بايد شما پول پرداخت كنيد و شركت هاى سازنده نيز به راحتى از اين پول نمى گذرند.
۲- كدهاى منبع: كدهاى منبع نرم افزارهاى متن باز به راحتى و بنابر درخواست شما در اختيار شما قرار مى گيرد و در صورت نياز شما مى توانيد از اين كدها استفاده كنيد، اين كدها به گونه اى نوشته و طراحى مى شوند كه برنامه نويسان بتوانند با استفاده از آنها امكانات جديدى را به نرم افزار اضافه كنند و در حقيقت نرم افزار را توسعه دهند، در طراحى كدها نوشتن كدها به صورت گنگ و پيچيده امرى غيرقابل قبول به حساب مى آيد.
۳- صحت كدها: آن بخش از كدهاى منبع (source code) كه بدون هرگونه محدوديتى در اختيار برنامه نويسان قرار مى گيرد بايد صحت آنها به اثبات رسيده باشد تا تغيير در آنها باعث بروز مشكل در نرم افزار نشود، اين كدها ممكن است با اسامى مختلف نوشته شده باشند و يا از نرم افزارهاى مختلفى جمع آورى شده باشند.
۴- عدم بروز مشكل: تغيير در كدهاى نرم افزارهاى متن باز بايد به ترتيبى باشد كه براى هيچ كس ايجاد مشكل نكند اين كدها كه به مرور زمان توسط برنامه نويسان مختلف تغيير پيدا مى كنند و به تكامل مى رسند نبايد سبب بروز خسارت براى شخص و يا گروهى شود.
۵- عدم ايجاد مانع براى فعاليت هاى رقبا: در طراحى كدها نبايد تخريب رقبا در نظر گرفته شود و صرفاً بايد براساس اصول اساسى برنامه نويسى كدها طراحى و نوشته شود به علاوه كدها نبايد به گونه اى طراحى شده باشد كه تنها كاربران تجارى و بازرگانى از آن استفاده كنند و بايد براى كاربران خانگى نيز محدوديتى قائل نشده باشد.
۶- انتشار مجوز: پس از انتشار مجوز نرم افزار متن باز بايد همه كاربران امكان استفاده رايگان از آن را داشته باشند. براى استفاده از نرم افزار متن باز تنها داشتن يك مجوز كفايت مى كند و نيازى به اخذ مجوزهاى بيشتر براى استفاده از نسخه هاى بعدى وجود ندارد و در نسخه هاى پيشرفته تر نرم افزار نيز ديگر نيازى به تهيه مجوزهاى جديد نيست. به علاوه مجوزهاى صادرشده براى نرم افزارهاى متن باز نبايد استفاده از ساير برنامه ها را توسط كاربر محدود كند. به عنوان نمونه نبايد به گونه اى باشد كه كاربر مجبور به استفاده از برنامه هاى شركت خاصى براى استفاده از نرم افزار متن باز اوليه شود.
۷- استفاده از فناورى روز: با توجه به فناورى هاى پرشتاب كنونى خصوصاً در حوزه IT توليدكنندگان برنامه متن باز بايد به اصل تطابق با فناورى هاى روز توجه كافى داشته باشند و به علاوه فناورى به كار رفته نبايد مطابق با يك فناورى شخصى باشد بلكه بايد استانداردهاى بين المللى را رعايت كند.
در حال حاضر استقبال از نرم افزارهاى متن باز به قدرى افزايش يافته كه متخصصان حوزه IT گسترش آن را نوعى تهديد براى نرم افزارهاى ليسانس دار مانند سيستم عامل ويندوز شركت مايكروسافت تلقى مى كنند.
+ نوشته شده در  شنبه بیست و چهارم اسفند 1387ساعت 14:51  توسط حمید رضا حباب | 
10 زبان برنامه نویسی که باید آموخت
10 زبان برنامه نویسی که باید آموخت

نويسنده: سید احسان شریعتی
سایت eWeek با یکی از برنامه نویسان باسابقه با نام Wayne Duqaine که هم اکنون بخش توسعه نرم افزار کمپانی Grandview Systems در ایالت کالیفرنیا است گفتوگویی انجام داده , او در این گفتگو توصیه می کند که برنامه نویسان نباید خود را منحصر به یادگیری و کار در یک زبان خاص بکنند وی که بیش از 30 سال تجربه برنامه نویسی دارد 10 زبان را برای یادگیری برای برنامه نویسان همراه با دلیل توصیه می کند.
(آمار قسمت شغل های موجود برای یک زبان با توجه به آمار سایت Dice.com می باشد)

1- PHP

چیست؟ یک اینترپرتر کدباز , سرور ساید و کراس پلت فرم برای اسکریپت نویسی HTML
چرا باید آموخت؟ استفاده گسترده از آن , سرعت بالا با حافظه کش
تعداد مشاغل موجود: 1,152 شغل

2- #C

چیست؟ یک زبان برنامه نویسی همه کاره و شی گرا که توسط مایکروسافت با استفاده از تکنولوژی NET. ابداع شد.
چرا باید آموخت؟ یکی از بخش های اصلی فریم ورک NET. است و یکی از ملزومات کار شماست اگر با مایکروسافت کار می کنید.
تعداد مشاغل موجود: 5,111

3- AJAX

چیست؟ از لحاظ فنی یک زبان برنامه نویسی نیست ولی با استفاده HTML , Java SCript و XML صفحات وب پویا را خلق می کند.
چرا باید آموخت؟ از وقتی که گوگل AJAX را در Google MAP به خوبی و با موفقیت به کار برد تقاضا برای Ajax در صدر قرار گرفت. یادگیری AJAX ساده نیست ولی مایکروسافت اعلام کرده که ابزاری به نام Atlas را برای بکارگیری راحت تر AJAX ارائه خواهد داد.
تعداد مشاغل موجود: 1.106 شغل

4- Java Script

چیست؟ یک زبان اسکریپت نویسی شی گرا است که در مرورگرهای وب به صورت کلاینت ساید اجرا می شود. این زبان دارای دستورات کوتاه است و کد نویسی با آن آسان و برای اجرای دستورات نیازی به کامپایل ندارد. (آن را با Java اشتباه نگیرید)
چرا باید آموخت؟ امروزه از آن در میلیون ها صفحه وب برای تعیین اعتبار فرم ها , ایجاد کوکی ها , تشخیص نوع مرورگر و بهبود طراحی صفحات استفاده می شود. به راحتی می توان آن را آموخت و به صورت گسترده از ان استفاده کرد.
تعداد مشاغل موجود: 4,406 شغل

5- Perl

چیست؟ یک زبان برنامه نویسی و اینترپرتر کدباز , کراس پلتفرم , سرور ساید است که به طور گسترده برای پردازش متن از طریق برنامه های CGI استفاده می شود.
چرا باید آموخت؟ قدرت بالای آن در پردازش انبوهی از متون آن را بسیار محبوب کرده و باعث استفاده گسترده آن برای نوشتن برنامه های وب سرور در یک گستره بزرگ شده است.اگر با وب اپلیکیشن ها سر و کار دارید یادگیری برخی فرم های اسکریپ نویسی مانند Perl , PHP لازم است.
تعداد مشاغل موجود: 4,810 شغل

6- C

چیست؟ یک زبان برنامه نویسی همه کاره استاندارد است . یکی از فراگیرترین زبان های برنامه نویسی می باشد و اساس و پایه بسیاری از زبان های دیگر مانند ++C می باشد
چرا باید آموخت؟ کسی که زبان C بلد است می تواند به راحتی زبان هایی مانند #C و JAVA را یاد بگیرد چون بسیاری دستورات مانند هم اند. همچنین بسیاری از دستورات C در زبان های اسکریپتی استفاده می شود.
تعداد مشاغل موجود: 6,168 شغل با در نظر گرفتن مشتقات

7- Ruby و Ruby on Rails

چیست؟ Ruby یک زبان برنامه نویسی کد باز , شی گرا و دینامیک است. Ruby on Rails یک فریم ورک کدباز است که برای وب اپلیکیشن ها توسط Ruby نوشته شده است که بدقت با معماری MVC دنبال می شود.
چرا باید آموخت؟ با توجه به سادگی و سودمندی این زبان در حال گسترش است . سادگی یادگیری آن نیز یکی دیگر از مزایای آن است.
تعداد مشاغل موجود: 210 و 54 شغل به ترتیب

8- Java

چیست؟ یک زبان برنامه نویسی شی گرا که بوسیله جیمز گوسلینگ و همکارانش در شرکت سان میکروسیستم در اوایل دهه 1990 بوجود آمد.
چرا باید آموخت؟ بسیاری از برنامه نویسان آن را زبانی زیبا می نامند. Java مرکز زبان های غیر از NET. است. یادگیری زبان جاوا برای شما ضروری است اگر شما برای مایکروسافت کار نمی کنید.
تعداد مشاغل موجود: 14,408 شغل

9- Python

چیست؟ یک زبان برنامه نویسی اینترپرتر دینامیک , شی گرا و کد باز است که به صورت اتوماتیک مدیریت حافظه را بر عهده می گیرد.
چرا باید آموخت؟ پایتون به صورت گسترده توسط گوگل به کار گرفته می شود.
تعداد مشاغل موجود: 811 شغل

10- VB.NET

چیست؟ یک زبان برنامه نویسی شی گراکه با تکنولوژی NET. مایکروسافت توسعه یافته است.
چرا باید آموخت؟ تقاضا برای یادگیری VB.NET نسبت به هر زبان دیگری بیش تر است .اکنون ر بیشتر پروژه ها با VB.NET انجام می شود.
تعداد مشاغل موجود: 2,090 شغل
منبع:eWeek
+ نوشته شده در  شنبه بیست و چهارم اسفند 1387ساعت 14:37  توسط حمید رضا حباب | 
 
صفحه نخست
پست الکترونیک
آرشیو
عناوین مطالب وبلاگ
درباره وبلاگ

نوشته های پیشین
مهر 1388
مرداد 1388
خرداد 1388
اردیبهشت 1388
فروردین 1388
اسفند 1387
تیر 1387
آرشیو موضوعی
DHtml
PHP
SQL
Apache
مرورگر ها
موتور جستجو و SEO
شبکه
RSS
برنامه نویسی
مطالب آموزنده
Ajax
UML
Linux
گرافیک سایت
امنیت اطلاعات
تجارت الکترونیک
XML
windows
jquery
smarty
ترفند های اینترنت
سخت افزار
open source
وب سرویس ها
نویسندگان
حمید رضا حباب
امیر حسین طهرانی
مجتبی موحدیان
پیوندها
سایت راسخون
سایت تبیان
کارپرداز
رشد
اکسپلورر
مقالات آموزشی طراحی وب
تبلیغات رایگان در اینترنت
موسسه فرهنگی هنری شهید شهبازی
فهرست وب سایتهای ایرانی
وبلاگ با مقالات خوب (عظمت وبلاگ)
تفدا: توسعه فناوری، دانش و اطلاعات
تراشه
jquery
smarty
persia-cms
پایگاه تخصصی نرم افزار ایران
اخبار فناوری اطلاعات
قیمت گذاری یک سایت
خطاطي و خوشنويسي نستعليق آنلاين تحت وب
تدبیل Excel به HTML
یافتن تکنولوژی هایی که در یه ایجاد یک سایت به کار رفته اند
سایتی برای tooltip گذاشتن در سایت
Wikipedia برای گوشی های موبایل
TutSearch: موتور جستجو جهت یافتن آموزش برای طراحان وب
انجمن فرهیختگان ایران
parsigold.com
نمايش Page Rank گوگل در سايت
استاد آنلاین
سایتی برای ساختن loading سیستم های ajax
1000 مقاله
مجموعه مقالات تخصصی نرم افزار - 500 مقاله
دیکشنری online چند زبانه منحصر به فرد
125 مقاله جمع آوری شده از اینترنت در باره امنیت در نرم افزار و شبکه
وین بتا با مقالات جالب
پایگاه اطلاع رسانی ماهنامه شبکه
سایت مقالات فارسی
 

 RSS

POWERED BY
BLOGFA.COM