Showing posts with label Article. Show all posts
Showing posts with label Article. Show all posts

Thursday, February 25, 2010

مبانی فلسفی یک نظریه‌ی عدالت

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

1. درباره‌ی «عدالت» و «نظریه‌ی عدالت» بسیار گفته‌اند و بسیار شنیده‌ایم، اما این همه گفتن و شنیدن کماکان از طراوت آن نکاسته است؛ در اهمیت این مفهوم همین بس که به‌گفته‌ی برخی اسلام‌شناسان معاصر، حتی نوح نبی و عیسی روح‌الله نیز از بسط آن ناکام ماند.

2. واژه‌ی «نظریه‌ی عدالت»، همچون واژه‌های «نظریه‌ی اجتماعی» یا «نظریه‌ی سیاسی» مبهم، نارسا و ناقص است؛ به‌این معنا که نظریه‌ی واحدی به‌نام نظریه‌ی سیاسی یا اجتماعی وجود ندارد تا چه رسد به یک نظریه‌ی عدالت. حتی در حوزه‌یِ یک ایدئولوژیِ سیاسی نیز این واژه تفسیربردار نیست و درواقع ما چندین نظریه‌ی عدالتِ لیبرالیستی و یا سوسیالیستی خواهیم داشت. دلیل آن هم روشن است: نه تنها حوزه‌ی سیاست و اجتماع، که به‌طریقِ اولی حوزه‌ی عدالت نیز در معنایِ عام آن، به‌شدت مورد منازعه و کشمکش تئوریک‌اند. تلقی‌هایِ متفاوتی از عدالت وجود دارد چراکه هریک از نظریه‌های عدالت، لااقل، مبتنی بر سه دیدگاه نظری‌اند: 1) نظریه‌ای درباب انسان، 2) فلسفه‌ی سیاسی، و نهایتاً 3) فلسفه‌ی اخلاق (که همواره دشواری‌هایی برای تفکیکِ معنایِ جمعیِ آن از فلسفه‌ی سیاسی وجود داشته است).

3. نظریه‌ای درباب انسان، یا با اغماض «انسان‌شناسی فلسفی»، دانشی است که به حقیقت انسان، و پرسش‌های فلسفی از وجود او پاسخ می‌دهد. انسان‌شناسی فلسفی لزوماً دانشی دینی نیست و ممکن است مبنای آن نظریه‌ای ماتریالیستی و یا طبیعت‌گرایانه درباب وجود و علائق انسانی باشد. برخی پرسش‌هایی که یک نظریه درباب انسان به آن پاسخ می‌دهد چنین است: آیا انسان موجودی مختار است؟ حدود و قیود عمل وی چیست؟ معنایِ انسان بودن چیست و به‌بیانِ دیگر «طبیعتِ آدمی» چیست؟ مادامی که یک متفکر نظریه‌ای درباب انسان، ولو به طورِ مضمر و در پسِ اندیشه‌ی خویش، نداشته باشد، هیچ حکمِ مطلقی دربابِ انسان نمی‌تواند صادر کند. می‌توان این معنا را با ذکر مثالی روشن‌تر کرد. برای افلاطون، انسان موجودی است دارای سه قوه و مشخصه‌ی اصلی: 1) قوه‌ی عاقله، 2) امیال و 3) خشم و غضب. نظریه‌ی عدالتِ افلاطون در امتدادِ چنین تصوری از انسان قرار دارد و به این ترتیب از نظر او انسانی عادل است که دو جزءِ اول و سومِ نفس او یعنی عقل و غضب به وظیفه‌ی خود عمل کنند: حکمرانِ نفس، عقل است و مددکار و مطیع او، قوه‌ی غضبیه. این دو قوه با یاری هم بر امیال حکومت می‌کنند تا این قوه نیرومند نگردد[1].

4. اما نقشِ فلسفه‌ی سیاسی در یک نظریه‌ی عدالت چیست؟ تعاریفِ مختلفی از فلسفه‌ی سیاسی وجود دارد؛ عده‌ای آن‌را جستجویِ بهترین نوعِ حکومت دانسته‌اند. برخی آن‌را تلاشی برای جایگزین کردن معرفت به امور سیاسی به جای گمان درباره‌ی آن‌ها[2]، و نهایتاً برخی دیگر نیز تمامِ کارکردِ این مفهوم در دنیایِ معاصر را توجیهِ دموکراسی دانسته‌اند[3]. تعاریف اول و سوم به‌نوعی با هم مرتبط‌اند، چرا که «دموکراسی»، در مباحثِ معاصرِ فلسفه‌ی سیاسی، به‌گونه‌ای ضمنی، به‌عنوانِ برترین نوعِ حکومت تلقی می‌شود و به این معنا باز هم نویسندگان در پیِ بسطِ حدود و مسائلِ بهترین نوعِ حکومت هستند. ما در تعریفِ نظریه‌ی عدالت همان تعریف اول و کلاسیک فلسفه‌ی سیاسی را مدنظر قرار می‌دهیم. به این ترتیب روشن است که نظریه‌ی عدالت، ربطِ وثیقی با بهترین نوعِ حکومت خواهد داشت. حکومتی برتر است که توانِ بسطِ عدالتِ اجتماعی را داشته باشد. در اینجا مسامحتاً از واژه‌ی عدالتِ اجتماعی استفاده کردیم و معنای مورد نظرمان هرگونه عدالتِ «غیرِ فردی» یا به بیانِ دیگر مرتبطِ با جامعه است. شاید مثالِ دیگری ربطِ نظریه‌ی عدالت را با فلسفه‌ی سیاسی روشن‌تر سازد. ابن خلدون قائل به دو نوع نظامِ سیاسی است: سیاست عقلی و سیاست شرعی. در نوع اول، قوانین از جانبِ «خردمندان و بزرگانِ بصیر» و در نوعِ دوم از سویِ خداوند و به‌واسطه‌یِ «شارع» بر مردم واجب می‌گردد. همچنین از نظرِ او نوعِ دومِ حکومت است که در «دنیا و آخرت برای مردم سودمند خواهد بود»[4]. اما در انسان‌شناسیِ ابن خلدون، انسان موجودی است که پس از مرگ نبز به حیاتِ دیگری ادامه خواهد داد. از طرف دیگر مقصودِ شارع، «صلاح و رستگاری آخرت مردم» است و ازاین‌روست که عادل‌ترین حکومت (و به بیان دیگر خلافت)، حکومتی است که علاوه بر مصالحِ این‌جهانی، مراقبت بر سعادتِ اخروی مردم را نیز داشته باشد[5].

