ساینتکس جدید در آپادانا 2

JavidX

Apadana Developer
در مورد ساینتکس جدید تغییرات نسبتاً بزرگی اعمال شده که توضیح میدم:

1- سطح دسترسی متغیر ها دو کلمه ی کلیدی "Private" و "Public" اضافه شده که در خیلی جا ها کاربرد داره. از جمله توابع.
مثال:
کد:
    Private $i
    $i=5
نکته: اگر "Private" یا "Public" ذکر نشه، آپادانا "Public" رو در نظر میگیره. مثل آپادانا 1 و بیلدر که همیشه Public هستند.

2- چرخه For چرخه For هم اکنوین بسیار استاندارد تر و آسان تر برای فهمیدن و نوشتن است.
مثال:
کد:
    Private $i
    for $i=1 to 10 step 1
      //do something
    end
3- رشته ها می تونیم مقدار ها (Values) رو به دو روش در رشته ها جا بدیم:
1- استفاده از کوتیشن (')، اگر از این روش استفاده کنید، میتونید Value ها رو مثل نسخه یک مشخص کنید. برای پی بردن بیشتر به تفاوت دو روش، هر دو رو مطالعه کنید.
کد:
    $str = 'Your name is '+$Name+' and you are '+$Age+' years  old.'
2- استفاده از دابل کوتیشن(")، این روش کمی با روش اول فرق می کنه، به مثال زیر توجه کنید.
مثال:
کد:
$str = "Your name is $Name and you are $Age years old"
4- مقادیر چند راه بیشتر برای مقدار دهی در مفسر آپادانا تعبیه شده که کار ها رو ساده تر کرده. به مثال توجه کنید.
مثال:
کد:
    $i+=1
    $i*=5
    $s+="hello"
در حالی که کد ها مانند این ها هستند
کد:
$i=$i+1
$i=$i*5
$s=$s+"hello"
هنوز تصمیم قطعی گرفته نشده، ممکنه به جای 1=+i$ از 1+i$ استفاده کنیم.

5 - دستورات دسته بندی شده همه (بیشتر) دستورات دسته بندی شدن، بنابراین پیدا کردن دستور مورد نظر بسیار آسان تر شده. مثال رو ببینید.
مثال:
کد:
    Windows.ShowWindow($handle)
    File.Copy($source,$dest)
برای اینکه حتی بشتر ساده بشه، کلمه کلیدی جدیدی رو اضافه کردیم، using و not using . بیاید هر دسته رو یک namespace نام گذاری کنیم ،مانند Windows در مثال بالا. حالا اگر می خواهید namespace فایل (File) رو 10 مرتبه استفاده کنید، نوشتن File هر مرتبه دشوار خواهد بود.
کلید Using اینجا به کمکتون میاد! اگر شما ترجیح میدید که از روش قدیمی (دستورات دسته بندی نشده) استفاده کنید باید کلید "All" رو هر بار بنویسید. به مثال توجه کنید.
مثال:
کد:
Using Windows,File
ShowWindow($handle)
Copy($source,$dest)
not using Windows,File
کد:
Using All
ShowWindow($handle)
Copy($source,$dest)
not using all
توجه کنید که استفاده Using و Not Using دلخواهی است.

6- انواع متغیر ها در این نسخه ما از پیشوند "#" یا "!" استفاده نمیکنیم. تنها پیشوندی که داریم "$" می باشد. در ضمن ما فقط 3 نوع متغییر نداریم، نمیتونم دقیقا بگم چه انواعی رو داریم ولی قطعا بیش از 3 نوع رو خواهیم داشت. ( ممکنه یکی از اون ها Bitmap باشه چون شما میتونید توی نگارش جدید با استفاده از دستورات آپادانا تصاویر رو ویرایش کنید)

If و While مانند نسخه یک بدون تغییر باقی خواهند ماند.

قوانین بالا %100 تایید شده نیستند و ممکنه در هر زمانی تغییر کنند.
لطفا نظراتتون رو با ما در میان بذارین.

با تشکر
تیم توسعه آپادانا
 

JavidX

Apadana Developer
دوستان این رو هم اضافه کنم که If و While (کلا قسمت های شرطی) کمی تفاوت کردن . به مثال توجه کنید:
کد:
if (condition1) and (condition2) then
...
end
در حالی که قبلا and و or وجود نداشت و به جاش از & و | استفاده میشد.

حتما حتما نظر خودتون رو بدید خواه مثبت یا منفی. اون چیزی که توی دلتون و ذهنتون میگذره حتما با ما در میان بذارید.
 

nevercom

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

در مورد تغییری که گفتی ممکنه اعمال بشه، به نظر من 1=+i$ استانداردتر هست، چون عملگر جمع خودش جداگانه وجود داره، ولی به نوعی =+ یک نوع عملگر انتساب به حساب میاد، که به نظر من باعث میشه 1=+i$ استانداردتر باشه.البته پیشنهاد من این هست که تمامی توابع و دستورات خروجی داشته باشن، یعنی مثلاً بجای:
کد:
File.Copy($source,$dest)
از کد زیر استفاده بشه:
کد:
$Status = File.Copy($source,$dest)
که مثلاً در این مورد خروجی تابع میتونه TRUE یا FALSE باشه.
خب البته برخی از توابع لازمه شون این هست که خروجی داشته باشن، اما از دید من اگر بشه این روال رو برای همه یا بیشتر توابع پیاده کرد، خیلی بیشتر به منسجم شدن زبان کمک خواهد کرد.
فراموش نکنیم که آپادانا یک برنامه ی مولتی مدیا ساز هست، با قابلیت های کدنویسی بسیار عالی؛ پس هدف باید ساده تر کردن استفاده و یادگیری زبان باشه، با توجه به کاربران این نرم افزار.
 

JavidX

Apadana Developer
قبلاً هم گفته بودم، این سینتکس جدید بسیار بسیار بهتر و کاراتر هست، و مهم تر از همه، منسجم و استاندارد هست که باعث میشه یادگیری و درکش خیلی راحت تر باشه.
البته این سینتکس و گرامر برنامه نویسی با آپادانا هست، قطعاً ساخت کل زبان ریزه کاری های بیشتری داره و صد البته نیازمند یک Editor قوی برای استفاده و برقراری ارتباط با این زبان.

در مورد تغییری که گفتی ممکنه اعمال بشه، به نظر من 1=+i$ استانداردتر هست، چون عملگر جمع خودش جداگانه وجود داره، ولی به نوعی =+ یک نوع عملگر انتساب به حساب میاد، که به نظر من باعث میشه 1=+i$ استانداردتر باشه.البته پیشنهاد من این هست که تمامی توابع و دستورات خروجی داشته باشن، یعنی مثلاً بجای:
کد:
File.Copy($source,$dest)
از کد زیر استفاده بشه:
کد:
$Status = File.Copy($source,$dest)
که مثلاً در این مورد خروجی تابع میتونه TRUE یا FALSE باشه.
خب البته برخی از توابع لازمه شون این هست که خروجی داشته باشن، اما از دید من اگر بشه این روال رو برای همه یا بیشتر توابع پیاده کرد، خیلی بیشتر به منسجم شدن زبان کمک خواهد کرد.
فراموش نکنیم که آپادانا یک برنامه ی مولتی مدیا ساز هست، با قابلیت های کدنویسی بسیار عالی؛ پس هدف باید ساده تر کردن استفاده و یادگیری زبان باشه، با توجه به کاربران این نرم افزار.
محمد جان خیلی ممنون که نظر دادی. نظر مفید و سازنده ای بود.
بله 100% اکثر دستوراتی که نیاز باشه خروجی دارن. و نکته ای که گفتی در مورد 1=+i$ رو در نظر میگیرم.
بازم ممنون
موفق باشی و پیروز
 

JavidFlasher

کاربر فعال
سلام
خیلی خوب شده
یه سوال
آیا کلاس ها و لایبری های خارجی هم میشه براش نوشت ؟؟؟
 

JavidX

Apadana Developer
سلام
خیلی خوب شده
یه سوال
آیا کلاس ها و لایبری های خارجی هم میشه براش نوشت ؟؟؟
سلام

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

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

ممنون از این که نظر دادی.
موفق باشید
 

JavidFlasher

کاربر فعال
ممنون . .. .
هنوز تصمیم قطعی گرفته نشده، ممکنه به جای 1=+i$ از 1+i$ استفاده کنیم.
ان دو دو چیز متمایز که نیستند!!!
مثلا اگه شما از این روش :
PHP:
 $i+=1
دیگه نمیشه به این روش مقدار دهی کرد ؟؟؟؟ :
PHP:
$i=$i+1

یه سوال دیگه
آیا از byteArrayهم پشتیبانی میکنه ؟؟
 
آخرین ویرایش:

mohammad.sub7

کاربر فعال
به نظرم بعد از خود نرم افزار آموزش جامع آپادانا به صورت dvd مالتی مدیا یا کتاب بیرون بیاد خیلی خوب فروش بره
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
ممنون . .. .

ان دو دو چیز متمایز که نیستند!!!
مثلا اگه شما از این روش :
PHP:
 $i+=1
دیگه نمیشه به این روش مقدار دهی کرد ؟؟؟؟ :
PHP:
$i=$i+1
یه سوال دیگه
آیا از bytearrayهم پشتیبانی میکنه ؟؟
چرا جاوید جان، میشه، در واقع عملگر =+، کار دو عملگر = و + رو یکجا انجام میده
 

JavidX

Apadana Developer
ممنون محمد جان.
من توشک افتادم چون جاوید عزیز اینو گفتن:

ممنون . .. .

ان دو دو چیز متمایز که نیستند!!!
مثلا اگه شما از این روش :
PHP:
 $i+=1
دیگه نمیشه به این روش مقدار دهی کرد ؟؟؟؟ :
PHP:
$i=$i+1
یه سوال دیگه
آیا از byteArrayهم پشتیبانی میکنه ؟؟

حق با محمد جان هست و جاوید جان فکر کنم برداشت اشتباه از جمله ای که گفتم کردید. تقصیر خودمه چون باید بیشتر توضیح میدادم.
این کد که مسلماً جا جواب میده:
کد:
$i=$i+1
ولی منظور من این بود:
کد:
$i+1
که روش خوبی نیست و من جایی ندیدم این شکلی استفاده بشه. در حقیقت تصمیم داشتم جای کد زیر استفاده کنم که بعد منصرف شدم:
کد:
$i+=1
ByteArray چه کاربردی توی آپادانا میتونه داشته باشه؟ اگه بخاطر کار با فایل میفرمایید، بستگی داره و الان نمیتونم نظر قطعی بدم. بستگی داره که چه موقعی نیاز باشه توی برنامه .
 
آخرین ویرایش:

JavidFlasher

کاربر فعال
c++و دلفی رو کار نکردم متاسفانه اطلاعی ندارم ولی شیئ گرایی شی گراییه شاید یکم تو سینتکسش و ساخارش فرق داشته باشه اما اصل همون oopو ارث و ارث بری و اشیاه و رفتاراشونه که فکر کنم تو همه زبونها مفهموم واحدی داشته باشن.
ساینتکسش بسیار شبیه به جاوا اسکریپته.
چون هر دو طبق استاندارد ECMA Scriptهستن.
 

JavidX

Apadana Developer
c++و دلفی رو کار نکردم متاسفانه اطلاعی ندارم ولی شیئ گرایی شی گراییه شاید یکم تو سینتکسش و ساخارش فرق داشته باشه اما اصل همون oopو ارث و ارث بری و اشیاه و رفتاراشونه که فکر کنم تو همه زبونها مفهموم واحدی داشته باشن.
ساینتکسش بسیار شبیه به جاوا اسکریپته.
چون هر دو طبق استاندارد ECMA Scriptهستن.
راستش یکی از دوستان گفت فرق میکنه برای همین به شک افتادم. ولی الان که گفتی ارث و ارث بری شکم برطرف شد. :wink:
 

جدیدترین ارسال ها

بالا