اسکریپت نویسی
اسکریپتنویسی
زبان پردازهنویسی یا زبان اسکریپتنویسی، به نوعی از زبانهای برنامهنویسی گفته میشود که برای نوشتن پردازهها استفاده میشود.
پردازهها یا اسکریپتها برنامههای کوچکی هستند که بهوسیله آنها میتوان برخی وظایف تکراری و پراستفاده یا یک وظیفه طولانی را به طور خودکار انجام داد. معمولاً اینگونه وظایف به واژهپردازی در متنها مربوط میشوند.
در دهه ۱۹۶۰ اولین پوستههای فرمان ساخته شدند. کاربران این پوستهها گاه مجبور بودند برای انجام امور خود، سلسلهای از دستورهای تکراری یا مشابه را در پوسته وارد کنند. کم کم به پوستهها قابلیتهایی اضافه شد که کاربر با آن میتوانست الگوی دستورهای خود را به پوسته اعلام کند و پوسته به طور خودکار دستورها را انجام میداد. این پیشرفتها منجر به ساخت اولین اسکریپتهای پوستهای شد.
در واقع اسکریپتهای اولیه برنامههای کوچکی بودند که به وسیله آنها میشد برخی وظایف تکراری و پراستفاده یا یک وظیفه طولانی را به طور خودکار انجام داد. زبانهای اسکریپتنویسی امروزه پیشرفتهای زیادی کردهاند. آنها در زمینههایی چون کنترل وظایف و پوسته، واسطهای گرافیکی کاربر، واژهپردازی، خدمتگزاران وب و خدمتگیرندههای وب استفاده میشوند.
پردازه اجازه کنترل برخی از کاربردهای نرمافزار را به برنامهنویس میدهد اما تعدادی از فرمانها و امکانات زبانهای بزرگ در این زبانها حذف شدهاند. مثلاً امکان نوشتن فایل یا پاک کردن فایلها برروی سیستم کاربر مانند زبانهای برنامهنویسی وجود ندارد. مثالهایی از این دسته عبارت است از : جاوا اسکریپت، پرل و پایتون.
اکشناسکریپت
اکشناسکریپت ActionScript زبان برنامه نویسی برای فلشپلیر میباشد که تعامل با کاربر، پردازش و نگهداری اطلاعات و غیره را در زمان اجرا به عهده دارد .AS بر پایه ECMAScript است که معمولاً به صورت بایت کد توسط compiler درون فایل ذخیره گردیده و درrun-time توسط ActionScript Virtual Machine ترجمه و اجرا میشود. AS مدل پیشرفته و قوی را از یک زبان برنامه نویس ارایه میکند که برای بسیاری از توسعه دهندگان وب و برنامه نویسان با اندکی دانش ازobject-oriented programming آشنا و راحت خواهد بود .
برنامهنویسی سمت سرور
برنامهنویسی سمت سرور روشی است که برای طراحی وب که شامل اسکریپتهای نهان درون یک کد اچتیامال میباشد استفاده میشود که نتیجه درخواست یک کاربر به سرور یک وب سایت میباشد که با کدنویسیهای سمت سرور قبل از پاسخ دادن سرور به کاربر انجام میگردد. اسکریپتها میتواند درون هر کدام از زبانهای اسکریپتی موجود تحت سرور نوشته شود. برنامهنویسی سمت سرور با نوع برنامهنویسی سمت کاربر تفاوت دارد که انواع نهان آن همچون جاوااسکریپت در مرورگر وب در سمت کاربر اجرا میشود. کدنویسی سمت سرور معمولا برای ایجاد یک واسط کاربری و محدود کردن دسترسی کاربران به پایگاههای داده یا منابع اطلاعاتی میباشد. این اسکریپتها ممکن است مشخصات کاربر را برای استفاده در سفارشی کردن پاسخ براساس مشخصات کاربر، نیازمندیهای کاربر و حقوق دسترسی کاربران، گرد آوری کنند. همچنین کدنویسی سمت سرور باعث میشود که مالک وب سایت بتواند دسترسی کاربران به کد منبع و اسکریپتهای سمت سرور را کاهش دهد که این خود ممکن است اختصاصی و یا ارزشی باشد. مشکل کد نویسی سمت سرور این است که کامپیوتر سرور وب سایت باید بیشتر منابع مجاسباتی را پیش از ارسال صفحه به کاربر برای نمایش در مرورگر وب ارائه کند. وقتی که سرور معمولا از یک راه برای مثال پروتکل FTP،HTTP داده ارائه می کد، کاربران ممکن است حق انتخاب از میان تعدادی از برنامههای سمت کاربر دارند (بسیاری از مرورگرهای وب میتوانند از هر دو پروتکل گفته شده استفاده کنند). در موارد برنامههای کاربردی خاص تر، ممکن است برنامه نویسان خودشان اقدام به نوشتن پروتکل برای سرور، کاربر و انتقال اطلاعات نمایند، که میتواند فقط میتواند توسط یکدیگر استفاده شود. برنامههایی که بر روی کامپیوتر کاربر به صورت محلی بدون ارسال یا دریافت اطلاعات از طریق شبکه میباشد سرویس گیرندههای را در نظر نمیگیرند، و به همین دلیل اعمال آن برنامههای تاثیری بر روی اعمال کامپیوترهای سرویس گیرنده ندارند.
تاریخچه
برای اولین بار در دسامبر ۱۹۹۴، Netscape یک پیاده سازی از JavaScript را به وسیله Netscape Enterprise Server برای کد نویسی سمت سرور ارائه نمود.(مدت کمی پس از ارائه شدن JavaScript برای مرورگرها بود) کدنویسی سمت سرور بعدها در اوایل ۱۹۹۵ به وسیله Fred DuFresne در طراحی (Boston MA television station (WCVB استفادهشد. و این تکنولوژی با شماره ۵۸۳۵۷۱۲ در آمریکا ثبت شد. و این حق انحصاری در سال ۱۹۹۸ منتقل شد و در حال حاضر متعلق به (Open Invention Network (OIN است. در سال ۲۰۱۰ OIN، آقای Fred DuFresne را به خاطر اعمالش در اسکریپت نویسی سمت سرور "Distinguished Invertor" نامید.
توضیح
در روزهای اول وب، کدنویسی سمت سرور به طور انحصاری توسط ترکیبی از برنامههای C و یا اسکریپتهای Perl و با پوستهای از اسکریپتهای (Common Gateway Interface(CGI انجام میشد. آن اسکریپتها توسط سیستم عامل اجرا میشدند. و نتایج آن توسط وب سرور بازتاب داده میشدند. بسیاری وب سرورهای جدید میتوانند به طور مستقیم یک خط از زبان اسکریپتی همچون ASP و PHP را به وسیله خود وب سرور و یا ماژولهای اضافه (همچون mod_perl یا mod_php)که برای وب سرورها بودند اجرا نمایند. برای مثال WebDNA شامل یک پایگاه داده نهان درون خودش است. همچنین روشی از کدنویسی(i.e، CGI یا اجرای مستقیم) میتواند برای سخت سایتهای پیچیده با چندین صفحه استفاده شود، ولی معمولا اجرای مستقیم سربار کمتری دارد که ناشی از عدم تماس با مفسرهای خارجی میباشد. وب سایتهای پویا گاهی اوقات از برنامههای سروری کاربردی تحت وب خاصی استفاده میکنند، برای مثال کتابخانه "Python "Base HTTP Server، همچنین بعضی افراد این را کد نویسی سمت سرور نمی دانند. استفاده از روش کدنویسی تحت وب پویا در هنگام طراحی، همچون ASP کلاسیک یا PHP، توسعه دهندگان باید درک عمیقی از منطق، موقت و جدایی فیزیکی بین سرویس گیرنده و سرور داشته یاشند. برای اعمال کاربران برای به راه انداختن کدهای سمت سرور، حالتی را داریم که توسعه دهندهای با ASP کلاسیک کار میکند باید به صراحت باعث شود که مرورگر کاربر یک بازخورد درخواست به وب سرور بفرستد. ایجاد این چنین فعل و انفعالاتی به آسانی باعث صرف وقت زیادی در طراحی و به وجود آورنده مقدار زیادی کد ناخوانا میشود. JSP یک زبان اسکریپتی سمت سرور میباشد.
زبانهای اسکریپتنویسی سمت سرور
ایاسپی (*.asp)
اکتیوویافپی (*.avfp)
ایاسپیداتنت (*.aspx)
سی توسط سیجیآی (*.c. *،csp)
زبان نشانهگذاری کلدفیوژن (*.cfm)
جاوا توسط جیاسپی (*.jsp)
جاوااسکریپت با استفاده از جاوااسکریپت سمت سرور (*.ssjs. *،js)
لوآ (*.lp. *،op)
پرل سیجیآی (*.cgi. *،ipl. *،pl)
پیاچپی (*.php) - اسکریپتنویسی کدباز
پایتون، برای مثال توسط جنگو (*.py)
روبی، برای مثال توسط روبی آن ریلز (*.rb. *،rbw)
اسامایکس (*.smx)
لاسو (*.lasso)
تیسیال (*.tcl)
وبدیانای (*.dna. *،tpl)
تایپاسکریپت
تایپاسکریپت زبان برنامهنویسیای است که توسط مایکروسافت توسعهداده میشود. تایپاسکریپت پیشرفتدادهشدهٔ جاوااسکریپت است و بررسی نوع قوی و شئگرایی واقعی را ذاتاً به آن زبان میافزاید. آندرس هجلزبرگ پدر سیشارپ در توسعهٔ تایپاسکریپت فعالیت داشتهاست.
جاوااسکریپت
جاوااسکریپت (به انگلیسی: JavaScript) زبان برنامه نویسی اسکریپت مبتی بر اشیاء است که توسط NetScape تولید شدهاست. این زبان، یک زبان شیگر است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شدهاست.
علیرغم اشتباه عمومی، زبان جاوا اسکریت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(++C) و جاوا شباهت دارد؛ که این امر برای یادگیری آسان در نظر گرفته شدهاست. از همینرو دستورهای متداول مانند if, for, try..catch ,"while" و... در این زبان هم یافت میگردند.
این زبان میتواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته میشوند، بر خلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی میتواند به عنوان نمونهای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
به علت این قابلیت زبان جاوااسکریپت برای ساختن نمونه از سیستم مناسب میباشد.
کاربرد گسترده این زبان در سایتها و صفحات اینترنی میباشد و به کمک این زبان میتوان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر، از این زبان استفاده میشود.
تاریخچه
اسکریپت را در ابتدا شخصی به نام برندان ایچ در شرکت نتاسکیپ با نام Mocha طراحی نمود. این نام بعداً به LiveScript و نهایتاً به جاوا اسکریپت تغییر یافت. این تغییر نام تقریباً با افزوده شدن پشتیبانی از جاوا در مرورگر وب Netscape Navigator همزمانی دارد. اولین نسخهٔ جاوا اسکریپت در نسخه 2.0B3 این مرورگر در دسامبر ۱۹۹۵ معرفی و عرضه شد. این نام گذاری منجر به سردرگمیهای زیادی شده و این ابهام را ایجاد میکند که جاوا اسکریپت با جاوا مرتبط است در حالی که این طور نیست. عدهٔ زیادی این کار را یک ترفند تجاری برای به دست آوردن بخشی از بازار جاوا که در آن موقع زبان جدید مطرح برای برنامه نویسی تحت وب بود میدانند..
به دلیل موفقیت عمدهٔ جاوا اسکریپت در نقش زبان نویسهای سمت کارخواه (client side scripting language) برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را Jscript نامید. این زبان در نسخه ۳٫۰ از مرورگر اینترنت اکسپلورر و در آگوست ۱۹۹۶ داده شد. تفاوتهای این دو زبان به حدی جزیی است که اغلب Jscript و جاوا اسکریپت به جای هم به کار میروند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت Jscript با استاندارد ECMA مطرح میکند.
نتاسکیپ جاوا اسکریپت را به سازمان Ecma International برای استاندارد سازی ارسال کردهاست و نتیجه نسخهٔ استاندارد شدهای به نام ECMA Script است.
جاوا اسکریپت به یکی از زبانهای برنامه نویسی پر طرفدار در وب تبدیل شدهاست. هر چند ابتدا بسیاری از برنامه نویسان حرفهای زبان را کم ارزش تلقی میکردند چون مخاطبین آن نویسندگان صفحات وب و آماتورهای این چنینی بودند. ظهور ایجکس بار دیگر جاوا اسکریپت را در معرض توجه قرار داد و برنامه نویسان حرفهای بیشتری را به خود جذب نمود. نتیجه ازدیاد فریمورک و کتابخانههای جامعی در این زمینه، بهبود شیوههای رایج برنامه نویسی در جاوا اسکریپت و افزایش کاربرد جاوا اسکریپت خارج از وب است.
امکانات زبانی
امکانات زیر (در صورت قید نشدن) همگی مطابق استاندارد ECMA Script میباشند.
زبان امری و ساخت یافته
جاوا اسکریپت از تمامی نحو ساختاری زبان C پشتیبانی میکند. مانند گزاره (if و switch و حلقههای while و...) یک مورد استثنا تعیین حوزهٔ متغیرهاست: تعریف حوزه در حد block در جاوا اسکریپت وجود ندارد. هر چند جاوا اسکریپت ۱٫۷ با کلمهٔ کلیدی let این نوع حوزه دهی را امکان پذیر میسازد. مانند c در جاوا اسکریپت بین عبارت و گزاره تفاوت وجود دارد.
پویایی
؛ تایپ دهی پویا: مانند اکثر زبانهای نویسهای تایپ به مقدارها منسوب میگردد و نه به متغیرها. برای مثال متغیر x ممکن است به یک عدد وابسته سازی شود، و بعداً به یک رشته. جاوا اسکریپت برای تعیین تایپ شی راههای مختلفی از جمله تایپ دهی اردکی (duck typing) را دارد.
؛ تایپ دهی ضعیف: زبان جاوا اسکریپت از نظر تایپ دهی ضعیف به شمار میآید و در آن نتیجهٔ عملیاتی مانند ۵ + “۳۷”، عبارت “۵۳۷” خواهد بود. (عدد را با رشته جمع کردهاست)
؛ اشیا به دید آرایههای انتسابی: جاوا اسکیرپت تقریباً تماماً بر اساس اشیا است. اشیا، آرایههای انتسابی به همراه یک «ساختار شماتیک» هستند. نام ویژگی اشیا، کلیدهای آرایه انتسابی هستند و درواقع obj.x = ۱۰ با obj[“x”] = ۱۰ هم ارز هستند و شیوه نگارش با نقطه صرفاً یک سهولت نحوی است. ویژگیها و مقدارهایشان در زمان اجرا قابلیت تغییر اضافه و حذف دارند. همچنین میتوان روی ویژگیهای یک شی با ساختار for … in پیمایش کرد.
؛ ارزیابی در زمان اجرا: جاوااسکریپا یک تابع eval دارد که قادر است گزارههای تولید شده در یک رشته در زمان اجرا را، اجرا کند.
تابعی بودن
؛ تابعی بودن: توابع موجوداتی «درجه اول» محسوب میشوند، یعنی خود یک شی هستند. بنابراین میتوانند ویژگی داشته باشند، در آرگومانهای تابعها داده شوند و مانند هر شی دیگری با آنها رفتار شود
؛ توابع داخلی و بستارها: توابع داخلی (توابع تعریف شده داخل یک تابع دیگر) هر بار که تابع بیرونی فرا خوانده شود، ایجاد میشوند و متغیرهای توابع بیرونی تا زمانی که تابع داخلی وجود داشته باشد، وجود خواهند داشت، حتی پس از اتمام آن فراخوانی از تابع بیرونی. (مثال: اگر تابع داخلی به عنوان مقدار برگشتی تابع باشد، هنوز به متغیرهای تابع بیرونی دسترسی دارد) – این مکانیزم بستار گرفتن در جاوا اسکریپت است.
ساختار شماتیک» محوری
؛ ساختار شماتیک: جاوا اسکریپت به جای ردهها برای تعریف ویژگیهای اشیا، که شامل متدها و وراثت است از «ساختار شماتیک» استفاده میکند (پیشنمونه). امکان شبیه سازی بسیاری از امکانات رده-محور با ساختارهای شماتیک جاوا اسکریپت امکان پذیر است.
توابع در نقش سازندهٔ اشیا
برای توابع علاوه بر نقش عادی، به عنوان سازنده ی اشیا هم عمل میکنند. آوردن یک new قبل فراخوانی تابع، آن را با کلمهٔ کلیدی this وابسته سازی شده به شی جدید اجرا میکند. ویژگی prototype از تابع مورد نظر، ساختار شماتیک شی جدید را مشخص میکند.
؛ توابع در نقش متد: بر خلاف بیشتر زبانهای شی گرا تفاوتی میان تعریف تابع و متد وجود ندارد. بلکه تفاوت در زمان فراخوانی تابع است، زمانی که یک تابع به عنوان متد یک شی فراخوانده میشود کلمهٔ کلیدی this محلی آن تابع به شی مورد نظر وابسته سازی میشود.
امکانات دیگر
جاوا اسکریپت برای تامین اشیا و متدها که با آنها تعامل کند به یک محیط اجرایی (مانند مرورگر وب) نیاز دارد تا بتواند به این ترتیب با دنیای خارج ارتباط برقرار کند. همچنین برای دسترسی به سایر نویسهها (include) هم به این محیط نیازمند است (مانند تگ <script>در HTML). (البته این یک ویژگی زبانی نیست اما در عمل اغلب این طور پیاده سازی شدهاست)
؛ تعداد متغیر پارامتر (variadic): تعداد نامعینی پارامتر را میتوان به یک تابع ارسال نمود. تابع میتواند هم از طریق پارامترهای رسمی و هم از طریق شی محلی arguments به آنها دسترسی داشته باشد.
Literalهای آرایه و شی
مانند بسیاری از زبانهای نویسهای آرایهها و اشیا (که در زبانهای دیگر همان آرایههای انتسابی هستند) را میتوان با یک نحو موجز ایجاد و توصیف نمود. در واقع این شیوهٔ نگارش پایهٔ قالب دادهای جیسون هم هست.
عبارات منظم
جاوا اسکریپت به شیوهای مشابه زبان پرل از عبارات منظم پشتیبانی میکند که نحوی قدرتمند و موجز را به شکلی فراتر از توابع پیش ساخته برای کار با رشتهها، فراهم میکند.
نظام تایپ دهی
انواع زیر جزو انواع دادههای قابل دسترس در زبان جاوا اسکریپت است. در استاندارد ECMA انواع دیگری هم تعریف شده که صرفاً داخلی است و برای پیاده سازی است.
تعریف نشده: این تایپ فقط یک مقدار با نام undefined دارد و متعلق به تمام متغییرهای مقدار دهی نشدهاست
نوع تهی: نوع تهی هم فقط یک مقدار دارد با نام null
نوع دودویی: نمایندهٔ یک مقدار منطقی است و دو مقدار true و false را میپذیرد.
نوع رشته: در بر گیرندهٔ تمام رشتههای متناهی از ۰ یا بیشتر عنصر ۱۶ بیتی بدون علامت است. این عناصر با اندیسهای نامنفی قابل دسترسی هستند. طول رشته تعداد عناصر داخل آن و طول رشتهٔ تهی برابر ۰ است.
زمانی که رشته حاوی متن واقعی باشد هر عنصر به عنوان یک واحد UTF-16 در نظر گرفته میشود (مستقل از این که شیوهٔ واقعی نگه داری رشته چه باشد). تمام عملیات بر روی رشتهها آنها را به عنوان اعداد صحیح بدون علامت در نظر میگیرند و تضمین کنندهٔ تولید رشته به حالت normalize شده نیست و تضمینهای خاص زمانی هم ندارد. علت این تصمیم گیری سادگی در پیاده سازی ذکر شدهاست.
نوع عدد: نوع عدد در جاوا اسکریپت مطابق با استادارد IEEE برای اعداد شناور دودویی است (با اندکی تفاوت).
نوع شی: شی در جاوا اسکریپت یک مجموعه بدون ترتیب از ویژگیها است. هر ویژگی میتواند داخلی، فقط-خواندنی، غیر قابل حذف، و غیر قابل پیمایش باشد (یا ترکیبی از اینها یا هیچ کدام)
تبدیلات خودکار
این زبان دارای تبدیلات خود کار بین این انواع دادهای است.
زمانی که بخواهد یک if را ارزیابی کند یا از عملگرهای منطقی ! و && و || استفاده شود، تبدیل به نوع دودویی را انجام میدهد. مقادیر ۰ و ۰- و NaN به false و سایر مقادیر عددی به true نگاشت میگردد. همچنین رشتهٔ تهی false و سایر رشتهها true در نظر گرفته میشود. انواع شی و تابع true و undefined و null هم false در نظر گرفته میشود.
زمانی که یکی از عملوندهای عملگر + رشته باشد، تبدیل به رشته صورت میگیرد، مانند ۵ + “۳۷” که میشود “۵۳۷”
عملگرهای دیگری عددی (جز جمع) منجر به تبدیل به عدد میگردد مانند ۳ – “۵۷” که مقدار عددی ۳۴- را به دست میدهد.
ویامالاسکریپت
زبان وی-ام-ال اسکریپت یک گویش یا مشتق از زبان جاوا اسکریپت میباشد که برای صفحات وی-ام-ال استفاده میشود که قسمتی از پروتکل برنامههای بیسیم و رادیویی میباشد.
وی-ام-ال اسکریپت یک سند مشتری محور میباشد و خیلی به جاوا اسکریپت شباهت دارد.دقیقا شبیه جاوا اسکریپت، وی-ام-ال اسکریپت برای وظایفی همچون صحت ورودیها، ساختن پیغامهای خطا و جعبههای محاورهای دیگر استفاده میشود.
وی-ام-ال اسکریپت مبتنی بر ای-سی-ام-ای اسکریپت(سند انجمن سازنده کامپیوترهای اروپا) میباشد که نسخه استاندارد شده جاوا اسکریپت میباشد. بنابراین نحو وی-ام-ال اسکریپت بسیار شبیه جاوا اسکریپت میباشد.
عمده تفاوت بین جاوا اسکریپت و وی-ام-ال اسکریپت این است که کد جاوا اسکریپت میتواند در صفحات اچ-تی-ام-ال مورد استفاده قرار گیرد.از آن جایی که همیشه درون یک فایل جدا از صفحات وی-ام-ال قرار دارد. آدرسها برای برگرداندن کد واقعی وی-ام-ال به سند وی-ام-ال.
ویبیاسکریپت
VBscript یک زبان رایانهای فعال است که توسط شرکت مایکروسافت توسعه یافتهاست. ترکیبات این زبان از تغییرات محدودی از زبان برنامه نویسی ویژوال بیسیک برگرفته شدهاست.
VBscript به صورت معمولی بر روی همه ویندوزهای انتشار یافته توسط مایکروسافت از ویندوز ۹۸ تا حالا نصب شدهاست. براساس تنظیمات و اهداف وسایلی که اجرا شده بر روی ویندوز CE ممکن است این برنامه شامل ویندوز CE نشود و سود این برنامه برای مدیران ویندوز برای جستجو کردن یک ابزار اتوماتیک است که از دسته زبانهای برنامه سازی توسعه یافته اولیه اواخر سال ۱۹۷۰ قوی تر و پربازده تر باشد.
VBscript باید با یک فضای استاندارد میزژیهایی شبیه کنترل سندهای مایکروسافت.
تاریخچه
VBscript به عنوان قسمتی از تکنولوژیهای نمایش ویندوز به کار گرفته شد. چیزی که هدفش در ابتدا برای توسعه وب در سال ۱۹۹۶ ارسال و منتشر شد، در طول یک دوره دو ساله VBscript و JVscript از ورژن ۱٫۰ به ورژن ۲٫۰ ارتقاء پیدا کردند و بعد از آن زمان مدیران سیستمها به این فکر افتادند که از این زبان استفاده کنند. در ورژن ۵٫۰ دستورالعملهای VBscript با ویژگیهایی نظیر توضیحات منظم، کلاسها، حالتها (مقدار/ اجرا/ اجرای عمومی) تابع برای سنجش، اجرای دستورهایی که توسط یک ویرایش گر دیگر ساخته شدهاست، یک اشاره گر دستور العملها مثل Getref()، پخش شده کمکهای کامپیوتر، رشد پیدا کردهاند.
در ورژن ۵٫۵ (Submatches)ها برای کلاس کلاس توضیحات منظم در VBscript اضافه شدهاست، که در نهایت به VBscript اجازه میدهد که تألیفاتی را سند کند که گروههای توضیحاتی را در درون خود تسخیر کند. این پیشرفت قبلاً فقط در JVscript از خانواده محصولات مایکروسافت ممکن بود. از سال ۲۰۰۸ تا حالا هیچ دستورالعمل جدیدی به نام VBscript اضافه نشدهاست. بطوری که توسط ویندوز powershell جایگزین شدهاست.
به علاوه کمکها در ادامه با مقدار کد نوشته شده در برنامه وظایف خود را ادامه میدهند به خاطر اینکه آنها به عنوان یک ابزاری مؤثر برای بعضی وظایف باقی میمانند.
ماشین زبان به طور مستمر توسط تیم مهندسی نگهداری مایکروسافت نگهداری شدهاست. چیزی که برای رفع خطاها و خدمات امنیتی قابل دسترسی است.
وقتی استفادهها در اینترنت اکسپلورر مایکروسافت به کار گرفته شده VBscript در دستورالعملها به JVscript شبیه میشود به عنوان یک زبان برای نوشتن دستورالعملهایی که برای صفحات HTML شامل شدهاند و متقابلاً با مدل شیءگرایی اسناد صفحات DOM که به تنهایی برای انجام وظایفی در HTML ممکن نیست. نمونههای دیگر از مرورگرها firebox و opera هستند که برای پشتیبانی VBscript ساخته نشدهاند. این به این معناست که ارتقاء دهندههای مرورگرها برای ارتقاء مرورگرها از زبان JVscript استفاده میکنند. در کنار کاربران وب، VBscript همچنین برای پردازش سرور صفحات وب استفاده میشود که این مسئله برای صفحات فعال سرور مایکروسافت ASP بسیار قابل توجهاست. ماشین ASP و کتابخانه تایت و vbscript.dll,asp.dll برای اجرای اسناد VBscript که جا شده در یک صفحه ASP مشمول تبدیل کنندههای ٪> و <٪ است. این یک مثال است از یک صفحه ASP با VBscript که فرمت یک زمان ۲۴ ساعته را نشان میدهد. همچنین VBscript میتواند برای تولید کاربردهایی که مستقیماً بر روی ویندوزهای کامپیوترهای شخصی مایکروسافت اجرا میشوند مورد استفاده قرار گیرد.
سادهترین مثال از آن یک سند است که استفاده فضای میزان ویندوز را میسازد. یک مثال از سند برای بالا آمدن به تنهایی فایل از راه گسترش فایل VBS است.
این سند میتواند در دو راه مطلوب شده باشند:
wscript. exe استفاده شده برای نمایش خروجی و ورودی را حول یک GUI دریافت کند. مثل بستههای دیالوگی و ورودی
cscript. exe استفاده در محیط ویرایش دستورات VBscript.
فایلهای vbs میتوانند دو نوع فایل ویرایشی را شامل شده باشند:
فایلهای wsf: فایلهایی که بعد از XML معمول شد.
فایلهای hta: فایلهایی که بعد از HTML معمول شد.
فایلهای wsf میتوانند فایلهای vbs چندگانه را شامل شوند. در نتیجه فایلهای wsf معناهایی برای استفاده مجدد از کدها را مهیا میکنند:
میتوانیم یک کتابخانهای از کلاسها یا تابعهایی در یک یا چند فایل vbs بنویسیم و آن فایلها را در یک یا چند فایل wsf برای استفاده و استفاده مجدد آن تابعها در یک راه مدل شده شامل کنیم. مورد استفاده دیگر HTML در کاربردهای HTML و HTA است. در یک HTA، HTML برای ملاقات کاربران مورد استفاده قرار گرفتهاست و یک زبان ویرایش مثل HTML برای منطق برنامه مورد استفاده قرار گرفتهاست.
HTAS در درون mshta.exe اجرا میشود. چیزی که یک فضای مورد اعتماد تولید شده توسط اینترنت اکسپلورر است. محدودیتها برای اجرای کاربردها در وب یا محدوده اینترنت مثل دسترسی به فایلهای محلی یا راههای شبکهای به کار برده شدهاست. همچنین HTAS در این محیط قابل اعتماد اجرا میشود. راهنمای فعال تحقیق میتواند موضوعی برای محدوده منطقی اینترنت اکسپلورر و پیامهای خطای مربوطه باشد.
VBscript و JVscript میتوانند در یک فایل wsc برای تولید یک مؤلفه ویرایش ویندوز مورد استفاده قرار گیرد. یک کلاس ویرایش فعال که میتواند توسط کاربردهای کامپیوتری قابل اجرای دیگر طلب شده باشد. در آخر VBscript به عنوان یک زبان ویرایشی وارداتی برای بعضی کاربردهای جاداده شده تطابق داده شدهاست. مثل ملاقاتهای اپراتوری تولیدی و ملاقاتهای ماشینی بشر.
توابع و دستورالعملها
VBscript توابعی کتابخانهای و روتین را محیا کردهاست مثل تاریخ/ زمان، عملیات رشتهای، ریاضی، تقابل کاربران، خطایابی و توضیحات منظم.
به علاوه تابعها میتوانند به استفاده از فناوریهای فعال اضافه شده باشند. مدیریت سیستمی فایل، تغییر و تبدیل فایل، و عملکردهای متن در حال جریان میتوانند به سرانجام برسند با کتابخانه زمان اجرای ویرایش scrrun.dll. فایل باینری و حافظهٔ ۰ و ۱ توسط کلاس ADODB.Stream محیا شدهاست. فایلی که هم میتواند به عنوان سازنده رشته مورد استفاده قرار گیرد و هم میتواند به عنوان تبدیل کننده یک آرایهای از بایتها به یک رشته و بالعکس مورد استفاده قرار گیرد. دسترسی به پایگاه اطلاعات مقدور است در اطراف شیءهای دادهای فعال ADO و پایگاه سوخت IIS با مجوزهای معتبر و کافی توسط تابع Getobject() میتواند دستکاری شود. به علاوه، فایلهای XML و طرحها میتوانند توسط کتابخانه XML مایکروسافت دستکاری شده باشند. (msxml۳.dll ، msxml۶.dll) چیزی که میتواند از طریق XMLHTTP و شیءهای سرور XMLHTTP برای بازیابی شاخههای وب جهانی مورد استفاده قرار گیرد.
برنامهنویسی ادیبانه
برنامهنویسی ادیبانه (به انگلیسی Literate Programming) چگونگی نگارش یک برنامه رایانهای است، بطوریکه صورت و شمایل آن برنامه به شکل اسناد و متونی باشد که برای خواندن غیررسمی و غیرفنی توسط انسان (مانند خواندن متون ادبی)، مناسب باشد. این مفهوم برای اولین بار توسط دونالد کنوت، دانشمند علوم رایانه و استاد افتخاری دانشگاه استانفورد (دانشگاه)، در سال ۱۹۸۱ (میلادی) میلادی مطرح شدهاست.
در این روش متن برنامه (کد مبدا) و توضیحات به همراه هم در یک فایل مبدا ذخیره میشوند. متن اصلی برنامه و توضیحات را میتوان بطور کامل بهوسیلهٔ برنامههای کاربردی خاص، استخراج کرد.
برنامهنویسی اعلانی
برنامهنویسی اعلانی، در علوم رایانه یکی از شیوههای برنامهنویسی است که در آن منطق محاسبات بدون شرح چگونگی انجام آنها بیان میشود. برنامههای اعلانی تلاش میکنند تا با توصیف عملیات مورد نیاز برنامهها بجای توضیح چگونگی انجام عملیات، تاثیرات جانبی (side effects) درون برنامهها را کاهش و یا به کل ازمیان بردارند که از لحاظ اولویتهای عملیاتی در تناقض کامل با شیوه برنامهنویسی دستوری میباشند. زبانهای دستوری زبانهایی هستند که عملیات تحلیلی را برحسب عباراتی که در وضعیت برنامهها تغییراتی ایجاد میکنند، شرح میدهند حال آنکه زبانهای اعلانی برنامه هارابه عنوان اصول منطق محاسباتی و محاسبات را کسورات و اجزای کوچک درون فضای آن منطق میبینند.از آنجا که این زبان میتواند تا حد چشمگیری نوشتن برنامههای موازی برای رایانش موازی را آسان و ساده کند توانسته توجه زیادی را به خود معطوف سازد.
زبانهای معمول اعلانی شامل برنامهنویسی تابعی، عبارت باقاعده، برنامهنویسی منطقی میشوند.
تعریف
زبان ها و یا برنامههای اعلانی معمولاً به روشهای گوناگونی معرفی میشوند:۲
هر سبک برنامه ریزی، که دستوری نباشد.
هر برنامهای که توضیح دهد چه عملیاتی مورد نیاز است و نه اینکه به توصیف چگونگی انجام آن عملیات بپردازد.
هر نوع برنامهای که عاری از هر گونه تآثیرات جانبی (side effects) باشد.
هر زبانی که در مطابقت کامل و واضح با منطق ریاضیات باشد.
خلاصه
زبان اعلانی را میتوان به منزله چتری فرض کرد که شامل چند نمونه ساختار برنامه نویسی معروف میباشد:۳
برنامههای کاربردی(functional programming)
ابن نوع برنامهها، برنامههایی هستند که با محاسبات و تحلیلات به مانند ارزیابی توابع ریاضیاتی رفتار میکنند و از دادههای توضیحی(state)و بی ثبات(mutable) دوری میکنند. و بر خلاف برنامههای دستوری که به تغییرات وضعیت درون برنامهها تاکید دارند به کاربرد توابع تآکید میکنند.از جملهٔ این قبیل برنامهها میتوان به lips،APL اشاره کرد که بعدها نمونههای پیشرفته آن مانند Schemایجاد شد.
برنامههای منطق(logic programming)
این نوع زبان خود به سه دسته برنامههای قیدی(constraint programming)، برنامههای تحلیل داده(data flow programs)و برنامههای (domain specific) تقسیم میشود. برنامه ریزی منطق به عنوان یک سطح وسیع استفاده از منطق ریاضیات میباشد که در زمینههای تحلیل و محاسبات کامپیوتری، اثبات تئوریهای علمی، ایجاد مدل و حل مسائل، از این نوع ساختار برنامه ریزی استفاده میشود.زبانهایی چون svg،html،xsltاز نمونه زبانهای منطق به شمار میآیند.
برنامهنویسی بر پایه پیشنمونه
برنامهنویسی بر پایه پیشنمونه (به انگلیسی: Prototype-based programming) شیوهای از برنامهنویسی شئگرا است که کلاس در آن موجود نیست و رفتار استفادهٔ مجدد (که به وراثت در زبانهای بر پایهٔ کلاس شناخته میشود) توسط فرایندی از شبیهسازی اشیاء موجود انجام میپذیرد. این مدل همچنین به بدون کلاس، پیشنمونهگرا یا برنامهنویسی بر پایهٔ نمونه نیز شناخته میشود. دلگیشن (به انگلیسی: Delegation) قابلیت زبانی است که برنامهنویسی بر پایهٔ پیشنمونه را پیشتیبانی میکند.
برنامهنویسی پودمانی
برنامهنویسی پودمانی یا برنامهنویسی پیمانهای (به انگلیسی: Modular programming)، یک روش طراحی نرمافزار است برای افزایش وسعت نرمافزاری که از قسمتهای مجزایی به نام پودمان تشکیل شدهاست.
یک ماژول، تکه برنامه ای است که با یک استاندارد و قالب مشخص طراحی شده و انجام یکسری از فعالیتها را بر عهده دارد. در عوض مدیریت امکانات مورد نیاز ماژول و همچنین مدیریت بر روی خود ماژول توسط سایت انجام خواهد شد. مثلاً شما با افزودن ماژول خرید و فروش online، تمامی قابلیتهای یک سایت فروشگاهی را به سایت موجود خود خواهید افزود. در عوض ماژول جدید به دلیل ارث بردن و استفاده از قابلیتهای پایه ای سایت، چنان بر روی سایت شما عمل می نماید که گویی از ابتدا درون سایت بوده و بخشی جدا از برنامه نیست.
برنامهنویسی تابعی
برنامهنویسی تابعی (به انگلیسی: Functional programming) نوعی پارادایم برنامهنویسی است که در آن «محاسبات» به صورت ارزشیابی توابع ریاضی در نظر گرفته میشوند.
برنامهنویسی جنبهگرا
برنامهنویسی جنبهگرا روشی برای برنامهنویسی است که پس از برنامه و برای رفع مشکلات آن به وجود آمد. هدف از برنامه نویسی جنبهگرا، مستقل کردن وظایف (در قالب ماژولها) است به طوری که کمترین تداخل را در یکدیگر داشته باشند تا نهایتاً بتوان از آنها برای برنامههای دیگر است. برای مثال وظیفهٔ اهراز هویت در یک برنامه را میتوان به عنوان یک جنبه در نظر گرفت و ماژول جداگانهای برای آن ساخت تا از این پس در تمام پروژههای مشابه بتوان از آن استفاده کرد. بیشتر زبانهای برنامهنویسی، از برنامهنویسی جنبهگرا پشتیبانی خوبی به عمل میآورند. میتوان از آن جمله به جاوا و روش AspectJ اشاره کرد. برنامهنویسی جنبهگرا، ارتباط تنگاتنگ و نزدیکی با دارد ولی دو مفهوم متفاوت هستند.
برنامهنویسی دستوری
برنامهنویسی دستوری (به انگلیسی: Imperative programming) در علوم رایانه یکی از شیوههای برنامهنویسی است که در آن مراحل اجرای یک برنامه کامپیوتری قدم به قدم توسط برنامه نویس بیان میشود. این بر خلاف زبانهای اعلانی است که در آنها تنها نتیجه انجام دستورات بیان میشود. به بیان دیگر در زبانهای دستوری چگونگی اجرای برنامه بیان میشود اما در زبانهای اعلانی چیستی نتیجه بیان میشود.
به عنوان مثال اگر قصد باز کردن دری را داشته باشیم و با زبان اعلانی این را بخواهیم بیان کنیم خواهیم گفت در را باز کن اما اگر با زبان دستوری بیان کنیم خواهیم گفت بلند شو، به طرف در نردیک شو، دستگیره را بگیر و در را به طرف بیرون هل بده.
برنامهنویسی رویدادمحور
برنامهنویسی رویداد گرا یک الگوی برنامهنویسی است که در آن، روند اجرای برنامه توسط رویدادها - برای مثال، خروجی یک سنسور یا دستورهای کاربر (کلیک های موس، دکمه های کیبورد) و یا پیام های دریافتی از سایر برنامه ها یا رشته ها - تعیین می گردد.
برنامه نویسی رویداد گرا را می توان به عنوان یک تکنیک معماری نرمافزار تعریف کرد که در آن نرمافزار یک حلقه اصلی دارد که به روشنی به دو بخش زیر تقسیم می شود:
نخست، انتخاب رویداد (یا شناسایی رویداد)
و دوم، اداره کردن رویداد ها
برنامه های رویداد گرا را می توان در هر زبانی نوشت، اگرچه این کار در زبان هایی که سطح بالایی از انتزاع را فراهم می کنند، آسان تر است.
برنامهنویسی رویهای
برنامهنویسی پروسهای یک پارادایم برنامهنویسی بر پایه مفهوم فراخوانی پروسهها است. پروسه که همچنین به نامهای روال، زیرروال (سابروتین)، تابع، روش شناخته میشود، دربردارنده یک سری گامهای محاسباتی است که باید توسط رایانه اجرا شوند.
هر پروسه میتواند در هر نقطهای در طول اجرای برنامه فراخوانده شود شامل فراخوانی پروسه توسط خودش (برنامهنویسی بازگشتی) یا پروسههای دیگر.
برنامهنویسی ساختیافته
برنامهنویسی ساختیافته یک پارادایم برنامه نویسی است که در آن برنامهنویسی قدمها و روالهایی را که لازم است تا برنامه به جواب برسد، مشخص میکند. در این روش از برنامهنویسی، انجام یک روال به روالهای کوچک تر تقسیم میشود و به این ترتیب یک برنامه با شکسته شدن و به ریز برنامههای کوچک تر تقسیم شدن سعی میکند تا عملکرد مد نظر را پیادهسازی کند.
رویه ها (به انگلیسی: routines)، زیر رویه ها(به انگلیسی: subroutines)، ساختار بلوک (به انگلیسی: block structures) و حلقه های for , while در کنار سادگی آزمودن کدها و صرف نظر کردن از Goto که برنامه را به یک کلاف سردرگم (به اصطلاح برنامه نویسی: spaghetti code) تبدیل می کرد، موجب شدند تا دنبال کردن برنامه و نگه داری از آن تا حد زیادی بهبود یابد.
این پارادایم در دهه ی 1960 توسط بوهن (به انگلیسی: Böhm) و جاکوپینی (به انگلیسی: Jacopini) پدید آمد و در سال 1968 پدیده ی معروفی به نام Goto از سوی ادسخر دیکسترا زیان آور تشخیص داده شد و این پدیده ی تازه به صورت تئوری در قالب برنامه نویسی ساخت یافته ارایه شد و پس از آن توسط زبان الگول(به انگلیسی: ALGOL) به کمک ساختارهای کنترلی پشتیبانی گردید.
مثال
به عنوان مثال برای نوشتن برنامهای که قراراست اطلاعات نمرات یک محصل را بگیرد و کارنامهٔ آن را چاپ کند، زیر روالهای زیر لازم است:
زیر روالی ای برای خواندن اطلاعات ورودی
زیر روالی ای برای جمعآوری اطلاعات ورودی و محاسبهٔ معدل
زیر روالی برای چاپ اطلاعات به صورت یک جدول
زیر روالی برای اتصال به چاپگر و چاپ گزارش
هر زیر روال آنقدر کوچک میشود که برنامهنویس بتواند راحت تر کار کردن آن را درک کند ( هر زیر روال معمولاً ۳۰ خط برنامهنویسی است). به این ترتیب برنامهنویس با نوشتن هر زیر روال بخشی از برنامه را تولید میکند و برنامهنویسان مختلف میتوانند بر روی زیر روالهای مختلف کار کنند تا در نهایت به اضافه نمودن آنها به یکدیگر برنامهٔ نهایی ساخته شود.
در زبانهای ساختار یافته توابع کتابخانهای فراوانی وجود دارند که سعی میکنند به برنامهنویس در برخی از روالها کمک کنند. مثلاً برای چاپ در مثال فوق، توابع کتابخانهای برای سهولت انجام کار در این زیر روال، در زبان پاسکال، وجود دارد.
برخی از زبانهای ساخت یافته:
پاسکال
سی
بیسیک
برنامهنویسی شیءگرا
برنامهنویسی شیءگرا (به انگلیسی Object-Oriented Programming مخفف OOP) یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شی ها می باشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا می کند. به این معنا که داده ها و توابعی که قرار است بر روی این داده ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع بندی شده و یک واحد(شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می شوند و از این طریق، توابع بیگانه ی خارج از آن شی، دیگر امکان ایجاد تغییر در داده های درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپرده ی شما در بانک است، تشکیل یک شی را می دهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگی های برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادیام های برنامه نویسی است.
فلسفه یی که منجر به شکل گیری ی زبان های شی گرا شد، عبارت بود از این واقعیت که نحوه ی عملکرد مغز و شیوه ی دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات(اندیشیدن)، شیوه یی شی گراست، از همین روی می بایستی زبانی تعریف می شد که همین شیوه را مبنای کار خود قرار داده و بازتولید می کرد. و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در زبان های برنامه نویسی نیز می بایستی این اصول کلی برقرار می شد. تا به این شکل، برنامه نویس بتواند با بهره گیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شی های مختلفی را تعریف نموده، این شی ها را در ارتباط با یکدیگر قرار داده و از شی های پویای تولید شده برای حل مساله ی پیش روی استفاده نماید. امروزه اکثر زبانهای دستوری برنامه نویسی از فنون شیءگرایی پشتیبانی میکنند. زبانهایی مانند جاوا، سی++، سی شارپ، دلفی از جمله زبانهای شیءگرا هستند. حتی بسیاری از زبانهای روال گونه که ساختار برنامهها در آنها بلوکهایی با نام پروسیجر است امروزه از فنون شیءگرایی نیز پشتبانی میکنند. زبانهای سی++ و پیاچپی از این جمله هستند. هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده میشوند. در این روش از برنامه نویسی دید برنامه نویس به سیستم دید شخصی است که سعی مینماید به پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید. مفهوم مدیریت دیداری
مفاهیم عمده
کلاس
کلاس نوع خاصی از آرایه است که امکان ذخیره و جمع بندی تعداد زیادی المان را (که شامل داده ها و توابع هستند) برای یک شی جدید فراهم آورده و تحت یک نام مشترک ذخیره می کند. اما بر خلاف آرایه که تنها قادر به ذخیره ی داده هایی هم جنس است، کلاس می تواند داده هایی از جنس های مختلف را ذخیره نماید. به طور مثال در نظر بگیرید که می خواهیم تاریخ 13 نوامبر 2006 را که تشکیل شده از روز، ماه و سال است مورد استفاده قرار دهیم
حال در نظر بگیرید که نه فقط یک تاریخ، بلکه n تاریخ متفاوت مورد نیاز است. این بدان معنی ست که می بایستی به تعداد n بار، سه متغیر بالا، جداگانه تعریف شوند و تعریفِ تک تک و پیاپی متغیرها، نه فقط از لحاظ زمانی بسیار وقت گیر می نماید، بلکه از لحاظ میزان کد مورد نیاز نیز بسیار غیر عملی ست، چرا که هر بار می بایستی نام جدیدی برای متغیرها در نظر گرفته شود (دو متغیر متفاوت نمیتوانند هم نام باشند). در اینجاست که کلاس ها به خوبی وارد عمل می شوند. با استفاده از کلاس ها می توان متغیرهای متعدد (در مثال بالا: int day ;String month, ;int year) را زیر عنوان یک جنسیت مشترک جدید (به طور مثال هر سه را در یک کلاس با نام Date)، تعریف و جمع بندی نمود. و بعد از آن، بدون نیاز به تعریف مجدد روز، ماه و سال،از کلاس Date به میزان مورد نیاز استفاده کرد:
class Date{
int day;
String month;
int year;
}
وراثت
وراثت یا ارث بری (Inheritance) از مفاهیم اساسی برنامه نویسی شیءگراست. هر شیء یک نمونه از یک کلاس است و هر کلاس میتواند از کلاس یا کلاسهای دیگری مشتق شده باشد (خواص متدها یا رویدادهای کلاسهای دیگر را به ارث ببرد). در یک مثال ساده میتوان اتومبیلی را در نظر گرفت که برای جلوگیری از بازنویسی خواص عمومی اتومبیل شامل: چهار چرخ، متدهای حرکت چرخ، متد چرخاندن فرمان، فرمان، بدنه، در و غیره، میتوان یک کلاس پایه از اتومبیل ایجاد کرد سپس مثلاً برای اتومبیل زانتیا مدل C۵ یک کلاس جدید ایجاد کرده که خواص، متدها و رویدادهای عمومی اتومبیل را داشته باشد و فقط برای خواص، متدها و رویدادهای جدید این اتومبیل کد نوشته شود. این ویژگی باعث صرفهجویی در نوشتن کد و تا حدودی تضمین صحت کد موجود میشود. به عنوان مثال اگر کلاس پایه مشکلی داشته باشد فقط کافی است کلاس پایه تغییر داده شود و در تمامی کلاسهایی که از این کلاس پایه ویژگیای ا به ارث بردهاند این تغییر اعمال خواهد شد.
مخفیسازی
کپسوله سازی، مخفیسازی (Encapsulation)، یا لفافهبندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده میخواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را بر میدارید، استارت میزنید و با فشار آوردن به پدالهای گاز و ترمز و چرخش فرمان و ... به محل کارتان خواهید رسید. در طول این مسیر در اتومبیل شما به عنوان یک شیء اعمال مختلفی در حال انجام بود. مثلاً لنت ترمز به دیسک چرخ برخورد میکرد و باعث کم شدن سرعت میشد یا شمعها شروع به جرقه زدن در زمانی بخصوصی میکردند. حال فرض کنید که عمل مخفی سازی وجود نداشت و شما مجبور بودید که جرقه زدن شمعها را کنترل میکردید و به سیستم سوخت رسانی در موقع لزوم دستور میدادید که سوخت را بداخل سیلندرها ارسال کند و... یا هیچگاه به مقصد نمیرسیدید! یا سالم نمیرسیدید!
عمل مخفی سازی باعث میشود که اشیاء بدون آنکه از چگونگی کارکرد یکدیگر اطلاع داشته باشند با هم کار کنند.
چندشکلی
چند ریختی(Polymorphism) چند ریختی، کمیتی است که به یک رابط امکان میدهد تا از عملیات یکسانی در قالب یک کلاس عمومی استفاده کند.عمل خاص کلاس را ذات حقیقی شیء تعیین میکند.مثال سادهای از چند ریختی، فرمان اتومبیل است. عمل فرمان اتومبیل برای تمام اتومبیلها بدون توجه به ساز و کاری که دارند، یکسان است. فرمان برای اتومبیل که به طور مکانیکی کار میکند یا با نیروی برق یا هر چیز دیگری، عمل یکسانی را انجام میدهد. بنابراین، پس از اینکه شما عملکرد فرمان را یاد گرفتید، می توانید فرمان هر اتومبیلی را کنترل کنید. همین هدف در برنامه نویسی نیز اعمال میشود. به طور کلی، مفهوم چند ریختی، اغلب با عبارت ((یک رابط، چندین روش))بیان میشود. این بدین معنی است که امکان طراحی رابط عمومی برای گروهی از عملیات مرتبط وجود دارد. چند ریختی یا چندشکلی (Polymorphism) به این معنا است که اشیاء میتوانند در موقعیتهای مختلف، رفتارهای متفاوتی بروز دهند. مثلاً یک تابع در صورتی که بر روی نمونهای از کلاس آ فراخوانی شود، رفتار ب را بروز دهد در حالی که اگر بر روی کلاس ج (که فرزند کلاس آ است) فراخوانی شود، رفتاری متفاوت انجام دهد.
انتزاع / تجرید
به این معنا است که بخشی از یک موجودیّت یک مفهوم را که میان همهٔ وارثان مشترک است، پیش تعریف کنیم. این توانایی منجر به داشتن نگاه مشابه به موجودیّتهای مشابه میگردد.
یک مثال کاربردی
در اطراف ما اشیاء زیادی وجود دارد و میتوان تمام مفاهیم موجود در طبیعت را با اشیاء تقلیل داد. مثلاً یک ماشین باربری. این ماشین یک سری خصوصیات دارد: چهار چرخ، یک پدال ترمز، یک پدال گاز، یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن و.... این ماشین در صورتی که ما پدال گاز آن را فشار دهیم، حرکت میکند. در صورتی که فرمان آن را بچرخانیم تغییر مسیر میدهد. پس این شیء علاوه بر یک سری خصوصیات، یک سری رفتار مشخص هم به ما نشان میدهد. ولی فقط این یک ماشین نیست که این کار را انجام میدهد. تمامی ماشینها این کارها را انجام میدهند. پس میتوانیم این ماشین را 'تعریف' کنیم و بگوییم:
ماشین باربری وسیلهای است که چهار چرخ، یک گاز، یک ترمز، یک فرمان و یک محل برای حمل بار دارد و اگر پدال گاز آن فشار داده شود حرکت میکند. این تعریف این ماشین است ولی خود آن نیست. هر زمانی چنین ماشینی بخواهیم به کارخانه تولید آن میرویم و از فروشندگان میخواهیم تا با توجه به این تعریف یک ماشین به ما بدهند.
مفاهیم فوق در زبانهای برنامه نویسی شیءگرا گنجانده شدهاند. در این زبانها، اشیاء زیادی از پیش وجود دارند که برنامهنویسان میتوانند از آنها استفاده کنند.
ارتباط اشیاء
مجدداً به مثال ماشین باربری بر میگردیم و این بار، یک ماشین سواری را تعریف میکنیم. ماشین سواری شیئی است که چهار چرخ، یک ترمز، یک پدال گاز و یک صندوق عقب دارد. این تعریف به تعریف ماشین باربری بسیار شبیهاست. به عبارت دیگر ما به یک تعریف جدید میرسیم: خودرو. خودرو وسیلهای است که چهار چرخ، یک ترمز، یک پدال گاز دارد. پس از این به بعد تعریف ماشین باربری و ماشین سواری خیلی سادهتر میشود.
ماشین باربری، خودرویی است که محلی برای قرار دادن بار داشته باشد و ماشین سواری خودروییاست که صندوق عقب داشته باشد.
اگر کسی به درب کارخانه مراجعه کند و بگوید که 'خودرو' میخواهد، چیزی دریافت نمیکند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شیء وجود ندارد پس مشتری تنها میتواتند ماشین باربری یا ماشین سواری بخواهد.
کارواش را در نظر میگیریم. این کارواش خودرو را تمیز میکند و دیگر به طور جزئی عنوان نمیکند که کدام نوع خودرو را تمیز میکند. به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
وقتی شخصی قصد اجاره خودرویی دارد، و میخواهد جنسی را حمل کند در هنگام تماس با متصدی کرایه ماشین میگوید: «اگر خودرو شمااز نوع باربری است، برای من ارسال کنید»، ولی اگر قصد جابجا شدن را دارد میگوید: «برای من یک ماشین سواری بفرستید.»
در زبانهای برنامه نویسی شیءگرا نیز اشیاء مختلفی وجود دارند که تعریف آنها تکمیل کننده یکدیگر است، به عبارت دیگر اشیا از یکدیگر ارث بری میکنند. برخی از تعاریف کاملاً عام است و نمیتوان از آنها نمونه شیئی ساخت و تنها تعریف هستند. به این تعاریف Interface گفته میشود.
زبان پردازهنویسی یا زبان اسکریپتنویسی، به نوعی از زبانهای برنامهنویسی گفته میشود که برای نوشتن پردازهها استفاده میشود.
پردازهها یا اسکریپتها برنامههای کوچکی هستند که بهوسیله آنها میتوان برخی وظایف تکراری و پراستفاده یا یک وظیفه طولانی را به طور خودکار انجام داد. معمولاً اینگونه وظایف به واژهپردازی در متنها مربوط میشوند.
در دهه ۱۹۶۰ اولین پوستههای فرمان ساخته شدند. کاربران این پوستهها گاه مجبور بودند برای انجام امور خود، سلسلهای از دستورهای تکراری یا مشابه را در پوسته وارد کنند. کم کم به پوستهها قابلیتهایی اضافه شد که کاربر با آن میتوانست الگوی دستورهای خود را به پوسته اعلام کند و پوسته به طور خودکار دستورها را انجام میداد. این پیشرفتها منجر به ساخت اولین اسکریپتهای پوستهای شد.
در واقع اسکریپتهای اولیه برنامههای کوچکی بودند که به وسیله آنها میشد برخی وظایف تکراری و پراستفاده یا یک وظیفه طولانی را به طور خودکار انجام داد. زبانهای اسکریپتنویسی امروزه پیشرفتهای زیادی کردهاند. آنها در زمینههایی چون کنترل وظایف و پوسته، واسطهای گرافیکی کاربر، واژهپردازی، خدمتگزاران وب و خدمتگیرندههای وب استفاده میشوند.
پردازه اجازه کنترل برخی از کاربردهای نرمافزار را به برنامهنویس میدهد اما تعدادی از فرمانها و امکانات زبانهای بزرگ در این زبانها حذف شدهاند. مثلاً امکان نوشتن فایل یا پاک کردن فایلها برروی سیستم کاربر مانند زبانهای برنامهنویسی وجود ندارد. مثالهایی از این دسته عبارت است از : جاوا اسکریپت، پرل و پایتون.
اکشناسکریپت
اکشناسکریپت ActionScript زبان برنامه نویسی برای فلشپلیر میباشد که تعامل با کاربر، پردازش و نگهداری اطلاعات و غیره را در زمان اجرا به عهده دارد .AS بر پایه ECMAScript است که معمولاً به صورت بایت کد توسط compiler درون فایل ذخیره گردیده و درrun-time توسط ActionScript Virtual Machine ترجمه و اجرا میشود. AS مدل پیشرفته و قوی را از یک زبان برنامه نویس ارایه میکند که برای بسیاری از توسعه دهندگان وب و برنامه نویسان با اندکی دانش ازobject-oriented programming آشنا و راحت خواهد بود .
برنامهنویسی سمت سرور
برنامهنویسی سمت سرور روشی است که برای طراحی وب که شامل اسکریپتهای نهان درون یک کد اچتیامال میباشد استفاده میشود که نتیجه درخواست یک کاربر به سرور یک وب سایت میباشد که با کدنویسیهای سمت سرور قبل از پاسخ دادن سرور به کاربر انجام میگردد. اسکریپتها میتواند درون هر کدام از زبانهای اسکریپتی موجود تحت سرور نوشته شود. برنامهنویسی سمت سرور با نوع برنامهنویسی سمت کاربر تفاوت دارد که انواع نهان آن همچون جاوااسکریپت در مرورگر وب در سمت کاربر اجرا میشود. کدنویسی سمت سرور معمولا برای ایجاد یک واسط کاربری و محدود کردن دسترسی کاربران به پایگاههای داده یا منابع اطلاعاتی میباشد. این اسکریپتها ممکن است مشخصات کاربر را برای استفاده در سفارشی کردن پاسخ براساس مشخصات کاربر، نیازمندیهای کاربر و حقوق دسترسی کاربران، گرد آوری کنند. همچنین کدنویسی سمت سرور باعث میشود که مالک وب سایت بتواند دسترسی کاربران به کد منبع و اسکریپتهای سمت سرور را کاهش دهد که این خود ممکن است اختصاصی و یا ارزشی باشد. مشکل کد نویسی سمت سرور این است که کامپیوتر سرور وب سایت باید بیشتر منابع مجاسباتی را پیش از ارسال صفحه به کاربر برای نمایش در مرورگر وب ارائه کند. وقتی که سرور معمولا از یک راه برای مثال پروتکل FTP،HTTP داده ارائه می کد، کاربران ممکن است حق انتخاب از میان تعدادی از برنامههای سمت کاربر دارند (بسیاری از مرورگرهای وب میتوانند از هر دو پروتکل گفته شده استفاده کنند). در موارد برنامههای کاربردی خاص تر، ممکن است برنامه نویسان خودشان اقدام به نوشتن پروتکل برای سرور، کاربر و انتقال اطلاعات نمایند، که میتواند فقط میتواند توسط یکدیگر استفاده شود. برنامههایی که بر روی کامپیوتر کاربر به صورت محلی بدون ارسال یا دریافت اطلاعات از طریق شبکه میباشد سرویس گیرندههای را در نظر نمیگیرند، و به همین دلیل اعمال آن برنامههای تاثیری بر روی اعمال کامپیوترهای سرویس گیرنده ندارند.
تاریخچه
برای اولین بار در دسامبر ۱۹۹۴، Netscape یک پیاده سازی از JavaScript را به وسیله Netscape Enterprise Server برای کد نویسی سمت سرور ارائه نمود.(مدت کمی پس از ارائه شدن JavaScript برای مرورگرها بود) کدنویسی سمت سرور بعدها در اوایل ۱۹۹۵ به وسیله Fred DuFresne در طراحی (Boston MA television station (WCVB استفادهشد. و این تکنولوژی با شماره ۵۸۳۵۷۱۲ در آمریکا ثبت شد. و این حق انحصاری در سال ۱۹۹۸ منتقل شد و در حال حاضر متعلق به (Open Invention Network (OIN است. در سال ۲۰۱۰ OIN، آقای Fred DuFresne را به خاطر اعمالش در اسکریپت نویسی سمت سرور "Distinguished Invertor" نامید.
توضیح
در روزهای اول وب، کدنویسی سمت سرور به طور انحصاری توسط ترکیبی از برنامههای C و یا اسکریپتهای Perl و با پوستهای از اسکریپتهای (Common Gateway Interface(CGI انجام میشد. آن اسکریپتها توسط سیستم عامل اجرا میشدند. و نتایج آن توسط وب سرور بازتاب داده میشدند. بسیاری وب سرورهای جدید میتوانند به طور مستقیم یک خط از زبان اسکریپتی همچون ASP و PHP را به وسیله خود وب سرور و یا ماژولهای اضافه (همچون mod_perl یا mod_php)که برای وب سرورها بودند اجرا نمایند. برای مثال WebDNA شامل یک پایگاه داده نهان درون خودش است. همچنین روشی از کدنویسی(i.e، CGI یا اجرای مستقیم) میتواند برای سخت سایتهای پیچیده با چندین صفحه استفاده شود، ولی معمولا اجرای مستقیم سربار کمتری دارد که ناشی از عدم تماس با مفسرهای خارجی میباشد. وب سایتهای پویا گاهی اوقات از برنامههای سروری کاربردی تحت وب خاصی استفاده میکنند، برای مثال کتابخانه "Python "Base HTTP Server، همچنین بعضی افراد این را کد نویسی سمت سرور نمی دانند. استفاده از روش کدنویسی تحت وب پویا در هنگام طراحی، همچون ASP کلاسیک یا PHP، توسعه دهندگان باید درک عمیقی از منطق، موقت و جدایی فیزیکی بین سرویس گیرنده و سرور داشته یاشند. برای اعمال کاربران برای به راه انداختن کدهای سمت سرور، حالتی را داریم که توسعه دهندهای با ASP کلاسیک کار میکند باید به صراحت باعث شود که مرورگر کاربر یک بازخورد درخواست به وب سرور بفرستد. ایجاد این چنین فعل و انفعالاتی به آسانی باعث صرف وقت زیادی در طراحی و به وجود آورنده مقدار زیادی کد ناخوانا میشود. JSP یک زبان اسکریپتی سمت سرور میباشد.
زبانهای اسکریپتنویسی سمت سرور
ایاسپی (*.asp)
اکتیوویافپی (*.avfp)
ایاسپیداتنت (*.aspx)
سی توسط سیجیآی (*.c. *،csp)
زبان نشانهگذاری کلدفیوژن (*.cfm)
جاوا توسط جیاسپی (*.jsp)
جاوااسکریپت با استفاده از جاوااسکریپت سمت سرور (*.ssjs. *،js)
لوآ (*.lp. *،op)
پرل سیجیآی (*.cgi. *،ipl. *،pl)
پیاچپی (*.php) - اسکریپتنویسی کدباز
پایتون، برای مثال توسط جنگو (*.py)
روبی، برای مثال توسط روبی آن ریلز (*.rb. *،rbw)
اسامایکس (*.smx)
لاسو (*.lasso)
تیسیال (*.tcl)
وبدیانای (*.dna. *،tpl)
تایپاسکریپت
تایپاسکریپت زبان برنامهنویسیای است که توسط مایکروسافت توسعهداده میشود. تایپاسکریپت پیشرفتدادهشدهٔ جاوااسکریپت است و بررسی نوع قوی و شئگرایی واقعی را ذاتاً به آن زبان میافزاید. آندرس هجلزبرگ پدر سیشارپ در توسعهٔ تایپاسکریپت فعالیت داشتهاست.
جاوااسکریپت
جاوااسکریپت (به انگلیسی: JavaScript) زبان برنامه نویسی اسکریپت مبتی بر اشیاء است که توسط NetScape تولید شدهاست. این زبان، یک زبان شیگر است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شدهاست.
علیرغم اشتباه عمومی، زبان جاوا اسکریت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(++C) و جاوا شباهت دارد؛ که این امر برای یادگیری آسان در نظر گرفته شدهاست. از همینرو دستورهای متداول مانند if, for, try..catch ,"while" و... در این زبان هم یافت میگردند.
این زبان میتواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته میشوند، بر خلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی میتواند به عنوان نمونهای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
به علت این قابلیت زبان جاوااسکریپت برای ساختن نمونه از سیستم مناسب میباشد.
کاربرد گسترده این زبان در سایتها و صفحات اینترنی میباشد و به کمک این زبان میتوان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر، از این زبان استفاده میشود.
تاریخچه
اسکریپت را در ابتدا شخصی به نام برندان ایچ در شرکت نتاسکیپ با نام Mocha طراحی نمود. این نام بعداً به LiveScript و نهایتاً به جاوا اسکریپت تغییر یافت. این تغییر نام تقریباً با افزوده شدن پشتیبانی از جاوا در مرورگر وب Netscape Navigator همزمانی دارد. اولین نسخهٔ جاوا اسکریپت در نسخه 2.0B3 این مرورگر در دسامبر ۱۹۹۵ معرفی و عرضه شد. این نام گذاری منجر به سردرگمیهای زیادی شده و این ابهام را ایجاد میکند که جاوا اسکریپت با جاوا مرتبط است در حالی که این طور نیست. عدهٔ زیادی این کار را یک ترفند تجاری برای به دست آوردن بخشی از بازار جاوا که در آن موقع زبان جدید مطرح برای برنامه نویسی تحت وب بود میدانند..
به دلیل موفقیت عمدهٔ جاوا اسکریپت در نقش زبان نویسهای سمت کارخواه (client side scripting language) برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را Jscript نامید. این زبان در نسخه ۳٫۰ از مرورگر اینترنت اکسپلورر و در آگوست ۱۹۹۶ داده شد. تفاوتهای این دو زبان به حدی جزیی است که اغلب Jscript و جاوا اسکریپت به جای هم به کار میروند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت Jscript با استاندارد ECMA مطرح میکند.
نتاسکیپ جاوا اسکریپت را به سازمان Ecma International برای استاندارد سازی ارسال کردهاست و نتیجه نسخهٔ استاندارد شدهای به نام ECMA Script است.
جاوا اسکریپت به یکی از زبانهای برنامه نویسی پر طرفدار در وب تبدیل شدهاست. هر چند ابتدا بسیاری از برنامه نویسان حرفهای زبان را کم ارزش تلقی میکردند چون مخاطبین آن نویسندگان صفحات وب و آماتورهای این چنینی بودند. ظهور ایجکس بار دیگر جاوا اسکریپت را در معرض توجه قرار داد و برنامه نویسان حرفهای بیشتری را به خود جذب نمود. نتیجه ازدیاد فریمورک و کتابخانههای جامعی در این زمینه، بهبود شیوههای رایج برنامه نویسی در جاوا اسکریپت و افزایش کاربرد جاوا اسکریپت خارج از وب است.
امکانات زبانی
امکانات زیر (در صورت قید نشدن) همگی مطابق استاندارد ECMA Script میباشند.
زبان امری و ساخت یافته
جاوا اسکریپت از تمامی نحو ساختاری زبان C پشتیبانی میکند. مانند گزاره (if و switch و حلقههای while و...) یک مورد استثنا تعیین حوزهٔ متغیرهاست: تعریف حوزه در حد block در جاوا اسکریپت وجود ندارد. هر چند جاوا اسکریپت ۱٫۷ با کلمهٔ کلیدی let این نوع حوزه دهی را امکان پذیر میسازد. مانند c در جاوا اسکریپت بین عبارت و گزاره تفاوت وجود دارد.
پویایی
؛ تایپ دهی پویا: مانند اکثر زبانهای نویسهای تایپ به مقدارها منسوب میگردد و نه به متغیرها. برای مثال متغیر x ممکن است به یک عدد وابسته سازی شود، و بعداً به یک رشته. جاوا اسکریپت برای تعیین تایپ شی راههای مختلفی از جمله تایپ دهی اردکی (duck typing) را دارد.
؛ تایپ دهی ضعیف: زبان جاوا اسکریپت از نظر تایپ دهی ضعیف به شمار میآید و در آن نتیجهٔ عملیاتی مانند ۵ + “۳۷”، عبارت “۵۳۷” خواهد بود. (عدد را با رشته جمع کردهاست)
؛ اشیا به دید آرایههای انتسابی: جاوا اسکیرپت تقریباً تماماً بر اساس اشیا است. اشیا، آرایههای انتسابی به همراه یک «ساختار شماتیک» هستند. نام ویژگی اشیا، کلیدهای آرایه انتسابی هستند و درواقع obj.x = ۱۰ با obj[“x”] = ۱۰ هم ارز هستند و شیوه نگارش با نقطه صرفاً یک سهولت نحوی است. ویژگیها و مقدارهایشان در زمان اجرا قابلیت تغییر اضافه و حذف دارند. همچنین میتوان روی ویژگیهای یک شی با ساختار for … in پیمایش کرد.
؛ ارزیابی در زمان اجرا: جاوااسکریپا یک تابع eval دارد که قادر است گزارههای تولید شده در یک رشته در زمان اجرا را، اجرا کند.
تابعی بودن
؛ تابعی بودن: توابع موجوداتی «درجه اول» محسوب میشوند، یعنی خود یک شی هستند. بنابراین میتوانند ویژگی داشته باشند، در آرگومانهای تابعها داده شوند و مانند هر شی دیگری با آنها رفتار شود
؛ توابع داخلی و بستارها: توابع داخلی (توابع تعریف شده داخل یک تابع دیگر) هر بار که تابع بیرونی فرا خوانده شود، ایجاد میشوند و متغیرهای توابع بیرونی تا زمانی که تابع داخلی وجود داشته باشد، وجود خواهند داشت، حتی پس از اتمام آن فراخوانی از تابع بیرونی. (مثال: اگر تابع داخلی به عنوان مقدار برگشتی تابع باشد، هنوز به متغیرهای تابع بیرونی دسترسی دارد) – این مکانیزم بستار گرفتن در جاوا اسکریپت است.
ساختار شماتیک» محوری
؛ ساختار شماتیک: جاوا اسکریپت به جای ردهها برای تعریف ویژگیهای اشیا، که شامل متدها و وراثت است از «ساختار شماتیک» استفاده میکند (پیشنمونه). امکان شبیه سازی بسیاری از امکانات رده-محور با ساختارهای شماتیک جاوا اسکریپت امکان پذیر است.
توابع در نقش سازندهٔ اشیا
برای توابع علاوه بر نقش عادی، به عنوان سازنده ی اشیا هم عمل میکنند. آوردن یک new قبل فراخوانی تابع، آن را با کلمهٔ کلیدی this وابسته سازی شده به شی جدید اجرا میکند. ویژگی prototype از تابع مورد نظر، ساختار شماتیک شی جدید را مشخص میکند.
؛ توابع در نقش متد: بر خلاف بیشتر زبانهای شی گرا تفاوتی میان تعریف تابع و متد وجود ندارد. بلکه تفاوت در زمان فراخوانی تابع است، زمانی که یک تابع به عنوان متد یک شی فراخوانده میشود کلمهٔ کلیدی this محلی آن تابع به شی مورد نظر وابسته سازی میشود.
امکانات دیگر
جاوا اسکریپت برای تامین اشیا و متدها که با آنها تعامل کند به یک محیط اجرایی (مانند مرورگر وب) نیاز دارد تا بتواند به این ترتیب با دنیای خارج ارتباط برقرار کند. همچنین برای دسترسی به سایر نویسهها (include) هم به این محیط نیازمند است (مانند تگ <script>در HTML). (البته این یک ویژگی زبانی نیست اما در عمل اغلب این طور پیاده سازی شدهاست)
؛ تعداد متغیر پارامتر (variadic): تعداد نامعینی پارامتر را میتوان به یک تابع ارسال نمود. تابع میتواند هم از طریق پارامترهای رسمی و هم از طریق شی محلی arguments به آنها دسترسی داشته باشد.
Literalهای آرایه و شی
مانند بسیاری از زبانهای نویسهای آرایهها و اشیا (که در زبانهای دیگر همان آرایههای انتسابی هستند) را میتوان با یک نحو موجز ایجاد و توصیف نمود. در واقع این شیوهٔ نگارش پایهٔ قالب دادهای جیسون هم هست.
عبارات منظم
جاوا اسکریپت به شیوهای مشابه زبان پرل از عبارات منظم پشتیبانی میکند که نحوی قدرتمند و موجز را به شکلی فراتر از توابع پیش ساخته برای کار با رشتهها، فراهم میکند.
نظام تایپ دهی
انواع زیر جزو انواع دادههای قابل دسترس در زبان جاوا اسکریپت است. در استاندارد ECMA انواع دیگری هم تعریف شده که صرفاً داخلی است و برای پیاده سازی است.
تعریف نشده: این تایپ فقط یک مقدار با نام undefined دارد و متعلق به تمام متغییرهای مقدار دهی نشدهاست
نوع تهی: نوع تهی هم فقط یک مقدار دارد با نام null
نوع دودویی: نمایندهٔ یک مقدار منطقی است و دو مقدار true و false را میپذیرد.
نوع رشته: در بر گیرندهٔ تمام رشتههای متناهی از ۰ یا بیشتر عنصر ۱۶ بیتی بدون علامت است. این عناصر با اندیسهای نامنفی قابل دسترسی هستند. طول رشته تعداد عناصر داخل آن و طول رشتهٔ تهی برابر ۰ است.
زمانی که رشته حاوی متن واقعی باشد هر عنصر به عنوان یک واحد UTF-16 در نظر گرفته میشود (مستقل از این که شیوهٔ واقعی نگه داری رشته چه باشد). تمام عملیات بر روی رشتهها آنها را به عنوان اعداد صحیح بدون علامت در نظر میگیرند و تضمین کنندهٔ تولید رشته به حالت normalize شده نیست و تضمینهای خاص زمانی هم ندارد. علت این تصمیم گیری سادگی در پیاده سازی ذکر شدهاست.
نوع عدد: نوع عدد در جاوا اسکریپت مطابق با استادارد IEEE برای اعداد شناور دودویی است (با اندکی تفاوت).
نوع شی: شی در جاوا اسکریپت یک مجموعه بدون ترتیب از ویژگیها است. هر ویژگی میتواند داخلی، فقط-خواندنی، غیر قابل حذف، و غیر قابل پیمایش باشد (یا ترکیبی از اینها یا هیچ کدام)
تبدیلات خودکار
این زبان دارای تبدیلات خود کار بین این انواع دادهای است.
زمانی که بخواهد یک if را ارزیابی کند یا از عملگرهای منطقی ! و && و || استفاده شود، تبدیل به نوع دودویی را انجام میدهد. مقادیر ۰ و ۰- و NaN به false و سایر مقادیر عددی به true نگاشت میگردد. همچنین رشتهٔ تهی false و سایر رشتهها true در نظر گرفته میشود. انواع شی و تابع true و undefined و null هم false در نظر گرفته میشود.
زمانی که یکی از عملوندهای عملگر + رشته باشد، تبدیل به رشته صورت میگیرد، مانند ۵ + “۳۷” که میشود “۵۳۷”
عملگرهای دیگری عددی (جز جمع) منجر به تبدیل به عدد میگردد مانند ۳ – “۵۷” که مقدار عددی ۳۴- را به دست میدهد.
ویامالاسکریپت
زبان وی-ام-ال اسکریپت یک گویش یا مشتق از زبان جاوا اسکریپت میباشد که برای صفحات وی-ام-ال استفاده میشود که قسمتی از پروتکل برنامههای بیسیم و رادیویی میباشد.
وی-ام-ال اسکریپت یک سند مشتری محور میباشد و خیلی به جاوا اسکریپت شباهت دارد.دقیقا شبیه جاوا اسکریپت، وی-ام-ال اسکریپت برای وظایفی همچون صحت ورودیها، ساختن پیغامهای خطا و جعبههای محاورهای دیگر استفاده میشود.
وی-ام-ال اسکریپت مبتنی بر ای-سی-ام-ای اسکریپت(سند انجمن سازنده کامپیوترهای اروپا) میباشد که نسخه استاندارد شده جاوا اسکریپت میباشد. بنابراین نحو وی-ام-ال اسکریپت بسیار شبیه جاوا اسکریپت میباشد.
عمده تفاوت بین جاوا اسکریپت و وی-ام-ال اسکریپت این است که کد جاوا اسکریپت میتواند در صفحات اچ-تی-ام-ال مورد استفاده قرار گیرد.از آن جایی که همیشه درون یک فایل جدا از صفحات وی-ام-ال قرار دارد. آدرسها برای برگرداندن کد واقعی وی-ام-ال به سند وی-ام-ال.
ویبیاسکریپت
VBscript یک زبان رایانهای فعال است که توسط شرکت مایکروسافت توسعه یافتهاست. ترکیبات این زبان از تغییرات محدودی از زبان برنامه نویسی ویژوال بیسیک برگرفته شدهاست.
VBscript به صورت معمولی بر روی همه ویندوزهای انتشار یافته توسط مایکروسافت از ویندوز ۹۸ تا حالا نصب شدهاست. براساس تنظیمات و اهداف وسایلی که اجرا شده بر روی ویندوز CE ممکن است این برنامه شامل ویندوز CE نشود و سود این برنامه برای مدیران ویندوز برای جستجو کردن یک ابزار اتوماتیک است که از دسته زبانهای برنامه سازی توسعه یافته اولیه اواخر سال ۱۹۷۰ قوی تر و پربازده تر باشد.
VBscript باید با یک فضای استاندارد میزژیهایی شبیه کنترل سندهای مایکروسافت.
تاریخچه
VBscript به عنوان قسمتی از تکنولوژیهای نمایش ویندوز به کار گرفته شد. چیزی که هدفش در ابتدا برای توسعه وب در سال ۱۹۹۶ ارسال و منتشر شد، در طول یک دوره دو ساله VBscript و JVscript از ورژن ۱٫۰ به ورژن ۲٫۰ ارتقاء پیدا کردند و بعد از آن زمان مدیران سیستمها به این فکر افتادند که از این زبان استفاده کنند. در ورژن ۵٫۰ دستورالعملهای VBscript با ویژگیهایی نظیر توضیحات منظم، کلاسها، حالتها (مقدار/ اجرا/ اجرای عمومی) تابع برای سنجش، اجرای دستورهایی که توسط یک ویرایش گر دیگر ساخته شدهاست، یک اشاره گر دستور العملها مثل Getref()، پخش شده کمکهای کامپیوتر، رشد پیدا کردهاند.
در ورژن ۵٫۵ (Submatches)ها برای کلاس کلاس توضیحات منظم در VBscript اضافه شدهاست، که در نهایت به VBscript اجازه میدهد که تألیفاتی را سند کند که گروههای توضیحاتی را در درون خود تسخیر کند. این پیشرفت قبلاً فقط در JVscript از خانواده محصولات مایکروسافت ممکن بود. از سال ۲۰۰۸ تا حالا هیچ دستورالعمل جدیدی به نام VBscript اضافه نشدهاست. بطوری که توسط ویندوز powershell جایگزین شدهاست.
به علاوه کمکها در ادامه با مقدار کد نوشته شده در برنامه وظایف خود را ادامه میدهند به خاطر اینکه آنها به عنوان یک ابزاری مؤثر برای بعضی وظایف باقی میمانند.
ماشین زبان به طور مستمر توسط تیم مهندسی نگهداری مایکروسافت نگهداری شدهاست. چیزی که برای رفع خطاها و خدمات امنیتی قابل دسترسی است.
وقتی استفادهها در اینترنت اکسپلورر مایکروسافت به کار گرفته شده VBscript در دستورالعملها به JVscript شبیه میشود به عنوان یک زبان برای نوشتن دستورالعملهایی که برای صفحات HTML شامل شدهاند و متقابلاً با مدل شیءگرایی اسناد صفحات DOM که به تنهایی برای انجام وظایفی در HTML ممکن نیست. نمونههای دیگر از مرورگرها firebox و opera هستند که برای پشتیبانی VBscript ساخته نشدهاند. این به این معناست که ارتقاء دهندههای مرورگرها برای ارتقاء مرورگرها از زبان JVscript استفاده میکنند. در کنار کاربران وب، VBscript همچنین برای پردازش سرور صفحات وب استفاده میشود که این مسئله برای صفحات فعال سرور مایکروسافت ASP بسیار قابل توجهاست. ماشین ASP و کتابخانه تایت و vbscript.dll,asp.dll برای اجرای اسناد VBscript که جا شده در یک صفحه ASP مشمول تبدیل کنندههای ٪> و <٪ است. این یک مثال است از یک صفحه ASP با VBscript که فرمت یک زمان ۲۴ ساعته را نشان میدهد. همچنین VBscript میتواند برای تولید کاربردهایی که مستقیماً بر روی ویندوزهای کامپیوترهای شخصی مایکروسافت اجرا میشوند مورد استفاده قرار گیرد.
سادهترین مثال از آن یک سند است که استفاده فضای میزان ویندوز را میسازد. یک مثال از سند برای بالا آمدن به تنهایی فایل از راه گسترش فایل VBS است.
این سند میتواند در دو راه مطلوب شده باشند:
wscript. exe استفاده شده برای نمایش خروجی و ورودی را حول یک GUI دریافت کند. مثل بستههای دیالوگی و ورودی
cscript. exe استفاده در محیط ویرایش دستورات VBscript.
فایلهای vbs میتوانند دو نوع فایل ویرایشی را شامل شده باشند:
فایلهای wsf: فایلهایی که بعد از XML معمول شد.
فایلهای hta: فایلهایی که بعد از HTML معمول شد.
فایلهای wsf میتوانند فایلهای vbs چندگانه را شامل شوند. در نتیجه فایلهای wsf معناهایی برای استفاده مجدد از کدها را مهیا میکنند:
میتوانیم یک کتابخانهای از کلاسها یا تابعهایی در یک یا چند فایل vbs بنویسیم و آن فایلها را در یک یا چند فایل wsf برای استفاده و استفاده مجدد آن تابعها در یک راه مدل شده شامل کنیم. مورد استفاده دیگر HTML در کاربردهای HTML و HTA است. در یک HTA، HTML برای ملاقات کاربران مورد استفاده قرار گرفتهاست و یک زبان ویرایش مثل HTML برای منطق برنامه مورد استفاده قرار گرفتهاست.
HTAS در درون mshta.exe اجرا میشود. چیزی که یک فضای مورد اعتماد تولید شده توسط اینترنت اکسپلورر است. محدودیتها برای اجرای کاربردها در وب یا محدوده اینترنت مثل دسترسی به فایلهای محلی یا راههای شبکهای به کار برده شدهاست. همچنین HTAS در این محیط قابل اعتماد اجرا میشود. راهنمای فعال تحقیق میتواند موضوعی برای محدوده منطقی اینترنت اکسپلورر و پیامهای خطای مربوطه باشد.
VBscript و JVscript میتوانند در یک فایل wsc برای تولید یک مؤلفه ویرایش ویندوز مورد استفاده قرار گیرد. یک کلاس ویرایش فعال که میتواند توسط کاربردهای کامپیوتری قابل اجرای دیگر طلب شده باشد. در آخر VBscript به عنوان یک زبان ویرایشی وارداتی برای بعضی کاربردهای جاداده شده تطابق داده شدهاست. مثل ملاقاتهای اپراتوری تولیدی و ملاقاتهای ماشینی بشر.
توابع و دستورالعملها
VBscript توابعی کتابخانهای و روتین را محیا کردهاست مثل تاریخ/ زمان، عملیات رشتهای، ریاضی، تقابل کاربران، خطایابی و توضیحات منظم.
به علاوه تابعها میتوانند به استفاده از فناوریهای فعال اضافه شده باشند. مدیریت سیستمی فایل، تغییر و تبدیل فایل، و عملکردهای متن در حال جریان میتوانند به سرانجام برسند با کتابخانه زمان اجرای ویرایش scrrun.dll. فایل باینری و حافظهٔ ۰ و ۱ توسط کلاس ADODB.Stream محیا شدهاست. فایلی که هم میتواند به عنوان سازنده رشته مورد استفاده قرار گیرد و هم میتواند به عنوان تبدیل کننده یک آرایهای از بایتها به یک رشته و بالعکس مورد استفاده قرار گیرد. دسترسی به پایگاه اطلاعات مقدور است در اطراف شیءهای دادهای فعال ADO و پایگاه سوخت IIS با مجوزهای معتبر و کافی توسط تابع Getobject() میتواند دستکاری شود. به علاوه، فایلهای XML و طرحها میتوانند توسط کتابخانه XML مایکروسافت دستکاری شده باشند. (msxml۳.dll ، msxml۶.dll) چیزی که میتواند از طریق XMLHTTP و شیءهای سرور XMLHTTP برای بازیابی شاخههای وب جهانی مورد استفاده قرار گیرد.
برنامهنویسی ادیبانه
برنامهنویسی ادیبانه (به انگلیسی Literate Programming) چگونگی نگارش یک برنامه رایانهای است، بطوریکه صورت و شمایل آن برنامه به شکل اسناد و متونی باشد که برای خواندن غیررسمی و غیرفنی توسط انسان (مانند خواندن متون ادبی)، مناسب باشد. این مفهوم برای اولین بار توسط دونالد کنوت، دانشمند علوم رایانه و استاد افتخاری دانشگاه استانفورد (دانشگاه)، در سال ۱۹۸۱ (میلادی) میلادی مطرح شدهاست.
در این روش متن برنامه (کد مبدا) و توضیحات به همراه هم در یک فایل مبدا ذخیره میشوند. متن اصلی برنامه و توضیحات را میتوان بطور کامل بهوسیلهٔ برنامههای کاربردی خاص، استخراج کرد.
برنامهنویسی اعلانی
برنامهنویسی اعلانی، در علوم رایانه یکی از شیوههای برنامهنویسی است که در آن منطق محاسبات بدون شرح چگونگی انجام آنها بیان میشود. برنامههای اعلانی تلاش میکنند تا با توصیف عملیات مورد نیاز برنامهها بجای توضیح چگونگی انجام عملیات، تاثیرات جانبی (side effects) درون برنامهها را کاهش و یا به کل ازمیان بردارند که از لحاظ اولویتهای عملیاتی در تناقض کامل با شیوه برنامهنویسی دستوری میباشند. زبانهای دستوری زبانهایی هستند که عملیات تحلیلی را برحسب عباراتی که در وضعیت برنامهها تغییراتی ایجاد میکنند، شرح میدهند حال آنکه زبانهای اعلانی برنامه هارابه عنوان اصول منطق محاسباتی و محاسبات را کسورات و اجزای کوچک درون فضای آن منطق میبینند.از آنجا که این زبان میتواند تا حد چشمگیری نوشتن برنامههای موازی برای رایانش موازی را آسان و ساده کند توانسته توجه زیادی را به خود معطوف سازد.
زبانهای معمول اعلانی شامل برنامهنویسی تابعی، عبارت باقاعده، برنامهنویسی منطقی میشوند.
تعریف
زبان ها و یا برنامههای اعلانی معمولاً به روشهای گوناگونی معرفی میشوند:۲
هر سبک برنامه ریزی، که دستوری نباشد.
هر برنامهای که توضیح دهد چه عملیاتی مورد نیاز است و نه اینکه به توصیف چگونگی انجام آن عملیات بپردازد.
هر نوع برنامهای که عاری از هر گونه تآثیرات جانبی (side effects) باشد.
هر زبانی که در مطابقت کامل و واضح با منطق ریاضیات باشد.
خلاصه
زبان اعلانی را میتوان به منزله چتری فرض کرد که شامل چند نمونه ساختار برنامه نویسی معروف میباشد:۳
برنامههای کاربردی(functional programming)
ابن نوع برنامهها، برنامههایی هستند که با محاسبات و تحلیلات به مانند ارزیابی توابع ریاضیاتی رفتار میکنند و از دادههای توضیحی(state)و بی ثبات(mutable) دوری میکنند. و بر خلاف برنامههای دستوری که به تغییرات وضعیت درون برنامهها تاکید دارند به کاربرد توابع تآکید میکنند.از جملهٔ این قبیل برنامهها میتوان به lips،APL اشاره کرد که بعدها نمونههای پیشرفته آن مانند Schemایجاد شد.
برنامههای منطق(logic programming)
این نوع زبان خود به سه دسته برنامههای قیدی(constraint programming)، برنامههای تحلیل داده(data flow programs)و برنامههای (domain specific) تقسیم میشود. برنامه ریزی منطق به عنوان یک سطح وسیع استفاده از منطق ریاضیات میباشد که در زمینههای تحلیل و محاسبات کامپیوتری، اثبات تئوریهای علمی، ایجاد مدل و حل مسائل، از این نوع ساختار برنامه ریزی استفاده میشود.زبانهایی چون svg،html،xsltاز نمونه زبانهای منطق به شمار میآیند.
برنامهنویسی بر پایه پیشنمونه
برنامهنویسی بر پایه پیشنمونه (به انگلیسی: Prototype-based programming) شیوهای از برنامهنویسی شئگرا است که کلاس در آن موجود نیست و رفتار استفادهٔ مجدد (که به وراثت در زبانهای بر پایهٔ کلاس شناخته میشود) توسط فرایندی از شبیهسازی اشیاء موجود انجام میپذیرد. این مدل همچنین به بدون کلاس، پیشنمونهگرا یا برنامهنویسی بر پایهٔ نمونه نیز شناخته میشود. دلگیشن (به انگلیسی: Delegation) قابلیت زبانی است که برنامهنویسی بر پایهٔ پیشنمونه را پیشتیبانی میکند.
برنامهنویسی پودمانی
برنامهنویسی پودمانی یا برنامهنویسی پیمانهای (به انگلیسی: Modular programming)، یک روش طراحی نرمافزار است برای افزایش وسعت نرمافزاری که از قسمتهای مجزایی به نام پودمان تشکیل شدهاست.
یک ماژول، تکه برنامه ای است که با یک استاندارد و قالب مشخص طراحی شده و انجام یکسری از فعالیتها را بر عهده دارد. در عوض مدیریت امکانات مورد نیاز ماژول و همچنین مدیریت بر روی خود ماژول توسط سایت انجام خواهد شد. مثلاً شما با افزودن ماژول خرید و فروش online، تمامی قابلیتهای یک سایت فروشگاهی را به سایت موجود خود خواهید افزود. در عوض ماژول جدید به دلیل ارث بردن و استفاده از قابلیتهای پایه ای سایت، چنان بر روی سایت شما عمل می نماید که گویی از ابتدا درون سایت بوده و بخشی جدا از برنامه نیست.
برنامهنویسی تابعی
برنامهنویسی تابعی (به انگلیسی: Functional programming) نوعی پارادایم برنامهنویسی است که در آن «محاسبات» به صورت ارزشیابی توابع ریاضی در نظر گرفته میشوند.
برنامهنویسی جنبهگرا
برنامهنویسی جنبهگرا روشی برای برنامهنویسی است که پس از برنامه و برای رفع مشکلات آن به وجود آمد. هدف از برنامه نویسی جنبهگرا، مستقل کردن وظایف (در قالب ماژولها) است به طوری که کمترین تداخل را در یکدیگر داشته باشند تا نهایتاً بتوان از آنها برای برنامههای دیگر است. برای مثال وظیفهٔ اهراز هویت در یک برنامه را میتوان به عنوان یک جنبه در نظر گرفت و ماژول جداگانهای برای آن ساخت تا از این پس در تمام پروژههای مشابه بتوان از آن استفاده کرد. بیشتر زبانهای برنامهنویسی، از برنامهنویسی جنبهگرا پشتیبانی خوبی به عمل میآورند. میتوان از آن جمله به جاوا و روش AspectJ اشاره کرد. برنامهنویسی جنبهگرا، ارتباط تنگاتنگ و نزدیکی با دارد ولی دو مفهوم متفاوت هستند.
برنامهنویسی دستوری
برنامهنویسی دستوری (به انگلیسی: Imperative programming) در علوم رایانه یکی از شیوههای برنامهنویسی است که در آن مراحل اجرای یک برنامه کامپیوتری قدم به قدم توسط برنامه نویس بیان میشود. این بر خلاف زبانهای اعلانی است که در آنها تنها نتیجه انجام دستورات بیان میشود. به بیان دیگر در زبانهای دستوری چگونگی اجرای برنامه بیان میشود اما در زبانهای اعلانی چیستی نتیجه بیان میشود.
به عنوان مثال اگر قصد باز کردن دری را داشته باشیم و با زبان اعلانی این را بخواهیم بیان کنیم خواهیم گفت در را باز کن اما اگر با زبان دستوری بیان کنیم خواهیم گفت بلند شو، به طرف در نردیک شو، دستگیره را بگیر و در را به طرف بیرون هل بده.
برنامهنویسی رویدادمحور
برنامهنویسی رویداد گرا یک الگوی برنامهنویسی است که در آن، روند اجرای برنامه توسط رویدادها - برای مثال، خروجی یک سنسور یا دستورهای کاربر (کلیک های موس، دکمه های کیبورد) و یا پیام های دریافتی از سایر برنامه ها یا رشته ها - تعیین می گردد.
برنامه نویسی رویداد گرا را می توان به عنوان یک تکنیک معماری نرمافزار تعریف کرد که در آن نرمافزار یک حلقه اصلی دارد که به روشنی به دو بخش زیر تقسیم می شود:
نخست، انتخاب رویداد (یا شناسایی رویداد)
و دوم، اداره کردن رویداد ها
برنامه های رویداد گرا را می توان در هر زبانی نوشت، اگرچه این کار در زبان هایی که سطح بالایی از انتزاع را فراهم می کنند، آسان تر است.
برنامهنویسی رویهای
برنامهنویسی پروسهای یک پارادایم برنامهنویسی بر پایه مفهوم فراخوانی پروسهها است. پروسه که همچنین به نامهای روال، زیرروال (سابروتین)، تابع، روش شناخته میشود، دربردارنده یک سری گامهای محاسباتی است که باید توسط رایانه اجرا شوند.
هر پروسه میتواند در هر نقطهای در طول اجرای برنامه فراخوانده شود شامل فراخوانی پروسه توسط خودش (برنامهنویسی بازگشتی) یا پروسههای دیگر.
برنامهنویسی ساختیافته
برنامهنویسی ساختیافته یک پارادایم برنامه نویسی است که در آن برنامهنویسی قدمها و روالهایی را که لازم است تا برنامه به جواب برسد، مشخص میکند. در این روش از برنامهنویسی، انجام یک روال به روالهای کوچک تر تقسیم میشود و به این ترتیب یک برنامه با شکسته شدن و به ریز برنامههای کوچک تر تقسیم شدن سعی میکند تا عملکرد مد نظر را پیادهسازی کند.
رویه ها (به انگلیسی: routines)، زیر رویه ها(به انگلیسی: subroutines)، ساختار بلوک (به انگلیسی: block structures) و حلقه های for , while در کنار سادگی آزمودن کدها و صرف نظر کردن از Goto که برنامه را به یک کلاف سردرگم (به اصطلاح برنامه نویسی: spaghetti code) تبدیل می کرد، موجب شدند تا دنبال کردن برنامه و نگه داری از آن تا حد زیادی بهبود یابد.
این پارادایم در دهه ی 1960 توسط بوهن (به انگلیسی: Böhm) و جاکوپینی (به انگلیسی: Jacopini) پدید آمد و در سال 1968 پدیده ی معروفی به نام Goto از سوی ادسخر دیکسترا زیان آور تشخیص داده شد و این پدیده ی تازه به صورت تئوری در قالب برنامه نویسی ساخت یافته ارایه شد و پس از آن توسط زبان الگول(به انگلیسی: ALGOL) به کمک ساختارهای کنترلی پشتیبانی گردید.
مثال
به عنوان مثال برای نوشتن برنامهای که قراراست اطلاعات نمرات یک محصل را بگیرد و کارنامهٔ آن را چاپ کند، زیر روالهای زیر لازم است:
زیر روالی ای برای خواندن اطلاعات ورودی
زیر روالی ای برای جمعآوری اطلاعات ورودی و محاسبهٔ معدل
زیر روالی برای چاپ اطلاعات به صورت یک جدول
زیر روالی برای اتصال به چاپگر و چاپ گزارش
هر زیر روال آنقدر کوچک میشود که برنامهنویس بتواند راحت تر کار کردن آن را درک کند ( هر زیر روال معمولاً ۳۰ خط برنامهنویسی است). به این ترتیب برنامهنویس با نوشتن هر زیر روال بخشی از برنامه را تولید میکند و برنامهنویسان مختلف میتوانند بر روی زیر روالهای مختلف کار کنند تا در نهایت به اضافه نمودن آنها به یکدیگر برنامهٔ نهایی ساخته شود.
در زبانهای ساختار یافته توابع کتابخانهای فراوانی وجود دارند که سعی میکنند به برنامهنویس در برخی از روالها کمک کنند. مثلاً برای چاپ در مثال فوق، توابع کتابخانهای برای سهولت انجام کار در این زیر روال، در زبان پاسکال، وجود دارد.
برخی از زبانهای ساخت یافته:
پاسکال
سی
بیسیک
برنامهنویسی شیءگرا
برنامهنویسی شیءگرا (به انگلیسی Object-Oriented Programming مخفف OOP) یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شی ها می باشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا می کند. به این معنا که داده ها و توابعی که قرار است بر روی این داده ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع بندی شده و یک واحد(شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می شوند و از این طریق، توابع بیگانه ی خارج از آن شی، دیگر امکان ایجاد تغییر در داده های درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپرده ی شما در بانک است، تشکیل یک شی را می دهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگی های برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادیام های برنامه نویسی است.
فلسفه یی که منجر به شکل گیری ی زبان های شی گرا شد، عبارت بود از این واقعیت که نحوه ی عملکرد مغز و شیوه ی دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات(اندیشیدن)، شیوه یی شی گراست، از همین روی می بایستی زبانی تعریف می شد که همین شیوه را مبنای کار خود قرار داده و بازتولید می کرد. و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در زبان های برنامه نویسی نیز می بایستی این اصول کلی برقرار می شد. تا به این شکل، برنامه نویس بتواند با بهره گیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شی های مختلفی را تعریف نموده، این شی ها را در ارتباط با یکدیگر قرار داده و از شی های پویای تولید شده برای حل مساله ی پیش روی استفاده نماید. امروزه اکثر زبانهای دستوری برنامه نویسی از فنون شیءگرایی پشتیبانی میکنند. زبانهایی مانند جاوا، سی++، سی شارپ، دلفی از جمله زبانهای شیءگرا هستند. حتی بسیاری از زبانهای روال گونه که ساختار برنامهها در آنها بلوکهایی با نام پروسیجر است امروزه از فنون شیءگرایی نیز پشتبانی میکنند. زبانهای سی++ و پیاچپی از این جمله هستند. هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده میشوند. در این روش از برنامه نویسی دید برنامه نویس به سیستم دید شخصی است که سعی مینماید به پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید. مفهوم مدیریت دیداری
مفاهیم عمده
کلاس
کلاس نوع خاصی از آرایه است که امکان ذخیره و جمع بندی تعداد زیادی المان را (که شامل داده ها و توابع هستند) برای یک شی جدید فراهم آورده و تحت یک نام مشترک ذخیره می کند. اما بر خلاف آرایه که تنها قادر به ذخیره ی داده هایی هم جنس است، کلاس می تواند داده هایی از جنس های مختلف را ذخیره نماید. به طور مثال در نظر بگیرید که می خواهیم تاریخ 13 نوامبر 2006 را که تشکیل شده از روز، ماه و سال است مورد استفاده قرار دهیم
حال در نظر بگیرید که نه فقط یک تاریخ، بلکه n تاریخ متفاوت مورد نیاز است. این بدان معنی ست که می بایستی به تعداد n بار، سه متغیر بالا، جداگانه تعریف شوند و تعریفِ تک تک و پیاپی متغیرها، نه فقط از لحاظ زمانی بسیار وقت گیر می نماید، بلکه از لحاظ میزان کد مورد نیاز نیز بسیار غیر عملی ست، چرا که هر بار می بایستی نام جدیدی برای متغیرها در نظر گرفته شود (دو متغیر متفاوت نمیتوانند هم نام باشند). در اینجاست که کلاس ها به خوبی وارد عمل می شوند. با استفاده از کلاس ها می توان متغیرهای متعدد (در مثال بالا: int day ;String month, ;int year) را زیر عنوان یک جنسیت مشترک جدید (به طور مثال هر سه را در یک کلاس با نام Date)، تعریف و جمع بندی نمود. و بعد از آن، بدون نیاز به تعریف مجدد روز، ماه و سال،از کلاس Date به میزان مورد نیاز استفاده کرد:
class Date{
int day;
String month;
int year;
}
وراثت
وراثت یا ارث بری (Inheritance) از مفاهیم اساسی برنامه نویسی شیءگراست. هر شیء یک نمونه از یک کلاس است و هر کلاس میتواند از کلاس یا کلاسهای دیگری مشتق شده باشد (خواص متدها یا رویدادهای کلاسهای دیگر را به ارث ببرد). در یک مثال ساده میتوان اتومبیلی را در نظر گرفت که برای جلوگیری از بازنویسی خواص عمومی اتومبیل شامل: چهار چرخ، متدهای حرکت چرخ، متد چرخاندن فرمان، فرمان، بدنه، در و غیره، میتوان یک کلاس پایه از اتومبیل ایجاد کرد سپس مثلاً برای اتومبیل زانتیا مدل C۵ یک کلاس جدید ایجاد کرده که خواص، متدها و رویدادهای عمومی اتومبیل را داشته باشد و فقط برای خواص، متدها و رویدادهای جدید این اتومبیل کد نوشته شود. این ویژگی باعث صرفهجویی در نوشتن کد و تا حدودی تضمین صحت کد موجود میشود. به عنوان مثال اگر کلاس پایه مشکلی داشته باشد فقط کافی است کلاس پایه تغییر داده شود و در تمامی کلاسهایی که از این کلاس پایه ویژگیای ا به ارث بردهاند این تغییر اعمال خواهد شد.
مخفیسازی
کپسوله سازی، مخفیسازی (Encapsulation)، یا لفافهبندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده میخواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را بر میدارید، استارت میزنید و با فشار آوردن به پدالهای گاز و ترمز و چرخش فرمان و ... به محل کارتان خواهید رسید. در طول این مسیر در اتومبیل شما به عنوان یک شیء اعمال مختلفی در حال انجام بود. مثلاً لنت ترمز به دیسک چرخ برخورد میکرد و باعث کم شدن سرعت میشد یا شمعها شروع به جرقه زدن در زمانی بخصوصی میکردند. حال فرض کنید که عمل مخفی سازی وجود نداشت و شما مجبور بودید که جرقه زدن شمعها را کنترل میکردید و به سیستم سوخت رسانی در موقع لزوم دستور میدادید که سوخت را بداخل سیلندرها ارسال کند و... یا هیچگاه به مقصد نمیرسیدید! یا سالم نمیرسیدید!
عمل مخفی سازی باعث میشود که اشیاء بدون آنکه از چگونگی کارکرد یکدیگر اطلاع داشته باشند با هم کار کنند.
چندشکلی
چند ریختی(Polymorphism) چند ریختی، کمیتی است که به یک رابط امکان میدهد تا از عملیات یکسانی در قالب یک کلاس عمومی استفاده کند.عمل خاص کلاس را ذات حقیقی شیء تعیین میکند.مثال سادهای از چند ریختی، فرمان اتومبیل است. عمل فرمان اتومبیل برای تمام اتومبیلها بدون توجه به ساز و کاری که دارند، یکسان است. فرمان برای اتومبیل که به طور مکانیکی کار میکند یا با نیروی برق یا هر چیز دیگری، عمل یکسانی را انجام میدهد. بنابراین، پس از اینکه شما عملکرد فرمان را یاد گرفتید، می توانید فرمان هر اتومبیلی را کنترل کنید. همین هدف در برنامه نویسی نیز اعمال میشود. به طور کلی، مفهوم چند ریختی، اغلب با عبارت ((یک رابط، چندین روش))بیان میشود. این بدین معنی است که امکان طراحی رابط عمومی برای گروهی از عملیات مرتبط وجود دارد. چند ریختی یا چندشکلی (Polymorphism) به این معنا است که اشیاء میتوانند در موقعیتهای مختلف، رفتارهای متفاوتی بروز دهند. مثلاً یک تابع در صورتی که بر روی نمونهای از کلاس آ فراخوانی شود، رفتار ب را بروز دهد در حالی که اگر بر روی کلاس ج (که فرزند کلاس آ است) فراخوانی شود، رفتاری متفاوت انجام دهد.
انتزاع / تجرید
به این معنا است که بخشی از یک موجودیّت یک مفهوم را که میان همهٔ وارثان مشترک است، پیش تعریف کنیم. این توانایی منجر به داشتن نگاه مشابه به موجودیّتهای مشابه میگردد.
یک مثال کاربردی
در اطراف ما اشیاء زیادی وجود دارد و میتوان تمام مفاهیم موجود در طبیعت را با اشیاء تقلیل داد. مثلاً یک ماشین باربری. این ماشین یک سری خصوصیات دارد: چهار چرخ، یک پدال ترمز، یک پدال گاز، یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن و.... این ماشین در صورتی که ما پدال گاز آن را فشار دهیم، حرکت میکند. در صورتی که فرمان آن را بچرخانیم تغییر مسیر میدهد. پس این شیء علاوه بر یک سری خصوصیات، یک سری رفتار مشخص هم به ما نشان میدهد. ولی فقط این یک ماشین نیست که این کار را انجام میدهد. تمامی ماشینها این کارها را انجام میدهند. پس میتوانیم این ماشین را 'تعریف' کنیم و بگوییم:
ماشین باربری وسیلهای است که چهار چرخ، یک گاز، یک ترمز، یک فرمان و یک محل برای حمل بار دارد و اگر پدال گاز آن فشار داده شود حرکت میکند. این تعریف این ماشین است ولی خود آن نیست. هر زمانی چنین ماشینی بخواهیم به کارخانه تولید آن میرویم و از فروشندگان میخواهیم تا با توجه به این تعریف یک ماشین به ما بدهند.
مفاهیم فوق در زبانهای برنامه نویسی شیءگرا گنجانده شدهاند. در این زبانها، اشیاء زیادی از پیش وجود دارند که برنامهنویسان میتوانند از آنها استفاده کنند.
ارتباط اشیاء
مجدداً به مثال ماشین باربری بر میگردیم و این بار، یک ماشین سواری را تعریف میکنیم. ماشین سواری شیئی است که چهار چرخ، یک ترمز، یک پدال گاز و یک صندوق عقب دارد. این تعریف به تعریف ماشین باربری بسیار شبیهاست. به عبارت دیگر ما به یک تعریف جدید میرسیم: خودرو. خودرو وسیلهای است که چهار چرخ، یک ترمز، یک پدال گاز دارد. پس از این به بعد تعریف ماشین باربری و ماشین سواری خیلی سادهتر میشود.
ماشین باربری، خودرویی است که محلی برای قرار دادن بار داشته باشد و ماشین سواری خودروییاست که صندوق عقب داشته باشد.
اگر کسی به درب کارخانه مراجعه کند و بگوید که 'خودرو' میخواهد، چیزی دریافت نمیکند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شیء وجود ندارد پس مشتری تنها میتواتند ماشین باربری یا ماشین سواری بخواهد.
کارواش را در نظر میگیریم. این کارواش خودرو را تمیز میکند و دیگر به طور جزئی عنوان نمیکند که کدام نوع خودرو را تمیز میکند. به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
وقتی شخصی قصد اجاره خودرویی دارد، و میخواهد جنسی را حمل کند در هنگام تماس با متصدی کرایه ماشین میگوید: «اگر خودرو شمااز نوع باربری است، برای من ارسال کنید»، ولی اگر قصد جابجا شدن را دارد میگوید: «برای من یک ماشین سواری بفرستید.»
در زبانهای برنامه نویسی شیءگرا نیز اشیاء مختلفی وجود دارند که تعریف آنها تکمیل کننده یکدیگر است، به عبارت دیگر اشیا از یکدیگر ارث بری میکنند. برخی از تعاریف کاملاً عام است و نمیتوان از آنها نمونه شیئی ساخت و تنها تعریف هستند. به این تعاریف Interface گفته میشود.
تجارت الکترونیک
تجارت الکترونیک (به انگلیسی: Electronic commerce) فرایند خرید، فروش یا تبادل محصولات، خدمات و اطلاعات از طریق شبکههای کامپیوتری و اینترنت است.
تاریخچه
ارتباط بین تجارت و تکنولوژی دیر زمانی است که وجود داشته و ادامه دارد. در واقع، یک پیشرفت تکنیکی باعث رونق تجارت شد و آن هم ساخت کشتی بود. در حدود ۲۰۰۰سال قبل از میلاد، فینیقیان تکنیک ساخت کشتی را بکار بردند تا از دریا بگذرند و به سرزمینهای دور دست یابند. با این پیشرفت، برای اولین بار مرزهای جغرافیایی برای تجارت باز شد و تجارت با سرزمینهای دیگر آغاز گشته و روشهای خلاقانه ای بصورتهای گوناگون به آن اضافه شد تا امروز که یکی از محبوبترین روشهای تجارت خرید اینترنتی در دنیای وب است. شما میتوانید در زمانهای پرت، در هر زمان و مکان حتی با لباس خواب میتوانید اینکار را بکنید. به معنای واقعی هر کسی میتواند صفحه اینترنتی خود را ساخته و کالاهای مورد نیازش را در آن ارایه دهد. البته تاریخچه تجارت الکترونیک با تاریخچه اختراعات قدیمی مثل کابل، مودم، الکترونیک، کامپیوتر و اینترنت پیوند خوردهاست. تجارت الکترونیک به شکل کنونی در سال ۱۹۹۱ محقق شد. از آن زمان هزاران هزار کسب و کار و تجار وارد این دنیا شدهاند. در ابتدا تجارت الکترونیک به معنای فرایند انجام اعمال تراکنش الکترونیکی مورد نظر را انجام دادن بود.درواقع تجارت الکترونیک برای اسان سازی معاملات اقتصادی به صورت الکترونیک تعریف شد. استفاده از این فناوری مانند Electronic Data Interchange (EDI)تبادل الکترونیکی اطلاعات وElectronic Funds TRANSFER (EFT) انتقال الکترونیکی سرمایه، که هر دو در اواخر ۱۹۷۰ معرفی شدهاند. و به شرکتها و سازمانها اجازه ارسال اسناد الکترونیکی را داد. و اجازه تجارت کردن با ارسال اسناد تجاری مثل سفارشهای خرید یا فاکتورها را به صورت الکترونیکی، میدهد. با رشد و پذیرش کارت اعتباری،(ATM) Automated teller machine ماشین تحویلدار خودکار و تلفن بانک در دهه ۱۹۸۰ باعث فرم گیری تجارت الکترونیک شد. نوع دیگر تجارت الکترونیک سیستم رزرواسیون هواپیمایی بوسیله Sabre در امریکا و Travicom در بریتانیا، ارایه شدهاست. از دهه ۱۹۹۰ به بعد تجارت الکترونیک شامل اضافاتی مثل enterprise resource planning system (ERP) سیستم برنامه ریزی منابع سرمایه، data mining داده کاوی، data warehousing انبار داده شدهاست. در ۱۹۹۰، Tim Bermers-lee مرورگر وب جهان گسترده را اختراع کرد و شبکه ارتباطی اکادمیک را به سیستم ارتباطی هرروز و برای هر شخص در جهان وسیع دگرگون ساخت که اینترنت یا www خوانده میشود. سرمایه گذاری تجاری بروی اینترنت بخاطر کافی نبودن سرمایه گذاری کاملاً محدود شده بود. اگر چه اینترنت محبوبیت جهانی گستردهای در حدود ۱۹۹۴ با استفاده از مرورگر وب Mosaic پیدا کرده بود. معرفی پروتکلهای امنیتی و DSL (اشتراک خط دیجیتال) که ارتباط مستمر را با اینترنت را اجازه میداد حدود ۵ سال طول کشید.. البته در سال ۲۰۰۰ بحران The dot-com bust باعث برشکستگی خیلی از شرکتهای تجاری بزرگ و نتایج ناگواری را بوجود اورد، باعث بازبینی قوانین و افزایش مزایا و امکانات تجارت الکترونیک کردند و تا انتهای سال ۲۰۰۰، خیلی از شرکتهای تجاری امریکایی و اروپایی سرویس هایشان را از طریق اینترنت ارایه دادند. از ان موقع مردم به کلمهای به عنوان تجارت الکترونیک با توانایی خرید کالاهای گوناگون از طریق اینترنت با استفاده از پروتکلهای امنیتی و سرویسهای پرداخت الکترونیکی که در ان مشارکت کردند، اشنا شدند. واز این زمان رقابت شدید بین شرکتها و سازمانها شدت گرفتو با گذشت زمان هم اینرقابت تنگتر شدهاست. جالب این که تا پایان سال ۲۰۰۱ بیش از ۲۲۰ بیلیون دلار معاملات مالی توسط صدها سایت تجاری بر روی اینترنت انجام پذیرفتهاست و در همین سال مدل تجارت الکترونیک B2B دارای در حدود ۷۰۰ میلیارد تراکنش بود. و در سال ۲۰۰۷ سهم تجارت الکترونیک در خرده فروشی کل دنیا ۳٫۴ % بودهاست که انرا در سال ۲۰۱۰، ۵٫۱ % اعلام نمودند که این امار رشد سریع این شیوه تجارت کردن را می رساند.
سیر زمانی
۱۹۷۹: Michael Aldrich خرید آنلاین را اختراع کرد
۱۹۸۱: Thomson Holidays اولین خرید انلاین B2B را در بریتانیا ایجاد کرد.
۱۹۸۲: Minitel سیستم سراسر کشور را در فرانسه بوسیله France Telecom و برای سفارش گیری انلاین استفاده شدهاست.
۱۹۸۴: Gateshead اولین خرید انلاین B2C را بنام SIS/Tesco و خانم Snowball در ۷۲ اولین فروش خانگی انلاین را راه انداخت.
۱۹۸۵: Nissan فروش ماشین و سرمایه گذاری با بررسی اعتبار مشتری به صورت انلاین از نمایندگیهای فروش
۱۹۸۷: Swreg شروع به فراهم اوردن ومولفهای اشتراک افزار و نرمافزار به منظور فروش انلاین محصولاتشان از طریق مکانیسم حسابهای الکترونیکی بازرگانی.
۱۹۹۰: Tim Berners-Lee اولین مرورگر وب را نوشت، وب جهان گستر، استفاده از کامپیوترهای جدید
۱۹۹۴: راهبر وب گرد: Netscape در اکتبر با نام تجاری Mozilla ارایه شد. Pizza Hut در صففحه وب سفارش دادن انلاین را پیشنهاد داد. اولین بانک انلاین باز شد. تلاشها برای پیشنهاد تحویل گل و اشتراک مجله به صورت انلاین شروع شد. لوازم بزرگسالان مثل انجام دادن ماشین و دوچرخه به صورت تجاری در دسترس قرار گرفت. Netscape 1.0 در اواخر ۱۹۹۴ با رمزگذاری SSL که تعاملات مطمئن را ایجاد میکرد، معرفی شد.
۱۹۹۵: Jeff Bezos، Amazon.com و اولین تجارتی ۲۴ ساعته رایگان را راه انداخت. ایستگاههای رادیوی اینترنتی رایگان، رادیو HK ورادیوهای شبکهای شروع به پخش کردند. Dell و Cisco به شدت از اینترنت برای تعاملات تجاری استفاده کردند. eBay توسط Pierre Omidyar برنامه نویس کامپیوتر به عنوان وب سایت حراج بنیانگذاری شد.
۱۹۹۸: توانایی خریداری و بارگذاری تمبر پستی الکترونیکی برای چاپ از اینترنت. گروه Alibaba در چین با خدمات B2B و C2C, B2C را با سیستم خود تاییدی تاسیس شد.
۱۹۹۹: Business.com به مبلغ ۷٫۵ میلیون دلار به شرکتهای الکترونیکی فروخته شد. که در سال ۱۹۹۷ به ۱۴۹٬۰۰۰ دلار خریداری شده بود. نرمافزار اشتراک گذاری فایل Napster راه اندازی شد. فروشگاههای ATG برای فروش اقلام زینتی خانه به صورت انلاین راه اندازی شد.
۲۰۰۰: The dot-com bust
۲۰۰۲: ایبی برای پیپال ۱٫۵ میلیون دلار بدست اورد. Niche شرکتهای خرده فروشی و فروشگاههای CSN و فروشگاهای شبکهای را با منظور فروش محصولات از طریق ناحیههای هدف مختلف نسبت به یک درگاه متمرکز.
۲۰۰۳: Amazon.com اولین سود سالیانه خود را اعلان کرد.
۲۰۰۷: Business.com بوسیله R.H. Donnelley با ۳۴۵ میلیون دلار خریداری شد.
۲۰۰۹: Zappos.com توسط Amazon.com با قیمت ۹۲۸ میلیون دلار خریداری شد. تقارب خرده فروشان و خرید اپراتورهای فروش وبسایتهای خصوصی RueLaLa.com بوسیله GSI Commerce به قیمت ۱۷۰ میلیون دلار بعلاوه سود فروش از تا سال ۲۰۱۲.
۲۰۱۰: Groupon گزارش داد پیشنهاد ۶ میلیار دلاری گوگل را رد کردهاست. در عوض این گروه طرح خرید وب سایتهای IPO را تا اواسط ۲۰۱۱ دارد.
۲۰۱۱: پروژه تجارت الکترونیک امریکا و خرده فروشی انلاین به ۱۹۷ میلیارد دلار رسیدهاست که نسبت به ۲۰۱۰ افزایش ۱۲ درصدی داشتهاست. Quidsi.com, parent company of Diapers.comتوسط Amazon.com به قیمت ۵۰۰ میلیون بعلاوه ۴۵ میلیون بدهکاری و تعهدات دیگر خریداری شد.
چکیده
تجارت الکترونیکی را میتوان انجام هرگونه امور تجاری بصورت آنلاین و ازطریق اینترنت بیان کرد. این تکنیک در سالهای اخیر رشد بسیاری داشتهاست و پیشبینی میشود بیش از این نیز رشد کند. تجارت الکترونیکی به هرگونه معاملهای گفته میشود که در آن خرید و فروش کالا و یا خدمات از طریق اینترنت صورت پذیرد و به واردات و یا صادرات کالا ویا خدمات منتهی میشود. تجارت الکترونیکی معمولاً کاربرد وسیع تری دارد، یعنی نه تنها شامل خرید و فروش از طریق اینترنت است بلکه سایر جنبههای فعالیت تجاری، مانند خریداری، صورت بردار ی از کالاها، مدیریت تولید و تهیه و توزیع و جابهجایی کالاها و همچنین خدمات پس از فروش را در بر میگیرد. البته مفهوم گستردهتر تجارت الکترونیک کسب و کار الکترونیک میباشد.
جایگاه تجارت الکترونیک در کشورهای جهان
در مدت کوتاهی که از آغاز عمر تجارت الکترونیک در جهان معاصر میگذرد، این فعالیت رشد بی سابقهای را در کشورهای پیشرفته داشتهاست و پیش بینی میشود در آینده نزدیک با سرعت شگفت انگیزی در سطح جهان توسعه یابد. بر اساس آمار محاسبه شده موسسات معتبر اقتصادی نیز پیش بینی شدهاست که گستره این فعالیت تا سال ۲۰۱۰ به طور متوسط ۵۴ الی ۷۱ درصد رشد خواهد کرد که نشان دهنده شتاب دار بودن حرکت آن است.
در ایران
تجارت الکترونیک در ایران بسیار نوپا و در مراحل اولیهاست. اما اهمیت فناوری اطلاعات باعث شده تا تدوین و اجرای قوانین و لوایح مورد نیاز در این عرصه همواره مد نظر مسئولان ایران باشد. اما بهنظر میرسد با وجود برگزاری دورهها و کارگاههای آموزشی متعدد هنوز میزان آگاهی افراد و تجار کشور از نحوه استفاده از امکانات موجود برای تجارت الکترونیک کم است. از سوی دیگر نبود شناخت از میزان امنیت موجود در شبکه داخلی و جهانی باعث شدهاست که اطمینان لازم وجود نداشته باشد
انواع تجارت الکترونیک
تجارت الکترونیک را میتوان از حیث تراکنشها(Transactions) به انواع مختلفی تقسیم نمود که بعضی از آنها عبارتند از:
ارتباط بنگاه و بنگاه (B2B): به الگویی از تجارت الکترونیکی گویند، که طرفین معامله بنگاهها هستند.
ارتباط بنگاه و مصرف کننده (B2C): به الگویی از تجارت الکترونیک گویند که بسیار رایج بوده و ارتباط تجاری مستقیم بین شرکتها و مشتریان میباشد.
ارتباط مصرف کنندهها و شرکتها (C2B): در این حالت اشخاص حقیقی به کمک اینترنت فراوردهها یا خدمات خود را به شرکتها میفروشند.
ارتباط مصرفکننده با مصرفکننده (C2C): در این حالت ارتباط خرید و فروش بین مصرفکنندگان است.
ارتباط بین بنگاهها و سازمانهای دولتی (B2A): که شامل تمام تعاملات تجاری بین شرکتها و سازمانهای دولتی میباشد. پرداخت مالیاتها و عوارض از این قبیل تعاملات محسوب میشوند.
ارتباط بین دولت و شهروندان (G2C): الگویی بین دولت و توده مردم میباشد که شامل بنگاههای اقتصادی، موسسات دولتی و کلیه شهروندان میباشد. این الگو یکی از مولفههای دولت الکترونیک میباشد.
ارتباط بین دولتها (G2G): این الگو شامل ارتباط تجاری بین دولتها در زمینههایی شبیه واردات و صادرات میباشد.
البته باید گفت که انواع بالا کاملاً مستقل از هم نیستند و گاهی که تاکید بر خرید و فروش ندارند در قالب کسب و کار الکترونیک میآیند
کسب و کار الکترونیک
کسب و کار الکترونیک عبارتست از کاربردی کردن کلیه سیستمهای اطلاعاتی برای تقویت و کنترل فرآیندهای کسب و کار. امروزه این فرآیندها با استفاده از تکنولوژیهای مبتنی بر وب توسعه مییابند .
کسب و کار الکترونیکی در یک تعریف ساده واژهای به معنی انجام کسب و کار با استفاده از ارتباطات راه دور و ابزارهای مرتبط است . تجارت الکترونیک از این دست دارای مفهومی کوچکتر و محدودتر نسبت به کسب و کار الکترونیکی است . در تجارت الکترونیک حتماً باید بین دو طرف پول رد و بدل شود ( تا به مفهوم تجارت برسیم ) ولی در کسب و کار الکترونیک لازم نیست پولی مبادله گردد . به عنوان مثال دادگاهی که در آن محاکمه از طریق فضای اینترنتی انجام میگردد کسب و کار الکترونیک محسوب میشود .
برخی نیز کسب و کار الکترونیک را ترکیبی از تجارت الکترونیک، هوشمندی شرکتها، مدیریت ارتباط با مشتری، مدیریت زنجیرهٔ تامین و برنامه ریزی منابع شرکت میدانند که به صورت زیر بیان میشود :
كسب و كار الكترونيك
كسب و كار الكترونيك تعاريف متعددي دارد كه در زير به برخي از آنها اشاره مي شود: - كسب و كار الكترونيك وسيله اي كه مسير رسيدن بنگاهها به بازار را هموار مي سازد. مسيري كه مشتريان در آنجا اقدام به خريد كالا و خدمات مي كنند؛ - كسب و كار الكترونيك وسيله اي است كه به استفاده كنندگان آن امكان رسيدن به مشتريان موثر و كارآمد را فراهم مي سازد؛ - كسب و كار الكترونيك توانايي هدايت تجارت از طريق شبكه هاي الكترونيك نظير اينترنت و شبكه جهاني است.
تجارت الكترونيك
براساس تعريف دفتر توسعه جامعه اروپا(OECD) به طور كلي تجارت الكترونيك، معاملات را در ارتباط با فعاليتهاي تجاري افراد و سازمانها شكل مي دهد. اين فعاليتها براساس پردازش و انتقال اطلاعات ديجيتالي (متن، صدا و تصاوير) مبتني هستند. تجارت الكترونيك، به مجموعه فعاليتهايي اطلاق مي گردد كه مستقيماً به وسيله ارتباطات الكترونيكي (شبكه اي) پشتيباني مي شود.
تفاوت كسب و كار الكترونيك و تجارت الكترونيك كسب و كار الكترونيك به مفهوم كلي شامل به كارگيري فناوريهاي جديد براي برقراري ارتباطات زنجيره اي بين سازندگان، فروشندگان، عرضه كنندگان و به طور كلي ارايه دهندگان كالا و خدمات از يك سو و خريدار و مصرف كننده و يا به طور كلي مشتري از سوي ديگر است و نتيجه آن اتخاذ تصميمهاي بهتر، بهينه سازي كالا و خدمات، كاهش هزينه ها و گشودن كانالهاي جديد است. ولي تجارت الكترونيك به هر شكلي از نقل و انتقالات در تجارت اطلاق مي شود كه در آن طرفين، بيشتر از طريق الكترونيكي با يكديگر در تماس هستند تا از طريق نقل و انتقالات فيزيكي. به عبارت ديگر، تجارت الكترونيك زيربخشي از كسب و كار الكترونيك در سازمانها است، زيرا در كسب و كار الكترونيك، شكل الكترونيكي كليه فرايندهاي كسب و كار سازمان از قبيل توليد، تحقيق و توسعه امور اداري، مالي، مديريت نيروي انساني، پشتيباني و تجارت مطرح است. در حالي كه در تجارت الكترونيك تنها فرايند تجارت سازمان به صورت الكترونيك يك جزء بنيادي از كسب و كار الكترونيك به حساب مي آيد. كسب و كار الكترونيك باعث مي شود تا فرايندهاي تجارت، روابط و دادوستد جهاني گردد. محيط تجاري شركت، ممكن است، شامل يك شبكه جهت دسترسي به سازمانهاي عمومي يا شبكه هايي كه با محافظت خاص براي دسترسي افرادي خاص طراحي شده و يا حتي شبكه داخلي باشد كه براي دسترسي افراد و كارمندان داخل شركت طراحي شده است. كسب و كار الكترونيك تنها قراردادن يك صفحه شبكه اي نيست. بلكه محيط مدلهاي تجاري اعم از تجارت با كارمندان، مشتريان، تامين كنندگان و شركا است. (سرمد، 1382، ص3)
انواع كسب و كار الكترونيك
كسب و كار الكترونيك بسته به اينكه طرفهاي معامله سازمانها يا افراد باشند به انواع زير تقسيم مي شوند. در اينجا روابط بر مبناي اهداف تجاري شكل مي گيرد. واحد تجاري با واحد تجاري (BUSINESS TO BUSINESS = B2B) ؛ واحد تجاري با مصرف كننده (BUSINESS TO CONSUMER = B2C) مصرف كننده با مصرف كننده (CONSUMER TO CONSUMER = C2C) واحد تجاري با دولت (BUSINESS TO GOVERNMENT = B2G) دولت با واحد تجاري (GOVERNMENT TO BUSINESS = G2B)
شيوه هاي كسب و كار الكترونيك
به طور كلي سه شيوه معاملات كسب و كار الكترونيكي وجود دارد: OFF LINE = در اين شيوه بنگاهها براي انجام فعاليتهاي تجاري از سيستم پست الكترونيكي استفاده مي كنند.
ON LINE = در اين شيوه،& بنگاهها از طريق «<تعيين كننده متحدالشكل منبع» (UNIFORM RESOURCE LOCATOR = URL) اقدام به معاملات تجاري مي كنند. URL ها آدرسهايي هستند كه ساختار آنها براي همه كامپيوترها يكسان است و به وسيله آن مي توان به منبع مورد نظر دست يافت (اسنل، 1379، ص 77). دروازه شبكه (PORTAL) يك صفحه شبكه است كه در آن لينك هايي براي رفتن به سايت هاي محتوي اخبار مربوط به موضوعهاي مختلف وجود دارد. اين صفحات داراي تعداد زيادي آدرس با موضوعهاي مختلف هستند. (اسنل، 1379، ص 97). خدمات دروازه شبكه اغلب شامل موتورهاي جستجوگر، پست الكترونيكـــــي، چت، نقشه ها، فروش و گزينه هاي ديگري براي مشتريان است. درواقع دروازه هاي شبكه هدفي براي تبليغات و بازاريابي هستند.مزاياي استفاده از كسب و كار الكترونيك: نزديك شدن ارتباطات؛ دستيابي به بازارهاي جديد؛ افزايش ميزان فروش و سود؛ حذف هزينه هايي مانند تهيه كاغذ، چاپ، بروشور و كاتالوگ؛ كاهش هزينه هاي معاملاتي و تداركاتي؛ بهبود مديــريت بر روابط مصرف كننده، عرضه كننده و كاركنان؛ كاهش آلودگي محيط زيست، ترافيك و ازدحام.
معايب كسب و كار الكترونيك مسئله امنيت، امكان ورود به سيستم هاي شما از طريق آدرس پست الكترونيكي، سايت شبكه و دستيابي به اطلاعات مالي و غيره؛ اختلال در برنامه كاري در صورت خرابي سيستم؛ از دست دادن كنترل؛ مشكلات و هزينه هاي به روز بودن با فناوريهايي كه به سرعت پيشرفت مي كنند.
چارچوب تحليلي گسترش و نفوذ هر فناوري بستگي به چند عامل نظير منافع بالقوه فناوري، ظرفيت جذب بنگاهها دارد. منافع بالقوه نه تنها به توليدكنندگان كالاها و خدمات مي رسد كه از فناوري جديد استفاده مي كنند، بلكه مصرف كنندگان آن كالاها و خدمات نيز از آن بهره مند مي شوند. براي مثال، رشد سريع اينترنت باعث مي شود هم عرضه كنندگان و هم مصرف كنندگان از مطلوبيت بيشتري برخوردار گردند.
پذيرش فناوري كسب و كار الكترونيك تابعي از چندين عامل است. اين عوامل در اكثر مواقع اثر تقويت كننده دو جانبه اي (متقابلي) بر يكديگر دارند ملاحظات بين المللي كه شامل صادرات، واردات فنــــاوري و... است در تعامل با كسب و كار الكترونيك، اثرتقويت كننده بر يكديگر دارند. در اين حالت بنگاه در سطح بين المللي با پذيرش كسب و كار الكترونيك واردات و صادرات خود را برمبناي اصول استاندارد كسب و كـــــار الكترونيك شكل مي دهد. از طرف ديگر قرار گرفتن كالا و خدمات در فضاي تجارت الكترونيكي موجب حذف فاصله بين مبدا و مقصد كالاها و خدمات مي گردد و تغييرات اساسي در بازارهاي هدف به وجود مي آورد. موفقيت در اين فرايند، منوط به مديريت كارا و حرفه اي اسـت. مديريت حرفـه اي با درك و شناخت از فضاي ارتباطات بين المللي، شيوه هاي كسب و كار الكترونيك را متناسب با ملاحظات بيـــن المللي تطبيق مي دهد. از طرف ديگر، مديريت حرفه اي با تجارت مدرن روابط غيرمعمـــول را تصحيح مي كند. حجم عمليات، اثرات دو سويه اي را بر كسب و كار الكترونيك دارد. از آنجايي كه استفاده از كسب و كار الكترونيك باعث دستيابي به انبوهي از مشتريان با سلايق مختلف مي گردد. لذا بنگــاههاي فعال در امر تجارت بين المللي با گسترش ظـــرفيت توليدي و تنوع بخشي به توليدات كالا و خدمات سعي در جذب مشتريان بيشتر است. يكي از شرايط مهم ديگر در كسب و كار الكترونيك وجود شبكه ارتباطي قوي همراه با اطمينان بالاست. دسترسي به پهناي باند بالاتر در اختيار هيچ كدام از بنگاهها نيست. پهناي باند قسمتي از زيرساختهاي نهادينه شده توسط دولت است. هرقدر اين پهنا بالاتر باشد، حجم وسرعت اطلاعاتي كه ردوبدل مي كند بيشتر خواهد بود. از اين رو با درنظر گرفتن نقش مهمي كه اين عامل مي تواند در موقعيت خدمات شبكه با توان بالا داشته باشد، خصوصي سازي و مقررات زدايي خدمات ارتباطي به منظور افزايش كارايي در سيستم مخابرات در كشورهاي در حال توسعه و توسعه يافته مورد تاكيد قرار مي گيرد. متغيرهاي رفتاري نظير ميزان مهارت نيروي انساني بنگاهها، حجم سرمايه گذاري در تحقيق و توسعه و نرخهاي دستمزد، از عوامل مهمي هستند كه در پذيرش كسب و كار الكترونيك توسط بنگاهها موثرند. هرقدر بنگاه تجاري در سطح بين المللي از نيروي انساني متخصص بيشتري برخوردار باشد و منابع بيشتري را به سرمايه گذاري تخصيص دهد، موقعيت بهتــــــري در جذب و پذيرش كسب و كار الكترونيك دارد. همچنين دستمزدهاي بالا هميشه انگيزه عمده اي براي نيروي كار جهت افزايش كارايي و نوآوري به حساب مي آيد. در نتيجه به كارگيري كسب و كار الكترونيك منافع متعددي را به دنبال دارد. علي رغم اينكه بسياري از منافع موجود در شكل يك ذكر گرديد، بسياري از بنگاهها به دليل پايين بودن هزينه مشاركت را قبول مي كنند اينترنت باعث ارزاني دسترسي به اطلاعات و بازارهاي جهاني مي شود. اين عامل موجب مي گردد سرعت عمل در بازارهاي چند منظوره كه براي توليد كالاها و اطلاعات است، بالا برود. به طور بالقوه شكل تازه اي به سازمان دهي زيرساخت مشاغل مــــوجود مي بخشد و با ارزش گذاري مجدد، راه را براي انجام معاملات تجاري باز مي كند و با مهندسي مجدد بازرگاني محدوديتهايي كه به طور سنتي توليدكنندگان را از مشتريان جدا مي ساخت رها مي سازد.از سوي ديگر، فعاليتهاي منفصل و جدا از هم نظير سفارش، پرداخت و خدمات بعد از فروش، ممكن است به يك فرايند واحد ادغام شده و باعث كاهش هزينه هاي اعتباري گردد. نتيجه چنين فرايندي منتهي به افزايش كارايي و رقابت پذيري در بين بنگاههاي صادراتي است. نتيجه گيري
باتوجه به چارچوب تئوريك مطرح شده و بررسي تجربه هند از كسب و كار الكترونيك براي افزايش انگيزه صادراتي پيشنهادات زير براي بنگاههاي تجاري فعال در امور بازرگاني به بنگاههاي بين المللي توصيه مي شود. ورود به سازمان تجارت جهاني و قرار گرفتن در وضعيت رقابتي امري اجتناب ناپذير است. از اين رو استفاده از فناوريهاي نوين تجاري در بنگاههاي صادراتي مورد تاكيد قرار مي گيرد. از آنجا كه موفقيت در كسب و كار الكترونيك نيازمند توجه به عوامل جانبي و تاثيرگذار بر آن است. لذا مديريت حرفه اي و به كارگيري نيروي كار متخصص براي تقويت كسب و كار الكترونيك براي بنگاهها توصيه مي شود.
تجارت الکترونیک (به انگلیسی: Electronic commerce) فرایند خرید، فروش یا تبادل محصولات، خدمات و اطلاعات از طریق شبکههای کامپیوتری و اینترنت است.
تاریخچه
ارتباط بین تجارت و تکنولوژی دیر زمانی است که وجود داشته و ادامه دارد. در واقع، یک پیشرفت تکنیکی باعث رونق تجارت شد و آن هم ساخت کشتی بود. در حدود ۲۰۰۰سال قبل از میلاد، فینیقیان تکنیک ساخت کشتی را بکار بردند تا از دریا بگذرند و به سرزمینهای دور دست یابند. با این پیشرفت، برای اولین بار مرزهای جغرافیایی برای تجارت باز شد و تجارت با سرزمینهای دیگر آغاز گشته و روشهای خلاقانه ای بصورتهای گوناگون به آن اضافه شد تا امروز که یکی از محبوبترین روشهای تجارت خرید اینترنتی در دنیای وب است. شما میتوانید در زمانهای پرت، در هر زمان و مکان حتی با لباس خواب میتوانید اینکار را بکنید. به معنای واقعی هر کسی میتواند صفحه اینترنتی خود را ساخته و کالاهای مورد نیازش را در آن ارایه دهد. البته تاریخچه تجارت الکترونیک با تاریخچه اختراعات قدیمی مثل کابل، مودم، الکترونیک، کامپیوتر و اینترنت پیوند خوردهاست. تجارت الکترونیک به شکل کنونی در سال ۱۹۹۱ محقق شد. از آن زمان هزاران هزار کسب و کار و تجار وارد این دنیا شدهاند. در ابتدا تجارت الکترونیک به معنای فرایند انجام اعمال تراکنش الکترونیکی مورد نظر را انجام دادن بود.درواقع تجارت الکترونیک برای اسان سازی معاملات اقتصادی به صورت الکترونیک تعریف شد. استفاده از این فناوری مانند Electronic Data Interchange (EDI)تبادل الکترونیکی اطلاعات وElectronic Funds TRANSFER (EFT) انتقال الکترونیکی سرمایه، که هر دو در اواخر ۱۹۷۰ معرفی شدهاند. و به شرکتها و سازمانها اجازه ارسال اسناد الکترونیکی را داد. و اجازه تجارت کردن با ارسال اسناد تجاری مثل سفارشهای خرید یا فاکتورها را به صورت الکترونیکی، میدهد. با رشد و پذیرش کارت اعتباری،(ATM) Automated teller machine ماشین تحویلدار خودکار و تلفن بانک در دهه ۱۹۸۰ باعث فرم گیری تجارت الکترونیک شد. نوع دیگر تجارت الکترونیک سیستم رزرواسیون هواپیمایی بوسیله Sabre در امریکا و Travicom در بریتانیا، ارایه شدهاست. از دهه ۱۹۹۰ به بعد تجارت الکترونیک شامل اضافاتی مثل enterprise resource planning system (ERP) سیستم برنامه ریزی منابع سرمایه، data mining داده کاوی، data warehousing انبار داده شدهاست. در ۱۹۹۰، Tim Bermers-lee مرورگر وب جهان گسترده را اختراع کرد و شبکه ارتباطی اکادمیک را به سیستم ارتباطی هرروز و برای هر شخص در جهان وسیع دگرگون ساخت که اینترنت یا www خوانده میشود. سرمایه گذاری تجاری بروی اینترنت بخاطر کافی نبودن سرمایه گذاری کاملاً محدود شده بود. اگر چه اینترنت محبوبیت جهانی گستردهای در حدود ۱۹۹۴ با استفاده از مرورگر وب Mosaic پیدا کرده بود. معرفی پروتکلهای امنیتی و DSL (اشتراک خط دیجیتال) که ارتباط مستمر را با اینترنت را اجازه میداد حدود ۵ سال طول کشید.. البته در سال ۲۰۰۰ بحران The dot-com bust باعث برشکستگی خیلی از شرکتهای تجاری بزرگ و نتایج ناگواری را بوجود اورد، باعث بازبینی قوانین و افزایش مزایا و امکانات تجارت الکترونیک کردند و تا انتهای سال ۲۰۰۰، خیلی از شرکتهای تجاری امریکایی و اروپایی سرویس هایشان را از طریق اینترنت ارایه دادند. از ان موقع مردم به کلمهای به عنوان تجارت الکترونیک با توانایی خرید کالاهای گوناگون از طریق اینترنت با استفاده از پروتکلهای امنیتی و سرویسهای پرداخت الکترونیکی که در ان مشارکت کردند، اشنا شدند. واز این زمان رقابت شدید بین شرکتها و سازمانها شدت گرفتو با گذشت زمان هم اینرقابت تنگتر شدهاست. جالب این که تا پایان سال ۲۰۰۱ بیش از ۲۲۰ بیلیون دلار معاملات مالی توسط صدها سایت تجاری بر روی اینترنت انجام پذیرفتهاست و در همین سال مدل تجارت الکترونیک B2B دارای در حدود ۷۰۰ میلیارد تراکنش بود. و در سال ۲۰۰۷ سهم تجارت الکترونیک در خرده فروشی کل دنیا ۳٫۴ % بودهاست که انرا در سال ۲۰۱۰، ۵٫۱ % اعلام نمودند که این امار رشد سریع این شیوه تجارت کردن را می رساند.
سیر زمانی
۱۹۷۹: Michael Aldrich خرید آنلاین را اختراع کرد
۱۹۸۱: Thomson Holidays اولین خرید انلاین B2B را در بریتانیا ایجاد کرد.
۱۹۸۲: Minitel سیستم سراسر کشور را در فرانسه بوسیله France Telecom و برای سفارش گیری انلاین استفاده شدهاست.
۱۹۸۴: Gateshead اولین خرید انلاین B2C را بنام SIS/Tesco و خانم Snowball در ۷۲ اولین فروش خانگی انلاین را راه انداخت.
۱۹۸۵: Nissan فروش ماشین و سرمایه گذاری با بررسی اعتبار مشتری به صورت انلاین از نمایندگیهای فروش
۱۹۸۷: Swreg شروع به فراهم اوردن ومولفهای اشتراک افزار و نرمافزار به منظور فروش انلاین محصولاتشان از طریق مکانیسم حسابهای الکترونیکی بازرگانی.
۱۹۹۰: Tim Berners-Lee اولین مرورگر وب را نوشت، وب جهان گستر، استفاده از کامپیوترهای جدید
۱۹۹۴: راهبر وب گرد: Netscape در اکتبر با نام تجاری Mozilla ارایه شد. Pizza Hut در صففحه وب سفارش دادن انلاین را پیشنهاد داد. اولین بانک انلاین باز شد. تلاشها برای پیشنهاد تحویل گل و اشتراک مجله به صورت انلاین شروع شد. لوازم بزرگسالان مثل انجام دادن ماشین و دوچرخه به صورت تجاری در دسترس قرار گرفت. Netscape 1.0 در اواخر ۱۹۹۴ با رمزگذاری SSL که تعاملات مطمئن را ایجاد میکرد، معرفی شد.
۱۹۹۵: Jeff Bezos، Amazon.com و اولین تجارتی ۲۴ ساعته رایگان را راه انداخت. ایستگاههای رادیوی اینترنتی رایگان، رادیو HK ورادیوهای شبکهای شروع به پخش کردند. Dell و Cisco به شدت از اینترنت برای تعاملات تجاری استفاده کردند. eBay توسط Pierre Omidyar برنامه نویس کامپیوتر به عنوان وب سایت حراج بنیانگذاری شد.
۱۹۹۸: توانایی خریداری و بارگذاری تمبر پستی الکترونیکی برای چاپ از اینترنت. گروه Alibaba در چین با خدمات B2B و C2C, B2C را با سیستم خود تاییدی تاسیس شد.
۱۹۹۹: Business.com به مبلغ ۷٫۵ میلیون دلار به شرکتهای الکترونیکی فروخته شد. که در سال ۱۹۹۷ به ۱۴۹٬۰۰۰ دلار خریداری شده بود. نرمافزار اشتراک گذاری فایل Napster راه اندازی شد. فروشگاههای ATG برای فروش اقلام زینتی خانه به صورت انلاین راه اندازی شد.
۲۰۰۰: The dot-com bust
۲۰۰۲: ایبی برای پیپال ۱٫۵ میلیون دلار بدست اورد. Niche شرکتهای خرده فروشی و فروشگاههای CSN و فروشگاهای شبکهای را با منظور فروش محصولات از طریق ناحیههای هدف مختلف نسبت به یک درگاه متمرکز.
۲۰۰۳: Amazon.com اولین سود سالیانه خود را اعلان کرد.
۲۰۰۷: Business.com بوسیله R.H. Donnelley با ۳۴۵ میلیون دلار خریداری شد.
۲۰۰۹: Zappos.com توسط Amazon.com با قیمت ۹۲۸ میلیون دلار خریداری شد. تقارب خرده فروشان و خرید اپراتورهای فروش وبسایتهای خصوصی RueLaLa.com بوسیله GSI Commerce به قیمت ۱۷۰ میلیون دلار بعلاوه سود فروش از تا سال ۲۰۱۲.
۲۰۱۰: Groupon گزارش داد پیشنهاد ۶ میلیار دلاری گوگل را رد کردهاست. در عوض این گروه طرح خرید وب سایتهای IPO را تا اواسط ۲۰۱۱ دارد.
۲۰۱۱: پروژه تجارت الکترونیک امریکا و خرده فروشی انلاین به ۱۹۷ میلیارد دلار رسیدهاست که نسبت به ۲۰۱۰ افزایش ۱۲ درصدی داشتهاست. Quidsi.com, parent company of Diapers.comتوسط Amazon.com به قیمت ۵۰۰ میلیون بعلاوه ۴۵ میلیون بدهکاری و تعهدات دیگر خریداری شد.
چکیده
تجارت الکترونیکی را میتوان انجام هرگونه امور تجاری بصورت آنلاین و ازطریق اینترنت بیان کرد. این تکنیک در سالهای اخیر رشد بسیاری داشتهاست و پیشبینی میشود بیش از این نیز رشد کند. تجارت الکترونیکی به هرگونه معاملهای گفته میشود که در آن خرید و فروش کالا و یا خدمات از طریق اینترنت صورت پذیرد و به واردات و یا صادرات کالا ویا خدمات منتهی میشود. تجارت الکترونیکی معمولاً کاربرد وسیع تری دارد، یعنی نه تنها شامل خرید و فروش از طریق اینترنت است بلکه سایر جنبههای فعالیت تجاری، مانند خریداری، صورت بردار ی از کالاها، مدیریت تولید و تهیه و توزیع و جابهجایی کالاها و همچنین خدمات پس از فروش را در بر میگیرد. البته مفهوم گستردهتر تجارت الکترونیک کسب و کار الکترونیک میباشد.
جایگاه تجارت الکترونیک در کشورهای جهان
در مدت کوتاهی که از آغاز عمر تجارت الکترونیک در جهان معاصر میگذرد، این فعالیت رشد بی سابقهای را در کشورهای پیشرفته داشتهاست و پیش بینی میشود در آینده نزدیک با سرعت شگفت انگیزی در سطح جهان توسعه یابد. بر اساس آمار محاسبه شده موسسات معتبر اقتصادی نیز پیش بینی شدهاست که گستره این فعالیت تا سال ۲۰۱۰ به طور متوسط ۵۴ الی ۷۱ درصد رشد خواهد کرد که نشان دهنده شتاب دار بودن حرکت آن است.
در ایران
تجارت الکترونیک در ایران بسیار نوپا و در مراحل اولیهاست. اما اهمیت فناوری اطلاعات باعث شده تا تدوین و اجرای قوانین و لوایح مورد نیاز در این عرصه همواره مد نظر مسئولان ایران باشد. اما بهنظر میرسد با وجود برگزاری دورهها و کارگاههای آموزشی متعدد هنوز میزان آگاهی افراد و تجار کشور از نحوه استفاده از امکانات موجود برای تجارت الکترونیک کم است. از سوی دیگر نبود شناخت از میزان امنیت موجود در شبکه داخلی و جهانی باعث شدهاست که اطمینان لازم وجود نداشته باشد
انواع تجارت الکترونیک
تجارت الکترونیک را میتوان از حیث تراکنشها(Transactions) به انواع مختلفی تقسیم نمود که بعضی از آنها عبارتند از:
ارتباط بنگاه و بنگاه (B2B): به الگویی از تجارت الکترونیکی گویند، که طرفین معامله بنگاهها هستند.
ارتباط بنگاه و مصرف کننده (B2C): به الگویی از تجارت الکترونیک گویند که بسیار رایج بوده و ارتباط تجاری مستقیم بین شرکتها و مشتریان میباشد.
ارتباط مصرف کنندهها و شرکتها (C2B): در این حالت اشخاص حقیقی به کمک اینترنت فراوردهها یا خدمات خود را به شرکتها میفروشند.
ارتباط مصرفکننده با مصرفکننده (C2C): در این حالت ارتباط خرید و فروش بین مصرفکنندگان است.
ارتباط بین بنگاهها و سازمانهای دولتی (B2A): که شامل تمام تعاملات تجاری بین شرکتها و سازمانهای دولتی میباشد. پرداخت مالیاتها و عوارض از این قبیل تعاملات محسوب میشوند.
ارتباط بین دولت و شهروندان (G2C): الگویی بین دولت و توده مردم میباشد که شامل بنگاههای اقتصادی، موسسات دولتی و کلیه شهروندان میباشد. این الگو یکی از مولفههای دولت الکترونیک میباشد.
ارتباط بین دولتها (G2G): این الگو شامل ارتباط تجاری بین دولتها در زمینههایی شبیه واردات و صادرات میباشد.
البته باید گفت که انواع بالا کاملاً مستقل از هم نیستند و گاهی که تاکید بر خرید و فروش ندارند در قالب کسب و کار الکترونیک میآیند
کسب و کار الکترونیک
کسب و کار الکترونیک عبارتست از کاربردی کردن کلیه سیستمهای اطلاعاتی برای تقویت و کنترل فرآیندهای کسب و کار. امروزه این فرآیندها با استفاده از تکنولوژیهای مبتنی بر وب توسعه مییابند .
کسب و کار الکترونیکی در یک تعریف ساده واژهای به معنی انجام کسب و کار با استفاده از ارتباطات راه دور و ابزارهای مرتبط است . تجارت الکترونیک از این دست دارای مفهومی کوچکتر و محدودتر نسبت به کسب و کار الکترونیکی است . در تجارت الکترونیک حتماً باید بین دو طرف پول رد و بدل شود ( تا به مفهوم تجارت برسیم ) ولی در کسب و کار الکترونیک لازم نیست پولی مبادله گردد . به عنوان مثال دادگاهی که در آن محاکمه از طریق فضای اینترنتی انجام میگردد کسب و کار الکترونیک محسوب میشود .
برخی نیز کسب و کار الکترونیک را ترکیبی از تجارت الکترونیک، هوشمندی شرکتها، مدیریت ارتباط با مشتری، مدیریت زنجیرهٔ تامین و برنامه ریزی منابع شرکت میدانند که به صورت زیر بیان میشود :
كسب و كار الكترونيك
كسب و كار الكترونيك تعاريف متعددي دارد كه در زير به برخي از آنها اشاره مي شود: - كسب و كار الكترونيك وسيله اي كه مسير رسيدن بنگاهها به بازار را هموار مي سازد. مسيري كه مشتريان در آنجا اقدام به خريد كالا و خدمات مي كنند؛ - كسب و كار الكترونيك وسيله اي است كه به استفاده كنندگان آن امكان رسيدن به مشتريان موثر و كارآمد را فراهم مي سازد؛ - كسب و كار الكترونيك توانايي هدايت تجارت از طريق شبكه هاي الكترونيك نظير اينترنت و شبكه جهاني است.
تجارت الكترونيك
براساس تعريف دفتر توسعه جامعه اروپا(OECD) به طور كلي تجارت الكترونيك، معاملات را در ارتباط با فعاليتهاي تجاري افراد و سازمانها شكل مي دهد. اين فعاليتها براساس پردازش و انتقال اطلاعات ديجيتالي (متن، صدا و تصاوير) مبتني هستند. تجارت الكترونيك، به مجموعه فعاليتهايي اطلاق مي گردد كه مستقيماً به وسيله ارتباطات الكترونيكي (شبكه اي) پشتيباني مي شود.
تفاوت كسب و كار الكترونيك و تجارت الكترونيك كسب و كار الكترونيك به مفهوم كلي شامل به كارگيري فناوريهاي جديد براي برقراري ارتباطات زنجيره اي بين سازندگان، فروشندگان، عرضه كنندگان و به طور كلي ارايه دهندگان كالا و خدمات از يك سو و خريدار و مصرف كننده و يا به طور كلي مشتري از سوي ديگر است و نتيجه آن اتخاذ تصميمهاي بهتر، بهينه سازي كالا و خدمات، كاهش هزينه ها و گشودن كانالهاي جديد است. ولي تجارت الكترونيك به هر شكلي از نقل و انتقالات در تجارت اطلاق مي شود كه در آن طرفين، بيشتر از طريق الكترونيكي با يكديگر در تماس هستند تا از طريق نقل و انتقالات فيزيكي. به عبارت ديگر، تجارت الكترونيك زيربخشي از كسب و كار الكترونيك در سازمانها است، زيرا در كسب و كار الكترونيك، شكل الكترونيكي كليه فرايندهاي كسب و كار سازمان از قبيل توليد، تحقيق و توسعه امور اداري، مالي، مديريت نيروي انساني، پشتيباني و تجارت مطرح است. در حالي كه در تجارت الكترونيك تنها فرايند تجارت سازمان به صورت الكترونيك يك جزء بنيادي از كسب و كار الكترونيك به حساب مي آيد. كسب و كار الكترونيك باعث مي شود تا فرايندهاي تجارت، روابط و دادوستد جهاني گردد. محيط تجاري شركت، ممكن است، شامل يك شبكه جهت دسترسي به سازمانهاي عمومي يا شبكه هايي كه با محافظت خاص براي دسترسي افرادي خاص طراحي شده و يا حتي شبكه داخلي باشد كه براي دسترسي افراد و كارمندان داخل شركت طراحي شده است. كسب و كار الكترونيك تنها قراردادن يك صفحه شبكه اي نيست. بلكه محيط مدلهاي تجاري اعم از تجارت با كارمندان، مشتريان، تامين كنندگان و شركا است. (سرمد، 1382، ص3)
انواع كسب و كار الكترونيك
كسب و كار الكترونيك بسته به اينكه طرفهاي معامله سازمانها يا افراد باشند به انواع زير تقسيم مي شوند. در اينجا روابط بر مبناي اهداف تجاري شكل مي گيرد. واحد تجاري با واحد تجاري (BUSINESS TO BUSINESS = B2B) ؛ واحد تجاري با مصرف كننده (BUSINESS TO CONSUMER = B2C) مصرف كننده با مصرف كننده (CONSUMER TO CONSUMER = C2C) واحد تجاري با دولت (BUSINESS TO GOVERNMENT = B2G) دولت با واحد تجاري (GOVERNMENT TO BUSINESS = G2B)
شيوه هاي كسب و كار الكترونيك
به طور كلي سه شيوه معاملات كسب و كار الكترونيكي وجود دارد: OFF LINE = در اين شيوه بنگاهها براي انجام فعاليتهاي تجاري از سيستم پست الكترونيكي استفاده مي كنند.
ON LINE = در اين شيوه،& بنگاهها از طريق «<تعيين كننده متحدالشكل منبع» (UNIFORM RESOURCE LOCATOR = URL) اقدام به معاملات تجاري مي كنند. URL ها آدرسهايي هستند كه ساختار آنها براي همه كامپيوترها يكسان است و به وسيله آن مي توان به منبع مورد نظر دست يافت (اسنل، 1379، ص 77). دروازه شبكه (PORTAL) يك صفحه شبكه است كه در آن لينك هايي براي رفتن به سايت هاي محتوي اخبار مربوط به موضوعهاي مختلف وجود دارد. اين صفحات داراي تعداد زيادي آدرس با موضوعهاي مختلف هستند. (اسنل، 1379، ص 97). خدمات دروازه شبكه اغلب شامل موتورهاي جستجوگر، پست الكترونيكـــــي، چت، نقشه ها، فروش و گزينه هاي ديگري براي مشتريان است. درواقع دروازه هاي شبكه هدفي براي تبليغات و بازاريابي هستند.مزاياي استفاده از كسب و كار الكترونيك: نزديك شدن ارتباطات؛ دستيابي به بازارهاي جديد؛ افزايش ميزان فروش و سود؛ حذف هزينه هايي مانند تهيه كاغذ، چاپ، بروشور و كاتالوگ؛ كاهش هزينه هاي معاملاتي و تداركاتي؛ بهبود مديــريت بر روابط مصرف كننده، عرضه كننده و كاركنان؛ كاهش آلودگي محيط زيست، ترافيك و ازدحام.
معايب كسب و كار الكترونيك مسئله امنيت، امكان ورود به سيستم هاي شما از طريق آدرس پست الكترونيكي، سايت شبكه و دستيابي به اطلاعات مالي و غيره؛ اختلال در برنامه كاري در صورت خرابي سيستم؛ از دست دادن كنترل؛ مشكلات و هزينه هاي به روز بودن با فناوريهايي كه به سرعت پيشرفت مي كنند.
چارچوب تحليلي گسترش و نفوذ هر فناوري بستگي به چند عامل نظير منافع بالقوه فناوري، ظرفيت جذب بنگاهها دارد. منافع بالقوه نه تنها به توليدكنندگان كالاها و خدمات مي رسد كه از فناوري جديد استفاده مي كنند، بلكه مصرف كنندگان آن كالاها و خدمات نيز از آن بهره مند مي شوند. براي مثال، رشد سريع اينترنت باعث مي شود هم عرضه كنندگان و هم مصرف كنندگان از مطلوبيت بيشتري برخوردار گردند.
پذيرش فناوري كسب و كار الكترونيك تابعي از چندين عامل است. اين عوامل در اكثر مواقع اثر تقويت كننده دو جانبه اي (متقابلي) بر يكديگر دارند ملاحظات بين المللي كه شامل صادرات، واردات فنــــاوري و... است در تعامل با كسب و كار الكترونيك، اثرتقويت كننده بر يكديگر دارند. در اين حالت بنگاه در سطح بين المللي با پذيرش كسب و كار الكترونيك واردات و صادرات خود را برمبناي اصول استاندارد كسب و كـــــار الكترونيك شكل مي دهد. از طرف ديگر قرار گرفتن كالا و خدمات در فضاي تجارت الكترونيكي موجب حذف فاصله بين مبدا و مقصد كالاها و خدمات مي گردد و تغييرات اساسي در بازارهاي هدف به وجود مي آورد. موفقيت در اين فرايند، منوط به مديريت كارا و حرفه اي اسـت. مديريت حرفـه اي با درك و شناخت از فضاي ارتباطات بين المللي، شيوه هاي كسب و كار الكترونيك را متناسب با ملاحظات بيـــن المللي تطبيق مي دهد. از طرف ديگر، مديريت حرفه اي با تجارت مدرن روابط غيرمعمـــول را تصحيح مي كند. حجم عمليات، اثرات دو سويه اي را بر كسب و كار الكترونيك دارد. از آنجايي كه استفاده از كسب و كار الكترونيك باعث دستيابي به انبوهي از مشتريان با سلايق مختلف مي گردد. لذا بنگــاههاي فعال در امر تجارت بين المللي با گسترش ظـــرفيت توليدي و تنوع بخشي به توليدات كالا و خدمات سعي در جذب مشتريان بيشتر است. يكي از شرايط مهم ديگر در كسب و كار الكترونيك وجود شبكه ارتباطي قوي همراه با اطمينان بالاست. دسترسي به پهناي باند بالاتر در اختيار هيچ كدام از بنگاهها نيست. پهناي باند قسمتي از زيرساختهاي نهادينه شده توسط دولت است. هرقدر اين پهنا بالاتر باشد، حجم وسرعت اطلاعاتي كه ردوبدل مي كند بيشتر خواهد بود. از اين رو با درنظر گرفتن نقش مهمي كه اين عامل مي تواند در موقعيت خدمات شبكه با توان بالا داشته باشد، خصوصي سازي و مقررات زدايي خدمات ارتباطي به منظور افزايش كارايي در سيستم مخابرات در كشورهاي در حال توسعه و توسعه يافته مورد تاكيد قرار مي گيرد. متغيرهاي رفتاري نظير ميزان مهارت نيروي انساني بنگاهها، حجم سرمايه گذاري در تحقيق و توسعه و نرخهاي دستمزد، از عوامل مهمي هستند كه در پذيرش كسب و كار الكترونيك توسط بنگاهها موثرند. هرقدر بنگاه تجاري در سطح بين المللي از نيروي انساني متخصص بيشتري برخوردار باشد و منابع بيشتري را به سرمايه گذاري تخصيص دهد، موقعيت بهتــــــري در جذب و پذيرش كسب و كار الكترونيك دارد. همچنين دستمزدهاي بالا هميشه انگيزه عمده اي براي نيروي كار جهت افزايش كارايي و نوآوري به حساب مي آيد. در نتيجه به كارگيري كسب و كار الكترونيك منافع متعددي را به دنبال دارد. علي رغم اينكه بسياري از منافع موجود در شكل يك ذكر گرديد، بسياري از بنگاهها به دليل پايين بودن هزينه مشاركت را قبول مي كنند اينترنت باعث ارزاني دسترسي به اطلاعات و بازارهاي جهاني مي شود. اين عامل موجب مي گردد سرعت عمل در بازارهاي چند منظوره كه براي توليد كالاها و اطلاعات است، بالا برود. به طور بالقوه شكل تازه اي به سازمان دهي زيرساخت مشاغل مــــوجود مي بخشد و با ارزش گذاري مجدد، راه را براي انجام معاملات تجاري باز مي كند و با مهندسي مجدد بازرگاني محدوديتهايي كه به طور سنتي توليدكنندگان را از مشتريان جدا مي ساخت رها مي سازد.از سوي ديگر، فعاليتهاي منفصل و جدا از هم نظير سفارش، پرداخت و خدمات بعد از فروش، ممكن است به يك فرايند واحد ادغام شده و باعث كاهش هزينه هاي اعتباري گردد. نتيجه چنين فرايندي منتهي به افزايش كارايي و رقابت پذيري در بين بنگاههاي صادراتي است. نتيجه گيري
باتوجه به چارچوب تئوريك مطرح شده و بررسي تجربه هند از كسب و كار الكترونيك براي افزايش انگيزه صادراتي پيشنهادات زير براي بنگاههاي تجاري فعال در امور بازرگاني به بنگاههاي بين المللي توصيه مي شود. ورود به سازمان تجارت جهاني و قرار گرفتن در وضعيت رقابتي امري اجتناب ناپذير است. از اين رو استفاده از فناوريهاي نوين تجاري در بنگاههاي صادراتي مورد تاكيد قرار مي گيرد. از آنجا كه موفقيت در كسب و كار الكترونيك نيازمند توجه به عوامل جانبي و تاثيرگذار بر آن است. لذا مديريت حرفه اي و به كارگيري نيروي كار متخصص براي تقويت كسب و كار الكترونيك براي بنگاهها توصيه مي شود.