5. تا اینجا باید اهمیت یک نظریه‌ی اخلاقی نیز روشن شده باشد. فلسفه‌ اخلاق، ناظر به مفاهیمی چون «خیر»، «شر»، «مسئولیت» و به‌طور کلی داوریِ ارزشیِ افعالِ انسانی است. بدین‌سان یک فلسفه‌ی اخلاق تعیین می‌کند که آیا فلان فعلْ مجاز، واجب و یا حرام است. دلیلِ تداخلِ مفهومی فلسفه‌ی اخلاق با فلسفه‌ی سیاسی نیز بدان سبب است که هردوی آن‌ها در مقامِ داوریِ هنجاری و اخلاقی قرار دارند. اما چه ربطی بین یک نظریه‌ی عدالت و نظریه‌ی اخلاقی وجود خواهد داشت؟ همین «عادلانه» یا «ناعادلانه» خواندن یک عمل اجتماعی، دلالت بر داوریِ اخلاقی ما دارد. یک نظریه‌ی عدالت، همچون بسیاری از دیگر نظریه‌هایِ اجتماعی، بایستی دست به تصمیم‌گیری‌هایِ ارزشی بزند: کدام طبقه‌ی اجتماعی شایستگی بیشتری برای دریافت فلان امکانات را دارد؟ تحت چه شرایطی مجازیم افراد را از حقوق شهروندی خود محروم سازیم؟ برابریِ حقوق افراد تا چه حدی مجاز است؟ در شرایط وجودِ تعارض میان خیرِ فردی و خیرِ جمعی، کدام‌یک را ملاکِ عمل قرار دهیم؟ هریک از این گزاره‌ها از آنجایی که در محدوده‌ی اخلاقِ جمعی قرار دارند، به سادگی از مباحثِ فلسفه‌ی سیاسی قابلِ تفکیک نیستند. شاید نظریه‌ی عدالتِ جان رالز ، که در عصر حاضر فلسفه‌ی سیاسی لیبرال را متحول ساخت و به چندین هزاران تحقیق و پژوهش جدید دامن زد[6]، مثال مناسبی برای درک مبانی اخلاقی یک نظریه‌ی عدالت باشد. از نظر رالز نظریه‌ی عدالت، نظریه‌ای است «درباب تمایلات اخلاقی ... که اصولِ حاکم بر نیروهایِ اخلاقی ما، یا به‌بیان ویژه‌تر، حس عدالت ما را تنظیم می‌کند»[7]. نظریه‌ی عدالتی که رالز در ویراست نخست نظریه‌ای درباب عدالت (1971) عرضه می‌کند، مبتنی بر دو اصل «آزادی» و «تفاوت» است[8]: «1) هر کس باید حق برابری در نسبتِ با گسترده‌ترین نظامِ جامعِ آزادی‌هایِ اساسی داشته باشد که با نظامِ مشابهِ آزادیِ دیگران سازگار باشد. 2) نابرابری‌هایِ اجتماعی و اقتصادی باید به‌گونه‌ای ساماندهی شوند که: الف) بیشترین منفعت را محروم‌ترین‌ها ... داشته باشد؛ ب) به مناصب و مشاغلی متصل باشد که در شرایطِ منصفانه‌یِ برابریِ فرصت‌ها به روی همه گشوده باشد». بدون اینکه قصد توضیح مفاهیم رالز را داشته باشیم اشاره می‌کنیم که اولاً از نظر او آزادی‌های اساسی (basic liberties) غیرقابل اغماض‌اند و عملاً اصل اول، مقدمِ بر اصل دوم است. به این ترتیب روشن است که رالز نفیِ آزادی‌هایِ اساسی را غیراخلاقی و نفی آزادی‌های غیر اساسی را مادامی که گزاره‌هایِ الف و ب تأمین شوند، اخلاقی می‌داند.


[1] دیرکس، هانس (1384)، انسان‌شناسی فلسفی، ترجمه‌ی محمدرضا بهشتی، تهران: هرمس، صص 7-45.

[2] اشتراوس، لئو (1381)، فلسفه‌ی سیاسی چیست؟، ترجمه‌ی فرهنگ رجایی، تهران: علمی و فرهنگی، ص 4.

[3] جیکوبز (جیکابز)، لزلی (1386)، درآمدی بر فلسفه‌ی سیاسی نوین: نگرش دموکراتیک به سیاست، ترجمه‌ی مرتضی جیریایی، تهران: نی.

[4] ابن خلدون، عبدالرحمن بن محمد (1382)، مقدمه‌ی ابن‌خلدون، ترجمهٔ محمدپروین گنابادی، تهران: علمی و فرهنگی، ج 1، ص 364.

[5] همان، ص 365.

[6] واعظی، احمد (1384)، جان رالز: از نظریه‌ی عدالت تا لیبرالیسم سیاسی، قم: بوستان کتاب قم، ص 14.

[7] Rawls, John (1971), A Theory of Justice, Cambridge, MA: Harvard University Press, pp. 50-1.

[8] ibid, p. 302.

Sunday, August 24, 2008

A Closer Look at Zekr 0.7.0 Beta 2

Zekr 0.7.0 beta 2 was released last night, mainly introducing three new features. 1) Search through translations (both with Tanzil search method, and Lucene), 2) Quran Paging: how many (and which ayas) to be shown in each page of Zekr, and 3) Quran root and stem database, supporting searching through root references, with sorting options (by revelation order, natural order, relevance, and aya size).


Quran root and stem search is a unique feature introduced in this version of the software. Root database is kindly provided by CRCIS (Computer Research Center of Islamic Sciences). Here I deeply thank this center for providing such a valuable resource for Zekr project. This root database is bundled with Zekr under a restricted license agreement. You are not allowed to use this database anywhere unless you have a written permission from CRCIS.


Paging mode is another awaiting feature. We used to have rather heavy HTML pages containing thousands of Arabic characters, which made navigation too slow. From this version, there are 4 built-in paging mode, plus as many custom paging mode as one likes. By default an Uthmani paging mode is provided with all Zekr packages.


Paging modes are specially useful for our future exegesis (tafsir) support. Almost all new-style exegeses are section-by-section. Their authors divide Quran into several sections, each has a number of related ayas within it, and put their commentaries on each section overall. Having custom paging modes, one may provide a paging mode used for an exegesis. Authors commentaries then come at the end of the page.

"Go To" menu, previously available under View > Go To, is now provided as a separate menu, with a large choice of navigation options: aya by aya, sura by sura, juz by juz, and even navigating to the next sajda.


Searching through translations was supported very elementarily before 0.7.0. In 0.7.0 beta 1, as we totally rewrote the basic search Java code, it was temporarily removed from that version and now in beta 2 is available for both search methods: Basic, and Advanced (indexed).

There is a I18N option for people to customize how search works for a language, by providing search replacements string patterns or introducing their language stop-words for better search result. In Arabic, for example we provided several replacement rules (patterns) to remove diacritic for easier to ease query writing. AS another example, the following code (available in search-info.properties) is used to work with different kinds of YEH character in Persian translation search:

search.pattern.replace.fa = [\u0626\u0649\u064a]=\u06cc


Advanced search, already available just for searching through Quran text, now also works with translations, featuring powerful Lucene queries. There are a number of Western languages whose stemmer is provided built-in. Other users can use search-info.properties patterns, or write their own stemmers and Lucene analyzers for more practical advanced search.

This release is probably the last beta version in 0.7.0 branch, and the next will be final 0.7.0. The next release, will be provided inshaAllah before this Ramadan.

Friday, April 18, 2008

جامعه‌شناسی منبع‌باز: مقدمه‌ای انتقادی

پروژهٔ کارشناسی‌ام را با عنوان «جامعه‌شناسی بازمتن در حوزهٔ نرم‌افزار» پارسال به دکتر رامتین خسروی تحویل دادم. بعدها کَمَکی تغییرش دادم و عنوانش را هم مناسب‌تر دیدم به «جامعه‌شناسی منبع‌باز: درآمدی انتقادی به پدیدهٔ منبعْ‌باز (open source)» تغییر دهم.
مباحث جامعه‌شناسیش کمی آبکی است، و قصد داشتم پیش از انتشار کمی تکمیلش کنم. به علاوه می‌خواستم پیش از انتشار در اینجا یک جایی بفرستمش، ولی فعلاً که نه خبر از کنفرانس‌ها دارم، نه فرصت تکمیل این را.

