اگر زبان‌های برنامه‌نویسی کشتی بودند

کوتاهه و ناقص ولی ایده عالیه و جذاب. شکی هم نیست که یک نقد و بررسی علمی نیست…

جاوا

جاوا کشتی باری خواهد بود. قدرتمند با توان حمل بالا که از پس هر پروژه ای بر خواهد آمد. اما کند است و سنگین و راندن آن هم اصلا جذاب نیست.

پرل

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

رابی روبی

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

پی اچ پی

یک کلک که از بستن یکسری نی به همدیگر درست شده. هر تغییری با اضافه و کم کردن چند خط درست می‌شود و هر چقدر هم که طناب‌ها را کج یا خوب ببندید، کلک شما شبیه بقیه کلک‌ها خواهد بود.

سی

سی یک زیردریایی اتمی است. راهنماهایش به زبان‌های عجیب نوشته شده‌اند اما تمام اجزایش برای بهترین بازدهی بهینه سازی شده اند.

سی پلاس پلاس

ناو هواپیما بر. کاپیتانی اش مهارت زیادی می خواهد و بسیار قوی و کارا است اما به این راحتی‌ها نمی‌شود هدایتش کرد.

اسمبلی

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

اچ تی ام ال

اچ تی ام ال اصولا کشتی نیست. قایق هم نیست.

اگر راننده‌ها را هم مثل برنامه‌نویس‌ها استخدام می‌کردند…

عنوان شغلی: راننده

مهارت‌های مورد نیاز: توان رانندگی حرفه‌ای با ماشین‌های سدان، ماشین‌های آتش‌نشانی، اتوبوس، کامیون متوسط، کامیون بزرگ، تریلی، غلطک، ماشین‌های جاده سازی. توان رانندگی متوسط به بالا با بیل مکانیکی و هدایت جرثقیل و توان هدایت تانک‌های سبک مورد استفاده در کشورهای عضو ناتو.

شرکت در حداقل سه مسابقه رالی الزامی است.
سابقه رانندگی در مسابقات فرمول ۱ امتیاز مثبت محسوب می‌شود.

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

ترجیحا دارای تجربه در صاف کاری و رنگ‌کاری.

درخواست کنندگان باید مدرکی معتبر از بی.ام.و.، جنرال موتورز و بوش داشته باشند که بیش از دو سال از تاریخ دریافت آن نگذشته باشد.

حقوق: هفتصد هزار تا یک میلیون تومان در ماه بر اساس نتایج مصاحبه.

مدرک مورد نیاز: لیسانس مهندسی

منبع

هکر ماهیانه – شماره ۱۰

چگونه شرکت جدیدتان را به هکر نیوز برسانید

هکرنیوز مشهورترین سایت خبری هکرها است. هر پروژه‌ای که بتواند به صفحه اول هکرنیوز برسد احتمال موفقیت اش و حداقل دیده شدنش بسیار بالا خواهد بود. لینک

درک رفتار روح‌های پک من

بازی مشهور پک من یادتون هست؟ اونی که توی یک مارپیچ یک چیزهایی می خوردیم و جلو می رفتیم و یکسری روح هم دنبالمون می کردن؟ می خواین بدونین روح ها طبق چه منطقی حرکت می کردن؟ این مقاله کاملا توضیحش می ده.

چگونه یک برنامه نویس پیمانکار باشیم؟

فرض کنید شغلی دارید که در آن مردمی که نمی شناسید به شما ایمیل می زنند تا بخشی از یک نرم افزار را بنویسید یا بهبود دهید و پیشاپیش پول را هم پرداخت می کنید. البته لازم نیست فرض کنید. این آدم شغلش این است و درباره اش با شما صحبت می کند

امولاتورها چطور نوشته می‌شوند؟

تا به حال در یک امولاتور کمودر ۶۴، بازی‌های قدیمی‌تان را بازی کرده‌اید؟ اگر اهل اینکار نیستید بازهم ممکن است از امولاتور اندروید برای برنامه نویسی استفاده کرده باشید یا از امولاتور یک پروسسور برای کارهای طراحی برق. این مقاله، به خوبی توضیح می‌دهد که امولاتورها چیستند و چطور کار می کنند

