تجربه استفاده از زبان های داینامیک Python و Ruby در دات نت

Python یک زبان سطح بالای پویا برای کاربردهای محتلف است که با داشتن قواعد دستوری واضح و صریح به یکی از زبان های محبوب و شناخته شده تبدیل شده است. هم اکنون از این زبان در پلت فرم های مختلف به صورت گسترده استفاده می شود. هرچند در اغلب موارد از پایتون به عنوان یک زبان اسکریپت نویسی استفاده می شود، اما از این زبان در زمینه های غیر اسکریپتی نیز استفاده می شود. برنامه نویسان دات نت نیز می توانند از Python برای کدنویسی استفاده کنند. یکی از ویژگی های بسیار خوب دات نت پشتیبانی از زبان های مختلف برنامه نویسی است که از این نظر برتری نسبی در مقابل رقیبان خود دارد. در سال 2005 زبان برنامه نویسی IronPython برای آوردن زبان محبوب Python به دنیای دات نت ساخته شد و حالا استفاده از دات نت فریم ورک و سیلورلایت را برای برنامه نویسان Python امکان پذیر کرده است.

IronPython

اگر قبلاً با IronPython کار کرده اید و این زبان را نا امید کننده یافته اید، الان زمان مناسبی است که نگاه دیگری به آن بیندازید، زیرا نسخه جدید IronPython بر پایه DLR بنا شده است. DLR افزونه ای بر روی CLR است که پیاده سازی زبان های داینامیک را آسان می کند. قواعد برنامه نویس پایتون بسیار آسان است و برنامه های نوشته شده به این زبان بسیار واضح هستند. برای تجربه پایتون در دات نت به این سایت بروید و آخرین نسخه IronPython را دانلود و نصب کنید. با نصب IronPython شما یک کامپایلر/تفسیرکننده پایتون برای دات نت را در اختیار خواهید داشت. با استفاده از کنسول IronPython می توانید دستورات را خط به خط اجرا کنید و تفاوت یک زبان داینامیک با یک زبان استاتیک را متوجه شوید. برای استفاده از IronPython در ویژوال استادیو از خروجی این پروژه استفاده کنید.

یک برنامه ساده به زبان IronPython :

import sys
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import WebBrowser
from System.Threading.Thread import Sleep
SLEEP_TIME = 1*1000
COUNTER = 1
if __name__ == "__main__":
if len(sys.argv) != 2:
sys.stderr.write("\nSYNTAX:\n \tblog_clicker.py BLOG_SITE\n\n")
sys.exit(1)
else:
BLOG_SITE = sys.argv[-1]
clicker = WebBrowser()
while COUNTER > 0:
clicker.Navigate(BLOG_SITE)
print COUNTER
Sleep(SLEEP_TIME)
COUNTER += 1

همانطور که مشاهده می کنید سینتاکس پایتون بسیار واضح و ساده است. این برنامه ساده، یک شیء WebBrowser در حافظه می سازد و با توجه به پارامترهایی که به آن فرستاده شده، در بازه های زمانی مشخص URL مشخص شده را Refresh می کند تا بازدیدهای fake ایجاد کند.

IronRuby

IronRuby یک پیاده سازی اوپن سورس از زبان برنامه نویسی داینامیک Ruby برای اجرا بر روی دات نت فریم روک است. زبان برنامه نویسی رابی یک زبان داینامیک برای کاربردهای مختلف است که سینتاکس Perl را با ویژگی های Smalltalk تلفیق کرده است. تجربه استفاده از رابی برای برنامه نویسان دات نت می تواند بسیار جالب باشد. IronRuby نیز مثل IronPython بر روی DLR ساخته شده و از Dynamic typing و دیگر ویژگی های زبان های داینامیک بهره می برد. فایل های این پروژه اوپن سورس را می توانید از اینجا دانلود کنید.

یک برنامه ساده که یک label بر روی فرم ایجاد می کند و عبارت Hello World را بر روی آن می نویسد :

require "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
include System::Windows::Forms
# Create a form object
form = Form.new
label = Label.new
label.auto_size = true
label.text = "Hello World"
form.controls.add label
form.show_dialog

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

farasun.wordpress.com

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

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

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

spl2

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

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

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

farasun.wordpress.com

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

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

مطالب مرتبط :