متن مقاله را به فرمت پی‌دی‌اف می‌توانید از اینجا دریافت کنید.

فهرست مطالب:
1. مقدمه
2. نرم‌افزار آزاد
2.1. مفاهیم
2.2. تاریخچه
2.2.1. پروژهٔ گنو
2.2.2. گام‌های تاریخی منبع‌باز
2.3. مدل توسعه
2.3.1. کلیسای جامع و بازار
2.3.2. الگوهای مدل بازار
2.3.3. مدیریت پروژه‌های منبع‌باز
2.3.4. قانون بروکس
2.3.5. بررسی پروژه‌هایی در مدل بازار و کلیسای جامع
2.3.6. جمع‌بندی مدل‌های ارائه شده
2.4. مدل کسب و کار
3. جامعه‌شناسی نرم‌افزار آزاد
3.1. جنبه‌های هویتی و روانی منبع‌باز
3.2. کسب و کار
3.3. نخبه‌گرایی
3.4. آیا منبع‌باز یک انقلاب است؟
4. نتیجه‌گیری
5. منابع

Friday, September 21, 2007

یادی از علامه سید مرتضی عسکری و اندیشهٔ وحدت اسلامی


خدا رحمت کند علامهٔ فقید سید مرتضی عسکری را. این مقاله را امروز توی سایت تقریب دات آی‌آر دیدم. یکی دو قسمت جالب رو اینجا نقل می‌کنم. متن کاملش رو از اینجا ببینید.
خدای سبحان می‏فرماید: «ان هذه امتکم امة واحدة وانا ربکم فاعبدون‏» (انبیاء /92)؛ این پیامبران بزرگی که به آنان اشاره کردیم (و پیروانشان) همه یک امت واحد بودند و من پروردگار شمایم، تنها مرا بپرستید.
...
وحدت عملی
در این باره از باب مثال عرض می‏کنم: ما در مکتب اهل بیت (علیهم السلام) حُکمی داریم مبنی بر این که «هر کس در نماز بسم‏الله الرحمن الرحیم نگوید نمازش باطل است‏»، و نمی‏توان به او اقتدا کرد ولی با توجه به این که برادران حنفی مذهب ما چنین عقیده‏ای ندارند و حمد را بدون «بسم‏الله‏» قرائت می‏کنند، از ائمه ما در کتاب «وسائل الشیعه‏»، در سه حدیث از امام صادق (علیه السلام) آمده‌است که فرمود:
«من صلي خلفهم كان كمن صلي خلف رسول الله‏»، (یعنی؛ کسی که پشت‏سر آنان نماز بخواند، مانند آن است که پشت‏سر رسول خداصلی الله علیه وآله نماز خوانده است)، با این که آن امام [جماعت] حنفی «بسم‏الله‏» نمی‏گوید. در حدیث دیگری آمده:
«اذا صلّيت معهم غفرلك بعدد من خالفك - في قراءة البسملة - و حضر الصلاة في المسجد»، (یعنی؛ هر گاه تو با آنان نماز بگزاری، به تعداد کسانی که در خواندن بسم‏الله با تو مخالفت کرده و در مسجد به نماز ایستاده‏اند، از گناهانت آمرزیده می‏شود).
راوی دیگری به امام صادق (علیه السلام) شکایت می‏کند و می‏گوید: «امام جماعت ما در عقیده مخالف با ماست، او همه یاران ما [شیعیان] را دشمن می‏دارد، [وظیفه ما چیست؟]. امام (علیه السلام) فرمود: از سخن وی چیزی بر تو نیست، به خدا سوگند اگر آنچه می‏گویی راست باشد، تو از او به امامت در مسجد سزاوارتری، تو در ورود به مسجد نخستین و در خروج از آن آخرین نفر باش و با مردم خوشرفتاری کن و سخن نیکو بگو.
از فرمایش امام صادق (علیه‏السلام) برمی‏آید که آن حضرت از سخن راوی و انتقادش خشنود نشده، لذا به او فرمودند: با مردم خوش‌رفتار باش و نیکو سخن بگو.
امام صادق (علیه السلام) به راوی دیگری فرمود:
«یا اسحاق! اتصلی معهم فی المسجد؟ قال: قلت نعم، قال: «صل معهم، فان المصلي معهم في الصف الاول كالشاهر سيفه في سبيل الله‏» (*) ، ای اسحاق، آیا با آنان [مخالفان] نماز می‏گزاری؟ گفتم: آری؛ فرمود: با آنان نماز بگزار، همانا، نمازگزار با آنان در صف اول، مانند کسی است که در راه خدا شمشیر کشیده است.
بدین سان وحدت عملی تحقق می‏یابد.
امام صادق (علیه السلام) شخصاً با ابوحنیفه می‏نشست و در عقاید و احکام با وی مناظره می‏کرد، و این کار تا زمان شیخ مفید در بغداد معمول بود. شیخ طوسی استاد کرسی تدریس در دارالخلافه بود، ولی سلاجقه که به بغداد رفتند، کرسی شیخ را سوزاندند و میان ما جدایی افکندند، سپس اختلافهایی میان صفویه و خلافت عثمانی پدید آمد، و این اختلافات در واقع از سیاست ناشی می‏شد نه از دین.

(*) و در این لحظه کتاب «معالم المدرستین‏» را با دست‏خویش بلند کرد.

منبع: مجمع جهانی تقریب مذاهب اسلامی

Sunday, January 14, 2007

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

1. مقدمه

یکی از مهم‌ترین دوره‌های تاریخی تمدن ایران، حکومت صفویه (1501 تا 1736 م) است. از طرفی - به عقیده‌ی بسیاری - صفویه، اولین حکومت ملی در ایران پس از انقراض ساسانیان است و از طرف دیگر در این زمان تشیع - که همچنان مذهب غالب در ایران است - مذهب رسمی ایران شد. تشیع که تا قبل از این یک مذهب انحرافی و رافضی معرفی می‌شد و به علاوه نهاد رسمی دولتی پشتیبانی نداشت، با به قدرت رسیدن شاه اسماعیل به عنوان مذهب رسمی ایران اعلام شد و عملاً برای اولین بار در ایران، حکومت یکپارچه‌ی شیعی تاسیس شد (1).
در این نوشتار سعی داریم تا به اختصار پس از بیان اهم رویدادهای تاریخی در دوران صفویه، به بررسی تعامل دین و دولت و نقش سیاسی علمای شیعی در دوران صفویه بپردازیم. مسئله‌ی مورد مناقشه درباره‌ی صفویه که در این نوشتار مد نظر ماست، مباحثی پیرامون مفهمو «شیعه‌ی صفوی» و انحراف در اندیشه‌های بنیادین شیعه پس از به قدرت رسیدن است.

2. خلاصه‌ی روند تاریخی صفویه