کرک کردن برنامه‌های اپل با یک شل

پوف! البته همه برنامه های ما رو که نه ولی این مقاله توضیح می ده که چجوری می شه فقط با یک شل، بخش بزرگی از برنامه های مک رو کرک کرد.

جوری کد بنویسید که انگار تازه برنامه نویسی یاد گرفته‌اید

از اینجا اومده که یک نفر پروژه‌های موفق رو بررسی کرده و به این نتیجه رسیده که اکثر کسانی که تونستن پروژه رو با موفقیت تجاری کنن کسانی بودن که قبلا برنامه نویسی بلد نبودن. اما چطور ممکنه؟.

چگونه یک سیستم عامل ساده بنویسیم

بحث سر چیزی شبیه مینیکس نیست. اگر علاقمند هستید به زبان اسمبلی یک سیستم عامل x86 بنویسید که حداقل های مورد نیاز را انجام بدهید نگاهی به این مقاله بیندازید.

هکر مانتلی، نسخه ۱۰، مارس ۲۰۱۱

تقویم‌ها هنوز هم جوانند

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

از سال‌ها پیش اشکان قاسمی با محور قرار دادن برنامه ساده ولی بسیار قوی و خط فرمانی cal، برنامه یا دستور jcal را ساخته بود که تنها ضعف آن – به جز اینکه بعضی‌ها چیزهای گرافیکی را ترجیح می‌دهند – ناتوانی‌اش بود در تبدیل تاریخ‌ها و البته عدم نمایش مناسبت‌ها. در همان دوره که شاید بشود به موج اول ورود لینوکس به ایران نام‌گذاری‌اش کرد، محیط کار کی دی ای به شکل کامل به تقویم فارسی مجهز شد اما مشکل اصلی این بود که برای استفاده از آن باید تقویم کل سیستم را فارسی می‌دیدید. بدون شک مشاهده اینکه در محیط کی.د.ی.ای. جلوی یک فایل نوشته شده باشد «ایجاد شده در ۸ شهریور ۱۳۸۵» برای کاربران ویندوزی مانند معجزه به نظر می‌رسید ولی این دقیقا چیزی نبود که ما لازم داشتیم.

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

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

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

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

محبوبترین زبانهای برنامه نویسی

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

