[b]Cloud Computing[/b] فناوری جدیدی است برای دسترسی آسان به منابع به اشتراک گذاشته شده در اینترنت و کاربر از طریق اتصال به شبکه میتواند خدمات مورد نیاز خود را بصورت وب سرویس دریافت کند. [font=B Traffic][b]نمونه هایی از سرویس های رایانش ابری [/b][/font]
[font=B Traffic][b] [/b]1[b]- اپلیکیشن های موبایل[/b] معمولا فایلهای پشتیبان خود را بر روی [b]فضای ابری[/b] ذخیره میکنند. از [b]Drop box[/b] و[b]Google Drive [/b] گرفته تا برنامه های دیگر. زیر ساخت ابری همان چیزی است که به نام های بزرگی مانند Amazon و YouTube کمک میکند تا محتوای خود را به سرعت به کاربران تحویل دهند. بدون ابرها، شاید نیمی از اپلیکیشن های[b] وب[/b] امروزی را دیگر نداشتیم.[/font]
2- [font=B Traffic][b]خدمات ایمیل مبتنی بر وب[/b] مانند [b]Gmail [/b]و [b]Hotmail [/b]خدمات [b]رایانش ابری[/b] را ارائه می دهند. کاربران می توانند به ایمیل خود از هر کامپیوتر با یک مرورگر و اتصال به اینترنت بدون محدویت سخت افزاری دسترسی داشته باشند. ایمیل ها در سرورهای [b]Google [/b]و[b]مایکروسافت [/b]هستند ، به جای اینکه به صورت محلی بر روی کامپیوتر سرویس گیرنده ذخیره شوند .[/font]
3- در طول چند سال گذشته رشد فوق العاده ای در [font=B Traffic][b]رایانش ابری[/b] مشاهده شده است، که امروزه توسط بسیاری از برنامه های محبوب وب مورد استفاده قرار می گیرد ، از جمله [b]VOIP [/b] به عنوان مثال [b]Skype[/b], [b]Google Voice[/b] ، محیط های اجتماعی مانند [b]Facebook, Twitter, LinkedIn[/b] ،سرویس های رسانه ای مانند [b]Picassa, YouTube, Flickr[/b] ، توزیع محتوا مانند [b]Bit Torrent[/b] ، برنامه های مالی مانند [b]Mint[/b] و .. . [/font]
[list]
[*]اولین اصل "تکنیک برنامه مشترک" (Shared-program technique) نام داشت. بر طبق این اصل سخت افزار کامپیوترها باید بسیار ساده باشند و نیازی نیست که برای هر برنامه به صورت دستی سیم کشی و تجهیز شوند. در عوض، دستورات نرم افزاری باید از ترکیب همان دستورات ساده سخت افزاری تشکیل شوند و یک دستور نرم افزار مرکب و پیچیده تر را بسازند. این اصل سخت افزارها را ساده و دستورات نرم افزاری را پیچیده می کرد.
[*]وان نیومن اصل دوم خود را "انتقال کنترل به صورت شرطی" (Conditional Control Transfer) نامید. بر طبق این اصل که تاثیر عمیقی بر توسعه برنامه نویسی گذاشته است، برنامه کامپیوتری می تواند شامل بلاک های کوچکتری از دستورات بنام زیرروال (Subroutine) شود که می توانند در هر جای برنامه اصلی جای گیرند. این بلاک ها می توانند هر چندبار که لازم است در هر کجای برنامه اصلی استفاده شوند. بخش مهم دیگری از این اصل، کنترل روند برنامه کامپیوتری توسط دستورات منطقی مانند IF…Then و حلقه هایی مانند FOR را امکانپذیر می کرد.
[/list]سال 1948 همزمان بود با ارائه تئوری ریاضی ارتباطات توسط کلود شانن (Claude Shannon, 1916-2001). ارائه تز تئوری ریاضی ارتباطات او اساس تئوری اطلاعات (Information Theory) را شکل داد. این تئوری نحوه استفاده از منطق باینری (اعداد در مبنای دو، همان صفر و یک ها) در محاسبات نرم افزاری در کامپیوترها را بیان می کرد. تز ارائه شده توسط شانن دنیای صفر و یک ها (باینری) که اساس و پایه کامپیوترهای الکترونیکی امروزی هستند را شکل می داد. بعدها اولین کامپیوتر باینری در حین جنگ جهانی دوم توسط یک آلمانی بنام زوس ساخته شد.
در سال 1949، پس از ارائه 2اصل وان نیومن، زبان برنامه نویسی بنام کد کوتاه (Short Code) به وجود آمد. کد کوتاه که دستورات آن به صورت یک سری صفر و یک تشکیل شده بود، اولین زبان برنامه نویسی برای کامپیوترهای الکترونیکی به حساب می آید. ساخت این زبان برنامه نویسی به عنوان اولین قدم در جهت ساخت دنیای برنامه نویسی امروز به حساب می آید. در سال 1951، گریس هاپر اولین کامپایلر دنیای کامپیوتر را به نام A-0 نوشت. کامپایلر به برنامه ای گفته می شود که دستورات برنامه نویسی را به دستورات صفر و یک (در آن زمان دستورات زبان کد کوتاه) تبدیل می کند. از آن پس برنامه نویس نیازی به ورود کدهای صفر و یک نداشت و توسعه دنیای برنامه نویسی سرعتی چند برابر یافت.
پس از آن فورترن (FORTRAN) به عنوان اولین زبان برنامه نویسی به شکل امروزی در سال 1957 توسط شرکت IBM ساخته شد. نام آن مخفف سیستم تبدیل فرمول (FORmula TRANslating system) بود. دستورات آن بسیار ساده بودند و فقط شامل دستورات IF ، DO و GOTO می شدند. هرچند دستورات این زبان امروزه بسیار محدود و ناکارآمد تلقی می شود اما در آن زبان قدم بسیار بزرگی رو به جلو بود. انواع داده ای نیز برای اولین بار در زبان FORTRAN ارائه شدند. داده هایی مانند متغیرهای منطقی، صحیح، حقیقی و اعداد با دقت مضاعف در FORTRAN قابل تعریف و استفاده بودند.
اگرچه زبان FORTRAN در کار با اعداد و داده ها بسیار خوب عمل می کرد اما در دریافت ورودی و صدور خروجی بسیار محدودیت داشت. با شروع استفاده از کامپیوتر در دنیای تجارت، زبانهایی مانند COBOL نیز پا به عرصه ظهور گذاشتند. COBOL که از ابتدا به منظور استفاده در حوزه برنامه های تجاری طراحی شده بود، فقط شامل انواع داده ای عددی و رشته متنی می شد. امکان گروه بندی داده ها در آرایه ها و رکوردها، مدیریت داده ها را تسهیل می کرد. این امکانات فضا را برای رشد نرم افزارهای ذخیره و بازیابی اطلاعات فراهم کرد.
تا سال 1972 بیش از 200 زبان برنامه نویسی مختلف ظهور کرد. اکثر این زبانها به منظور کاربرد خاصی توسعه یافته بودند، برخی دیگر نیز ویرایش جدیدی از زبانهای قبلی بودند.
نسل های زبان های برنامه نویسی با توجه به مطالعات پیشین در زمینه روند توسعه ابزارهای برنامه نویسی، می توان این ابزارها را به چند نسل مختلف تقسیم بندی کرد؛
نسل اول در سالهای دهه 1950 برنامه نویسی کامپیوترهای اولیه توسط تغییر سیم ها و تنظیم هزاران کلید و سوییچ انجام میشد. در برخی موارد این تنظیمات بر روی کاغذهای طومار گونه و یا کارت های سوراخشده نوشته می شدند که به کامپیوتر می گفتند چه کاری را (What)، به چه صورت (How) و در چه زمانی (When) انجام دهد.
به منظور اجرای یک نرم افزار، برنامه نویس باید اطلاعات جامع و کاملی از کامپیوتر موردنظر می داشت. یک اشتباه کوچک منجر به شکست در کل برنامه کامپیوتری میشد.
نسل دوم در این دوره افراد به دنبال ابزارهای سریعتر و راحتتری برای برنامه نویسی بودند. نتیجه این تلاشها تولد نسل دوم زبان های برنامه نویسی در اواسط دهه 1950 شد. در این نسل از نمادها به جای دستورات صفر و یک استفاده می شد.
نسل سوم در اواخر دهه 1950 مفسرهای زبان های طبیعی و کامپایلرهای پا به عرصه ظهور گذاشتند. قدیمیترین زبان برنامه نویسی این نسل FORTRAN است که در سال 1953 توسط IBM ساخته شد. در سال 1959 زبان برنامه نویسی COBOL به منظور استفاده در دنیای نرم افزارهای تجاری عرضه گردید.
زبانهای سطح بالای برنامه نویسی مانند BASIC ، PASCAL ، ALGOL ، PL/I و C در این دوره معرفی شدند.
نسل چهارم زبانهای این نسل برنامه نویس را قادر می سازند تا کارهای سطح بالاتر و بیشتری را توسط کد کمتری انجام دهد. هر دستور از زبانهای این نسل معادل صدها دستور از زبانهای نسل سوم است. برنامه هایی که توسط این زبانهای نوشته می شوند، نیاز به یک محیط سخت افزاری خاص و امکانات خاص برای اجرا شدن دارند. در دهه 1990 درخواست ها برای استفاده از این زبانها بسیار زیاد شد و کمپانی هایی مانند Oracle و SUN تلاشهایی در این زمینه انجام دادند.
نسل پنجم این نسل از زبانهای برنامه نویسی هنوز در مرحله تئوری هستند و تا به امروز نمونه عملی از آنها ساخته نشده است. بسیاری از تلاشها به دلیل محدودیت سخت افزارها، عملیاتی نشده اند. استفاده از زبان طبیعی و روزمره برای تفهیم کارها به کامپیوترها از ویژگی های بارز این نسل به شمار می رود. استفاده از شبکه های عصبی و هوش مصنوعی و همچنین استفاده از Agent ها به منظور انجام کارها در کامپیوتر از دیگر ویژگی های این نسل از زبان ها هستند.
زبانهای برنامه نویسی از دیرباز تا کنون توسعه یافته اند. از سیم کشی کامپیوترها تا زبانهای سطح بالای نسل سوم و چهارم. این گامها هر کدام ابزارها و امکانات جدیدتر و بهتری را در اختیار برنامه نویسان قرار دادند و به طبع آن نرم افزارهای کامپیوتری نیز بهتر و پیشرفته تر شدند.
برنامه نویسی و تولید نرم افزارهای امروزی حاصل دسترنج ساعتها تفکر و تلاش این اشخاص است. همانطور که قبلا توضیح داده شد کامپیوترهای امروزی از لحاظ سخت افزاری بسیار ساده طراحی می شوند و این نرم افزار است که با ترکیب این اعمال می تواند کارهای بزرگتر و پیچیده تری را به انجام برساند. به موازات بهبود زبان و ابزارهای برنامه نویسی، توقع از نرم افزارها نیز بالاتر رفته است. امروزه نرم افزارها خدمات بسیاری را باید ارائه دهند. هر یک از خدمات باید به صورت کامل، با دقت بالا و سریع ارائه گردد تا بتواند توقع مخاطب را تامین کند. هر نرم افزار امروزی برای انجام یک کار ممکن است به صدها یا هزاران خط دستورات نیاز داشته باشد