سلسله‌ی صفویه بدست اسماعیل فرزند شیخ حیدر صفوی با تاج گذاری او در سن 15 سالگی تأسیس شد. وی علی‌رغم مخالفت علمای شیعه‌ی تبریز مذهب تشیع را رسمی کرد و دستور داد در نماز جماعت خطبه‌ی شیعه علنی خوانده شود: «... مرا به این کار واداشته‌اند و خدای عالم، با حضرات ائمه معصومین همراه من هستند و من از هیچ کسی باک ندارم. به توفیق الله تعالی اگر از رعیت حرفی بگویند، شمشیر می‌کشم و یک کس را زنده نمی‌گذارم...» [1]
سیاست مذهبی اسماعیل بسیار سخت‌گیرانه بود و به علاوه پیروان او اعتقاد زیادی به وی داشتند. بسیاری معتقدند پیروزی‌های او در جنگ‌هایش به دلیل اعتقاد مذهبی قوی سرداران سپاهش بود. راجر سیوری معتقد است، بسیار پیش از آنکه توپ جنگی را برادران شرلی (یک قرن پس از اسماعیل) به ایران بیاورند، ایرانیان (به عنوان مثال شیخ حیدر) سال‌ها پیش از آن استفاده کرده بودند. لیکن به دلیل اعتقاد به جوانمردی، در جنگ‌ها از این سلاح استفاده نکردند. همین باعث شد تا اسماعیل در جنگ چالدران مغلوب سلطان سلیم شود. [2]
اوج شکوه و قدرت صفویه در زمان عباس اول ملقب به «شاه عباس کبیر» است. وی در ابتدا با عثمانی قرارداد صلح امضا کرد و پس از دفع ازبکان، تبریز و بغداد را از عثمانی پس گرفت. [2]
از زمان شاه عباس کبیر، تربیت افراد شاهزادگان نالایق در حرم دنبال شد، چرا که شاه از قدرت گرفتن اطرافیانش در هراس بود، تا جایی که گفته می‌شود سلیمان اول 8 سال را مرتب در حرم گذراند و سلطان حسین مدت‌ها یک دائم‌الخمر بود. سر انجام محمود افغان در 1722 اصفهان را اشغال و سلطان حسین را به قتل رساند. 15، 16]

اسماعیل (اول)1501 تا 1524تاج‌گذاری در تبریز در سن 15 سالگی، اعلام تشیع به عنوان مذهب رسمی ایران، سخت‌گیری مذهبی، شکست دادن ازبک‌ها و قتل محمد شیبانی (شیبک خان)، تعیین مقام مذهبی صدارت، کشورگشایی در 10 سال ابتدای حکومت، دعوت از محقق کَرَکی، شکست از عثمانی در جنگ چالدران و از بین رفتن ابهت او و خدشه به اندیشه‌ی شکست ناپذیری مرشد قزلباش‌ها (اسماعیل)، قتل عام شیعیان آناتولی به دستور سلطان سلیم عثمانی [2، 6، 16]
طهماسب (اول)1524 تا 1576طولانی‌ترین دوران سلطنت، اشغال و ترک تبریز توسط عثمانی، دعوت مجدد از محقق کرکی و دادن اختیارات به او
اسماعیل (دوم)1576 تا 1578
محمد خدابنده1578 تا 1587پادشاهی مریض و رنجور، دخالت همسرش (خیرالنساء بیگم ملقب به مهد علیا) در حکومت، تدارک اولیه‌ی سپاه برای جنگ با عثمانی [14، 2]
عباس (اول)1587 تا 1629مصالحه با عثمانی و شکست ازبک‌ها، پایتختی اصفهان، جنگ با عثمانی و شکست آن‌ها، بیرون راندن پرتغالیان از بندر عباس (اشغال‌شده در زمان اسماعیل)، گسترش مناسبات اقتصادی خارجی، مشاورت از انگلیسی‌ها در تهیه‌ی ارتش قدرتمند، آزادی مذهبی، اوج شکوفایی هنر و معماری، تربیت شاهزادگان نالایق در حرم [15، 16]
صفی1629 تا 1642خشونت و سرکوب: اعدام بسیاری از سران سپاه و مشاورین [16]
عباس (دوم)1642 تا 1666آرامش و افزایش قدرت علمای شیعه در حکومت [15]
سلیمان (اول)1666 تا 1694
سلطان حسین (اول)1694 تا 1722شکست از محمود افغان و غارت اصفهان، انقراض سلسله
خلاصه تاریخ و وقایع دوران شاهان صفوی


3. اندیشه‌ی اسلامی در دوره‌ی صفوی

سید حسین نصر، در مقالات خود به بررسی جایگاه علمی و سنن عقلی در زمان اوج شکوفایی صفویه پرداخته است. آوردن نام بزرگان «مکتب اصفهان»، خود بر شکوفایی اندیشه‌ها و سنن گوناگون عقلی (از فقهی گرفته تا عرفانی، کلامی فلسفی و حتی اخباری) کفایت می‌کند: محمد باقر داماد (میر داماد)، میر ابولقاسم فندرسکی، فیض کاشانی، صدرالدین محمد شیرازی (ملاصدرا)، بهاءالدین عاملی (شیخ بهایی)، محمد باقر مجلسی (مجلسی دوم/پسر). [3]
در بیان شکوه فرهنگ این دوران همین بس که اشاره کنیم به بیش از 100 عنوان کتاب از شیخ بهایی: در زمینه‌های فقه، اصول، ادبیات و علوم عربی، حدیث، ریاضیات، ستاره‌شناسی، حدیث، اصول اعتقادی، حکمت و فلسفه و علوم غریبه. [12]
از ابتدای تأسیس حکومت صفوی عده‌ای از علمای ایرانی به تکاپو افتادند تا مبانی و معارف مکتب تشیع یعنی متون دینی تاریخ زندگانی و سیره و سنت حضرت رسول (صلی‌الله علیه و آله) و ائمه اطهار (علیهم السلام) و استنباط‌های فقهی و کلامی و تفسیری علما و متفکران شیعه را برای هموطنان شیعه مذهب خود تشریح و تفهیم سازند. این گروه معدود از علمای ایرانی که در آغاز قرن دهم هجری به علوم شرعی مثل حدیث و فقه و تفسیر روی آوردند و بعضاً ادعای فقاهت هم می‌‌کردند اغلب حکمای تعلیم یافته مکتب فلسفی ایران بودند که تفقه این عده بصورت منفرد و پراکنده و بدون آنکه فعالیت آنان شکل منسجم و منظمی داشته باشد بنا به ذوق و علاقه خود کوشیدند تا در مجموعه معارف شیعی غور نمایند و یافته‌های خود را در قالب تألیف و ترجمه ارائه دهند.
برجسته ترین نمایندگان این گروه عبارتند از: حسین بن شرف‌الدین عبدالحق معروف به الهی اردبیلی، جمال‌الدین بن عطاء ا.... دشتکی شیرازی، میر شاه طاهر بن رضی حسینی کاشانی معروف به شاه طاهر. [10]
علمای جبل عامل در قدرت سیاسی و فرهنگی عصر صفوی نقش بسزایی داشتند و از آن جمله می‌توان به نقش محقق کرکی در تعدیل سیاست‌های شاه اسماعیل اشاره کرد. یکی از مشخصه‌های فقه کرکی، بذل توجه خاص به پاره‌ای از مسائل است که تغییر سیستم حکومتی و به قدرت رسیدن شیعه در ایران بوجود آورده بود. بیشتر فقها و مجتهدان شیعه پس از کرکی تا پایان دوره صفویه متأثر از روش فقهی او بوده‌اند. زیرا مجموعه حقوقی عمیق و متین او را با استدلال‌های قوی و محکم در برابر خود دانسته‌اند. از مهمترین آثار مهاجرت فقها، تثبیت اندیشه ولایت فقیه بود به گونه‌ای که حاکم صفوی خود را نایب فقیه می‌‌شمرد. [10]
طهماسب در سفر به عراق، کرکی را با حکمی تاریخی و پراهمیت به ایران دعوت می‏کند. از آنجا که این دعوت با متنی کاملاً فقهی به نگارش درآمده است، احتمال داده‏اند کرکی آن را به‏عنوان اعلان شرایط بازگشت خود به ایران نوشته و شاه طهماسب آن‌را امضا کرده باشد. البته احتمال این‏که این فرمان را نهاد سلطنت صادر کرده باشد هم‏چنان به قوت خود باقی است. نکته‌ی قابل توجه این است که در این فرمان هیچ اشاره‏ای به جایگاه قدرت سیاسی نشده است؛ یعنی سعی در توفیق و جمع بین ضرورت‏های شرع و مقتضیات قدرت حاکمه ندارد، بلکه مستقیماً حکم شرع را مبنا قرار داده و تلاش در جهت توجیه و مشروعیت بخشیدن به قدرت سیاسی حاکم نمی‌کند. [4]