جواب واقعی چیه؟ کسی نمی دونه (: اما یک نفر یک ایده عالی به فکرش رسیده تا وضعیت زبان های برنامه نویسی رو بررسی کنه. طرف اومده با یک ایده بامزه، تعداد پروژه‌های هر زبان توی گیت‌هاب و بعد تعداد تگ‌هاش توی استک‌اورفلو رو شمرده. اولی نشون دهنده تعداد پروژه‌های هر زبان است و دومی – با تسامح – نشون دهنده اندازه جامعه کاربری اون.

نتیجه چیزی شبیه نمودار زیر شده:

خط آبی نشون دهنده کرولیشن است (نزدیک ۰.۸) و این یعنی هرچقدر یک زبان جامعه بزرگتری داره، پروژه‌های بیشتری هم داره (: پیش بینی عجیبنی نیست ولی همیشه دیدن اعداد و آمار، جذابه.

بعضی زبان‌ها شرایط خاص دارن، مثلا دلفی یا viml. اولی یک زبان است با تعداد پروژه‌های کم اما سوال‌های زیاد و دومی یک زبان با پروژه‌های زیاد و سوالات کم (جامعه کوچیک). اما زبان‌های متعادل زبان‌هایی هستن که هم پروژه‌های زیادی دارن و هم جامعه فعالی. اینها زبون‌هایی هستن که حوالی خط آبی می‌افتن. در اوج، جاوا اسکریپت است، پایتون، سی، روبی، پرل و شل. به نظر من که نتیجه خیلی جذابی است (: درست زبون‌هایی که من دوست دارم. البه به جز جاوا اسکریپت (:

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

ما که بچه بودیم، یک زبان برای کودکان بود به اسم «لوگو». توی این زبون شما می‌تونستین با یکسری دستورات خیلی ساده ، یک لاک پشت رو کنترل کنید. مثلا بهش بگین بیست قدم بره جلو، ده درجه بچرخه به راست و یک مربع بکشه و این کار رو ۱۰۰ بار تکرار کنه تا یک شکل قشنگ به دست بیاد.

اما این روزها، علم پیشرفت کرده و زبان برنامه نویسی لوگو که قدیم‌ها بود هم تبدیل شده به چیز جذابی به اسم اسکرچ. سایتش رو می‌تونین از گوشه بالا، فارسی کنین و با چند حرکت ساده برنامه‌نویسی یک برنامه، بازی، انیمیشن و .. جذاب «بنویسین». اسکرچ درست شده تا به بچه‌های ۸ سال به بالا برنامه‌نویسی قرن ۲۱ رو نشون بده. ساختن یک بازی، پروژه یا انیمیشن با این برنامه، به بچه‌ها نشون می‌ده که ساختارها و بلوک‌های یک برنامه چطور باید کنار هم چیده بشن. این امر جدا از نشون داده مقدمات برنامه‌نویسی، به بچه‌ها یاد می‌ده که چطور یک مساله رو به بخش‌های کوچیکتری تجزیه کنن و چگونه با تفکر ریاضی و استدلالی، قدم به قدم برای رسیدن به هدف پیش برن.

ظاهرا دوستان خوبی در ایران هم مشغول وقت گذاشتن روی این پروژه هستن و بخش‌هایی از سایت به زبان فارسی ترجمه شده و زمزمه‌هایی شنیده می‌شه که به زودی قراره با همکاری دانشگاه شریف و باشگاه دانش پژوهان جوان، یک مسابقه اسکرچ هم در ایران انجام بشه.. پس پیشنهاد می‌کنم اگر با بچه‌ها سر و کار دارید، به سایت پروژه سر بزنید تا شاید برنامه‌نویسان خوبی از بچه‌هایی که باهاشون سر و کار دارین در بیاد.

نصب و استفاده از فرترن تحت لینوکس

برای نصب فرترن، مثل هر برنامه دیگه کافیه وارد مدیر بسته‌هاتون بشه (توی اوبونتو Add / Remove Software) و فرترن رو جستجو کنین، کنارش تیک بزنین و اوکی کنین (: به همین سادگی. من خط فرمان رو ترجیح می‌دم. فرترن یک پیاده سازی آزاد و گنو داره به اسم gfortran که از جدیدترین تغییرات این زبان هم پشتیبانی می‌کنه. برای نصبش کافیه بزنیم:

sudo aptitude install gfortran

و فرترن نصب شده (: یکبار با خودمون تکرار می‌کنیم که «لینوکس ساده ترین روند نصب نرم‌افزار رو داره» و می‌ریم سراغ نوشتن یک برنامه. برنامه «سلام دنیا» رو می‌نویسیم که ساده‌ترین برنامه دنیا است. بعد کمپایل و اجراش می‌کنیم:

در سال ۲۰۰۸، سی اصلی‌ترین زبان پروژه‌های بازمتن بود

زبان قدیمی و دوست داشتی C ثابت کرد که هنوز اصلی‌ترین زبان برنامه‌نویسی پروژه‌های بازمتن است. شرکت Black Duck که ۱۸۰۰۰۰ پروژه بازمتن روی ۴۰۰۰ سایت را زیر نظر دار، اعلام کرد که در سال ۲۰۰۸، ۴۷٪ پروژه‌های جدید از سی استفاده کرده‌اند. این شرکت اعلام کرده که در سال گذشته ۱۷۰۰۰ پروژه بازمتن تازه شروع به کار کرده‌اند و بعد از سی، جاوا با ۲۸٪ دومین زبان پر استفاده است.

در اسکریپت نویسی هم، ۲۰٪ پروژه‌ها از جاوااسکریپت استفاده کرده‌اند و رتبه بعدی با ۱۸٪ در دست پرل است. PHP فقط ۱۱٪ پروژه‌ها را در اختیار داشته و روبی، ۶٪ را. این اعداد واقعا جذابند. بخصوص برای من که مدت‌ها است به زبان پرل علاقمند هستم دیدن اینکه این زبان هنوز پر استفاده‌ترین زبان برنامه‌نویسی عمومی است، لذت بخش است (:

 به نقل از رجیستر