زبان کند و آسون جاوا

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

جاوا: ساده و کند

۲. این که جاوا کند و کم سرعته درواقع زمانی درست بوده. بخاطر این که برنامه های نوشته شده به زبان جاوا، روی ماشین مجازی جاوا اجرا می‌شدن، سرعتشون نسبتن کم بود(نسبت به زبان مثلن سی، خیلی کم بود). ماشین مجازی جاوا یه خلاقیت خیلی باحال بوده اون زمان. این امکان رو می‌داده که برنامه ها فقط یه بار نوشته بشن و کامپایل بشن و همه جا، روی هر سیستم و سیستم عاملی اجرا بشن. اضافه شدن یه لایه‌ی نرم‌افزاری که بین برنامه‌ی نوشته شده و سیستم عامل قرار می‌گرفت، باعث می‌شد برنامه‌های جاوایی کند‌تر باشن. این قضیه توی نسخه‌های اولیه‌ی جاوا خیلی شدید بود ولی از تقریبن جاوای ۱.۴ به بعد خیلی خیلی کم و کمتر شد کندی جاوا و مثلن اگر امروز برید و بنچ مارک‌هایی از جاوا رو ببینید می‌بینید که سرعتش اونقدرهام پایین نیست.

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

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

اتم: ادیتور دوست داشتنی

۱. یه سریا ویژوال استودیو رو می‌پرستن. واقعن هم حق دارن. فکر کن می‌خوای کد بزنی. دو سه تا کاراکتر می‌زنی، بقیه دستور و فانکشن و کلاس و … رو خودش برات می‌اره. فکر کن داری از یه کلاس استفاده می‌کنی ولی یادت نیست اسم اون متدی که میخواستی استفاده کنی چی بود. یه نقطه می‌ذاری،‌ کنترل اسپیس و اجی مجی همه متدهاش لیست میشه برات. خوبه. نیست؟ نیست آقا. نیست!

نرم افزار ویرایشگر اتم

۲. این که IDE به ادم کمک کنه خوبه. ولی به چه قیمتی؟ اتفاقی که واسه دات نتی ها میفته اینه که بدون ویژوال استودیو تقریبن نصف مهارت برنامه نویسی خودتشون رو از دست می‌دن. چرا؟ چون از همون اول بد عادت می‌شن،‌ وابسته می‌شن به ویژوال استودیو. البته این درمورد جاواکار ها و اینتلیجی، اندرویدیا و اندروید استودیو، پایتون و پایچارم و  در کل هر زبون و IDEای صادقه.

۳. اتم رو خیلی دوست دارم. یه ادیتور ساده با کلی ویژگی خوب. اولین خوبیش اینه که – مخصوصن توی پروسه یادگیری- مجبور میکنه برنامه نویس رو که همه چیز رو خودش بنویسه. البته یه سری کمک می کنه ها. ولی خب اینا اسمشون کمکه، نه این که بیاد کل کار رو از رو دوش برنامه نویس برداره.

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

 

چرا پایتون؟

۱. سوالی که خیلی وقتها از من پرسیده می‌شه اینه: چرا پایتون؟ چرا پی اچ پی نه؟ چرا دات نت نه؟ چرا جاوا نه؟ خب جوابهای متنوعی هست که می‌شه به این سوال داد. این جا یکیش رو می نویسم و امیدوارم که فرصت بشه از هر زاویه‌ای بررسیش کنم.

لوگو زبان برنامه نویسی پایتون

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

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

۴. کد‌های زیر رو نگاه کنید:

پایتون در مقابل سی و جاوا

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

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

 

  •  درواقع تلفظ درست اسم این زبان می‌شه پایثان. ث هم به صورت تلفظ عربیش منظورمه. ولی خب از اونجایی که این صامت توی زبان فارسی زیاد رایج نیست به ت بسنده شده. پس تلفظ معقول می‌شه پایتان. ولی خوب یا بد پایتون رایج تره و اینجا هم یکی درمیون از هردو اسم استفاده کردم که یکی به میخ و یکی به نعل خورده باشه.