4. تشیع صفوی از دیدگاه شریعتی

شریعتی در تحلیلی جامعه شناختی از قضایای صفویه (2)، به انحراف در اندیشه‌ی شیعی اشاره می‌کند. وی یا بیان تفاوت‌های جنبش/نهضت (movement) با نهاد (institution) یک نظریه‌ی جامعه‌شناختی را یادآوری می‌کند مبنی بر اینکه فرد متعلق به نهضت، یک موضع مخالف و جریان ضد تاریخ را دنبال می‌کند و در مقابل آن فرد متعلق به نهاد، یک محافظه‌کار میانه‌رو است که هر مخالفی را ضد انقلاب می‌داند (3). به عنوان مثال زرتشت پیش از ساسانیان به صورت یک جریان و نهضت مبارز با اشکانیان بود ولی در دوره‌ی ساسانی که به صورت یک نهاد حکومتی درآمد، بر سرنوشت جامعه، املاک و قدرت‌های سیاسی حاکم شد. نمونه‌ی دیگر آن در عصر حاضر ماتریالیزم - سوسیالیزم است که در قرن 19 نفوذ بسیار زیادی در اندیشه‌های آزادی‌خواهانه داشت ولی در میانه‌ی قرن 20 که به صورت نهاد در می‌آید و از همیشه قدرتمندتر می‌شود، ایمان جدیدی به خود نمی‌آفریند و لذا در این دوره نهضت‌های آزادی‌خواهانه‌ی «ملی» بیش از سوسیالیزم مورد توجه قرار می‌گیرد.
شریعتی معتقد است که صفویه، حکومت خود را بر پایه‌ی «تشیع» و «ملیت» بنا نهاد و علمای شیعه که در طول 10 قرن در کنار مردم بودند، در کنار حاکمان قرار می‌گیرند. در همین دوره است که «عالم شیعی/دینی» به «روحانی» بدل می‌شود و حاکم، اقتدار خود را به عنوان یک نفوذ معنوی در اذهان جا می‌اندازد؛ برخی از اصول عقاید شیعی تحریف می‌شود که از جمله می‌توان به عصمت (عصمت از گناه و تماس با قدرت‌های آلوده، در برابر حالت بیولوژیک و فیزیکی)، وصایت (سفارش پیغمبر به جانشینی در برابر رژیم فامیلی)، ولایت، امامت، عدل، تقیه، غیبت (انتظار مثبت و رهبری عالم در برابر انتظار منفی، یعنی دست بسته بودن و معطل ماندن)، شفاعت، و اجتهاد و تقلید اشاره کرد.
وی همچنین به نقش غرب بویژه انگلیس در جدایی افکنی بین سه امپراطوری ایران، عثمانی و هند اشاره می‌کند و از ترس غرب از عثمانی و تحریک ایران به حمله به آن (تفرقه بین دو امپراطوری اسلامی) سخن می‌گوید.
به علاوه شریعتی تشیع علوی را نبوی و تشیع صفوی را اموی می‌داند و تفاوت‌های تشیع صفوی و علوی را به این صورت بیان می‌کند: «تشیع مکه در برابر تشیع مشهد»، «تشیع قرآن در برابر تشیع مفاتیح الجنان»، «تشیع مبارزه بر برابر تشیع لعن و نفرین»، «تشیع امام شناسی در برابر تشیع امام پرستی»، «تشیع علم در برابر تشیع اصالت تقدس» و نهایتاً «تشیع نه در برابر تشیع آری». [5، 13]

5. نقد

شریعتی در مقایسه‌ی تفاوت میان تشیع علوی و صفوی، به ارائه‌ی دو نمونه‌ی آرمانی (4) از تشیع مثبت و منفی می‌پردازد. هر چند در مواردی این مقایسه به آسیب شناسی و انحراف‌زدایی از دین منجر می‌شود، لیکن از آنجایی که این بحث به صورت تألیفی دقیق و تاریخی مطرح نشده، و همچنین به دلیل وسعت و پهن‌دامنه بودن آن، صحت تاریخی برخی مطالب آن مورد تردید است. به عنوان مثال اینکه آیا شاه عباس وزیر روضه‌خوانی به غرب می‌فرستد تا تشریفات مذهبی مسیحیان را بیاموزد و در مورد مراسم عاشورا به کار گیرد؟ جایگاه واقعی شاه عباس نزد مردم چگونه است؟ نقش علما در حکومت صفویه و دلیل همکاری بعضی و عدم همکاری بعضی دیگر چه بود؟ (5)
لَک‌زایی معتقد است، آن نظریه‌ای که مدّ نظر محقق کَرَکی، مقدس اردبیلی، محقق سبزواری، علامه مجلسی، شیخ بهایی و بسیاری از علمای بزرگ این دوره بوده عبارت است از این که همچنان هر سلطان فاقد شرایط نیابت از معصوم جائِر است و همکاری با این سلاطین در جهت امر به معروف، جلوگیری از ظلم و در کل انجام وظایف شرعی جایز و بلکه در برخی موارد واجب است. [8]
به عقیده مورخ معاصر و شیعه شناس لبنانی سید حسن الامین، اگر علمای جبل عامل به داد پادشاهان صفویه نرسیده بودند گرایش این سلسله به مسلک علی اللهی و غالیان شیعه حتمی بود و در آن صورت سرنوشت ایران امروز از لحاظ مذهبی جز این بود که هست. [10]
در اینکه حکومت صفویه یک حکومت عادل و حتی ملزم به رعایت احکام اسلامی نبود شکی نیست (6)، لیکن تقابل مشهد و مکه و قرآن در برابر مفاتح‌الجنان با فرض دو ثقل قرآن و عترت چیست؟ به نظر می‌رسد منظور شریعتی افراط در اهمیت دادن به عترت و غفلت از قرآن است.
سلطان محمدی در بیان علل نزدیکی علمای دین و مدح شاهان توسط آن‌ها در دوران صفوی می‌نویسد: «... علامه مجلسی آغازگر این رسم در بین عالمان شیعی نبوده، بلکه شاید آخرین آنها هم نخواهد بود. تألیف کتاب‏ها و اهدای آنها به سلاطین و مدح و ثنای شاهان در مقدمه اینگونه تألیفات از دیرباز، از زمان شیخ صدوق (ره) معمول و مرسوم بوده». وی اضافه می‌کند: «غرض علمای دینی از اهدای آثار برجسته خود به سلاطین، حفظ و بقای آثار و تسهیل امکان استفاده عموم از آن تألیفات بوده است.» و در ادامه می‌آورد: «در تبیین و توجیه اقدامات علامه مجلسی در مدح ظالمان، بایستی به مبنای فقهی ایشان در این زمینه توجه کرد. ایشان، مانند سایر فقهای امامیه به حرمت مدح ظالم فتوا داده است، لکن بر آن استثنا زده و مدح ظالمان در غیر مورد ظلمشان را جایز می‏داند؛ یعنی مدح و ثنای آنها در اعمال نیک و صالح‏شان، مشروط بر اینکه موجب جرأت بیشتر آنان در ارتکاب ظلم و معاصی نگردد، جایز است.» [9]

6. جمع‌بندی

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

مراجع

[1] عباس قدیانی، تاریخ، فرهنگ و تمدن ایران در دوره‌ی صفویه، تهران، انتشارات فرهنگ مکتوب، 1384.
[2] راجر سیوری، ایران عصر صفوی، ترجمه‌ی کامبیز عزیزی، تهران، انتشارات مرکز، 1374، چاپ چهارم.
[3] حسین نصر، سنت عقلانی اسلامی در ایران، تهران، انتشارات قصیده‌سرا، 1383.
[4] سید محمد علی حسینی‌زاده، اندیشه‌ی سیاسی محقق کرکی، قم، انتشارات بوستان کتاب قم، 1380.
[5] علی شریعتی، شیعه، دفتر تدوین و نشر آثار شهید شریعتی در اروپا، 1357، چاپ اول.
[6] منصور صفت‌گل، ساختار نهاد و اندیشه‌ی دینی در ایران عصر صفوی، تهران، انتشارات رسا، 1381.
[7] ریولا جوردی، علمای جبل عامل در دولت صفویه (نقش حاشیه‌ای یا مهاجرت و تحول اجتماعی)، ترجمه‌ی مصطفی فضائلی، فصلنامه‌ی حکومت اسلامی، شماره‌ی پیاپی 7، سال سوم، شماره‌ی اول، بهار 1377.
[8] نجف لک‌زایی، درآمدی بر طبقه بندیهای اندیشه سیاسی اسلامی، فصلنامه حکومت اسلامی، شماره‌ی پیاپی 16، سال پنجم، شماره دوم، تابستان 1379.
[9] ابولفضل سلطان محمدی، همکاری با حاکم جائر در نگاه علامه مجلسی، فصلنامه‌ی حکومت اسلامی، شماره‌ی پیاپی 20، سال ششم، شماره‌ی دوم، تابستان1380.
[10] عصمت رمضانی مشکانی، تأثیر مهاجرت علمای جبل عامل بر فرهنگ و اندیشه دینی ایرانیان، فصلنامه پژوهشی دانشگاه امام صادق (علیه السلام)، شماره 16 الی 19، پاییز 1383 الی تابستان 1384.
[11] سید محمد حسین طباطبایی، شیعه در اسلام، کتاب‌خانه‌ی آنلاین تبیان: http://library.tebyan.net/books1/1160.htm
[12] عقیقی بخشایشی، فقهای نامدار، سایت: http://www.balagh.net/persian/feqh/library/23
[13] علی شریعتی، نوار سخنرانی تشیع صفوی و تشیع علوی.
[14] غلامرضا گلی زواره، بازخوانی تاریخی عملکرد بانوان در امور کشورداری ایران: زنان و زمامداران صفوی، مجله‌ی پیام زن، شماره‌ی 168، اسفند 1384.
[15] Shapour Ghasemi, Safavid Empire 1502 - 1736, History of Iran, http://iranchamber.com

[16] Widipedia, the free encyclopedia, Safavid dynasty, http://en.wikipedia.org/wiki/Safavid_dynasty


_________________________________________
(1) هرچند آل بویه نیز شیعه بودند، لکن تا زمان صفویه هیچ‌گاه تشیع به عنوان مذهب رسمی ایران اعلام نشده بود. [11]
(2) وی در سخنرانی خود بیان می‌کند که این موضوع را فقط از یک بعد (جامعه شناسی) بررسی می‌کند. [13]
(3) می‌توان نمونه‌ی این نظریه را اندیشه‌ی تاریخ دوّار ابن‌خلدون یافت.
(4) Ideal Type
(5) به عنوان نمونه کرکی دعوت اسماعیل و پس از آن طهماسب را می‌پذیرد، لیکن مقدس اردبیلی به دعوت شاه عباس پاسخ مثبت نمی‌دهد. [7، 9]
(6) شراب‌خواری سنت غالب پادشاهان این سلسه بوده است. علامه مجلسی پس از تاج‌گذاری شاه سلطان حسین، سه خواسته مطرح کرد: نخست، منع شراب؛ دوم، منع جنگ طایفه‏ها و سوم، منع دستجات کبوتربازی. شاه خواسته‏های ایشان را پذیرفت و بی‏درنگ فرمان لازم را صادر کرد. [9]

Tuesday, December 5, 2006

مقایسه‌ای تطبیقی بین جاوا و دات‌نت

مقدمه

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

در این مستند قصد داریم تا از منظر تولید سیستم‌های مبتنی بر وب، مقایسه‌ای کاربردی بین جاوا و دات‌نت داشته باشیم.

تاریخچه

تاریخجه‌ی فراگیر شدن دات‌کام‌ها و در واقع ارائه‌ی سرویس‌های مجازی مبتنی بر وب به اواخر دهه‌ی 90 و خصوصاً سال‌های 1998 تا 2000 بر می‌گردد [JavaWorld]. در آن زمان علاوه بر فراگیر شدن اینترنت، بلوغ مرورگرهای وب و استانداردسازی قراردادهای ارتباطات مبتنی بر وب همه و همه به توسعه‌ی سرویس‌های مجازی کمک کردند و به بیانی شرکت‌ها یک زمین مجازی برای ارائه‌ی خدمات یافتند. به تبع آن، نیازی روزافزون برای تسهیل توسعه‌ی سیستم‌های مبتنی بر وب احساس می‌شد.

پاسخ شرکت سان (Sun Microsystems) به این نیازها ارائه‌ی بسته‌ی توسعه‌ی نرم‌افزار Java 2 Entrrprise Edition (به طور مخفف J2EE، که از نسخه‌ی 5 به بعد به Java EE معروف است) بود. این بسته در واقع مجموعه‌ای از استانداردهای فناوری‌های مبتنی بر وب بود که با استفاده از جاوا، مجموعه امکانات جدیدی را به توسعه‌دهندگان برنامه‌های وب (و فراتر از آن سیستم‌های توزیع‌شده مانند EJBها) ارائه می‌داد. J2EE در واقع مجموعه‌ای از استانداردها به همراه پیاده‌سازی مرجع آن‌ها (عموماً توسط سان) می‌باشد.

سه سال پس از ارائه‌ی J2EE (که اساساً حول محورهای برنامه‌های حجیم، معماری‌های پیچیده و طراحی منسجم قرار دارد)، مایکروسافت در سال 2002 فناوری دات‌نت را ارائه داد. در این بسته‌ی توسعه‌ی نرم‌افزار، مایکروسافت زبان‌های گوناگونی چون VB.Net، J#.Net، C++.Net و زبان جدید C#.Net را ارائه داد. همچنین برای توسعه‌ی سیستم‌های مبتنی بر وب برنامه‌نویسان می‌توانستند از فناوری ASP.Net استفاده نمایند. کتابخانه‌ی کلاس‌های دات‌نت با در نظر گرفتن امکانات موجود جاوا و به منظور رقابت با آن طراحی شده بودند. با اندک نگاهی به آن می‌توان متوجه شد که بر خلاف جاوا که طراحان آن بهترین تمرین‌ها (Best practices) را ملاک طراحی خود قرار داده بودند و به شدت به اصول طراحی پایبندند، پایبندی اصلی طراحان کتابخانه‌ی کلاس‌های دات‌نت، سهولت کاربر و آسانی نوشتن کد (هم از جهت اختصار و هم از جهت ملموس بودن) است.

در ادامه‌ی به بررسی دو فناوری جاوا و دات‌نت از منظر‌های مختلف می‌پردازیم.

کارایی (Performance)

هر چند مقایسه‌ی کارایی فناوری‌های مبتنی بر دات‌نت و جاوا کاری پیچیده و دشوار است، مقایسه‌ی سرعت محیط‌های اجرایی آن‌دو (1) برای برنامه‌های سرعت‌گیر و محاسباتی حاکی از آن است که تفاوت چندانی وجود ندارد. برخی ادعا می‌کنند که به دلیل قابلیت اجرای برنامه‌های جاوا بر روی بسترهای مختلف نرم‌افزاری (بر خلاف دات‌نت که فقط بر روی بستر ویندوز قابل اجراست (2)) کارایی آن نسبت به دات‌نت کم‌تر است. این ادعا هر چند در عمل برای برنامه‌های گرافیکی محیط ویندوز در مقابل برنامه‌های جاوا مبتنی بر سوینگ (Swing) مشاهده می‌شود، ولی برای برنامه‌های سنگین محاسباتی و یا مواردی چون سرعت عملیات ورودی و خروجی (I/O) به چالش کشیده می‌شود و باید در آن تردید کرد (3).

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

در بعد محسوس‌تر، باید سرعت تولید صفحات پویای ASP.Net را به عنوان مثال با JSP مقایسه کرد. این کار هرچند در نظر اول منطقی به نظر می‌رسد ولی با آسانی ممکن نیست. صرف‌نظر از اینکه دیگران چه ادعاهایی در مورد سرعت برنامه‌های تحت وب جاوا در مقابل دات‌نت دارند توجه به نکات زیر ضروری است:
برنامه‌های ASP.Net بالاجبار از تنها سرور قابل اطمینان برنامه‌های دات‌نت آی‌آی‌اس (Microsoft’s Internet Information System) استفاده می‌کنند. این وب سرور یکی از قدرتمندترین وب‌سرورهای محیط ویندوز است که منحصراً در همان محیط اجرا می‌شود. در مقابل برای توسعه‌ی یک برنامه‌ی تحت وب J2EE طیف وسیعی از سرورهای برنامه‌ی کاربردی از تجاری گرفته تا بازمتن (open source) و از سنگین‌وزن (heavy weight) گرفته تا سرورهای جاسازی شده (embedded) در اختیار برنامه‌ساز وب است. در این میان می‌توان از حداقل 10 سرور زنده و محبوب نام برد که بر روی تمامی محیط‌هایی که جاوا در آن اجرا می‌شود نصب می‌شوند (4).

ASP.Net به خصوص در نسخه‌ی دات‌نت دو، طیف وسیعی از امکانات ساخت برنامه‌های غنی تحت وب را در اختیار برنامه‌ساز قرار می‌دهد، در حالی که با استفاده از JSP و یا نهایتاً JSF، کاربر بسیاری از آن امکانات را توسط کتابخانه‌های جانبی و یا به صورت دستی به برنامه اضافه می‌کند. این امکانات یکپارچه مزیت خوبی را برای سرعت برنامه‌های دات‌نت مهیا می‌کنند، هر چند نمی‌توان حقیقتاً در مورد سرعت رندر شدن (rendering) صفحات ASP.Net و JSP به سادگی قضاوت کرد.

در مجموع می‌توان گفت به جز مواردی نظیر برنامه‌های گرافیکی تحت ویندوز، برنامه‌های دات‌نت مزیتی از لحاظ سرعت اجرا بر جاوا ندارند و حتی در مواردی کندتر اجرا می‌شوند.

زمان توسعه

اساساً این یک حقیقت است که سرعت توسعه‌ی برنامه‌های دات‌نت بیشتر از برنامه‌های J2EE است، هرچند باید به این نکته توجه داشت که برای هر شرکت تولید نرم‌افزار، مهم تخصص‌های موجود در آن شرکت است. در صورتی که تخصص‌های برابر دات‌نت و جاوا وجود داشته باشد، سرعت تولید برنامه‌های تحت وب دات‌نت - مشروط بر شرایط زیر - به صورت محسوسی بیشتر از برنامه‌های J2EE است:
محیط و فناوری‌های مورد استفاده توسط مایکروسافت پشتیبانی شوند. این بدان معنی است که بهترین حالت برای تولید نرم‌افزار در محیط دات‌نت، استفاده از VS.Net در کنار VSS (مدیریت کنترل نسخه‌های متن برنامه)، MS SQL Server‌ به عنوان دِیتابیس سِرور و IIS به عنوان وب سرور می‌باشد. تغییر هر یک از موارد فوق به یک محصول غیر مایکروسافتی (مثلاً استفاده از اراکل به جای SQL Server) مساوی با تأخیر در تولید نرم‌افزار در محیط دات‌نت است.
به دلیل قدمت بیشتر جاوا (از حدود سال 1996) در برابر دات‌نت (از 2002) کتابخانه‌های گوناگونی برای تقریباً هر کاری برای جاوا نوشته شده است. در حالی که دات‌نت تلاش می‌کند در این مورد از جاوا عقب نماند، ولی این حقیقت کماکان وجود دارد که عموماً کتابخانه‌های قابل قبول دات‌نت توسط شرکت مایکروسافت ارائه می‌شوند. کافی است مقایسه‌ای بین برنامه‌های موجود بر سایت SourceForge.net داشته باشیم. در حال حاضر (شهریور 85) در برابر 6.480 برنامه‌ی مختلف به زبان‌های VB.Net و C#.Net، بیش از 22.000 برنامه جاوا (شامل کتابخانه‌ها، برنامه‌های کاربردی، بازی‌ها، ابزارهای اینترنت و ...) وجود دارد. این واقعیت وجود دارد که در برابر 3 یا 4 کتابخانه‌ی مختلف بازمتن جاوا برای یک کار خاص (مثلاً فشرده‌سازی، ایمیل، پروتکل‌های مختلف شبکه و ...) یک و یا دو پیاده‌سازی مورد استفاده در دات‌نت (و آن‌هم متعلق به مایکروسافت) وجود دارد. در واقع در برابر بازار آزاد و خنثای تولید نرم‌افزارهای Java/J2EE (که با ارائه‌ی استاندارد و لیسانس کردن نرم‌افزارها، به شرکت‌های مختلف اجازه می‌دهد تا پیاده‌سازی خود را برای هر استاندارد J2EE ارائه دهند)، انحصار بازار و تجارت اصلی دات‌نت در اختیار مایکروسافت است.

انجمن (community)

جاوا و دات‌نت توسط طیف وسیعی از کاربران مورد استفاده قرار می‌گیرند. در حالی که شرکت‌های بزرگی چون مایکروسافت و SAP از طرفداران اصلی دات‌نت هستند، در طرف دیگر میدان سان، اراکل (Oracle)، آی‌بی‌ام (IBM) و رِدهَت (RedHat) حضور دارند. اراکل در دیتابیس خود یکپارچگی قابل قبولی با جاوا ارائه می‌کند و در عین حال هر سه شرکت اراکل، آی‌بی‌ام و سان (و همچنین BEA) بسته‌ی JDK خود را تحت لیسانس سان (یعنی به صورت کاملاً Sun compaliant) ارائه می‌دهند. در این مورد کاربران با گزینه‌های مختلفی از بسته‌ی توسعه‌ی نرم‌افزار جاوا مواجهند.

تقریباً تمامی دیتابیس‌های کنونی قابل استفاده در هر دو محیط دات‌نت (با استفاده از ODBC و یا native client) و جاوا (JDBC) هستند.

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

قابلیت گسترش

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

سهولت استفاده برنامه‌نویس

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

آسانی یادگیری

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

انحصار (سیستم‌عامل، ابزارها و ...)

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

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

سخت‌افزار مورد نیاز

تفاوت زیادی بین سخت‌افزار مورد نیاز وجود ندارد؛ اگرچه برنامه‌اهی جاوا عموماً به عنوان مصرف‌کننده‌ی بالای حافظه شناخته می‌شوند، دات‌نت هم در این عرصه دست کمی از جاوا ندارد.

نرم‌افزار مورد نیاز

برای برنامه‌سازی جاوا باید Java SDK را در اختیار داشت و برای دات‌نت نیز .Net Framework که هر دو به صورت رایگان قابل دریافتند.

اپن‌سورس

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

یک برنامه‌نویس محیط جاوا به سادگی می‌تواند با استفاده از هر فناوری حوزه‌ی J2EE یک نرم‌افزار - فقط با استفاده از ابزارهای بازمتن - تولید کند.

به علاوه روند توسعه‌ی خود Java SDK به سایت java.net (که حاوی پروژه‌های باز متن جاوا است) منتقل شده و کاربران از نسخه‌ی Java SE 5 به بعد به سادگی به کد منبع SDK جاوا دسترسی دارند. این موضوع متأسفانه هنوز در مورد دات‌نت اتفاق نیفتاده ولی با توجه به رویکرد جدید مایکروسافت نسبت به حمایت از پروژه‌های بازمتن بعید نیست در سال‌های آتی شاهد آن باشیم.

به تازگی سان اعلام کرده که می‌خواهد بسته‌ی نرم‌افزاری توسعه‌ی جاوا را تحت لیسانس آزاد گنو (GNU General Public License) ارائه کند.

در کنار این جریان مایکروسافت هم با حمایت از چند سایت (که پروژه‌های بازمتن را توسعه می‌دهند) قصد دارد تا نقشی در عرصه‌ی بازمتن ایفا کند. سایت‌های GotDotNet و CodePlex از این دسته‌اند.

محیط برنامه سازی (IDE: Integrated Development Environment)

یکی از موارد مهم در تولید نرم‌افزار ابزار اصلی برنامه‌نویسان یعنی محیط برنامه‌سازی با IDE می‌باشد. در حالی که دات‌نت تنها یک IDE قدرتمند دارد که غیر رایگان است، جاوا در حدود ده IDE مختلف از محیط‌های بازمتنی مانند Eclipse و NetBeans گرفته تا محیط‌های تجاری چون IntelliJ IDEA، JBuilder، Workshop، JDeveloper و WebSphere را در اختیار دارد.

یگانه محیط برنامه‌سازی دات‌نت Visual Studio.Net می‌باشد که تقریباً تمامی امکاناتی که یک IDE بالغ باید داشته باشد را در خود گرد آورده. در مقابل ابزارهای بازمتنی چون Eclipse با قابلیت نصب pluginهای گوناگون، IDEهای دیگر را به چالش می‌کشد. هرچند محیط‌های بازمتنی چون SharpDevelop هم برای توسعه‌ی برنامه‌های دات‌نت در اختیار است، لیکن این محیط‌ها تفاوت چشمگیری با VS.Net دارند.

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

نتیجه‌گیری

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


(1) .Net CLR (Common Language Runtime) versus JVM (Java Virtual Machine)
(2) پروژه‌ی مونو (Mono) یک پیاده‌سازی غیر رسمی محیط‌کار دات‌نت بر روی سیستم عامل لینوکس است، که هر چند امکان اجرای بسیاری از برنامه‌های دات‌نت را بر روی لینوکس فراهم می‌کند، لکن به دلیل ماهیت غیر رسمی‌اش، هیچ‌گاه به عنوان یک محیط‌کار کامل و منطبق با پیاده‌سازی مایکروسافت شناخته نمی‌شود.
(4) Tomcat, JBoss, Weblogic, OC4J, WebSphere, Jetty, JonAS, Caucho, ...

Saturday, December 2, 2006

How to make windows native executable files for Java applications

There are several ways to make a native executable file for a java application. There are generally two approaches in making executable files. The first approach is to make a .exe files which does NOT rely on a JRE on the host machine. In this method, all necessary java library files (jar files, zip file, class files, dlls, and so on) are put in a single installer file, which can then be installed on a machine without a JRE. This is a nice solution, since you can be sure that end-user of your java application does not need to know a word about JRE and Java, but for a small cost. The cost is the size of your final binary installer which may be up to 10MB for a small Hello World application. In fact it relies on the JRE version and the size of runtime library and some other jar files bundled with a standard JDK distribution.

There are several ways to make your executable java applications by this manner. You can use commercial products, such as "Zero G InstallAnywhere", "Advanced Installer" and "Excelsior JET". The last one claims that have a powerful optimizer which makes java applications run faster than running on a normal JRE. Here is a benchmark by Excelsior. "Zero G InstallAnywhere" is widely used by companies who release their software, or developer's packages in Java language.

This is the most easy (but not free) solution. There is also a free solution, which is to use GCJ (GNU Compiler for Java). NativeJ, is a free fron-end for GCJ (since GCJ is hard to deal with in Windows). NativeJ's website says:
NativeJ is a Java to native compiler. It allows AOT (ahead of time) compilation of your Java applications.With NativeJ, you can create real standalone native binaries (.exe on Windows) which will no longer depend on a JRE.


GCJ is an incomplete Java compiler and runtime environment. It is absolutely open source, and runs on platforms supported by GCC (Linux/UNIX, Window, Solaris). By the time of this article, the latest (non-stable) version of GCJ was 4.1. I'm, not sure but I think that 4 should be compatible with Sun JDK 1.4. This is a nice idea to use GCJ as a free tool to make your Java applications into Windows (or other supported platforms) native executable, but there are some problems with that. Since it is incomplete, you can not be sure that all your java files can be compiled and linked with GCJ. The other problem is that there is not an IDE which supports GCJ as a JRE and Java compiler and linker. Eclipse, NetBeans, IntelliJ IDEA, JBuilder, JDeveloper, WSAD, JCreator, etc.; none of them does support GCJ. The best one for this mean may be Eclipse, since there are hundreds of plugins written for it. There is only one plugin for Eclpise which auto generates a GNU Makefile for a java project. This Makefile can only be run under Linux platforms! Here is a nice article about "Compiling Java with GCJ" by Per Bothner.

The second approach is to make .exe files which still relies on JRE. It means that one should have JRE installed on his/her computer in order to be able to run the binary executable file. In fact it works as a simple batch (.bat) file script: checking if JRE is available on user's system and run the main class with class path properly set. This way is nice for those who want to give their application to IT professionals, developers, or someone who may use the application on a machine with proper JRE. The size of .exe file will not be an issue, since it doesn't put library files in the exe file. There are a lot of solutions for this mean: