شبکه اینترنت (Internet)
شبکه ویژهای از شبکهها که حاصل اتصالات داخلی شبکههای دولتی، دانشگاهی، عمومی و خصوصی در سرتاسر دنیا است. این شبکه بر اساس شبکه اولیهای کار میکند که «آرپانت» (ARPANET) نام داشت و بهوسیله موسسه «آرپا» (ARPA) که وابسته به «وزارت دفاع ایالات متحده آمریکا» است ایجاد شد. همچنین منزلگاهی برای «وب جهانگستر» (WWW) است. در لاتین واژه Internet برای نامیدن آن بکار میرود که برای اشتباه نشدن با معنی عام واژه «شبکه متصل» حرف اول را بزرگ مینویسند.

اعضای شبکه اینترنت یا شرکتهای سرویس دهنده آنها از «آدرسهای IP» استفاده میکنند. این آدرسها از موسسات ثبت نام آدرس تهیه میشوند تا تخصیص آدرسها قابل کنترل باشد. همچنین «سرویس دهندگان اینترنت» و شرکتهای بزرگ، اطلاعات مربوط به در دسترس بودن آدرسهایشان را بواسطه «قرارداد دروازه لبه» (BGP) با دیگر اعضای اینترنت مبادله میکنند.
اجزای اصلی سختافزاری
همه شبکهها از اجزای سختافزاری پایهای تشکیل شدهاند تا گرههای شبکه را به یکدیگر متصل کنند، مانند «کارتهای شبکه»، «تکرارگر»ها، «هاب»ها، «پل»ها، «راهگزین»ها و «مسیریاب»ها. علاوه بر این، بعضی روشها برای اتصال این اجزای سختافزاری لازم است که معمولاً از کابلهای الکتریکی استفاده میشود (از همه رایجتر «کابل رده ۵» (کابل Cat5) است)، و کمتر از آنها، ارتباطات میکروویو (مانند آیتریپلئی ۸۰۲٫۱۱) و («کابل فیبر نوری» Optical Fiber Cable) بکار میروند.
کارت شبکه (network adapter)
«کارت شبکه»، «آداپتور شبکه» یا «کارت واسط شبکه» (Network Interface Card) قطعهای از سختافزار رایانهاست و طراحی شده تا این امکان را به رایانهها بدهد که بتوانند بر روی یک شبکه رایانهای با یکدیگر ارتباط برقرار کنند. این قطعه دسترسی فیزیکی به یک رسانه شبکه را تامین میکند و با استفاده از «آدرسهای MAC»، سیستمی سطح پایین جهت آدرس دهی فراهم میکند. این شرایط به کاربران اجازه میدهد تا به وسیله کابل یا به صورت بیسیم به یکدیگر متصل شوند.
تکرارگر (repeater)
«تکرارگر» تجهیزی الکترونیکی است که سیگنالی را دریافت کرده و آن را با سطح دامنه بالاتر، انرژی بیشتر و یا به سمت دیگر یک مانع ارسال میکند. بدین ترتیب میتوان سیگنال را بدون کاستی به فواصل دورتری فرستاد. از آنجا که تکرارگرها با سیگنالهای فیزیکی واقعی سروکار دارند و در جهت تفسیر دادهای که انتقال میدهند تلاشی نمیکنند، این تجهیزات در «لایه فیزیکی» یعنی اولین لایه از «مدل مرجع OSI» عمل میکنند.
هاب (جعبه تقسیم)- hub
«هاب» قطعهای سختافزاری است که امکان اتصال قسمتهای یک شبکه را با هدایت ترافیک در سراسر شبکه فراهم میکند. هابها در «لایه فیزیکی» از «مدل مرجع OSI» عمل میکنند. عملکرد هاب بسیار ابتدایی است، به این ترتیب که داده رسیده از یک گره را برای تمامی گرههای شبکه کپی میکند. هابها عموماً برای متصل کردن بخشهای یک «شبکه محلی» بکار میروند. هر هاب چندین «درگاه» (پورت) دارد. زمانی که بستهای از یک درگاه میرسد، به دیگر درگاهها کپی میشود، بنابراین همه قسمتهای شبکه محلی میتوانند بستهها را ببینند.
پل (bridge)
یک «پل» دو «زیرشبکه» (سگمنت) را در «لایه پیوند داده» از «مدل مرجع OSI» به هم متصل میکند. پلها شبیه به «تکرارگر»ها و «هاب»های شبکهاند که برای اتصال قسمتهای شبکه در «لایه فیزیکی» عمل میکنند، با این حال پل با استفاده از مفهوم پلزدن کار میکند، یعنی به جای آنکه ترافیک هر شبکه بدون نظارت به دیگر درگاهها کپی شود، آنرا مدیریت میکند. بستههایی که از یک طرف پل وارد میشوند تنها در صورتی به طرف دیگر انتشار مییابند که آدرس مقصد آنها مربوط به سیستمهایی باشد که در طرف دیگر پل قرار دارند. پل مانع انتشار پیغامهای همگانی در قطعههای کابل وصلشده به آن نمیشود.
پلها به سه دسته تقسیم میشوند:
پلهای محلی: مستقیماً به «شبکههای محلی» متصل میشود.
پلهای دوردست: از آن میتوان برای ساختن «شبکههای گسترده» جهت ایجاد ارتباط بین «شبکههای محلی» استفاده کرد. پلهای دور دست در شرایطی که سرعت اتصال از شبکههای انتهایی کمتر است با «مسیریاب»ها جایگزین میشوند.
پلهای بیسیم: برای «اتصال شبکههای محلی» به «شبکههای محلی بیسیم» یا «شبکههای محلی بیسیم» به هم یا ایستگاههای دوردست به «شبکههای محلی» استفاده میشوند.
راهگزین (switch)
«راهگزین» که در پارسی بیشتر واژه «سوئیچ» برای آن بکار برده میشود، وسیلهای است که قسمتهای شبکه را به یکدیگر متصل میکند. راهگزینهای معمولی شبکه تقریباً ظاهری شبیه به «هاب» دارند، ولی یک راهگزین در مقایسه با هاب از هوشمندی بیشتری (و همچنین قیمت بیشتری) برخوردار است. راهگزینهای شبکه این توانمندی را دارند که محتویات بستههای دادهای که دریافت میکنند را بررسی کرده، دستگاه فرستنده و گیرنده بسته را شناسایی کنند، و سپس آن بسته را به شکلی مناسب ارسال نمایند. با ارسال هر پیام فقط به دستگاه متصلی که پیام به هدف آن ارسال شده، راهگزین «پهنای باند» شبکه را به شکل بهینهتری استفاده میکند و عموماً عملکرد بهتری نسبت به یک هاب دارد.
از نظر فنی میتوان گفت که راهگزین در «لایه پیوند داده» از «مدل مرجع OSI» عمل کنند. ولی بعضی انواع راهگزین قادرند تا در لایههای بالاتر نیز به بررسی محتویات بسته بپردازند و از اطلاعات بدست آمده برای تعیین مسیر مناسب ارسال بسته استفاده کنند. به این راه گزینها به اصطلاح «راهگزینهای چندلایه» (Multilayer Switch) میگویند.
مسیریاب (router)
«مسیریاب»ها تجهیزات شبکهای هستند که بستههای داده را با استفاده از «سرایند»ها و «جدول ارسال» تعیین مسیر کرده، و ارسال میکنند. مسیریابها در «لایه شبکه» از «مدل مرجع OSI» عمل میکنند. همچنین مسیریابها اتصال بین بسترهای فیزیکی متفاوت را امکانپذیر میکنند. این کار با چک کردن سرایند یک بسته داده انجام میشود.
مسیریابها از «قراردادهای مسیریابی» مانند ابتدا کوتاهترین مسیر را انتخاب کردن استفاده میکنند تا با یکدیگر گفتگو کرده و بهترین مسیر بین هر دو ایستگاه را پیکربندی کنند. هر مسیریاب دسته کم به دو شبکه، معمولاً شبکههای محلی، شبکههای گسترده و یا یک شبکه محلی و یک سرویس دهنده اینترنت متصل است. بعضی انواع مودمهای DSL و کابلی جهت مصارف خانگی درون خود از وجود یک مسیریاب نیز بهره میبرند.
اینترنت
اینترنت (به انگلیسی: Internet) (مخفف interconnected networks شبکههای به هم پیوسته) را باید بزرگترین سامانهای دانست که تاکنون به دست انسان طرّاحی، مهندسی و اجرا گردیدهاست. ریشهٔ این شبکهٔ عظیم جهانی به دههٔ ۱۹۶۰باز میگردد که سازمانهای نظامی ایالات متّحدهٔ آمریکا برای انجام پروژههای تحقیقاتی برای ساخت شبکهای مستحکم، توزیع شده و باتحمل خطا سرمایهگذاری نمودند. این پژوهش به همراه دورهای از سرمایهگذاری شخصی بنیاد ملی علوم آمریکا برای ایجاد یک ستون فقرات جدید، سبب شد تا مشارکتهای جهانی آغاز گردد و از اواسط دههٔ ۱۹۹۰، اینترنت به صورت یک شبکهٔ همگانی و جهانشمول در بیاید. وابسته شدن تمامی فعّالیتهای بشر به اینترنت در مقیاسی بسیار عظیم و در زمانی چنین کوتاه، حکایت از آغاز یک دوران تاریخیِ نوین در عرصههای گوناگون علوم، فنّآوری، و به خصوص در نحوه تفکّر انسان دارد. شواهد زیادی در دست است که از آنچه اینترنت برای بشر خواهد ساخت و خواهد کرد، تنها مقدار بسیار اندکی به واقعیت درآمدهاست.
اینترنت سامانهای جهانی از شبکههای رایانهای بهم پیوستهاست که از پروتکلِ «مجموعه پروتکل اینترنت» برای ارتباط با یکدیگر استفاده مینمایند. به عبارت دیگر اینترنت، شبکهٔ شبکه هاست که از میلیونها شبکه خصوصی، عمومی، دانشگاهی، تجاری و دولتی در اندازههای محلی و کوچک تا جهانی و بسیار بزرگ تشکیل شدهاست که با آرایه وسیعی از فناوریهای الکترونیکی و نوری به هم متصل گشتهاند. اینترنت در برگیرنده منابع اطلاعاتی و خدمات گسترده ایست که برجستهترین آنها وب جهانگستر و رایانامه میباشند. سازمانها، مراکز علمی و تحقیقاتی و موسسات متعدد، نیازمند دستیابی به شبکه اینترنت برای ایجاد یک وبگاه، دستیابی از راه دور ویپیان، انجام تحقیقات و یا استفاده از سیستم رایانامه، میباشند. بسیاری از رسانههای ارتباطی سنتی مانند تلفن و تلویزیون نیز با استفاده از اینترنت تغییر شکل دادهاند ویا مجدداً تعریف شدهاند و خدماتی جدید همچون صدا روی پروتکل اینترنت و تلویزیون پروتکل اینترنت ظهور کردند. انتشار روزنامه نیز به صورت وبگاه، خوراک وب و وبنوشت تغییر شکل دادهاست. اینترنت اشکال جدیدی از تعامل بین انسانها را از طریق پیامرسانی فوری، تالار گفتگو و شبکههای اجتماعی بوجود آوردهاست.
در اینترنت هیچ نظارت مرکزی چه بر امور فنّی و چه بر سیاستهای دسترسی و استفاده وجود ندارد. هر شبکه تشکیل دهنده اینترنت، استانداردهای خود را تدوین میکند. تنها استثنا در این مورد دو فضای نام اصلی اینترنت، نشانی پروتکل اینترنت و سامانه نام دامنه است که توسط سازمانی به نام آیکان مدیریت میشوند. وظیفه پی بندی و استاندارد سازی پروتکلهای هستهای اینترنت، IPv4 و IPv6 بر عهده گروه ویژه مهندسی اینترنت است که سازمانی بینالمللی و غیرانتفاعی است و هر فردی میتواند در وظایفشان با آن مشارکت نماید.
واژهشناسی
در زبان انگلیسی واژهٔ Intrnet هنگامی که به شبکه جهانی مبتنی بر پروتکل IP اطلاق میگردد، با حرف بزرگ در اول کلمه، نوشته میشود.
در رسانهها فرهنگ عامه، گاه با اینترنت به صورت یک مقوله عمومی و مرسوم برخورد کرده و آن را با حرف تعریف و به صورت حروف کوچک مینگارند(the internet)
در برخی منابع بزرگ نوشتن حرف اول را به دلیل اسم بودن آن جایز میدانند نه برای صفت بودن این واژه.
واژهٔ لاتین the Internet چنانچه به شبکهٔ جهانی اینترنت اشاره کند، اسم خاص است و حرف اوّلش با حروف بزرگ آغاز میشود(I). اگر حرف اوّل آن کوچک باشد میتواند به عنوان شکل کوچک شده کلمه Internetwork برداشت شود که به معنی میان شبکه است. واژه "ابر" نیز به صورت استعاری، به ویژه در ادبیات رایانش ابری و نرمافزار به عنوان سرویس، برای اشاره به اینترنت به کار میرود.
اینترنت در برابر وب
غالباً در گفتگوهای روزمره از دو واژهٔ "وب" و "اینترنت"، به اشتباه، بدون تمایز زیادی استفاده میشود، امااین دو واژه معانی متفاوتی دارند. اینترنت یک سامانه ارتباطی جهانی برای داده هاست، زیرساختهای نرمافزاری و سختافزاری است که رایانهها در سراسر جهان به یکدیگر متصل میسازد. در مقابل، وب یکی از خدماتی (سرویس) است که بر روی اینترنت ارائه میشود و برای ارتباط از شبکه اینترنت بهره میجوید. وب مجموعهای از نوشتههای به هم پیوسته(web page) است که به کمک ابرپیوندها و آدرس جهانی(URL) به یکدیگر پیوند خوردهاند.
وب شامل سرویسهای دیگر مانند رایانامه، انتقال فایل(پروتکل افتیپی)، گروه خبری و بازی آنلاین است.
خدمات(سرویس)های یاد شده بر روی شبکههای مستقل و جدا از اینترنت نیز در دسترس هستند. وب به عنوان لایهای در بالای اینترنت قرار گرفته و سطح بالاتری نسبت به آن قرار دارد.
تاریخچه
مبنای قابلیتهای شبکه، وجود رایانهها و استفاده از پردازشگرهای رمزگذار و رمزگشاست. وجود شبکههای مخابراتی که در ابتدا در قرن نوزدهم ایجاد شده بودند بنیانی مهم برای شکلگیری هر نوع شبکهٔ الکترونیکی محسوب میشدند و این پیشرفتها با ایجاد نظریه اطلاعات در دهه 1940 تکمیل شدند و پیشرفت علم الکترونیک به کندی پیش میرفت. افتتاح پروژه اسپوتنیک توسط اتحاد جماهیر شوروی سوسیالیستی زنگ خطر را برای ایالات متحده به صدا درآورد تا با تأسیس آرپا یا موسسه پروژههای تحقیقاتی پیشرفته در سال ۱۹۵۸ (میلادی) پیشروی در زمینه فناوری را بازیابد. آرپا اداره فناوری پردازش اطلاعات (IPTO) را تاسیس نمود تا پروژه SAGE راکه برای اولین بار سامانههای رادار سراسر کشور را با هم شبکه کرده بود پیشتر برد. هدف IPTO دست یافتن به راههایی برای پاسخ به نگرانی ارتش امریکا در باره قابلیت مقاومت شیکههای ارتباطیشان را پاسخ دهد، و به عنوان اولین اقدام رایانه هایشان را در پنتاگون، کوه چاین و دفتر مرکزی فرماندهی راهبردی هوایی (SAC) را به یکدیگر متصل سازد. جی.سی.آر لیکلایدر که از ترویج کنندگان شبکه جهانی بود به مدیریت IPTO رسید. لیکلایدر در سال ۱۹۵۰ (میلادی) پس از علاقهمند شدن به فناوری اطلاعات از آزمایشگاه روانشناسی صدا در دانشگاه هاروارد به ام آی تی رفت. در ام آی تی او در کمیتهای مشغول به خدمت شد که آزمایشگاه لینکلن را تاسیس کرد و بر روی پروژه SAGE کار میکرد. در سال ۱۹۵۷ (میلادی) او نایب رئیس شرکت بی بی ان (BBN) شد. در آنجا بود که اولین محصول PDP-۱ را خرید و نخستین نمایش عمومی اشتراک زمانی را هدایت نمود.
در IPTO جانشین لیکلایدر ایوان ساترلند، در سال ۱۹۶۵ (میلادی)، لارنس رابرتس را بر آن گماشت که پروژهای را برای ایجاد یک شبکه آغاز نماید و رابرتس پایه این فناوری را کار پل باران نهاد. پل باران مطالعه جامعی را برای نیروی هوایی ایالات متحده آمریکا منتشر کرده بود که در آن پیشنهاد داده بود که برای دستیابی به استحکام و مقاومت در برابر حوادث از راهگزینی بسته کوچک استفاده شود. رابرتس در آزمایشگاه لینکلن ام آی تی کار کرده بود که هدف اولیه از تاسیس آن، پروژه SAGE بود. لئونارد کلینراک استاد دانشگاه کالیفرنیا تئوریهای زیربنایی شبکههای بسته را در سال ۱۹۶۲ (میلادی) و مسیریابی سلسله مراتبی را در سال ۱۹۶۷ (میلادی) ارائه کرده بود، مفاهیمی که زمینه ساز گسترش اینترنت به شکل امروزی آن شدند.
جانشین ساترلند، رابرت تیلور، رابرتس را قانع نمود که موفقیتهای اولیهاش در زمینه راهگزینی بسته کوچک را گسترش دهد و بیاید و دانشمند ارشد IPTO شود. در آنجا رابرتس گزارشی با نام "شبکههای رایانهای منابع مشترک" به تیلور داد، که در ژوئیه ۱۹۶۸ (میلادی) مورد تایید او قرار گرفت و زمینه ساز آغاز کار آرپانت در سال بعد شد. پس از کار فراوان، سرانجام در ۲۹ اکتبر ۱۹۶۹ دو گره اول آنچه که بعدها آرپانت شد به هم متصل شدند. این اتصال بین مرکز سنجش شبکه کلینراک در دانشکده مهندسی و علوم کاربردی UCLA و سامانه NLS داگلاس انگلبرت در موسسه تحقیقاتی SRI International در پارک منلو در کالیفرنیا برقرار شد. سومین مکان در آرپانت مرکز ریاضیات تعاملی Culler-Fried در دانشگاه کالیفرنیا، سانتا باربارا بود و چهارمی دپارتمان گرافیک دانشگاه یوتا بود. تا پایان سال ۱۹۷۹ (میلادی) پانزده مکان مختلف به آرپانت جوان پیوسته بودند که پیام آور رشدی سریع بود. آرپانت تنها یکی از اجداد اینترنت امروزی بود. در تلاشی جداگانه، دونالد دیویز نیز، در آزمایشگاه ملی فیزیک انگلیس مفهوم راهگزینی بسته کوچک را کشف کرده بود. اونخستین بار آن را در ۱۹۶۵ (میلادی) مطرح نمود. کلمات بسته و راهگزینی بسته در واقع توسط او ابداع شدند و بعدها توسط استانداردها پذیرفته و به کار گرفته شدند. دیویز همچنین یک شبکه راهگزینی بسته به نام Mark I در سال ۱۹۷۰ (میلادی) درانگلستان ساخته بود. به دنبال نمایش موفق راهگزینی بسته در آرپانت(ARPANET)؛ در سال ۱۹۷۸، اداره پست بریتانیا، Telenet، DATAPACوTRANSPAC با یکدیگر همکاری را برای بوجود آوردن نخستین سرویس شبکه راهگزینی بسته خود آغاز نمودند. در بریتانیا این شبکه به نام سرویس بینالمللی راهگزینی بسته (به انگلیسی: International Packet Switched Service) خوانده میشد. مجموعه شبکههای X.۲۵ از اروپا و آمریکا گسترش یافت و تا سال ۱۹۸۱ کانادا، هنگ کنگ و استرالیا ر در بر گرفته بود. استانداردهای راهگزینی بسته X.۲۵ را "کمیته مشاوره بینالمللی تلگراف و تلفن(CCITT)" - که امروزه به نام ITU-T خوانده میشود- حول و حوش سال ۱۹۷۶ تدوین نمود. X.۲۵ از پروتکلهای TCP/IP مستقل بود. این پروتکلها حاصل کار تجربی DARPA در آرپانت، شبکه رادیویی بسته و شبکه ماهوارهای بسته بودند.
آرپانت اولیه بر روی برنامه کنترل شبکه(NCP) (به انگلیسی: Network Control Program) کارمی کرد، استانداردی که در دسامبر ۱۹۷۰ توسط تیمی به نام "گروه کاری شبکه(NWG)" به مدیریت استیو کراکر (به انگلیسی: Steve Crocker) طراحی و پیادهسازی شد. برای پاسخگویی به رشد سریع شبکه که مرتباً مکانهای بیشتری بدان متصل میشد، وینتون سرف (به انگلیسی: Vinton Cerf) و باب کان (به انگلیسی: Bob Kahn) اولین توصیف پروتکلهای TCP را که امروزه به گستردگی استفاده میشوند در خلال سال ۱۹۷۳ ارائه دادند و در مه ۱۹۷۴ مقالهای در این باب منتشر نمودند. به کاربردن واژه اینترنت برای توصیف یک شبکه TCP/IP یکتای جهانی از دسامبر ۱۹۷۴ با انتشار RFC ۶۷۵ آغاز شد. این RFC اولین توصیف کامل مشخصات TCP بود که توسط وینتون سرف، یوگن دالال و کارل سانشاین در آن زمان در دانشکاه استانفورد نوشته شد. در خلال نه سال یعدی کار تا آنجا پیش رفت که پروتکلها تصحیح شدندو بر روی بسیاری از سیستمهای عامل پیادهسازی شدند. اولین شبکه برپایه بسته پروتکل اینترنت(TCP/IP) از اول ژانویه ۱۹۸۳ وقتی که همه ایستگاههای متصل به آرپا پروتکلهای قدیمی NCP را با TCP/IP جایگزین کردند، شروع به کار نمود. در سال ۱۹۸۵ بنیاد ملی علوم آمریکا(NFS) ماموریت ساخت NFSNET- یک ستون فقرات (Network Backbone) دانشگاهی با سرعت ۵۶ کیلوبیت بر ثانیه(Kbps) - با استفاده از رایانههای "مسیریاب فازبال" (به انگلیسی: Fuzzball router) را به مخترع این رایانهها، دیوید ال. میلز (به انگلیسی: David L. Mills) سپرد. یک سال بعد NFS تبدیل به شبکه پرسرعت تر ۱٫۵ مگابیت بر ثانیه (Mbps) را نیز پشتیبانی میکرد. دنیس جنینگ، مسئول برنامه ابرکامپیدتردرNFS تصمیمی کلیدی در مورد استفاده از پروتکلهای TCP/IP ارائه شده توسط DARPA گرفت. گشایش شبکه به دنیای تجاری در سال ۱۹۸۸ آغاز شد. شورای شبکه بندی فدرال ایالات متحده در آن سال با اتصال NFSNET به سامانه تجاری پست MCI موافقت نمودو این اتصال در تابستان ۱۹۸۹ برقرارشد. سایر خدمات پست الکترونیکی تجاری (مانند OnTyme,Compuserve,Telemail) نیز به زودی متصل شدند. در آن سال سه ارائه دهنده سرویس اینترنت(ISP) بوجود آمدند: UUNET, PSINet, CERFNET. شبکههای جدای مهمی که دروازههایی به سوی اینترنت (که خود بعداً جزئی از آن شدند) میگشودند عبارت بودند از: یوزنت, بیتنت بسیاری از شبکههای متنوع تجاری و آموزشی دیگر همچون Telenet, Tymnet, Compuserve و JANET نیز به اینترنت در حال رشد پیوستند. Telenet - که بعدها Sprintnet نامیده شد - یک شبکه رایانهای ملی خصوصی بود که از ۱۹۷۰ کار خود را آغاز کرده بود و امکان دسترسی با شمارهگیری (به انگلیسی: Dial-up Access) را به صورت رایگان در شهرهایی در سراسر امریکا فراهم ساخته بود. این شبکه سرانجام در دهه ۱۹۸۰، با محبوبیت روزافزون TCP/IP به سایرین متصل شد. فابلیت TCP/IP برای کار با هر نوع شبکه ارتباطی از پیش موجود، سبب رشد آسانتر آن میگشت؛ اگر چه که رشد سریع اینترنت در وهله اول ناشی از در دسترس بودن مسبریابهای استاندارد تجاری از طرف بسیاری از شرکتها، در دسترس بودن تجهیزات تجاری اترنت(به انگلیسی: Ethernet) برای ساخت شبکههای محلی و پیادهسازیهای گسترده و استانداردسازی TCP/IP در یونیکس(به انگلیسی: Unix) و بسیاری سیستم عاملهای دیگر بود.
اگرچه بسیاری از کاربردها و رهنمودهایی که اینترنت را ممکن ساخت به مدت تقریباً دو دهه وجو داشتند، امااین شبکه تا دهه ۱۹۹۰ هنوز چهرهای همگانی نداشت. در ششم آگوست ۱۹۹۱، سرن - سازمان اروپایی پژوهش در باره ذرات - پروژه وب جهان گستر(World Wide Web) را به اطلاع عموم رساند. وب توسط دانشمندی انگلیسی به نام تیم برنرز لی(به انگلیسی: Sir Tim Berners-Lee) در سال ۱۹۸۹ اختراع شد. یکی از مرورگرهای وب محبوب اولیه ViolaWWW بود که از روی هایپرکارت الگوبرداری شده بود و از سامانه پنجره ایکس(به انگلیسی: X Window System) استفاده میکرد. سرانجام این مرورگر جای خود را در محبوبیت به مرورگرموزاییک (به انگلیسی: Mosaic) داد. در سال ۱۹۹۳ مرکزملی کاربردهای ابررایانش امریکا (به انگلیسی: National Center for Supercomputing Applications) دردانشگاه ایلینوی اولین نسخه از موزاییک را منتشر کرد و تا اواخر سال ۱۹۹۴ علاقه عمومی به اینترنتی که پیش از این آموزشی و تخصصی بود، گسترش فراوانی یافته بود. در سال ۱۹۹۶ استفاده از واژه اینترنت معمول شد و مجازا برای اشاره به وب هم استفاده شد. در همین هنگام، در گذر این دهه، اینترنت بسیاری از شبکههای رایانهای عمومی از پیش موجود را در خود جا داد (اگر چه برخی مثل FidoNet همپنان جداماندند). آنچنانکه تخمین زده شدهاست، در دهه ۹۰ در هرسال اینترنت رشدی صددرصدی نسبت به سال قبل خود داشتهاست و در سالهای ۱۹۹۶و۱۹۹۷ نیز دورههای کوتاهی از رشد انفجاری داشتهاست. این میزان رشد به خصوصیت عدم کنترل مرکزی اینترنت که امکان رشد اندامی شبکه را فراهم میسازد نسبت دادهاند و همچنین به ماهیت بازوغیراختصاصی پروتکلهای اینترنت که امکان برقراری سازگاری و همکاری میان فروشندگان مختلف و عدم توانایی یک شرکت برای اعمال کنترل بیش از حد بر روی شبکه را سبب میشود.. جمعیت تخمینی کاربران اینترنت مطابق آمار سی ام ژوئیه ۲۰۰۹، ۱٫۶۷ میلیارد نفراست.
فناوری
پروتکلها
زیرساخت ارتباطی پیچیدهٔ اینترنت، از اجزای سختافزاری به همراه سامانهای از لایههای نرمافزاری که جنبههای مختلفی از معماری آن را کنترل میکنند تشکیل شدهاست. از آنجا که سختافزار اینترنت را غالباً میتوان برای پشتیبانی از هر سامانه نرمافزاری دیگری استفاده کرد، اینترنت ویژگیهایش را مرهون طراحی معماری نرمافزار و پروسه استاندارد سازی قوی این معماری است که زیربنای مقیاسپذیری و موفقیت آن را میسازد. مسئولیت طراحی معماری سامانههای نرمافزاری اینترنت بر عهده گروه ویژه مهندسی اینترنت(IETF) گذارده شدهاست. IETF گروههای کاری استانداردگذاری را در ارتباط باجنبههای مختلف معماری اینترنت مدیریت میکند که به روی هر فردی باز هستند. بحثهای حاصل و استانداردهای نهایی در قالب اسنادی به نام درخواست توضیح(RFC) (به انگلیسی: Request for Comments) منتشر میشوند که به رایگان در وبگاه IETF فابل دسترسی هستند. روشهای اصلی شبکه بندی که اینترنت را راه میاندازند درRFCهایی میآیند که به طور ویژهای متمایز شده اندواستانداردهای اینترنت را تشکیل میدهند. سایر اسناد ضعیف تر اسناد اطلاع رسانی، آزمایشی و تاریخی هستند و یا اسنادی اند که بهترین شیوههای رایج در پیادهسازی فناوریهای اینترنت را بیان میکنند.
استانداردهای اینترنت چارچوبی را مشخص میکنند که به نام بسته پروتکل اینترنت شناخته میشود. این بسته یک مدل معماری است که روشهارا به سامانه لایه بندی شدهای از پروتکلها تقسیم میکند.(RFC 1122, RFC 1123) هرلایه با محیطی متناظر است که سرویسهایی که ارائه میدهد در آن محیط یا حوزه عمل میکنند. بالاترین لایه، لایه کاربرد (به انگلیسی: Application Layer)، فضایی است برای شیوههای شبکه بندی مخصوص برنامههای کاربردی که مورد استفاده نرمافزارهای کاربردی قرار میگیرد، به عنوان مثال یک مرورگروب. در زیر این لایه لایه انتقال (به انگلیسی: Transport Layer) قرار دارد که برنامههای کاربردی را در " میزبانهای متفاوت" از طریق شبکه با شیوههای مناسب مبادله داده به یکدیگر مرتبط میسازد (به عنوان مثال مدل کارخواه-کارساز). در زیر این لایهها فناوریهای شبکه بندی اساسی در قالب دو لایه قراردارند. لایه اینترنت از طریق نشانی پروتکل اینترنت(آدرس IP) این قابلیت را به رایانهها میدهد که یکدیگر را شناسایی کنند و مکان یکدیگر را بیایند و به آنها اجازه میدهد که از طریق شبکههای ترانزیت میانی به هم متصل شوند. درآخر زیر همه لایهها یک لایه نرمافزاری به نام لایه پیوند قرارمی گیرد که اتصال بین میزبانهایی که در یک شبکه محلی قرار دارند ویا از طریق اتصال شماره گیری(Dial-up Connection) را بوجود میآورد. این مدل که به نام مجموعه پروتکل اینترنت خوانده میشود به گونهای طراحی شدهاست که از سختافزاری که بر روی آن کار میکند مستقل باشد و به جزئیات سختافزاری نمیپردازد. مدلهای دیگری نیز علاوه بر این مدل بوجود آمدند (مثل مدل مرجع OSI) که اگرچه شباهتهای زیادی با هم دارند، اما نه از لحاظ جزئیات توصیفی و نه از نظر پیادهسازی با هم سازگار نیستند.
برجستهترین جزء مدل اینترنت پروتکل اینترنت(IP) است که یک سیستم آدرس دهی (آدرسهای IP) برای رایانههای متصل به اینترنت را فراهم میآورد. IP نسخه ۴، نسخه ابتدایی آن بود که در نسل اول اینترنت امروزی بکار گرفته شد و هنوز هم کاربرد عمده دارد. این نسخه به گونهای طراحی شده بود که ۴٫۳~ میلیارد (۱۰۹) میزبان اینترنت را آدرس دهی کند. اما رشد انفجاری ایترنت منجر به اتمام آدرسهای IP شد و گمان میرود که تقریباً در ۲۰۱۱ به مرحله پایانی اش برسد. در اواسط دهه ۹۰ نسخه جدید این پروتکل، ipv6 با قابلیت آدرس دهی بسیار بیشتر و مسیر یابی کارآمد تر ترافیک اینترنت بوجود آمد. این نسخه هم اکنون در مرحله بکارگیری تجاری در سراسر دنیا به سر میبرد و دفاتر ثبت منطقهای اینترنت (RIR) (به انگلیسی: Regional Internet Registry) به تمام مدیران منابع اصرار میکنند که برای پذیرش نسخه جدید و تغییر، برنامه ریزی کنند..
IPv۶ با IPv۴ همکنشپذیر (Interoperable) نیست و در واقع نسخهای موازی از اینترنت ایجاد میکند که در دسترس نرمافزارهای سازگار با IPv۴ نمیباشد. این بدین معنی است که ارتقای نرمافزار و یا استفاده از امکانات ترجمه برای همه دستگاههای شبکه که بخواهند بر روی اینترنت IPv۶ ارتباط برقرار کنند، امری ضروری است. اکثر سیستم عاملهای مدرن امروزی به گونهای تغییر داده شدهاند که از هر دو نسخه IP پشتیبانی کنند، اما زیرساختهای شبکه هنوز از این قافله عقب هستند.
ساختار
ساختار اینترنت و خصوصیات کاربرد آن به گستردگی مورد مطالعه قرارگرفتهاست. این مشخص شدهاست که ساختار مسیردهی پروتکل اینترنت(IP) و پیوندهای ابرمتن وب جهان گستر، هردو شبکههای مقیاس-آزاد هستند. شبیه به شیوه ارائه دهندگان تجاری اینترنت(ISP) که از طریق نقاط تبادل اینترنت(IXP) (به انگلیسی: Internet Exchange Point) به هم وصل میشوند، شبکههای پژوهشی نیز تمایل دارند که در شکل زیرشبکههای بزرگی مانند GEANT، گلوریاد، Internet۲ و JANET (شبکه آکادمی علوم و تحقیقات بریتانیا)، به هم متصل شوند. این زیر شبکهها به نوبه خود پیرامون شبکههای کوچکتری پدید آمدهاند.
بسیاری از دانشمندان علوم رایانه اینترنت را نمونه برجستهای از یک سیستم بزرگ بسیار مهندسی شده و هنوز بسیار پیچیده توصیف میکنند. اینترنت به شدت ناهمگن است. مثلاً نرخهای انتفال داده و ویژگیهای فیزیکی اتصالات بسیار تغییر میکند. اصول مسیریابی و آدرس دهی ترافیک در اینترنت به خاستگاه آن در سال ۱۹۶۰ بر میگردد که اتدازه و محبوبیت آینده اینترنت قابل پیش بینی نبود، از این رو امکان ایجاد ساختارهای دیگر در دست بررسی است.
حاکمیت
اینترنت یک شبکه جهانی توزیع شدهاست که شبکههای خودمختار به انتخاب خود به آن پیوستهاند و بدون هیچ بدنهٔ مرکزی فرماندهی کار میکند. اما برای حفظ همکنشپذیری آن جنبههای فنی و سیاستهای زیر ساخت پایهٔ آن و همچنین فضاهای نام اصلی آن توسط بنگاه اینترنتی نامها و شمارههای تخصیص داده شده(به انگلیسی: Internet Corporation for Assigned Names and Numbers) (ICANN) اداره میشوند که مقر اصلی آن درمارینا دل ری، کالیفرنیا قرار دارد. ICANN مرجعی است که به هماهنگ سازی تخصیص شناسههای یکتا برای استفاده در اینترنت میپردازد. این شناسهها شامل نامهای دامنه، نشانیهای IP، شماره پورتهای برنامهها در لایه انتقال و بسیاری از پارامترهای دیگر میشود. فضاهای نام یکتای جهانی که در آن نامها و شمارهها به صورتی تخصیص داده میشوند که مقادیر یکتا باشند، برای دسترسی جهانی به اینترنت ضروری هستند. ICANN توسط یک هیات مدیره بینالمللی که از بین انجمنهای فنی، آکادمیک و سایر انجمنهای غبر تجاری دیگراینترنت انتخاب میشود. دولت امریکا همچنان نقش اولیه را در تایید تغییرات در حوزه ریشه سامانه نام دامنه (به انگلیسی: DNS root zone) که قلب سامانه نام دامنه(DNS) را تشکیل میدهد. نقش ICANN در هماهنگی تخصیص شناسههای یکتا، آن را به عنوان تنها پیکره هماهنگ سازی در شبکه جهانی اینترنت متمایز میسازد. در ۱۶ نوامبر ۲۰۰۵ نشست جهانی در باره جامعه اطلاعاتی که در تونس برگزار شد انجمن حاکمیت اینترنت(IGF) را تاسیس کردند تا به مسایل مرتبط با اینترنت بپردازد.
کاربردهای امروزی
اینترنت انعطافپذیری بیشتری را در مورد ساعتهای کاری و موقعیت جغرافیایی فراهم میسازد بویژه با گسترش اتصالهای پرسرعت و نرمافزارهای کاربردی وب. امروزه اینترنت تقریباً از همه جا و به طرق مختلفی قابل دسترسی است، بویژه از طریق دستگاههای متحرک اینترنتی (Mobile Internet Device)، تلفن همراه، جعبههای بازی دستی(Handheld Game Console) و مسیریابهای سلولی(Cellular Routers) که به کاربران اجازه میدهد که هرکجا شبکههای بی سیم وجود دارد به اینترنت متصل شوند. با وجود محدودیت اندازه صفحه کوچک دستگاههای جیبی، خدمات اینترنت مانند وب و پست الکترونیک قابل استفادهاند. اینترنت همچنین بازار بزرگی برای شرکتها شدهاست. برخی از بزرگترین شرکتهای دنیا با بهرهگیری از ماهیت کم هزینه تبلیغات و دادوستد اینترنتی (که به دادوستدالکترونیک(E-Commerce) مشهور است) بزرگ شدهاند. این سریعترین راه برای انتشار همزمان اطلاعات بین افراد متعدد است. اینترنت متعاقباً راه و رسم خریدکردن را نیز متحول ساختهاست. به عنوان مثال یک فرد میتوانند کالایی مانند یک لوح فشرده(CD) را به صورت برخط(Online) سفارش داده و ظرف چند روز آن را از طریق پست دریافت کند و یا مستقیماً آن را در رایانهاش بارگیری(Download) نماید. اینترنت همچنین امکانات بزرگی برای بازاریابی شخصی (Personalized Marketing) به ارمغان میآورد و بیشتر از هر رسانه تبلیغاتی دیگری به یک شرکت امکان تبلیغ خصوصی محصول برای یک فرد و یا گروهی از افراد را میدهد. از نمونههای بازایابی شخصی میتوان به اجتماعات برخطی چون Facebook، Orkut، ،Twitter، Friendster، Myspace و مشابه آنها اشاره کرد که هزاران کاربر به عضویت آنها در میآیند تا خود را تبلیغ کنند و به صورت برخط دوست بیابند. بسیاری از آنها نوجوانان و جوانان بین ۱۳ تا ۲۵ سال هستند. وقتی که آنها خود را تبلیغ میکنند، علایق و سرگرمیهای خود را نیز تبلیغ مینمایند و شرکتهای بازاریابی برخط(Online Marketing) نیز از آن سود میجویند تا به اطلاعاتی در مورد اینکه هریک از این کاربران معمولاً جه کالاهایی را به صورت بر خط میخرند، دست یابند و محصولات شرکت خود را برای کاربران مورد نظرشان تبلیغ کنند.
به اشتراک گذاری آنی و کم هزینه ایدهها، دانش و مهارتها، با کمک نرمافزارهای تشریک مساعی (Collaborative Software) کارهای مشارکتی را بسیار آسانتر نمودهاست. گروهها نه تنها میتوانند به ارزانی ارتباط برقرار کنند و ایدهها را به اشتراک بگذارند، بلکه در وهله اول به دلیل دسترسی بسیار گسترده اینترنت تشکیل گروهها آسانتر میشود. مثالی از این موضوع، جنبش نرمافزار آزاد است که محصولاتی چون لینوکس، فایرفاکس موزیلا و اپنآفیس بوجود آورد. "گپ" اینترنتی چه به شکل اتاقهای گپ IRC و چه به شکل پیام رسانی فوری (Instant Messaging) به همکاران اجازه میدهد که به راحتی ضمن کارکردن پشت رایانه هایشان با یکدیگر در تماس باشند. پیامها حتی راحت تر و سریعتر از سیستم پست الکترونیکی مبادله میشوند. این سیستمها میتوانند به گونهای توسعه یابند که امکان مبادله فایل و یا تماس تصویری را نیز به کاربران ارائه دهند.(مانند Yahoo Messenger)
سیستمهای کنترل نسخه (Version Control) به گروههای همکاری کننده اجازه میدهد که بر روی اسناد اشتراکی کار کنند، بدون اینکه تصادفاً کار یکدیگر را رونویسی کنند و یا منتظر رسیدن اسناد به دستشان باشند تا بتوانند کار خود را بر روی اسناد انجام دهند. تیمهای تجاری و پرژهای میتوانند تقویمها را نیز در کنار اسناد و اطلاعات به اشتراک بگدارند. چنین هماهنگیهایی در طیف وسیعی از موضوعات مانند پژوهشهای علمی، تولید نرمافزار، برنامه ریزی کنفرانس وفعالیتهای سیاسی صورت میگیرد. همکاریهای سیاسی و اجتماعی با گسترش دسترسی به اینترنت و افزایش سوادرایانهای افزایش مییابد. از رویدادهای فلش ماب در اوایل ۲۰۰۰ تا استفاده از شبکههای اجتماعی در اعتراضات به انتخابات ۲۰۰۹ در ایران. اینترنت به افراد این امکان را میدهد که به طرز بسیار موثر تری از هرروش دیگری با هم کار کنند.
اینترنت امکان دسترسی از راه دور به رایانههای دیگر و انبارههای اطلاعات در هرجای دنیا که باشندرا به کاربران رایانه میدهد. آنها میتوانند برای این کار، در صورت نیاز، از فناوریهای امنیتی، رمزنگاری و احراز هویت نیز استفاده کنند. مثلاً یک حسابدار که در منزل خود نشستهاست میتواند حسابرسی دفاتر شرکتی را که در کشور دیگری قرار دارد، بر روی سروری که در کشور سومی قرار گرفته و توسط متخصصینی در کشور چهارم نگهداری میشود، انجام دهد ویا یک کارمند اداره میتواند در هر جای دنیا که باشدمی تواند یک نشست میزکاردور (Remote Desktop) رااز طریق اینترنت و یک شبکه خصوصی مجازی (VPN) ایمن به رایانهاش در اداره باز کند.
خدمات
اطلاعات
بسیاری از افراد واژههای "اینترنت" و "وب جهان گستر"(یابه صورت کوتاه "وب") را به جای هم بکار میبرند، حال آنکه این دو واژه معناهای متفاوتی دارند. وب جهان گستر مجموعهای جهانی از اسناد و تصاویر و سایر منابعی است که به وسیله ابرپیوندها با یکدیگر ارتباط منطقی دارند و با استفاده از شناسههای منبع یکنواخت (به انگلیسی: Uniform Resource Identifier) ویا به اختصار URI مورد مراجعه قرار میگیرند. URIها به ارائه دهندگان اجازه میدهد که سرویسها و مشتریان را به صورت سمبولیک مشخص نمایند. تا مکان یابی و آدرس دهی وب سرورها، سرورهای پرونده و سایر پایگاه دادههایی که اسناد را ذخیره میکنند و همچنین عرضه دسترسی به منابع از طریق پروتکل HTTP، اصلیترین پروتکل حامل وب، را ممکن سازند.HTTP تنها یک از صدها پروتکلی است که روی وب استفاده میشود. وب سرویسها نیز میتوانند از این پروتکل برای ارتباط استفاده کنند.
مرورگرهای وب جهان گستر مثل اینترنت اکسپلورر مایکروسافت، فایرفاکس، اپرا، سافاری اپل، و گوگل کروم با استفاده از ابرپیوندهای تعبیه شده درون صفحات، به کاربران امکان میدهند از یک صفحه وب به صفحه دیگرگردش کنند. این اسناد ممکن است ترکیبی از دادههای رایانهای شامل گرافیک، صدا، متن ساده، ویدیو، چندرسانهای و محتوای تعاملی شامل بازی، برنامههای اداری و نمایشهای علمی باشد. از راه پژوهشهای اینترنتی برپایه جستجوی کلیدواژهها با استفاده از موتورهای جستجوی وب مثل یاهو و گوگل کاربران میتوانند به سرعت و سادگی به حجم گسترده و متنوع اطلاعات بر خط دسترسی داشته باشند. در مقایسه با دانشنامههای چاپی و کتابخانههای سنتی، وب جهان گستر امکان عدم تمرکز اطلاعات را فراهم ساختهاست. وب همچنین به افراد و سازمانها توانایی انتشار ایدهها و افکارشان را برای شماربسیاری از مخاطبین بالقوه با هزینه وتاخیر زمانی کمینه میدهد. انتشار یک صفحه وب، وب نوشت، یا ساخت یک وبگاه هزینه اولیه بسیار پایینی دارد و سرویسهای رایگان نیز وجود دارند، هرچندکه انتشار و نگهداری وبگاههای بزرگ و حرفهای بااطلاعات جذاب، متنوع و به روز هنوزمشکل و پرهزینهاست. بسیاری از افراد، شرکتها و گروهها از وب نوشت هاکه به گستردگی برای یادداشتهای روزانه به روزشدنی به کارمی روند نیز استفاده میکنند. برخی از سازمانهای تجاری کارکنان خود کارکنان خود را تشویق میکنند که در حوزه تخصص خود توصیههایی را در وبگاه ارائه دهند، به این امید که با دانش تخصصی و اطلاعات رایگان، بازدیدکنندگان را تحت تاثیر قراردهند وبه شرکت خود جذب کنند. نمونه این روش در مایکروسافت دیده میشود که نرمافزارنویسان این شرکت، وب نوشتهای شخصی خود را منتشر میکنند تا علاقه عمومی را نسبت به کارشان بینگیزند.
تبلیغ برخط در صفحات وب پربیننده میتواند سود زیادی در برداشته باشد. دادوستدالکترونیک یا فروش محصولات مستقیماً از طریق وب نیز به رشد خود ادامه میدهد. در روزهای نخست وب، وبگاهها تنها مجموعهای از پروندههای متنی اچ تی امال(HTML) کامل شده و منزوی بود که بر روی وب سرورها ذخیره میشدند. مشارکت کنندگان سیستم پایگاه دادههای اصلی را توسط صفحات ویرایشگری که به همین منظور ساخته شدهاند با محتوای مورد نظر پر میکنند، حال آنکه بازدیدکنندگان تنها شکل نهایی HTML صفحات را میبینند. پروسه گرفتن محتوای جدید و دردسترس قرار دادن آن برای بازدیدکنندگان مورد نظر ممکن است شامل سیستمهای سردبیری، تاییدی و امنیتی باشد.
ارتباط
پست الکترونیک یکی از سرویسهای ارتباطی مهم در دسترس بر روی اینترنت است. مفهوم فرستادن پیامهای متنی الکترونیکی که به گونهای به نامهها و یادداشتهای پستی میماند، قدمتی بیش از اینترنت دارد. امروزه یکی از مسایلی که میتواند حائز اهمیت باشد درک تفاوت بین پست الکترونیک اینترنتی و سامانههای پست الکترونیکی داخلی است. یک نامه الکترونیکی اینترنتی ممکن است از شبکههای مختلفی عبورکند و بر روی ماشینهای مختلفی به صورت رمزنشده دخیره شود که از کنترل فرستنده و گیرنده نامه کاملاً خارج اند. دراین مدت کاملاً امکانپذیر است که این نامه توسط اشخاص ثالثی محتوای آن خوانده و یا حتی دستکاری شود. سامانههای پست الکترونیکی کاملاً داخلی که در آن نامه هاهرگزازمحدوده شبکه داخلی سازمان خارج نمیشوند بسیار ایمن تر هستند، هر چند که در هرسازمانی کارکنان فناوری اطلاعات و یا پرسنل دیگری هستند که شغلشان در ارتباط با نظارت و گاهی دسترسی به نامههای دیگران است. تصاویر و اسناد و سایر پروندهها نیز میتواند به صورت پیوست نامه الکترونیک فرستاده شود. نامههای الکترونیکی را میتوان به چندین نشانی پست الکترونیکی رونوشت نمود.
تلفن اینترنتی نیز سرویس ارتباطی دیگری است که با پیدایش اینترنت امکانپذیر شد. صدا روی پروتکل اینترنت(VoIP) نام پروتکلی است که زیر بنای همه ارتباطات تلفنی اینترنتی است. ایده آن در اوایل دهه ۱۹۹۰ همراه با برنامههای واکی-تاکی گونه برای رایانههای شخصی ظهور کرد. در سالهای اخیر سیستمهای VoIP سادگی استفاده و راحتی تلفنهای معمولی را پیدا کردهاند. فایده این کار ان است که چون ترافیک صدارااینترنت حمل میکند، VoIP هزینه بسیار کمی دارد و حتی میتواند رایگان باشد. به ویژه برای آن دسته از اتصالات اینترنت که همیشه برقرارند (مانند مودم کابلی یا ADSL) گزینه مناسبی است. VoIP در حال پخته شدن و تبدیل شدن به رقیب جایگزینی برای سیستمهای تلفن سنتی است. همکنشپذیری بین عرضه کنندگان مختلف بهبود یافته و امکان برقراری و یا در یافت تماس با تلفنهای معمولی نیز به وجود آمدهاست. کارتهای شبکه ساده و ارزان VoIP نیز در دسترس هستند که نیاز به وجود رایانه برای استفاده از VoIPرا ازبین میبرند.
کیفیت صدا از یک تماس تا تماس دیگر تغییر میکند، اما غالباً کیفیت برابر یا بهتر از تلفن معمولی است. مشکلاتی که برای VoIP باقی میمانند، گرفتن شماره تلفنهای اظطراری و قابلیت اطمینان است. در حال حاضر تعدادی از ازائه دهندگان VoIP سرویس شمارههای اظطراری را ارائه میدهند اما هنوز به صورت جهانی در دسترس نیست. تلفنهای سنتی انرژی را از خط تلفن میگیرند و در صورت قطع برق میتوانند همچنان عمل کنند. برای VoIP این امکان بدون استفاده از منبع تغذیه پشتیبان برای تغذیه تجهیزات تلفن و دسترسی به اینترنت، وجود ندارد. VoIP همچنین محبوبیت روزافزونی بین علاقهمندان بازیهای کامپیوتری به عنوان شکلی از ارتباط بین بازیکنان مییابد. محبوبترین برنامههای VoIP برای بازیها عبارتند از: Ventrilo و TeamSpeak. Wii، پلیاستیشن ۳ و ایکسباکس ۳۶۰ نیز ویژگی گفتگو با VoIP را عرضه میکنند.
انتقال داده
اشتراک فایل نمونهای از انتقال مقادیر بزرگ داده از طریق اینترنت است. یک فایل رایانهای را میتوان به صورت پیوست نامه الکترونیکی به دوستان و همکاران فرستاد. میتوان آن را دریک وبگاه ویا اف تی پی سرور(FTP Server) بارگذاری (Upload) نمودتا به آسانی توسط دیگران بارگیری(Download) شود. میتوان آن را در یک "مکان مشترک" در یک کارسازپرونده(File Server) قرار دارد تا به سرعت و آسانی در اختیار همکاران قرار گیرد. بار سنگین بارگیریهای شمار زیاد کاربران را میتوان با به کاربردن کارساز(سرور)های آینه و شبکههای تظیر-به-نظیر کاهش داد. دسترسی به فایل را میتوان از طریق تصدیق هویت کاربر کنترل کرد. انتقال فایل بر روی اینترنت را نیز میتوان با رمزگذاری در پوشش ابهام قرار داد. دستیابی به فایل ممکن است در گرو پرداخت مبلغی باشد که میتواند توسط کارت اعتباری پرداخت شود. مبدا و اعتبار فایل از طریق امضای دیجیتال و یا MD۵ و سایر روشهای هضم پیام قابل بررسی است. این ویژگیهای ساده اینترنت در مقیاس جهانی، به تدریج تولید، فروش و توزیع هر چیزی را که قابل ارائه به صورت فایل باشد را تغییر میدهد که این چیزها شامل همه انتشارات چاپی، محصولات نرمافزاری، اخبار، موسیقی، فیلم، ویدیو، عکاسی، گرافیک و آثار هنری دیگر میباشد.
رسانه جریانی(Streaming Media) همان عملی است که بسیاری از پخش کنندگان صدا و سیما، به واسطه آن، برنامههای خودرا از طریق اینترنت به صورت زنده پخش میکنند.(به عنوان مثال BBC) آنها امکان دیدن برنامههای غیر همزمان ضبط شده را نیز به کاربران میدهند. گروهی از آنها صرفاً برنامههای خود را از طریق اینترنت پخش میکنند. این بدین معنی است که یک رایانه میتواند به این رسانههای برخط، شبیه به همان صورتی که پیش از این تنها از طریق گیرندههای رادیو و تلویزیون امکانپذیر بود دست یابد. پادکستها گونه دیگری از پخش اینترنتی هستند که فایل صوتی توسط رایانه بارگیری میشود و سپس به یک پخش کننده رسانه قابل حمل منتقل میشود تا بتوان بعداً در حرکت بدان گوش داد.
وب بین (Webcam)ها را نیز میتوان گونه کم هزینه تر رسانه جریانی دانست. اگرچه برخی از وب بینها تصویر با ترخ فریم کامل میدهند اما غالباً تصویر کوچک است و به کندی به روز میشود. کاربران اینترنت میتوانند حیواناتی را دریک جنگل افریقایا گزارش تصویری از ترافیک در یک میدان را به صورت زنده و بی درنگ تماشا کنند و یا بر روی داراییهای خود از راه دور نیز نظارت بصری داشته باشند. محبوبیت اتاقهای گپ ویدیویی ویا کنفرانس تصویری نیز با افزایش تعداد کاربرانی که وب بین دارند، افزایش مییابد. یوتیوب در تاریخ ۱۵ فوریه ۲۰۰۵ ایجاد شد و اکنون وبگاه پیشرو در زمینه ویدیوهای جریانی است. یوتیوب از یک پخش کننده وب برپایه فلش برای پخش ویدیو استفاده میکند. کاربران ثبت نام کرده میتوانند مقدار نامحدودی ویدیو را در این وبگاه بارگذاری کنند و پروفایل شخصی بسازند. یوتیوب ادعا میکند که کاربرانش روزانه صدها میلیون ویدیو را بارگذاری و یا تماشا میکنند.
دسترسی
رایجترین زبان برای ارتباطات در اینترنت زبان انگلیسی است. این ممکن است ناشی از زادگاه اینترنت و همچنین نقش زبان انگلیسی به عنوان زبان بینالمللی باشد. ناتوانی رایانههای اولیه - که اغلب در امریکا ساخته میشدند - در پردازش نویسه (کاراکتر)های به جز گونه انگلیسی الفبای لاتین نیز ممکن است با این موضوع مرتبط باشد. پس از انگلیسی(۲۸٪ از بازدیدکنندگان وب)، پرخواهان ترین زبانها در وب جهان گستر عبارنتد از: چینی ۲۳٪، اسپانیایی ۸٪، ژاپنی ۵٪، پرتغالی و آلمانی (هر کدام ۴٪)، عربی و فرانسه و روسی (هرکدام ۳٪)و کرهای ۳٪. بر پایه منطقه، ۴۲٪ از کاربران اینترنت در آسیا، ۲۴٪ در اروپا،۱۴٪ در امریکای شمالی، ۱۰٪ در امریکای لاتین و کارائیب، ۵٪ در آفریقا، ۳٪ در خاورمیانه و ۱٪ در استرالیا/اقیانوسیه. فناوریهای اینترنت در سالهای اخیر بویژه در زمینه استفاده از یونیکد، به حد کافی گسترش یافتهاند و امکانات مناسبی برای ارتباط در بسیاری از زبانهای دنیا در دسترس میباشد، اما همچنان مسائلی مانند موجیباکه (نمایش نادرست برخی نویسههای یک زبان) باقی هستند.
روشهای معمول دسترسی به اینترنت در خانهها شامل دسترسی با شمارهگیری (dial-up)، خطوط زمینی پهن باند(از طریق کابل کواکسیال، فیبر نوری و یا سیم مسی)، وای-فای (Wi-Fi)، ماهواره و فناوری ۳G تلفن همراه میباشد. اماکن عمومی که میتوان در آنها از اینترنت استفاده نمود شامل کتابخانهها و کافینتها که در آنها رایانههایی با اتصال به اینترنت مهیاست. همچنین کیوسکهای اینترنت در بسیاری از اماکن عمومی مانند سالن فرودگاه و کافی شاپها موجودند که بعضی از آنها برای استفادههای کوتاه و سرپایی در نظرگرفته شدهاند. واژههای گوناگونی برای نامیدن این ترمینالها به کار میرودف از جمله: کیوسک عمومی اینترنت و یا پایانه دسترسی عمومی.
این ترمینالها به گستردگی برای کاربردهایی چون رزرو بلیط، سپرده گذاری بانکی، پرداخت برخط مورد استفاده قرار میگیرد. وای-فای(Wi-Fi) دسترسی بی سیم به شبکههای رایانهای و در نتیجه به اینترنت را فراهم میکند. نقاط داغ (Hotspots) به مکانهایی گفته میشود که دسترسی به اینترنت بی سیم در آن نقاط امکانپذیر است و کاربران میتوانند با لپ تاپ و یا دستیار دیجیتال شخصی(PDA) خود به اینترنت متصل شوند. گاهی این سرویسهای بیسیم برای عموم و یا حداقل برای مشتریان رایگان ارائه میشود. یک نقطه داغ محدوده مکانی مشخصی را شامل میشود مثل محوطه یک دانشگاه، پارک و یا حتی سراسر نقاط یک شهر. سرویسهای تجاری Wi-Fi که کل شهر را پوشش میدهند هم اکنون در شهرهای لندن، وین، تورنتو، سانفرانسیسکو، فیلادلفیا، شیکاگو و پیتسبورگ ارائه میشوند. در این شهرها مشترکین میتوانند در هر نقطهای از شهر به شبکه وای-فای متصل شوند. علاوه بر وای-فای، آزمایشهایی نیز در زمینه شبکههای بی سیم متحرک اختصاصی مانن ریکوچت و سرویسهای دادهای پرسرعت بر روی تلفنهای همراه، و شبکههای بی سیم ثابت انجام شدهاست. تلفنهای همراه پیشرفته مثل تلفنهای همراه هوشمند (Smartphone) همگی با قابلیت اتصال به اینترنت از طریق شبکه تلفن عرضه میشوند. مرورگرهای وب مثل اپرا معمولاً نسخهای برای این دستگاههای جیبی پیشرفته دارند.
آثار اجتماعی
اینترنت به دلیل خصوصیاتی چون قابلیت استفاده و دسترسی گسترده آن، اشکال کاملاً جدیدی از تعاملات، فعالیتها، و سازماندهیهای اجتماعی را پدید آوردهاست. وبگاههای شبکههای اجتماعی چون فیسبوک، توییتر و مایاسپیس روشهای جدیدی برای معاشرت و تعامل خلق کردهاند. کاربران این سایتها قادرند اطلاعات گوناگونی به صفحات خود بیفزایند، علایق مشترکی را دنبال کنند و به دیگران مرتبط شوند. وبگاههایی مثل لینکداین به پرورش ارتباطات حرفهای و تجاری میپردازد. یوتیوب و فلیکر هم در زمینه ویدیوها و تصاویر کاربران تخصص دارند.
دهه اول سده بیست و یکم، شاهد پرورش اولین نسلی است که در شرایطی رندگی میکنند که اینترنت به گستردگی در دسترس میباشد. این مسایل و نگرانیهایی را به دنبال دارد از جمله مسئله حفظ حریم خصوصی و هویت و توزیع غیر مجاز مواردی که تحت قانون کپی رایت محافظت میشوند. این بومیان دیجیتال با انبوهی از مسایلی مواجه میشوند که در مورد نسلهای قبلی وجود نداشت.
اینترنت کاربرد جدیدی به عنوان بک ابزار سیاسی یافتهاست مه این منجر به سانسوراینترنت میشود. نمونه استفاده سیاسی از اینترنت، مبارزه انتخاباتی هاوارد دین در سال ۲۰۰۴ در ایالات متحده بود که به دلیل جمعآوری کمکهای مردمی از طریق اینترنت شایان توجه بود. بسیاری از گروههای سیاسی از اینترنت برای سازماندهی در انجام ماموریت خود استفاده میکنند. برخی از دولتها مانند ایران، کره شمالی، میانمار، چین وعربستان، آنچه را که مردم میتوانند از طرق اینترنت ببینند، به ویژه در مورد مسایل سیاسی و مذهبی محدود مینمایند. این کار از طریق نرمافزارهایی که دامنه و محتوا را فیلتر میکنند صورت میپذیرد. در نروژ، دانمارک، فنلاند و سوئد، ارائه دهندگان اصلی خدمات اینترنت به صورت داوطلبانه و احتمالاً برای اجتناب از قانون شدن فیلترینگ، قبول کردهاند که دسترسی به سایتهایی که توسط مقامات مسوول لیست شدهاست را محدود نمایند. اگرچه قرار بر این است که این آدرسهای ممنوع شده تنها شامل وبگاههای هرزه نگاری کودکان باشد، اما محتوای این لیست مخفی است.در بسیاری از کشورها مانند ایالات متحده امریکا، اگرپه قوانینی در ممنوعیت پخش موارد دربردارنده هرزه نگاری کودک تصویب نمودهاند اما استفاده از نرم افرارهای فیلترینگ را اجباری نکردهاند. نرمافزارهای تجاری و یا رایگان بسیاری تحت عنوان نرمافزار کنترل محتوا در دسترس هستند که کاربران از طریق آنها میتوانند وبگاههای مستهجن را در رایانه شخصی و یا شبکه محلی مسدود نمود تا از دسترسی کودکان به مواد هرزه نگاری و یا خشونت نگاری جلو گیری نمود.
اینترنت از آغاز پیدایش همواره وسیله مناسبی برای فعالیتهای تفریحی بودهاست. بسیاری از انجمنهای اینترنتی بخشهایی برای بازی و ویدیوهای خنده دار و کارتونهای کوتاه در قالب انیمیشنهای فلش(Flash) دارند. بیش از ۶ میلیون نفر در اینترنت از وب نوشتها و تختههای پیام برای برقراری ارتباط استفاده میکنند. صنایع هرزه نگاری و قمار از اینترنت سود میجویند تا وبگاههایی بسازند که منبع کلان تبلیغات برای سایر وبگاهها میباشند. اگرچه بسیاری از دولتها برای محدود سازی استفاده این دو صنعت ازاینترنت تلاش کردهاند اما در جلوگیری از گسترش محبوبیت آنها چندان موفق نبودهاند.
یکی از فعالیتهای تفریحی اصلی در اینترنت، بازیهای چند نفره است. این شکل تفریح اجتماعاتی را بوجود میآورد که در آن افراد از هر سن و نژادی از دنیای بازیهای چندنفره کامپیوتری لذت میبرند. اگرچه بازیهای برخط از سال ۱۹۷۰ وجود داشتهاند، اما گونه مدرن این بازیها با خدمات اشتراکی مانند گیماسپای و MPlayer آغاز شد. غیر مشترکین محدود به بازیهای خاص و یا زمان بازی خاص بودند. بسیاری از مردم از اینترنت برای دسترسی و بارگیری(download) موسیقی و فیلم و سایر آثار استفاده میکنند. این خدمات به هر دو صورت رایگان و پولی، با استفاده ازسرورهای مرکزی و یا فناوریهای نظیر-به-نظیر توزیع شده ارائه میشوند. برخی از این منابع توجه بیشتری نسبت به سایرین در زمینه حقوق مولفین اصلی نشان دادهاند.
بسیاری از مردم از اینترنت برای دسترسی به اخبار، پیش بینی آب وهوا، گزارشهای ورزشی و جستجوی مطالب در مورد علاقهمندیهای خود استفاده میکنند. آنها از گپ برخط، پیام رسان فوری و پست الکترونیک برای در تماس بودن با دوستان خود در سراسر دنیا و به شیوهای شبیه به دوست مکاتبهای که در قدیم رواج داشت، استفاده میکنند. اینترنت شاهد شمار رو به افزایش میزکارهای وب که در آن کاربران به فایلها و تنظیمات خود دسترسی پیدا میکنند، بودهاست."کمکاری سایبری" (Cyberslacking) محل اتلاف جدی منابع سازمانهاست. کارمندان انگلیسی به طور میانگین ۵۷٪ از وقت خود را به وب گردی در حین کار میپردازند..
ارتباط اينترنتي ظاهراً مجال و امكان بيشتري به سوءِ تعبير، ابهام و اشتباه و سوءِ استفاده مي دهد تا شكل هاي سنتي تر ارتباطات:
اين مسئله در بطن ماهيت ارتباط انساني نهفته است. ما تصور مي كنيم كه ارتباط انساني محصول ذهن است، اما پيكر ها هستند كه اين كار را انجام مي دهند: چهره ها تكان مي خورند، صداها به ارتعاش در مي آيند، پيكرها مي جنبند، دست ها ادا و اشاره مي كنند... در اينترنت ذهن حضور دارد اما بدن غايب است. گيرندگان پيام ها هيچ سرنخي براي درك و شناخت شخصيت و خلق و خوي فرستنده ندارند، و فقط مي توانند حدس بزنند كه چرا اين پيام فرستاده شده، معناي آن چيست و چه پاسخي بايد به آن داد. اعتماد عملا از صحنه خارج مي شود. اين كار مالامال از بيم و خطر است. (Locke 2000)
تاثیرات ذهنی
بر روی آثار اینترنت بر مغز انسان مطالعات زیادی انجام شدهاست. نیکلاس کار(به انگلیسی: Nicholas Carr) ادعا میکند که اینترنت تفکر عمیق را که عامل خلاقیت واقعی است کاهش میدهد. او همچنین میگوید که پیوندهای فرامتن و تحریک بیش از حد، به این معنی است که مغز باید بیشتر توجهش را بر روی تصمیمات کوتاه متمرکز کند. او همچنین بیان میکند که اینترنت مغز را غرق در اندیشه میکند که باعث آسیب رسیدن به حافظه بلند مدت میگردد. شمار فراوان محرکها در اینترنت منجر به بار شناختی(Cognitive Load) سنگینی برای مغز میشود که یادآوری هرچیزی را مشکل میسازد.
استیون پینکر (به انگلیسی: Steven Pinker)، روانشناس، نظری مخالف دارد. او به این نکته اشاره میکند که افراد بر روی آنچه انجام میدهند کنترل دارند وبنابراین این پژوهش و استدلال هرگز طبیعت انسان را در نظر نداشتهاست. او میگوید "تجربه ظرفیتهای پردازش اطلاعات مغز را عوض نمیکند" و ادعا میکند که اینترنت باعث باهوشتر شدن انسانها شدهاست.
نکات حقوقی و اخلاقی
هم اکنون نگرانی عمومی در مورد مطالب موجود در اینترنت وجود دارد. بعضی از جدال آمیزترین آنها تخلف در حق نشر، جعل هویت و مکالمه تنفر آمیز هستند که وجود دارند و قانونی کردن آنها مشکل است.
تاریخ اینترنت
اتحاد جماهیر شوروی آن زمان موشکی با نام «اسپونیک» (Spotnik) را به فضا میفرستد و نشان میدهد دارای قدرتی است که میتواند شبکههای ارتباطی آمریکا را توسط موشکهای بالستیک و دوربرد خود از بین ببرد. آمریکاییها در پاسخگویی به این اقدام روسها، موسسه پروژههای تحقیقی پیشرفته “ARPA” را بهوجود آوردند. هدف از تاسیس چنین موسسهای پژوهش و آزمایش برای پیدا کردن روشی بود که بتوان از طریق خطوط تلفنی، کامپیوترها را به هم مرتبط نمود. به طوری که چندین کاربر بتوانند از یک خط ارتباطی مشترک استفاده کنند. در اصل شبکهای بسازند که در آن دادهها به صورت اتوماتیک بین مبدا و مقصد حتی در صورت از بین رفتن بخشی از مسیرها جابهجا و منتقل شوند. در اصل هدف “ARPA” ایجاد یک شبکه اینترنتی نبود و فقط یک اقدام احتیاطی در مقابل حمله احتمالی موشکهای اتمی دوربرد بود. هر چند اکثر دانش امروزی ما درباره شبکه بهطور مستقیم از طرح آرپانت “ARPPA NET” گرفته شدهاست. شبکهای که همچون یک تار عنکبوت باشد و هر کامپیوتر ان از مسیرهای مختلف بتواند با همتایان خود ارتباط دااشته باشد واگر اگر یک یا چند کامپیوتر روی شبکه یا پیوند بین انها از کار بیفتادبقیه باز هم بتوانستند از مسیرهای تخریب نشده با هم ارتباط بر قرار کنند.
این ماجرا با وجودی که بخشی از حقایق بهوجود آمدن اینترنت را بیان میکند اما نمیتواند تمام واقعیات مربوط به آن را تشریح کند. باید بگوییم افراد مختلفی در تشکیل اینترنت سهم داشتهاند آقای “Paul Baran” یکی از مهمترین آنهاست. آقای باران که در دوران جنگ سرد زندگی میکرد میدانست که شبکه سراسری تلفن آمریکا توانایی مقابله با حمله اتمی شوروی سابق را ندارد. مثلاً اگر رییس جمهور وقت آمریکا حمله اتمی متقابل را دستور دهد، باید از یک شبکه تلفنی استفاده میکرد که قبلاً توسط روسها منهدم شده بود. در نتیجه طرح یک سیستم مقاوم در مقابل حمله اتمی روسها ریخته شد.آقای باران (Baran) تشکیل و تکامل اینترنت را به ساخت یک کلیسا تشبیه کرد و معتقد بود، طی سالهای اخیر هر کس سنگی به پایهها و سنگهای قبلی بنا اضافه میکند و انجام هر کاری وابسته به کارهای انجام شده قبلی است. بنابراین نمیتوان گفت، کدام بخش از کار مهمترین بخش کار بودهاست و در کل پیدایش اینترنت نتیجه کار و تلاش گروه کثیری از دانشمندان است. داستان پیدایش اینترنت با افسانه و واقعیت در هم آمیخته شدهاست.
در اوایل دهه ۶۰ میلادی آقای باران طی مقالاتی پایه کار اینترنت امروزی را ریخت. اطلاعات و دادهها به صورت قطعات و بستههای کوچکتری تقسیم و هر بسته با آدرسی که به آن اختصاص داده میشود به مقصد خاص خود فرستاده میشود. به این ترتیب بستهها مانند نامههای پستی میتوانند از هر مسیری به مقصد برسند. زیرا آنها شامل آدرس فرستنده و گیرنده هستند و در مقصد بستهها مجدداً یکپارچه میشوند و به صورت یک اطلاعات کامل درمیآیند.
آقای باران (Baran) طی مقالاتی اینچنینی ساختمان و ساختار اینترنت را پیشگویی کرد. او از کار سلولهای مغزی انسان به عنوان الگو استفاده کرد، او معتقد بود: وقتی سلولهای مغزی از بین بروند، شبکه عصبی از آنها دیگر استفاده نمیکند و مسیر دیگری را در مغز انتخاب میکند. از دیدگاه وی این امکان وجود دارد که شبکهای با تعداد زیادی اتصالات برای تکرار ایجاد شوند تا در صورت نابودی بخشی از آن، همچنان به صورت مجموعهای به هم پیوسته کار کند. تا نیمه دهه ۶۰ میلادی کسی به نظرات او توجهای نکرد. تا اینکه در سال ۱۹۶۵ نیروی هوایی آمریکا و«آزمایشگاههای بل» به نظرات او علاقهمند شدند و پنتاگون با سرمایهگذاری در طراحی و ساخت شبکهای براساس نظریات او موافقت کرد.
ولی آقای باران (Baran) بنابر دلایلی حاضر با همکاری با نیروی هوایی آمریکا نشد. در این میان دانشمندی با نام تیلور (Tailon) وارد موسسه آرپا (ARPA) شد. او مستقیماً به آقای هرتسفلد رییس موسسه پیشنهاد کرد: (ARPA) آرپا هزینه ایجاد یک شبکه آزمایشی کوچک با حداقل چهار گره را تامین کند که بودجه آن بالغ بر یک میلیون دلار میشد. با این پیشنهاد تیلور تجربهای را آغاز کرد که منجر به پیدایش اینترنت امروزی شد. او موفق شد در سال ۱۹۶۶، دو کامپیوتر را در شرق و غرب آمریکا به هم متصل کند. با این اتصال انقلابی در نحوه صدور اطلاعات در دنیای ارتباطات رخ داد که نتیجه آن را امروز همگی شاهد هستیم. این شبکه به بستههایی (packet) از دادهها که به وسیله کامپیوترهای مختلف ارسال میشدند اتکا داشت. پس از انکه ازمایشها سودمندی انرا مشخص کردند سایر بخشهای دولتی و دانشگاهها پژوهشی تمایل خود را به وصل شدن به ان اعلام کردند . ارتباطات الکترونیکی به صورت روشی موثر برای دانشمندان و دیگران به منظور استفاده مشترک از دادهها در امد. در همان زمان که ARPAnet در حال رشد بود تعدادی شبکه پوشش محلی (LAN) در نقاط مختلف آمریکا به وجود امد. مدیران LANها نیز به وصل کردن کامپیوترهای شبکههای خود به شبکههای بزرگتر اقدام کردند . پروتوکل اینترنت ARPAnet IP زبان استاندارد حکمفرما برای برقراری ارتباط کامپیوترهای شبکههای مختلف به یکدیگر شد.تاریخ تولد اینترنت به طور رسمی اول سپتامبر ۱۹۶۹ اعلام شدهاست. زیرا که اولین “IMP” در دانشگاه “UCLA” واقع در سانتاباربارا در این تاریخ بارگذاری شدهاست.
از اوایل دهه ۱۹۹۰ رشد استفاده از اینترنت به صورت تصاعدی افزایش یافت . یکی از علل چنین استقبالی ابزار جستجویی مانند Gopher و archie بودهاست اما اینها در سال ۱۹۹۱ تحت تاثیر word wide web قرار گرفتند که به وسیله CERN یا ازمایشگاه فیزیک هستهای اروپا ساخته شد . با ان که اینترنت از ابتدا طوری بود که مبادله اطلاعات برای تازه واردان بسیار ساده باشد. بزرگترین جهش در وب در سال ۱۹۹۳ با عرضه نرمافزار موزاییک mosaic که نخستین برنامه مرورگر وب گرافیکی بود به وجود امد. برنامه موزاییک محصول تلاش دانشجویان و استادان بخش "مرکز ملی کاربردهای ابر کامپیوتر " در دانشگاه ایلینویز آمریکا بود. برای نخستین بار موزاییک امکانات اشاره و کلیک (به وسیله موش) را فراهم کرد. کاربران میتوانستند صفحات وب (web page) یا مجموعهای از متن و گرافیک را کنار هم بگذارند تا هر کسی که میخواست انها را بتواند روی اینترنت ببیند. وقتی با موش روی کلمهها یا تصاویر خاصی که hyper link نامیده میشد کلیک میکردند برنامه موزاییک به طور خود کار یک صفحه دیگر باز میکرد که به کلمه یا تصویر خاص و کلیک شده اختصاص داشت. بهترین بخش این سیستم انجا بود که hyper linkها میتوانستند به صفحاتی روی همان کامپیوتر یا هر کامپیوتر دیگر اینترنت با خدمات وب اشاره کنند. صفحات وب هر روز متولد میشدند و مفهوم موج سواری یا surfing روی وب متولد شد. اواسط سال ۱۹۹۴ سه میلیون کامپیوتر به اینترنت وصل شده بود و در ان هنگام اجرای عملیات اهسته نشده بود. صفحات جدید وب که شامل همه چیز از اسناد دولتی تا مدارک شرکتها و مدلهای جدید لباس بود در سراسر دنیا چندین برابر شد . موزاییک و جانشینان ان مانند navigator محصول شرکت " نت اسکیپ " اینترنت را از قلمرو علمی به میان مردم اوردند. طبق اخرین امار ۵۱ درصد کاربران بعد از سال ۱۹۹۵ وارد این محیط شدهاند. میلیونها انسانی که از اینترنت استفاده میکنند نیازی ندارند که نکات فنی مانند TCP/IP را بدانند . امروزه شرکتهای خدمات دهنده اینترنت یا ISP این کار را به عهده دارند.رشد روز افزون ان و ساده تر شدن استفاده ان همچنان ادامه دارد . هر چه تعداد مردم بیشتری به اینترنت رجوع کنند تعداد شرکتهای سازنده برنامههای اینترنت بیشتر میشود.با انکه بعضی از عاشقان اینترنت ان را نوعی شیوه زندگی میدانند. در نظر بیشتر کاربران منبع سرگرمی اطلاعات است ولی بیشترین مصرف ان پست الکترونیکی یا همان email است که یکی از ابزارهای ارتباطی کار امد به شمار میرود. پیامها از کامپیوتری به کامپیوتر دیگر با سرعت پرواز میکنند و منتظر میمانند تا شخص فرصت خواندن انها را پیدا کند . وب امکانات خوبی برای کپی از نرمافزارهای مجاز از لحاظ کپی فراهم میسازد. وقتی که میبینیم که در مدت کوتاهی اینترنت به چنین رشدی نایل آمده است، مطمئناً دشوار خواهد بود که آینده او را پیش بینی کنیم. طبق نظر کارشناسان ماهانه ۱۰ درصد به تعداد کاربران اینترنت افزوده میشود ولی تعداد دقیق کاربران که روزانه از آن استفاده میکنند مشخص نیست. هرچند که پارهای از کارشناسان تعداد آنها را تا ۹۰۰ میلیون نفر حدس میزنند. تعداد رسمی کاربران اینترنتی را در سال ۲۰۰۰ کارشناسان ۵۰۰ میلیون نفر اعلام کرده بودند.
قطعاً در سالهای آینده تحولات شگرفی را در زمینه شبکههای اینترنتی شاهد خواهیم بود. بهوسیله اینترنت انسان به راههای جدیدی دست پیدا کرد. در کنار این شانس جدید توسط اینترنت، باید بگوییم خطراتی نیز در رابطه با سیاست و اقتصاد و علم به دنبال خواهد داشت. فرم امروزی اینترنت مدیون همکاری تمام کاربران اینترنت در سرتاسر گیتی است که با این تصور که اطلاعات موجود در سطح جهان را به راحتی با یکدیگر مبادله کنند. این تصوری بود که آقای باران(Baran) از اینترنت داشت و امیدواریم در آینده نیز تکامل اینترنت در این مسیر باشد.
اینترنت در ایران
اینترنت در ایران عبارت است از کلیه جنبه های مرتبط به ایجاد، توسعه و استفاده از شبکه های رایانه ای تحت مجموعه پروتکل اینترنت در ایران که آن را از اینترنت به معنای عام مشخص و متمایز می کند و شامل امور فنی، ساختارهای حقوقی و اداری، دسترسی، خدمات، کاربری و نیز آثار و چالش های ناشی از آن می شود.
اینترنت در ایران در سطح جامعه اکثراً محدود به وبگردی و ارتباطات راهدور و در دانشگاهها تحقیقات علمی است و تجارت الکترونیک به علت نبود زیرساختها و قوانین لازم در سطح محدودی ارائه میگردد. در سال ۱۹۹۳، ایران دومین کشوری در خاورمیانه بود که به اینترنت متصل شد. از آن زمان، تعداد کاربران اینترنت در ایران روند فزایندهای داشته است. اما بر اساس آمار دسامبر ۲۰۱۲ ایران به لحاظ سرعت اینترنت در دسترسی برای کاربران خانگی، در بین ۱۷۸ کشور در جایگاه ۱۶۴ قرار داشت و از بین کشورهای خاورمیانه تنها مصر و سوریه رتبهٔ پایینتری داشتند. همچنین در فصل اول سال ۲۰۱۳ ایران در بین کشورهای جهان جزء کندترین کشورها در زمینه ارائه اینترنت پرسرعت است. کاربران اینترنت در ایران هم از فیلترینگ اعمالشده توسط نهادهای دولتی و هم از فیلترینگ معکوس اعمالشده توسط شرکتهای وابسته به کشورهایی که ایران را تحریم کردهاند، رنج میبرند. همچنین، تولیدکنندگان محتوا در اینترنت طبق قانون موظفند که اطلاعات شخصی خود و ویژگیهای فنی وبگاه خود را نزد دولت ثبت کنند.
پیشینه
پیش از ایجاد شبکه اینترنت، نسل قبلی شبکههای رایانهای جهانگستر به نام بیتنت در دنیا به کار میرفت. به گفتهٔ سیاوش شهشهانی، قائممقام سابق پژوهشگاه دانشهای بنیادی، این مرکز در ایران در سال ۱۳۶۸ خورشیدی (معادل ۱۹۸۹ تا ۱۹۹۰) برای اولین بار به شبکهٔ بیتنت متصل شد؛ هدف این کار ارتباط علمی و پژوهشی با دانشگاههای دنیا بود. شبکهٔ بیتنت با شبکهٔ اینترنتی که امروز استفاده میشود تفاوتهای بسیار داشت. استفادهٔ اصلی که از آن میشد دریافت و ارسال نامههای الکترونیکی بود. سیاوش شهشهانی، قائممقام آن زمان پژوهشگاه دانشهای بنیادی، در مصاحبهای میگوید: «وقتی عضویت ما را تصویب کردند یک بند جدید هم به تعهدات اعضا اضافه کردند و آن این که از شبکه برای تبلیغات مذهبی استفاده نشود.» یکی دیگر از تعهدات این بود که هیج عضوی نباید جلوی عبور اطلاعات از کشوری به کشور دیگر را بگیرد. محمد جواد لاریجانی فردی بود که تعهدات لازم برای برقراری این اتصال را پذیرفت و توافقنامه را امضا کرد. مرکز در ابتدا از طریق اتصال با شمارهگیری و با استفاده از خط تلفن به دانشگاهی در اتریش متصل شد. پس از آن یک خط استیجاری با دانشگاه وین برقرار شد. این اتصال از سال ۱۹۹۳ به شکل رسمی در آمد.
اینترنت به صورت عمومی از حدود سالهای ۱۹۹۳ (معادل ۱۳۷۲ خورشیدی) برای استفادههای دانشگاهی وارد ایران شد. پژوهشگاه دانشهای بنیادی اولین مرکزی بود که به سمت استفاده از اینترنت گام برداشت و از طریق دانشگاه وین به اینترنت متصل شد. در ابتدا خدمات اتصال به اینترنت فقط به کاربران دانشگاهی داده میشد. استفادهٔ عمومی از اینترنت برای اولین توسط شرکت ندا رایانه فراهم آورد.
شبکه ویژهای از شبکهها که حاصل اتصالات داخلی شبکههای دولتی، دانشگاهی، عمومی و خصوصی در سرتاسر دنیا است. این شبکه بر اساس شبکه اولیهای کار میکند که «آرپانت» (ARPANET) نام داشت و بهوسیله موسسه «آرپا» (ARPA) که وابسته به «وزارت دفاع ایالات متحده آمریکا» است ایجاد شد. همچنین منزلگاهی برای «وب جهانگستر» (WWW) است. در لاتین واژه Internet برای نامیدن آن بکار میرود که برای اشتباه نشدن با معنی عام واژه «شبکه متصل» حرف اول را بزرگ مینویسند.

اعضای شبکه اینترنت یا شرکتهای سرویس دهنده آنها از «آدرسهای IP» استفاده میکنند. این آدرسها از موسسات ثبت نام آدرس تهیه میشوند تا تخصیص آدرسها قابل کنترل باشد. همچنین «سرویس دهندگان اینترنت» و شرکتهای بزرگ، اطلاعات مربوط به در دسترس بودن آدرسهایشان را بواسطه «قرارداد دروازه لبه» (BGP) با دیگر اعضای اینترنت مبادله میکنند.
اجزای اصلی سختافزاری
همه شبکهها از اجزای سختافزاری پایهای تشکیل شدهاند تا گرههای شبکه را به یکدیگر متصل کنند، مانند «کارتهای شبکه»، «تکرارگر»ها، «هاب»ها، «پل»ها، «راهگزین»ها و «مسیریاب»ها. علاوه بر این، بعضی روشها برای اتصال این اجزای سختافزاری لازم است که معمولاً از کابلهای الکتریکی استفاده میشود (از همه رایجتر «کابل رده ۵» (کابل Cat5) است)، و کمتر از آنها، ارتباطات میکروویو (مانند آیتریپلئی ۸۰۲٫۱۱) و («کابل فیبر نوری» Optical Fiber Cable) بکار میروند.
کارت شبکه (network adapter)
«کارت شبکه»، «آداپتور شبکه» یا «کارت واسط شبکه» (Network Interface Card) قطعهای از سختافزار رایانهاست و طراحی شده تا این امکان را به رایانهها بدهد که بتوانند بر روی یک شبکه رایانهای با یکدیگر ارتباط برقرار کنند. این قطعه دسترسی فیزیکی به یک رسانه شبکه را تامین میکند و با استفاده از «آدرسهای MAC»، سیستمی سطح پایین جهت آدرس دهی فراهم میکند. این شرایط به کاربران اجازه میدهد تا به وسیله کابل یا به صورت بیسیم به یکدیگر متصل شوند.
تکرارگر (repeater)
«تکرارگر» تجهیزی الکترونیکی است که سیگنالی را دریافت کرده و آن را با سطح دامنه بالاتر، انرژی بیشتر و یا به سمت دیگر یک مانع ارسال میکند. بدین ترتیب میتوان سیگنال را بدون کاستی به فواصل دورتری فرستاد. از آنجا که تکرارگرها با سیگنالهای فیزیکی واقعی سروکار دارند و در جهت تفسیر دادهای که انتقال میدهند تلاشی نمیکنند، این تجهیزات در «لایه فیزیکی» یعنی اولین لایه از «مدل مرجع OSI» عمل میکنند.
هاب (جعبه تقسیم)- hub
«هاب» قطعهای سختافزاری است که امکان اتصال قسمتهای یک شبکه را با هدایت ترافیک در سراسر شبکه فراهم میکند. هابها در «لایه فیزیکی» از «مدل مرجع OSI» عمل میکنند. عملکرد هاب بسیار ابتدایی است، به این ترتیب که داده رسیده از یک گره را برای تمامی گرههای شبکه کپی میکند. هابها عموماً برای متصل کردن بخشهای یک «شبکه محلی» بکار میروند. هر هاب چندین «درگاه» (پورت) دارد. زمانی که بستهای از یک درگاه میرسد، به دیگر درگاهها کپی میشود، بنابراین همه قسمتهای شبکه محلی میتوانند بستهها را ببینند.
پل (bridge)
یک «پل» دو «زیرشبکه» (سگمنت) را در «لایه پیوند داده» از «مدل مرجع OSI» به هم متصل میکند. پلها شبیه به «تکرارگر»ها و «هاب»های شبکهاند که برای اتصال قسمتهای شبکه در «لایه فیزیکی» عمل میکنند، با این حال پل با استفاده از مفهوم پلزدن کار میکند، یعنی به جای آنکه ترافیک هر شبکه بدون نظارت به دیگر درگاهها کپی شود، آنرا مدیریت میکند. بستههایی که از یک طرف پل وارد میشوند تنها در صورتی به طرف دیگر انتشار مییابند که آدرس مقصد آنها مربوط به سیستمهایی باشد که در طرف دیگر پل قرار دارند. پل مانع انتشار پیغامهای همگانی در قطعههای کابل وصلشده به آن نمیشود.
پلها به سه دسته تقسیم میشوند:
پلهای محلی: مستقیماً به «شبکههای محلی» متصل میشود.
پلهای دوردست: از آن میتوان برای ساختن «شبکههای گسترده» جهت ایجاد ارتباط بین «شبکههای محلی» استفاده کرد. پلهای دور دست در شرایطی که سرعت اتصال از شبکههای انتهایی کمتر است با «مسیریاب»ها جایگزین میشوند.
پلهای بیسیم: برای «اتصال شبکههای محلی» به «شبکههای محلی بیسیم» یا «شبکههای محلی بیسیم» به هم یا ایستگاههای دوردست به «شبکههای محلی» استفاده میشوند.
راهگزین (switch)
«راهگزین» که در پارسی بیشتر واژه «سوئیچ» برای آن بکار برده میشود، وسیلهای است که قسمتهای شبکه را به یکدیگر متصل میکند. راهگزینهای معمولی شبکه تقریباً ظاهری شبیه به «هاب» دارند، ولی یک راهگزین در مقایسه با هاب از هوشمندی بیشتری (و همچنین قیمت بیشتری) برخوردار است. راهگزینهای شبکه این توانمندی را دارند که محتویات بستههای دادهای که دریافت میکنند را بررسی کرده، دستگاه فرستنده و گیرنده بسته را شناسایی کنند، و سپس آن بسته را به شکلی مناسب ارسال نمایند. با ارسال هر پیام فقط به دستگاه متصلی که پیام به هدف آن ارسال شده، راهگزین «پهنای باند» شبکه را به شکل بهینهتری استفاده میکند و عموماً عملکرد بهتری نسبت به یک هاب دارد.
از نظر فنی میتوان گفت که راهگزین در «لایه پیوند داده» از «مدل مرجع OSI» عمل کنند. ولی بعضی انواع راهگزین قادرند تا در لایههای بالاتر نیز به بررسی محتویات بسته بپردازند و از اطلاعات بدست آمده برای تعیین مسیر مناسب ارسال بسته استفاده کنند. به این راه گزینها به اصطلاح «راهگزینهای چندلایه» (Multilayer Switch) میگویند.
مسیریاب (router)
«مسیریاب»ها تجهیزات شبکهای هستند که بستههای داده را با استفاده از «سرایند»ها و «جدول ارسال» تعیین مسیر کرده، و ارسال میکنند. مسیریابها در «لایه شبکه» از «مدل مرجع OSI» عمل میکنند. همچنین مسیریابها اتصال بین بسترهای فیزیکی متفاوت را امکانپذیر میکنند. این کار با چک کردن سرایند یک بسته داده انجام میشود.
مسیریابها از «قراردادهای مسیریابی» مانند ابتدا کوتاهترین مسیر را انتخاب کردن استفاده میکنند تا با یکدیگر گفتگو کرده و بهترین مسیر بین هر دو ایستگاه را پیکربندی کنند. هر مسیریاب دسته کم به دو شبکه، معمولاً شبکههای محلی، شبکههای گسترده و یا یک شبکه محلی و یک سرویس دهنده اینترنت متصل است. بعضی انواع مودمهای DSL و کابلی جهت مصارف خانگی درون خود از وجود یک مسیریاب نیز بهره میبرند.
اینترنت
اینترنت (به انگلیسی: Internet) (مخفف interconnected networks شبکههای به هم پیوسته) را باید بزرگترین سامانهای دانست که تاکنون به دست انسان طرّاحی، مهندسی و اجرا گردیدهاست. ریشهٔ این شبکهٔ عظیم جهانی به دههٔ ۱۹۶۰باز میگردد که سازمانهای نظامی ایالات متّحدهٔ آمریکا برای انجام پروژههای تحقیقاتی برای ساخت شبکهای مستحکم، توزیع شده و باتحمل خطا سرمایهگذاری نمودند. این پژوهش به همراه دورهای از سرمایهگذاری شخصی بنیاد ملی علوم آمریکا برای ایجاد یک ستون فقرات جدید، سبب شد تا مشارکتهای جهانی آغاز گردد و از اواسط دههٔ ۱۹۹۰، اینترنت به صورت یک شبکهٔ همگانی و جهانشمول در بیاید. وابسته شدن تمامی فعّالیتهای بشر به اینترنت در مقیاسی بسیار عظیم و در زمانی چنین کوتاه، حکایت از آغاز یک دوران تاریخیِ نوین در عرصههای گوناگون علوم، فنّآوری، و به خصوص در نحوه تفکّر انسان دارد. شواهد زیادی در دست است که از آنچه اینترنت برای بشر خواهد ساخت و خواهد کرد، تنها مقدار بسیار اندکی به واقعیت درآمدهاست.
اینترنت سامانهای جهانی از شبکههای رایانهای بهم پیوستهاست که از پروتکلِ «مجموعه پروتکل اینترنت» برای ارتباط با یکدیگر استفاده مینمایند. به عبارت دیگر اینترنت، شبکهٔ شبکه هاست که از میلیونها شبکه خصوصی، عمومی، دانشگاهی، تجاری و دولتی در اندازههای محلی و کوچک تا جهانی و بسیار بزرگ تشکیل شدهاست که با آرایه وسیعی از فناوریهای الکترونیکی و نوری به هم متصل گشتهاند. اینترنت در برگیرنده منابع اطلاعاتی و خدمات گسترده ایست که برجستهترین آنها وب جهانگستر و رایانامه میباشند. سازمانها، مراکز علمی و تحقیقاتی و موسسات متعدد، نیازمند دستیابی به شبکه اینترنت برای ایجاد یک وبگاه، دستیابی از راه دور ویپیان، انجام تحقیقات و یا استفاده از سیستم رایانامه، میباشند. بسیاری از رسانههای ارتباطی سنتی مانند تلفن و تلویزیون نیز با استفاده از اینترنت تغییر شکل دادهاند ویا مجدداً تعریف شدهاند و خدماتی جدید همچون صدا روی پروتکل اینترنت و تلویزیون پروتکل اینترنت ظهور کردند. انتشار روزنامه نیز به صورت وبگاه، خوراک وب و وبنوشت تغییر شکل دادهاست. اینترنت اشکال جدیدی از تعامل بین انسانها را از طریق پیامرسانی فوری، تالار گفتگو و شبکههای اجتماعی بوجود آوردهاست.
در اینترنت هیچ نظارت مرکزی چه بر امور فنّی و چه بر سیاستهای دسترسی و استفاده وجود ندارد. هر شبکه تشکیل دهنده اینترنت، استانداردهای خود را تدوین میکند. تنها استثنا در این مورد دو فضای نام اصلی اینترنت، نشانی پروتکل اینترنت و سامانه نام دامنه است که توسط سازمانی به نام آیکان مدیریت میشوند. وظیفه پی بندی و استاندارد سازی پروتکلهای هستهای اینترنت، IPv4 و IPv6 بر عهده گروه ویژه مهندسی اینترنت است که سازمانی بینالمللی و غیرانتفاعی است و هر فردی میتواند در وظایفشان با آن مشارکت نماید.
واژهشناسی
در زبان انگلیسی واژهٔ Intrnet هنگامی که به شبکه جهانی مبتنی بر پروتکل IP اطلاق میگردد، با حرف بزرگ در اول کلمه، نوشته میشود.
در رسانهها فرهنگ عامه، گاه با اینترنت به صورت یک مقوله عمومی و مرسوم برخورد کرده و آن را با حرف تعریف و به صورت حروف کوچک مینگارند(the internet)
در برخی منابع بزرگ نوشتن حرف اول را به دلیل اسم بودن آن جایز میدانند نه برای صفت بودن این واژه.
واژهٔ لاتین the Internet چنانچه به شبکهٔ جهانی اینترنت اشاره کند، اسم خاص است و حرف اوّلش با حروف بزرگ آغاز میشود(I). اگر حرف اوّل آن کوچک باشد میتواند به عنوان شکل کوچک شده کلمه Internetwork برداشت شود که به معنی میان شبکه است. واژه "ابر" نیز به صورت استعاری، به ویژه در ادبیات رایانش ابری و نرمافزار به عنوان سرویس، برای اشاره به اینترنت به کار میرود.
اینترنت در برابر وب
غالباً در گفتگوهای روزمره از دو واژهٔ "وب" و "اینترنت"، به اشتباه، بدون تمایز زیادی استفاده میشود، امااین دو واژه معانی متفاوتی دارند. اینترنت یک سامانه ارتباطی جهانی برای داده هاست، زیرساختهای نرمافزاری و سختافزاری است که رایانهها در سراسر جهان به یکدیگر متصل میسازد. در مقابل، وب یکی از خدماتی (سرویس) است که بر روی اینترنت ارائه میشود و برای ارتباط از شبکه اینترنت بهره میجوید. وب مجموعهای از نوشتههای به هم پیوسته(web page) است که به کمک ابرپیوندها و آدرس جهانی(URL) به یکدیگر پیوند خوردهاند.
وب شامل سرویسهای دیگر مانند رایانامه، انتقال فایل(پروتکل افتیپی)، گروه خبری و بازی آنلاین است.
خدمات(سرویس)های یاد شده بر روی شبکههای مستقل و جدا از اینترنت نیز در دسترس هستند. وب به عنوان لایهای در بالای اینترنت قرار گرفته و سطح بالاتری نسبت به آن قرار دارد.
تاریخچه
مبنای قابلیتهای شبکه، وجود رایانهها و استفاده از پردازشگرهای رمزگذار و رمزگشاست. وجود شبکههای مخابراتی که در ابتدا در قرن نوزدهم ایجاد شده بودند بنیانی مهم برای شکلگیری هر نوع شبکهٔ الکترونیکی محسوب میشدند و این پیشرفتها با ایجاد نظریه اطلاعات در دهه 1940 تکمیل شدند و پیشرفت علم الکترونیک به کندی پیش میرفت. افتتاح پروژه اسپوتنیک توسط اتحاد جماهیر شوروی سوسیالیستی زنگ خطر را برای ایالات متحده به صدا درآورد تا با تأسیس آرپا یا موسسه پروژههای تحقیقاتی پیشرفته در سال ۱۹۵۸ (میلادی) پیشروی در زمینه فناوری را بازیابد. آرپا اداره فناوری پردازش اطلاعات (IPTO) را تاسیس نمود تا پروژه SAGE راکه برای اولین بار سامانههای رادار سراسر کشور را با هم شبکه کرده بود پیشتر برد. هدف IPTO دست یافتن به راههایی برای پاسخ به نگرانی ارتش امریکا در باره قابلیت مقاومت شیکههای ارتباطیشان را پاسخ دهد، و به عنوان اولین اقدام رایانه هایشان را در پنتاگون، کوه چاین و دفتر مرکزی فرماندهی راهبردی هوایی (SAC) را به یکدیگر متصل سازد. جی.سی.آر لیکلایدر که از ترویج کنندگان شبکه جهانی بود به مدیریت IPTO رسید. لیکلایدر در سال ۱۹۵۰ (میلادی) پس از علاقهمند شدن به فناوری اطلاعات از آزمایشگاه روانشناسی صدا در دانشگاه هاروارد به ام آی تی رفت. در ام آی تی او در کمیتهای مشغول به خدمت شد که آزمایشگاه لینکلن را تاسیس کرد و بر روی پروژه SAGE کار میکرد. در سال ۱۹۵۷ (میلادی) او نایب رئیس شرکت بی بی ان (BBN) شد. در آنجا بود که اولین محصول PDP-۱ را خرید و نخستین نمایش عمومی اشتراک زمانی را هدایت نمود.
در IPTO جانشین لیکلایدر ایوان ساترلند، در سال ۱۹۶۵ (میلادی)، لارنس رابرتس را بر آن گماشت که پروژهای را برای ایجاد یک شبکه آغاز نماید و رابرتس پایه این فناوری را کار پل باران نهاد. پل باران مطالعه جامعی را برای نیروی هوایی ایالات متحده آمریکا منتشر کرده بود که در آن پیشنهاد داده بود که برای دستیابی به استحکام و مقاومت در برابر حوادث از راهگزینی بسته کوچک استفاده شود. رابرتس در آزمایشگاه لینکلن ام آی تی کار کرده بود که هدف اولیه از تاسیس آن، پروژه SAGE بود. لئونارد کلینراک استاد دانشگاه کالیفرنیا تئوریهای زیربنایی شبکههای بسته را در سال ۱۹۶۲ (میلادی) و مسیریابی سلسله مراتبی را در سال ۱۹۶۷ (میلادی) ارائه کرده بود، مفاهیمی که زمینه ساز گسترش اینترنت به شکل امروزی آن شدند.
جانشین ساترلند، رابرت تیلور، رابرتس را قانع نمود که موفقیتهای اولیهاش در زمینه راهگزینی بسته کوچک را گسترش دهد و بیاید و دانشمند ارشد IPTO شود. در آنجا رابرتس گزارشی با نام "شبکههای رایانهای منابع مشترک" به تیلور داد، که در ژوئیه ۱۹۶۸ (میلادی) مورد تایید او قرار گرفت و زمینه ساز آغاز کار آرپانت در سال بعد شد. پس از کار فراوان، سرانجام در ۲۹ اکتبر ۱۹۶۹ دو گره اول آنچه که بعدها آرپانت شد به هم متصل شدند. این اتصال بین مرکز سنجش شبکه کلینراک در دانشکده مهندسی و علوم کاربردی UCLA و سامانه NLS داگلاس انگلبرت در موسسه تحقیقاتی SRI International در پارک منلو در کالیفرنیا برقرار شد. سومین مکان در آرپانت مرکز ریاضیات تعاملی Culler-Fried در دانشگاه کالیفرنیا، سانتا باربارا بود و چهارمی دپارتمان گرافیک دانشگاه یوتا بود. تا پایان سال ۱۹۷۹ (میلادی) پانزده مکان مختلف به آرپانت جوان پیوسته بودند که پیام آور رشدی سریع بود. آرپانت تنها یکی از اجداد اینترنت امروزی بود. در تلاشی جداگانه، دونالد دیویز نیز، در آزمایشگاه ملی فیزیک انگلیس مفهوم راهگزینی بسته کوچک را کشف کرده بود. اونخستین بار آن را در ۱۹۶۵ (میلادی) مطرح نمود. کلمات بسته و راهگزینی بسته در واقع توسط او ابداع شدند و بعدها توسط استانداردها پذیرفته و به کار گرفته شدند. دیویز همچنین یک شبکه راهگزینی بسته به نام Mark I در سال ۱۹۷۰ (میلادی) درانگلستان ساخته بود. به دنبال نمایش موفق راهگزینی بسته در آرپانت(ARPANET)؛ در سال ۱۹۷۸، اداره پست بریتانیا، Telenet، DATAPACوTRANSPAC با یکدیگر همکاری را برای بوجود آوردن نخستین سرویس شبکه راهگزینی بسته خود آغاز نمودند. در بریتانیا این شبکه به نام سرویس بینالمللی راهگزینی بسته (به انگلیسی: International Packet Switched Service) خوانده میشد. مجموعه شبکههای X.۲۵ از اروپا و آمریکا گسترش یافت و تا سال ۱۹۸۱ کانادا، هنگ کنگ و استرالیا ر در بر گرفته بود. استانداردهای راهگزینی بسته X.۲۵ را "کمیته مشاوره بینالمللی تلگراف و تلفن(CCITT)" - که امروزه به نام ITU-T خوانده میشود- حول و حوش سال ۱۹۷۶ تدوین نمود. X.۲۵ از پروتکلهای TCP/IP مستقل بود. این پروتکلها حاصل کار تجربی DARPA در آرپانت، شبکه رادیویی بسته و شبکه ماهوارهای بسته بودند.
آرپانت اولیه بر روی برنامه کنترل شبکه(NCP) (به انگلیسی: Network Control Program) کارمی کرد، استانداردی که در دسامبر ۱۹۷۰ توسط تیمی به نام "گروه کاری شبکه(NWG)" به مدیریت استیو کراکر (به انگلیسی: Steve Crocker) طراحی و پیادهسازی شد. برای پاسخگویی به رشد سریع شبکه که مرتباً مکانهای بیشتری بدان متصل میشد، وینتون سرف (به انگلیسی: Vinton Cerf) و باب کان (به انگلیسی: Bob Kahn) اولین توصیف پروتکلهای TCP را که امروزه به گستردگی استفاده میشوند در خلال سال ۱۹۷۳ ارائه دادند و در مه ۱۹۷۴ مقالهای در این باب منتشر نمودند. به کاربردن واژه اینترنت برای توصیف یک شبکه TCP/IP یکتای جهانی از دسامبر ۱۹۷۴ با انتشار RFC ۶۷۵ آغاز شد. این RFC اولین توصیف کامل مشخصات TCP بود که توسط وینتون سرف، یوگن دالال و کارل سانشاین در آن زمان در دانشکاه استانفورد نوشته شد. در خلال نه سال یعدی کار تا آنجا پیش رفت که پروتکلها تصحیح شدندو بر روی بسیاری از سیستمهای عامل پیادهسازی شدند. اولین شبکه برپایه بسته پروتکل اینترنت(TCP/IP) از اول ژانویه ۱۹۸۳ وقتی که همه ایستگاههای متصل به آرپا پروتکلهای قدیمی NCP را با TCP/IP جایگزین کردند، شروع به کار نمود. در سال ۱۹۸۵ بنیاد ملی علوم آمریکا(NFS) ماموریت ساخت NFSNET- یک ستون فقرات (Network Backbone) دانشگاهی با سرعت ۵۶ کیلوبیت بر ثانیه(Kbps) - با استفاده از رایانههای "مسیریاب فازبال" (به انگلیسی: Fuzzball router) را به مخترع این رایانهها، دیوید ال. میلز (به انگلیسی: David L. Mills) سپرد. یک سال بعد NFS تبدیل به شبکه پرسرعت تر ۱٫۵ مگابیت بر ثانیه (Mbps) را نیز پشتیبانی میکرد. دنیس جنینگ، مسئول برنامه ابرکامپیدتردرNFS تصمیمی کلیدی در مورد استفاده از پروتکلهای TCP/IP ارائه شده توسط DARPA گرفت. گشایش شبکه به دنیای تجاری در سال ۱۹۸۸ آغاز شد. شورای شبکه بندی فدرال ایالات متحده در آن سال با اتصال NFSNET به سامانه تجاری پست MCI موافقت نمودو این اتصال در تابستان ۱۹۸۹ برقرارشد. سایر خدمات پست الکترونیکی تجاری (مانند OnTyme,Compuserve,Telemail) نیز به زودی متصل شدند. در آن سال سه ارائه دهنده سرویس اینترنت(ISP) بوجود آمدند: UUNET, PSINet, CERFNET. شبکههای جدای مهمی که دروازههایی به سوی اینترنت (که خود بعداً جزئی از آن شدند) میگشودند عبارت بودند از: یوزنت, بیتنت بسیاری از شبکههای متنوع تجاری و آموزشی دیگر همچون Telenet, Tymnet, Compuserve و JANET نیز به اینترنت در حال رشد پیوستند. Telenet - که بعدها Sprintnet نامیده شد - یک شبکه رایانهای ملی خصوصی بود که از ۱۹۷۰ کار خود را آغاز کرده بود و امکان دسترسی با شمارهگیری (به انگلیسی: Dial-up Access) را به صورت رایگان در شهرهایی در سراسر امریکا فراهم ساخته بود. این شبکه سرانجام در دهه ۱۹۸۰، با محبوبیت روزافزون TCP/IP به سایرین متصل شد. فابلیت TCP/IP برای کار با هر نوع شبکه ارتباطی از پیش موجود، سبب رشد آسانتر آن میگشت؛ اگر چه که رشد سریع اینترنت در وهله اول ناشی از در دسترس بودن مسبریابهای استاندارد تجاری از طرف بسیاری از شرکتها، در دسترس بودن تجهیزات تجاری اترنت(به انگلیسی: Ethernet) برای ساخت شبکههای محلی و پیادهسازیهای گسترده و استانداردسازی TCP/IP در یونیکس(به انگلیسی: Unix) و بسیاری سیستم عاملهای دیگر بود.
اگرچه بسیاری از کاربردها و رهنمودهایی که اینترنت را ممکن ساخت به مدت تقریباً دو دهه وجو داشتند، امااین شبکه تا دهه ۱۹۹۰ هنوز چهرهای همگانی نداشت. در ششم آگوست ۱۹۹۱، سرن - سازمان اروپایی پژوهش در باره ذرات - پروژه وب جهان گستر(World Wide Web) را به اطلاع عموم رساند. وب توسط دانشمندی انگلیسی به نام تیم برنرز لی(به انگلیسی: Sir Tim Berners-Lee) در سال ۱۹۸۹ اختراع شد. یکی از مرورگرهای وب محبوب اولیه ViolaWWW بود که از روی هایپرکارت الگوبرداری شده بود و از سامانه پنجره ایکس(به انگلیسی: X Window System) استفاده میکرد. سرانجام این مرورگر جای خود را در محبوبیت به مرورگرموزاییک (به انگلیسی: Mosaic) داد. در سال ۱۹۹۳ مرکزملی کاربردهای ابررایانش امریکا (به انگلیسی: National Center for Supercomputing Applications) دردانشگاه ایلینوی اولین نسخه از موزاییک را منتشر کرد و تا اواخر سال ۱۹۹۴ علاقه عمومی به اینترنتی که پیش از این آموزشی و تخصصی بود، گسترش فراوانی یافته بود. در سال ۱۹۹۶ استفاده از واژه اینترنت معمول شد و مجازا برای اشاره به وب هم استفاده شد. در همین هنگام، در گذر این دهه، اینترنت بسیاری از شبکههای رایانهای عمومی از پیش موجود را در خود جا داد (اگر چه برخی مثل FidoNet همپنان جداماندند). آنچنانکه تخمین زده شدهاست، در دهه ۹۰ در هرسال اینترنت رشدی صددرصدی نسبت به سال قبل خود داشتهاست و در سالهای ۱۹۹۶و۱۹۹۷ نیز دورههای کوتاهی از رشد انفجاری داشتهاست. این میزان رشد به خصوصیت عدم کنترل مرکزی اینترنت که امکان رشد اندامی شبکه را فراهم میسازد نسبت دادهاند و همچنین به ماهیت بازوغیراختصاصی پروتکلهای اینترنت که امکان برقراری سازگاری و همکاری میان فروشندگان مختلف و عدم توانایی یک شرکت برای اعمال کنترل بیش از حد بر روی شبکه را سبب میشود.. جمعیت تخمینی کاربران اینترنت مطابق آمار سی ام ژوئیه ۲۰۰۹، ۱٫۶۷ میلیارد نفراست.
فناوری
پروتکلها
زیرساخت ارتباطی پیچیدهٔ اینترنت، از اجزای سختافزاری به همراه سامانهای از لایههای نرمافزاری که جنبههای مختلفی از معماری آن را کنترل میکنند تشکیل شدهاست. از آنجا که سختافزار اینترنت را غالباً میتوان برای پشتیبانی از هر سامانه نرمافزاری دیگری استفاده کرد، اینترنت ویژگیهایش را مرهون طراحی معماری نرمافزار و پروسه استاندارد سازی قوی این معماری است که زیربنای مقیاسپذیری و موفقیت آن را میسازد. مسئولیت طراحی معماری سامانههای نرمافزاری اینترنت بر عهده گروه ویژه مهندسی اینترنت(IETF) گذارده شدهاست. IETF گروههای کاری استانداردگذاری را در ارتباط باجنبههای مختلف معماری اینترنت مدیریت میکند که به روی هر فردی باز هستند. بحثهای حاصل و استانداردهای نهایی در قالب اسنادی به نام درخواست توضیح(RFC) (به انگلیسی: Request for Comments) منتشر میشوند که به رایگان در وبگاه IETF فابل دسترسی هستند. روشهای اصلی شبکه بندی که اینترنت را راه میاندازند درRFCهایی میآیند که به طور ویژهای متمایز شده اندواستانداردهای اینترنت را تشکیل میدهند. سایر اسناد ضعیف تر اسناد اطلاع رسانی، آزمایشی و تاریخی هستند و یا اسنادی اند که بهترین شیوههای رایج در پیادهسازی فناوریهای اینترنت را بیان میکنند.
استانداردهای اینترنت چارچوبی را مشخص میکنند که به نام بسته پروتکل اینترنت شناخته میشود. این بسته یک مدل معماری است که روشهارا به سامانه لایه بندی شدهای از پروتکلها تقسیم میکند.(RFC 1122, RFC 1123) هرلایه با محیطی متناظر است که سرویسهایی که ارائه میدهد در آن محیط یا حوزه عمل میکنند. بالاترین لایه، لایه کاربرد (به انگلیسی: Application Layer)، فضایی است برای شیوههای شبکه بندی مخصوص برنامههای کاربردی که مورد استفاده نرمافزارهای کاربردی قرار میگیرد، به عنوان مثال یک مرورگروب. در زیر این لایه لایه انتقال (به انگلیسی: Transport Layer) قرار دارد که برنامههای کاربردی را در " میزبانهای متفاوت" از طریق شبکه با شیوههای مناسب مبادله داده به یکدیگر مرتبط میسازد (به عنوان مثال مدل کارخواه-کارساز). در زیر این لایهها فناوریهای شبکه بندی اساسی در قالب دو لایه قراردارند. لایه اینترنت از طریق نشانی پروتکل اینترنت(آدرس IP) این قابلیت را به رایانهها میدهد که یکدیگر را شناسایی کنند و مکان یکدیگر را بیایند و به آنها اجازه میدهد که از طریق شبکههای ترانزیت میانی به هم متصل شوند. درآخر زیر همه لایهها یک لایه نرمافزاری به نام لایه پیوند قرارمی گیرد که اتصال بین میزبانهایی که در یک شبکه محلی قرار دارند ویا از طریق اتصال شماره گیری(Dial-up Connection) را بوجود میآورد. این مدل که به نام مجموعه پروتکل اینترنت خوانده میشود به گونهای طراحی شدهاست که از سختافزاری که بر روی آن کار میکند مستقل باشد و به جزئیات سختافزاری نمیپردازد. مدلهای دیگری نیز علاوه بر این مدل بوجود آمدند (مثل مدل مرجع OSI) که اگرچه شباهتهای زیادی با هم دارند، اما نه از لحاظ جزئیات توصیفی و نه از نظر پیادهسازی با هم سازگار نیستند.
برجستهترین جزء مدل اینترنت پروتکل اینترنت(IP) است که یک سیستم آدرس دهی (آدرسهای IP) برای رایانههای متصل به اینترنت را فراهم میآورد. IP نسخه ۴، نسخه ابتدایی آن بود که در نسل اول اینترنت امروزی بکار گرفته شد و هنوز هم کاربرد عمده دارد. این نسخه به گونهای طراحی شده بود که ۴٫۳~ میلیارد (۱۰۹) میزبان اینترنت را آدرس دهی کند. اما رشد انفجاری ایترنت منجر به اتمام آدرسهای IP شد و گمان میرود که تقریباً در ۲۰۱۱ به مرحله پایانی اش برسد. در اواسط دهه ۹۰ نسخه جدید این پروتکل، ipv6 با قابلیت آدرس دهی بسیار بیشتر و مسیر یابی کارآمد تر ترافیک اینترنت بوجود آمد. این نسخه هم اکنون در مرحله بکارگیری تجاری در سراسر دنیا به سر میبرد و دفاتر ثبت منطقهای اینترنت (RIR) (به انگلیسی: Regional Internet Registry) به تمام مدیران منابع اصرار میکنند که برای پذیرش نسخه جدید و تغییر، برنامه ریزی کنند..
IPv۶ با IPv۴ همکنشپذیر (Interoperable) نیست و در واقع نسخهای موازی از اینترنت ایجاد میکند که در دسترس نرمافزارهای سازگار با IPv۴ نمیباشد. این بدین معنی است که ارتقای نرمافزار و یا استفاده از امکانات ترجمه برای همه دستگاههای شبکه که بخواهند بر روی اینترنت IPv۶ ارتباط برقرار کنند، امری ضروری است. اکثر سیستم عاملهای مدرن امروزی به گونهای تغییر داده شدهاند که از هر دو نسخه IP پشتیبانی کنند، اما زیرساختهای شبکه هنوز از این قافله عقب هستند.
ساختار
ساختار اینترنت و خصوصیات کاربرد آن به گستردگی مورد مطالعه قرارگرفتهاست. این مشخص شدهاست که ساختار مسیردهی پروتکل اینترنت(IP) و پیوندهای ابرمتن وب جهان گستر، هردو شبکههای مقیاس-آزاد هستند. شبیه به شیوه ارائه دهندگان تجاری اینترنت(ISP) که از طریق نقاط تبادل اینترنت(IXP) (به انگلیسی: Internet Exchange Point) به هم وصل میشوند، شبکههای پژوهشی نیز تمایل دارند که در شکل زیرشبکههای بزرگی مانند GEANT، گلوریاد، Internet۲ و JANET (شبکه آکادمی علوم و تحقیقات بریتانیا)، به هم متصل شوند. این زیر شبکهها به نوبه خود پیرامون شبکههای کوچکتری پدید آمدهاند.
بسیاری از دانشمندان علوم رایانه اینترنت را نمونه برجستهای از یک سیستم بزرگ بسیار مهندسی شده و هنوز بسیار پیچیده توصیف میکنند. اینترنت به شدت ناهمگن است. مثلاً نرخهای انتفال داده و ویژگیهای فیزیکی اتصالات بسیار تغییر میکند. اصول مسیریابی و آدرس دهی ترافیک در اینترنت به خاستگاه آن در سال ۱۹۶۰ بر میگردد که اتدازه و محبوبیت آینده اینترنت قابل پیش بینی نبود، از این رو امکان ایجاد ساختارهای دیگر در دست بررسی است.
حاکمیت
اینترنت یک شبکه جهانی توزیع شدهاست که شبکههای خودمختار به انتخاب خود به آن پیوستهاند و بدون هیچ بدنهٔ مرکزی فرماندهی کار میکند. اما برای حفظ همکنشپذیری آن جنبههای فنی و سیاستهای زیر ساخت پایهٔ آن و همچنین فضاهای نام اصلی آن توسط بنگاه اینترنتی نامها و شمارههای تخصیص داده شده(به انگلیسی: Internet Corporation for Assigned Names and Numbers) (ICANN) اداره میشوند که مقر اصلی آن درمارینا دل ری، کالیفرنیا قرار دارد. ICANN مرجعی است که به هماهنگ سازی تخصیص شناسههای یکتا برای استفاده در اینترنت میپردازد. این شناسهها شامل نامهای دامنه، نشانیهای IP، شماره پورتهای برنامهها در لایه انتقال و بسیاری از پارامترهای دیگر میشود. فضاهای نام یکتای جهانی که در آن نامها و شمارهها به صورتی تخصیص داده میشوند که مقادیر یکتا باشند، برای دسترسی جهانی به اینترنت ضروری هستند. ICANN توسط یک هیات مدیره بینالمللی که از بین انجمنهای فنی، آکادمیک و سایر انجمنهای غبر تجاری دیگراینترنت انتخاب میشود. دولت امریکا همچنان نقش اولیه را در تایید تغییرات در حوزه ریشه سامانه نام دامنه (به انگلیسی: DNS root zone) که قلب سامانه نام دامنه(DNS) را تشکیل میدهد. نقش ICANN در هماهنگی تخصیص شناسههای یکتا، آن را به عنوان تنها پیکره هماهنگ سازی در شبکه جهانی اینترنت متمایز میسازد. در ۱۶ نوامبر ۲۰۰۵ نشست جهانی در باره جامعه اطلاعاتی که در تونس برگزار شد انجمن حاکمیت اینترنت(IGF) را تاسیس کردند تا به مسایل مرتبط با اینترنت بپردازد.
کاربردهای امروزی
اینترنت انعطافپذیری بیشتری را در مورد ساعتهای کاری و موقعیت جغرافیایی فراهم میسازد بویژه با گسترش اتصالهای پرسرعت و نرمافزارهای کاربردی وب. امروزه اینترنت تقریباً از همه جا و به طرق مختلفی قابل دسترسی است، بویژه از طریق دستگاههای متحرک اینترنتی (Mobile Internet Device)، تلفن همراه، جعبههای بازی دستی(Handheld Game Console) و مسیریابهای سلولی(Cellular Routers) که به کاربران اجازه میدهد که هرکجا شبکههای بی سیم وجود دارد به اینترنت متصل شوند. با وجود محدودیت اندازه صفحه کوچک دستگاههای جیبی، خدمات اینترنت مانند وب و پست الکترونیک قابل استفادهاند. اینترنت همچنین بازار بزرگی برای شرکتها شدهاست. برخی از بزرگترین شرکتهای دنیا با بهرهگیری از ماهیت کم هزینه تبلیغات و دادوستد اینترنتی (که به دادوستدالکترونیک(E-Commerce) مشهور است) بزرگ شدهاند. این سریعترین راه برای انتشار همزمان اطلاعات بین افراد متعدد است. اینترنت متعاقباً راه و رسم خریدکردن را نیز متحول ساختهاست. به عنوان مثال یک فرد میتوانند کالایی مانند یک لوح فشرده(CD) را به صورت برخط(Online) سفارش داده و ظرف چند روز آن را از طریق پست دریافت کند و یا مستقیماً آن را در رایانهاش بارگیری(Download) نماید. اینترنت همچنین امکانات بزرگی برای بازاریابی شخصی (Personalized Marketing) به ارمغان میآورد و بیشتر از هر رسانه تبلیغاتی دیگری به یک شرکت امکان تبلیغ خصوصی محصول برای یک فرد و یا گروهی از افراد را میدهد. از نمونههای بازایابی شخصی میتوان به اجتماعات برخطی چون Facebook، Orkut، ،Twitter، Friendster، Myspace و مشابه آنها اشاره کرد که هزاران کاربر به عضویت آنها در میآیند تا خود را تبلیغ کنند و به صورت برخط دوست بیابند. بسیاری از آنها نوجوانان و جوانان بین ۱۳ تا ۲۵ سال هستند. وقتی که آنها خود را تبلیغ میکنند، علایق و سرگرمیهای خود را نیز تبلیغ مینمایند و شرکتهای بازاریابی برخط(Online Marketing) نیز از آن سود میجویند تا به اطلاعاتی در مورد اینکه هریک از این کاربران معمولاً جه کالاهایی را به صورت بر خط میخرند، دست یابند و محصولات شرکت خود را برای کاربران مورد نظرشان تبلیغ کنند.
به اشتراک گذاری آنی و کم هزینه ایدهها، دانش و مهارتها، با کمک نرمافزارهای تشریک مساعی (Collaborative Software) کارهای مشارکتی را بسیار آسانتر نمودهاست. گروهها نه تنها میتوانند به ارزانی ارتباط برقرار کنند و ایدهها را به اشتراک بگذارند، بلکه در وهله اول به دلیل دسترسی بسیار گسترده اینترنت تشکیل گروهها آسانتر میشود. مثالی از این موضوع، جنبش نرمافزار آزاد است که محصولاتی چون لینوکس، فایرفاکس موزیلا و اپنآفیس بوجود آورد. "گپ" اینترنتی چه به شکل اتاقهای گپ IRC و چه به شکل پیام رسانی فوری (Instant Messaging) به همکاران اجازه میدهد که به راحتی ضمن کارکردن پشت رایانه هایشان با یکدیگر در تماس باشند. پیامها حتی راحت تر و سریعتر از سیستم پست الکترونیکی مبادله میشوند. این سیستمها میتوانند به گونهای توسعه یابند که امکان مبادله فایل و یا تماس تصویری را نیز به کاربران ارائه دهند.(مانند Yahoo Messenger)
سیستمهای کنترل نسخه (Version Control) به گروههای همکاری کننده اجازه میدهد که بر روی اسناد اشتراکی کار کنند، بدون اینکه تصادفاً کار یکدیگر را رونویسی کنند و یا منتظر رسیدن اسناد به دستشان باشند تا بتوانند کار خود را بر روی اسناد انجام دهند. تیمهای تجاری و پرژهای میتوانند تقویمها را نیز در کنار اسناد و اطلاعات به اشتراک بگدارند. چنین هماهنگیهایی در طیف وسیعی از موضوعات مانند پژوهشهای علمی، تولید نرمافزار، برنامه ریزی کنفرانس وفعالیتهای سیاسی صورت میگیرد. همکاریهای سیاسی و اجتماعی با گسترش دسترسی به اینترنت و افزایش سوادرایانهای افزایش مییابد. از رویدادهای فلش ماب در اوایل ۲۰۰۰ تا استفاده از شبکههای اجتماعی در اعتراضات به انتخابات ۲۰۰۹ در ایران. اینترنت به افراد این امکان را میدهد که به طرز بسیار موثر تری از هرروش دیگری با هم کار کنند.
اینترنت امکان دسترسی از راه دور به رایانههای دیگر و انبارههای اطلاعات در هرجای دنیا که باشندرا به کاربران رایانه میدهد. آنها میتوانند برای این کار، در صورت نیاز، از فناوریهای امنیتی، رمزنگاری و احراز هویت نیز استفاده کنند. مثلاً یک حسابدار که در منزل خود نشستهاست میتواند حسابرسی دفاتر شرکتی را که در کشور دیگری قرار دارد، بر روی سروری که در کشور سومی قرار گرفته و توسط متخصصینی در کشور چهارم نگهداری میشود، انجام دهد ویا یک کارمند اداره میتواند در هر جای دنیا که باشدمی تواند یک نشست میزکاردور (Remote Desktop) رااز طریق اینترنت و یک شبکه خصوصی مجازی (VPN) ایمن به رایانهاش در اداره باز کند.
خدمات
اطلاعات
بسیاری از افراد واژههای "اینترنت" و "وب جهان گستر"(یابه صورت کوتاه "وب") را به جای هم بکار میبرند، حال آنکه این دو واژه معناهای متفاوتی دارند. وب جهان گستر مجموعهای جهانی از اسناد و تصاویر و سایر منابعی است که به وسیله ابرپیوندها با یکدیگر ارتباط منطقی دارند و با استفاده از شناسههای منبع یکنواخت (به انگلیسی: Uniform Resource Identifier) ویا به اختصار URI مورد مراجعه قرار میگیرند. URIها به ارائه دهندگان اجازه میدهد که سرویسها و مشتریان را به صورت سمبولیک مشخص نمایند. تا مکان یابی و آدرس دهی وب سرورها، سرورهای پرونده و سایر پایگاه دادههایی که اسناد را ذخیره میکنند و همچنین عرضه دسترسی به منابع از طریق پروتکل HTTP، اصلیترین پروتکل حامل وب، را ممکن سازند.HTTP تنها یک از صدها پروتکلی است که روی وب استفاده میشود. وب سرویسها نیز میتوانند از این پروتکل برای ارتباط استفاده کنند.
مرورگرهای وب جهان گستر مثل اینترنت اکسپلورر مایکروسافت، فایرفاکس، اپرا، سافاری اپل، و گوگل کروم با استفاده از ابرپیوندهای تعبیه شده درون صفحات، به کاربران امکان میدهند از یک صفحه وب به صفحه دیگرگردش کنند. این اسناد ممکن است ترکیبی از دادههای رایانهای شامل گرافیک، صدا، متن ساده، ویدیو، چندرسانهای و محتوای تعاملی شامل بازی، برنامههای اداری و نمایشهای علمی باشد. از راه پژوهشهای اینترنتی برپایه جستجوی کلیدواژهها با استفاده از موتورهای جستجوی وب مثل یاهو و گوگل کاربران میتوانند به سرعت و سادگی به حجم گسترده و متنوع اطلاعات بر خط دسترسی داشته باشند. در مقایسه با دانشنامههای چاپی و کتابخانههای سنتی، وب جهان گستر امکان عدم تمرکز اطلاعات را فراهم ساختهاست. وب همچنین به افراد و سازمانها توانایی انتشار ایدهها و افکارشان را برای شماربسیاری از مخاطبین بالقوه با هزینه وتاخیر زمانی کمینه میدهد. انتشار یک صفحه وب، وب نوشت، یا ساخت یک وبگاه هزینه اولیه بسیار پایینی دارد و سرویسهای رایگان نیز وجود دارند، هرچندکه انتشار و نگهداری وبگاههای بزرگ و حرفهای بااطلاعات جذاب، متنوع و به روز هنوزمشکل و پرهزینهاست. بسیاری از افراد، شرکتها و گروهها از وب نوشت هاکه به گستردگی برای یادداشتهای روزانه به روزشدنی به کارمی روند نیز استفاده میکنند. برخی از سازمانهای تجاری کارکنان خود کارکنان خود را تشویق میکنند که در حوزه تخصص خود توصیههایی را در وبگاه ارائه دهند، به این امید که با دانش تخصصی و اطلاعات رایگان، بازدیدکنندگان را تحت تاثیر قراردهند وبه شرکت خود جذب کنند. نمونه این روش در مایکروسافت دیده میشود که نرمافزارنویسان این شرکت، وب نوشتهای شخصی خود را منتشر میکنند تا علاقه عمومی را نسبت به کارشان بینگیزند.
تبلیغ برخط در صفحات وب پربیننده میتواند سود زیادی در برداشته باشد. دادوستدالکترونیک یا فروش محصولات مستقیماً از طریق وب نیز به رشد خود ادامه میدهد. در روزهای نخست وب، وبگاهها تنها مجموعهای از پروندههای متنی اچ تی امال(HTML) کامل شده و منزوی بود که بر روی وب سرورها ذخیره میشدند. مشارکت کنندگان سیستم پایگاه دادههای اصلی را توسط صفحات ویرایشگری که به همین منظور ساخته شدهاند با محتوای مورد نظر پر میکنند، حال آنکه بازدیدکنندگان تنها شکل نهایی HTML صفحات را میبینند. پروسه گرفتن محتوای جدید و دردسترس قرار دادن آن برای بازدیدکنندگان مورد نظر ممکن است شامل سیستمهای سردبیری، تاییدی و امنیتی باشد.
ارتباط
پست الکترونیک یکی از سرویسهای ارتباطی مهم در دسترس بر روی اینترنت است. مفهوم فرستادن پیامهای متنی الکترونیکی که به گونهای به نامهها و یادداشتهای پستی میماند، قدمتی بیش از اینترنت دارد. امروزه یکی از مسایلی که میتواند حائز اهمیت باشد درک تفاوت بین پست الکترونیک اینترنتی و سامانههای پست الکترونیکی داخلی است. یک نامه الکترونیکی اینترنتی ممکن است از شبکههای مختلفی عبورکند و بر روی ماشینهای مختلفی به صورت رمزنشده دخیره شود که از کنترل فرستنده و گیرنده نامه کاملاً خارج اند. دراین مدت کاملاً امکانپذیر است که این نامه توسط اشخاص ثالثی محتوای آن خوانده و یا حتی دستکاری شود. سامانههای پست الکترونیکی کاملاً داخلی که در آن نامه هاهرگزازمحدوده شبکه داخلی سازمان خارج نمیشوند بسیار ایمن تر هستند، هر چند که در هرسازمانی کارکنان فناوری اطلاعات و یا پرسنل دیگری هستند که شغلشان در ارتباط با نظارت و گاهی دسترسی به نامههای دیگران است. تصاویر و اسناد و سایر پروندهها نیز میتواند به صورت پیوست نامه الکترونیک فرستاده شود. نامههای الکترونیکی را میتوان به چندین نشانی پست الکترونیکی رونوشت نمود.
تلفن اینترنتی نیز سرویس ارتباطی دیگری است که با پیدایش اینترنت امکانپذیر شد. صدا روی پروتکل اینترنت(VoIP) نام پروتکلی است که زیر بنای همه ارتباطات تلفنی اینترنتی است. ایده آن در اوایل دهه ۱۹۹۰ همراه با برنامههای واکی-تاکی گونه برای رایانههای شخصی ظهور کرد. در سالهای اخیر سیستمهای VoIP سادگی استفاده و راحتی تلفنهای معمولی را پیدا کردهاند. فایده این کار ان است که چون ترافیک صدارااینترنت حمل میکند، VoIP هزینه بسیار کمی دارد و حتی میتواند رایگان باشد. به ویژه برای آن دسته از اتصالات اینترنت که همیشه برقرارند (مانند مودم کابلی یا ADSL) گزینه مناسبی است. VoIP در حال پخته شدن و تبدیل شدن به رقیب جایگزینی برای سیستمهای تلفن سنتی است. همکنشپذیری بین عرضه کنندگان مختلف بهبود یافته و امکان برقراری و یا در یافت تماس با تلفنهای معمولی نیز به وجود آمدهاست. کارتهای شبکه ساده و ارزان VoIP نیز در دسترس هستند که نیاز به وجود رایانه برای استفاده از VoIPرا ازبین میبرند.
کیفیت صدا از یک تماس تا تماس دیگر تغییر میکند، اما غالباً کیفیت برابر یا بهتر از تلفن معمولی است. مشکلاتی که برای VoIP باقی میمانند، گرفتن شماره تلفنهای اظطراری و قابلیت اطمینان است. در حال حاضر تعدادی از ازائه دهندگان VoIP سرویس شمارههای اظطراری را ارائه میدهند اما هنوز به صورت جهانی در دسترس نیست. تلفنهای سنتی انرژی را از خط تلفن میگیرند و در صورت قطع برق میتوانند همچنان عمل کنند. برای VoIP این امکان بدون استفاده از منبع تغذیه پشتیبان برای تغذیه تجهیزات تلفن و دسترسی به اینترنت، وجود ندارد. VoIP همچنین محبوبیت روزافزونی بین علاقهمندان بازیهای کامپیوتری به عنوان شکلی از ارتباط بین بازیکنان مییابد. محبوبترین برنامههای VoIP برای بازیها عبارتند از: Ventrilo و TeamSpeak. Wii، پلیاستیشن ۳ و ایکسباکس ۳۶۰ نیز ویژگی گفتگو با VoIP را عرضه میکنند.
انتقال داده
اشتراک فایل نمونهای از انتقال مقادیر بزرگ داده از طریق اینترنت است. یک فایل رایانهای را میتوان به صورت پیوست نامه الکترونیکی به دوستان و همکاران فرستاد. میتوان آن را دریک وبگاه ویا اف تی پی سرور(FTP Server) بارگذاری (Upload) نمودتا به آسانی توسط دیگران بارگیری(Download) شود. میتوان آن را در یک "مکان مشترک" در یک کارسازپرونده(File Server) قرار دارد تا به سرعت و آسانی در اختیار همکاران قرار گیرد. بار سنگین بارگیریهای شمار زیاد کاربران را میتوان با به کاربردن کارساز(سرور)های آینه و شبکههای تظیر-به-نظیر کاهش داد. دسترسی به فایل را میتوان از طریق تصدیق هویت کاربر کنترل کرد. انتقال فایل بر روی اینترنت را نیز میتوان با رمزگذاری در پوشش ابهام قرار داد. دستیابی به فایل ممکن است در گرو پرداخت مبلغی باشد که میتواند توسط کارت اعتباری پرداخت شود. مبدا و اعتبار فایل از طریق امضای دیجیتال و یا MD۵ و سایر روشهای هضم پیام قابل بررسی است. این ویژگیهای ساده اینترنت در مقیاس جهانی، به تدریج تولید، فروش و توزیع هر چیزی را که قابل ارائه به صورت فایل باشد را تغییر میدهد که این چیزها شامل همه انتشارات چاپی، محصولات نرمافزاری، اخبار، موسیقی، فیلم، ویدیو، عکاسی، گرافیک و آثار هنری دیگر میباشد.
رسانه جریانی(Streaming Media) همان عملی است که بسیاری از پخش کنندگان صدا و سیما، به واسطه آن، برنامههای خودرا از طریق اینترنت به صورت زنده پخش میکنند.(به عنوان مثال BBC) آنها امکان دیدن برنامههای غیر همزمان ضبط شده را نیز به کاربران میدهند. گروهی از آنها صرفاً برنامههای خود را از طریق اینترنت پخش میکنند. این بدین معنی است که یک رایانه میتواند به این رسانههای برخط، شبیه به همان صورتی که پیش از این تنها از طریق گیرندههای رادیو و تلویزیون امکانپذیر بود دست یابد. پادکستها گونه دیگری از پخش اینترنتی هستند که فایل صوتی توسط رایانه بارگیری میشود و سپس به یک پخش کننده رسانه قابل حمل منتقل میشود تا بتوان بعداً در حرکت بدان گوش داد.
وب بین (Webcam)ها را نیز میتوان گونه کم هزینه تر رسانه جریانی دانست. اگرچه برخی از وب بینها تصویر با ترخ فریم کامل میدهند اما غالباً تصویر کوچک است و به کندی به روز میشود. کاربران اینترنت میتوانند حیواناتی را دریک جنگل افریقایا گزارش تصویری از ترافیک در یک میدان را به صورت زنده و بی درنگ تماشا کنند و یا بر روی داراییهای خود از راه دور نیز نظارت بصری داشته باشند. محبوبیت اتاقهای گپ ویدیویی ویا کنفرانس تصویری نیز با افزایش تعداد کاربرانی که وب بین دارند، افزایش مییابد. یوتیوب در تاریخ ۱۵ فوریه ۲۰۰۵ ایجاد شد و اکنون وبگاه پیشرو در زمینه ویدیوهای جریانی است. یوتیوب از یک پخش کننده وب برپایه فلش برای پخش ویدیو استفاده میکند. کاربران ثبت نام کرده میتوانند مقدار نامحدودی ویدیو را در این وبگاه بارگذاری کنند و پروفایل شخصی بسازند. یوتیوب ادعا میکند که کاربرانش روزانه صدها میلیون ویدیو را بارگذاری و یا تماشا میکنند.
دسترسی
رایجترین زبان برای ارتباطات در اینترنت زبان انگلیسی است. این ممکن است ناشی از زادگاه اینترنت و همچنین نقش زبان انگلیسی به عنوان زبان بینالمللی باشد. ناتوانی رایانههای اولیه - که اغلب در امریکا ساخته میشدند - در پردازش نویسه (کاراکتر)های به جز گونه انگلیسی الفبای لاتین نیز ممکن است با این موضوع مرتبط باشد. پس از انگلیسی(۲۸٪ از بازدیدکنندگان وب)، پرخواهان ترین زبانها در وب جهان گستر عبارنتد از: چینی ۲۳٪، اسپانیایی ۸٪، ژاپنی ۵٪، پرتغالی و آلمانی (هر کدام ۴٪)، عربی و فرانسه و روسی (هرکدام ۳٪)و کرهای ۳٪. بر پایه منطقه، ۴۲٪ از کاربران اینترنت در آسیا، ۲۴٪ در اروپا،۱۴٪ در امریکای شمالی، ۱۰٪ در امریکای لاتین و کارائیب، ۵٪ در آفریقا، ۳٪ در خاورمیانه و ۱٪ در استرالیا/اقیانوسیه. فناوریهای اینترنت در سالهای اخیر بویژه در زمینه استفاده از یونیکد، به حد کافی گسترش یافتهاند و امکانات مناسبی برای ارتباط در بسیاری از زبانهای دنیا در دسترس میباشد، اما همچنان مسائلی مانند موجیباکه (نمایش نادرست برخی نویسههای یک زبان) باقی هستند.
روشهای معمول دسترسی به اینترنت در خانهها شامل دسترسی با شمارهگیری (dial-up)، خطوط زمینی پهن باند(از طریق کابل کواکسیال، فیبر نوری و یا سیم مسی)، وای-فای (Wi-Fi)، ماهواره و فناوری ۳G تلفن همراه میباشد. اماکن عمومی که میتوان در آنها از اینترنت استفاده نمود شامل کتابخانهها و کافینتها که در آنها رایانههایی با اتصال به اینترنت مهیاست. همچنین کیوسکهای اینترنت در بسیاری از اماکن عمومی مانند سالن فرودگاه و کافی شاپها موجودند که بعضی از آنها برای استفادههای کوتاه و سرپایی در نظرگرفته شدهاند. واژههای گوناگونی برای نامیدن این ترمینالها به کار میرودف از جمله: کیوسک عمومی اینترنت و یا پایانه دسترسی عمومی.
این ترمینالها به گستردگی برای کاربردهایی چون رزرو بلیط، سپرده گذاری بانکی، پرداخت برخط مورد استفاده قرار میگیرد. وای-فای(Wi-Fi) دسترسی بی سیم به شبکههای رایانهای و در نتیجه به اینترنت را فراهم میکند. نقاط داغ (Hotspots) به مکانهایی گفته میشود که دسترسی به اینترنت بی سیم در آن نقاط امکانپذیر است و کاربران میتوانند با لپ تاپ و یا دستیار دیجیتال شخصی(PDA) خود به اینترنت متصل شوند. گاهی این سرویسهای بیسیم برای عموم و یا حداقل برای مشتریان رایگان ارائه میشود. یک نقطه داغ محدوده مکانی مشخصی را شامل میشود مثل محوطه یک دانشگاه، پارک و یا حتی سراسر نقاط یک شهر. سرویسهای تجاری Wi-Fi که کل شهر را پوشش میدهند هم اکنون در شهرهای لندن، وین، تورنتو، سانفرانسیسکو، فیلادلفیا، شیکاگو و پیتسبورگ ارائه میشوند. در این شهرها مشترکین میتوانند در هر نقطهای از شهر به شبکه وای-فای متصل شوند. علاوه بر وای-فای، آزمایشهایی نیز در زمینه شبکههای بی سیم متحرک اختصاصی مانن ریکوچت و سرویسهای دادهای پرسرعت بر روی تلفنهای همراه، و شبکههای بی سیم ثابت انجام شدهاست. تلفنهای همراه پیشرفته مثل تلفنهای همراه هوشمند (Smartphone) همگی با قابلیت اتصال به اینترنت از طریق شبکه تلفن عرضه میشوند. مرورگرهای وب مثل اپرا معمولاً نسخهای برای این دستگاههای جیبی پیشرفته دارند.
آثار اجتماعی
اینترنت به دلیل خصوصیاتی چون قابلیت استفاده و دسترسی گسترده آن، اشکال کاملاً جدیدی از تعاملات، فعالیتها، و سازماندهیهای اجتماعی را پدید آوردهاست. وبگاههای شبکههای اجتماعی چون فیسبوک، توییتر و مایاسپیس روشهای جدیدی برای معاشرت و تعامل خلق کردهاند. کاربران این سایتها قادرند اطلاعات گوناگونی به صفحات خود بیفزایند، علایق مشترکی را دنبال کنند و به دیگران مرتبط شوند. وبگاههایی مثل لینکداین به پرورش ارتباطات حرفهای و تجاری میپردازد. یوتیوب و فلیکر هم در زمینه ویدیوها و تصاویر کاربران تخصص دارند.
دهه اول سده بیست و یکم، شاهد پرورش اولین نسلی است که در شرایطی رندگی میکنند که اینترنت به گستردگی در دسترس میباشد. این مسایل و نگرانیهایی را به دنبال دارد از جمله مسئله حفظ حریم خصوصی و هویت و توزیع غیر مجاز مواردی که تحت قانون کپی رایت محافظت میشوند. این بومیان دیجیتال با انبوهی از مسایلی مواجه میشوند که در مورد نسلهای قبلی وجود نداشت.
اینترنت کاربرد جدیدی به عنوان بک ابزار سیاسی یافتهاست مه این منجر به سانسوراینترنت میشود. نمونه استفاده سیاسی از اینترنت، مبارزه انتخاباتی هاوارد دین در سال ۲۰۰۴ در ایالات متحده بود که به دلیل جمعآوری کمکهای مردمی از طریق اینترنت شایان توجه بود. بسیاری از گروههای سیاسی از اینترنت برای سازماندهی در انجام ماموریت خود استفاده میکنند. برخی از دولتها مانند ایران، کره شمالی، میانمار، چین وعربستان، آنچه را که مردم میتوانند از طرق اینترنت ببینند، به ویژه در مورد مسایل سیاسی و مذهبی محدود مینمایند. این کار از طریق نرمافزارهایی که دامنه و محتوا را فیلتر میکنند صورت میپذیرد. در نروژ، دانمارک، فنلاند و سوئد، ارائه دهندگان اصلی خدمات اینترنت به صورت داوطلبانه و احتمالاً برای اجتناب از قانون شدن فیلترینگ، قبول کردهاند که دسترسی به سایتهایی که توسط مقامات مسوول لیست شدهاست را محدود نمایند. اگرچه قرار بر این است که این آدرسهای ممنوع شده تنها شامل وبگاههای هرزه نگاری کودکان باشد، اما محتوای این لیست مخفی است.در بسیاری از کشورها مانند ایالات متحده امریکا، اگرپه قوانینی در ممنوعیت پخش موارد دربردارنده هرزه نگاری کودک تصویب نمودهاند اما استفاده از نرم افرارهای فیلترینگ را اجباری نکردهاند. نرمافزارهای تجاری و یا رایگان بسیاری تحت عنوان نرمافزار کنترل محتوا در دسترس هستند که کاربران از طریق آنها میتوانند وبگاههای مستهجن را در رایانه شخصی و یا شبکه محلی مسدود نمود تا از دسترسی کودکان به مواد هرزه نگاری و یا خشونت نگاری جلو گیری نمود.
اینترنت از آغاز پیدایش همواره وسیله مناسبی برای فعالیتهای تفریحی بودهاست. بسیاری از انجمنهای اینترنتی بخشهایی برای بازی و ویدیوهای خنده دار و کارتونهای کوتاه در قالب انیمیشنهای فلش(Flash) دارند. بیش از ۶ میلیون نفر در اینترنت از وب نوشتها و تختههای پیام برای برقراری ارتباط استفاده میکنند. صنایع هرزه نگاری و قمار از اینترنت سود میجویند تا وبگاههایی بسازند که منبع کلان تبلیغات برای سایر وبگاهها میباشند. اگرچه بسیاری از دولتها برای محدود سازی استفاده این دو صنعت ازاینترنت تلاش کردهاند اما در جلوگیری از گسترش محبوبیت آنها چندان موفق نبودهاند.
یکی از فعالیتهای تفریحی اصلی در اینترنت، بازیهای چند نفره است. این شکل تفریح اجتماعاتی را بوجود میآورد که در آن افراد از هر سن و نژادی از دنیای بازیهای چندنفره کامپیوتری لذت میبرند. اگرچه بازیهای برخط از سال ۱۹۷۰ وجود داشتهاند، اما گونه مدرن این بازیها با خدمات اشتراکی مانند گیماسپای و MPlayer آغاز شد. غیر مشترکین محدود به بازیهای خاص و یا زمان بازی خاص بودند. بسیاری از مردم از اینترنت برای دسترسی و بارگیری(download) موسیقی و فیلم و سایر آثار استفاده میکنند. این خدمات به هر دو صورت رایگان و پولی، با استفاده ازسرورهای مرکزی و یا فناوریهای نظیر-به-نظیر توزیع شده ارائه میشوند. برخی از این منابع توجه بیشتری نسبت به سایرین در زمینه حقوق مولفین اصلی نشان دادهاند.
بسیاری از مردم از اینترنت برای دسترسی به اخبار، پیش بینی آب وهوا، گزارشهای ورزشی و جستجوی مطالب در مورد علاقهمندیهای خود استفاده میکنند. آنها از گپ برخط، پیام رسان فوری و پست الکترونیک برای در تماس بودن با دوستان خود در سراسر دنیا و به شیوهای شبیه به دوست مکاتبهای که در قدیم رواج داشت، استفاده میکنند. اینترنت شاهد شمار رو به افزایش میزکارهای وب که در آن کاربران به فایلها و تنظیمات خود دسترسی پیدا میکنند، بودهاست."کمکاری سایبری" (Cyberslacking) محل اتلاف جدی منابع سازمانهاست. کارمندان انگلیسی به طور میانگین ۵۷٪ از وقت خود را به وب گردی در حین کار میپردازند..
ارتباط اينترنتي ظاهراً مجال و امكان بيشتري به سوءِ تعبير، ابهام و اشتباه و سوءِ استفاده مي دهد تا شكل هاي سنتي تر ارتباطات:
اين مسئله در بطن ماهيت ارتباط انساني نهفته است. ما تصور مي كنيم كه ارتباط انساني محصول ذهن است، اما پيكر ها هستند كه اين كار را انجام مي دهند: چهره ها تكان مي خورند، صداها به ارتعاش در مي آيند، پيكرها مي جنبند، دست ها ادا و اشاره مي كنند... در اينترنت ذهن حضور دارد اما بدن غايب است. گيرندگان پيام ها هيچ سرنخي براي درك و شناخت شخصيت و خلق و خوي فرستنده ندارند، و فقط مي توانند حدس بزنند كه چرا اين پيام فرستاده شده، معناي آن چيست و چه پاسخي بايد به آن داد. اعتماد عملا از صحنه خارج مي شود. اين كار مالامال از بيم و خطر است. (Locke 2000)
تاثیرات ذهنی
بر روی آثار اینترنت بر مغز انسان مطالعات زیادی انجام شدهاست. نیکلاس کار(به انگلیسی: Nicholas Carr) ادعا میکند که اینترنت تفکر عمیق را که عامل خلاقیت واقعی است کاهش میدهد. او همچنین میگوید که پیوندهای فرامتن و تحریک بیش از حد، به این معنی است که مغز باید بیشتر توجهش را بر روی تصمیمات کوتاه متمرکز کند. او همچنین بیان میکند که اینترنت مغز را غرق در اندیشه میکند که باعث آسیب رسیدن به حافظه بلند مدت میگردد. شمار فراوان محرکها در اینترنت منجر به بار شناختی(Cognitive Load) سنگینی برای مغز میشود که یادآوری هرچیزی را مشکل میسازد.
استیون پینکر (به انگلیسی: Steven Pinker)، روانشناس، نظری مخالف دارد. او به این نکته اشاره میکند که افراد بر روی آنچه انجام میدهند کنترل دارند وبنابراین این پژوهش و استدلال هرگز طبیعت انسان را در نظر نداشتهاست. او میگوید "تجربه ظرفیتهای پردازش اطلاعات مغز را عوض نمیکند" و ادعا میکند که اینترنت باعث باهوشتر شدن انسانها شدهاست.
نکات حقوقی و اخلاقی
هم اکنون نگرانی عمومی در مورد مطالب موجود در اینترنت وجود دارد. بعضی از جدال آمیزترین آنها تخلف در حق نشر، جعل هویت و مکالمه تنفر آمیز هستند که وجود دارند و قانونی کردن آنها مشکل است.
تاریخ اینترنت
اتحاد جماهیر شوروی آن زمان موشکی با نام «اسپونیک» (Spotnik) را به فضا میفرستد و نشان میدهد دارای قدرتی است که میتواند شبکههای ارتباطی آمریکا را توسط موشکهای بالستیک و دوربرد خود از بین ببرد. آمریکاییها در پاسخگویی به این اقدام روسها، موسسه پروژههای تحقیقی پیشرفته “ARPA” را بهوجود آوردند. هدف از تاسیس چنین موسسهای پژوهش و آزمایش برای پیدا کردن روشی بود که بتوان از طریق خطوط تلفنی، کامپیوترها را به هم مرتبط نمود. به طوری که چندین کاربر بتوانند از یک خط ارتباطی مشترک استفاده کنند. در اصل شبکهای بسازند که در آن دادهها به صورت اتوماتیک بین مبدا و مقصد حتی در صورت از بین رفتن بخشی از مسیرها جابهجا و منتقل شوند. در اصل هدف “ARPA” ایجاد یک شبکه اینترنتی نبود و فقط یک اقدام احتیاطی در مقابل حمله احتمالی موشکهای اتمی دوربرد بود. هر چند اکثر دانش امروزی ما درباره شبکه بهطور مستقیم از طرح آرپانت “ARPPA NET” گرفته شدهاست. شبکهای که همچون یک تار عنکبوت باشد و هر کامپیوتر ان از مسیرهای مختلف بتواند با همتایان خود ارتباط دااشته باشد واگر اگر یک یا چند کامپیوتر روی شبکه یا پیوند بین انها از کار بیفتادبقیه باز هم بتوانستند از مسیرهای تخریب نشده با هم ارتباط بر قرار کنند.
این ماجرا با وجودی که بخشی از حقایق بهوجود آمدن اینترنت را بیان میکند اما نمیتواند تمام واقعیات مربوط به آن را تشریح کند. باید بگوییم افراد مختلفی در تشکیل اینترنت سهم داشتهاند آقای “Paul Baran” یکی از مهمترین آنهاست. آقای باران که در دوران جنگ سرد زندگی میکرد میدانست که شبکه سراسری تلفن آمریکا توانایی مقابله با حمله اتمی شوروی سابق را ندارد. مثلاً اگر رییس جمهور وقت آمریکا حمله اتمی متقابل را دستور دهد، باید از یک شبکه تلفنی استفاده میکرد که قبلاً توسط روسها منهدم شده بود. در نتیجه طرح یک سیستم مقاوم در مقابل حمله اتمی روسها ریخته شد.آقای باران (Baran) تشکیل و تکامل اینترنت را به ساخت یک کلیسا تشبیه کرد و معتقد بود، طی سالهای اخیر هر کس سنگی به پایهها و سنگهای قبلی بنا اضافه میکند و انجام هر کاری وابسته به کارهای انجام شده قبلی است. بنابراین نمیتوان گفت، کدام بخش از کار مهمترین بخش کار بودهاست و در کل پیدایش اینترنت نتیجه کار و تلاش گروه کثیری از دانشمندان است. داستان پیدایش اینترنت با افسانه و واقعیت در هم آمیخته شدهاست.
در اوایل دهه ۶۰ میلادی آقای باران طی مقالاتی پایه کار اینترنت امروزی را ریخت. اطلاعات و دادهها به صورت قطعات و بستههای کوچکتری تقسیم و هر بسته با آدرسی که به آن اختصاص داده میشود به مقصد خاص خود فرستاده میشود. به این ترتیب بستهها مانند نامههای پستی میتوانند از هر مسیری به مقصد برسند. زیرا آنها شامل آدرس فرستنده و گیرنده هستند و در مقصد بستهها مجدداً یکپارچه میشوند و به صورت یک اطلاعات کامل درمیآیند.
آقای باران (Baran) طی مقالاتی اینچنینی ساختمان و ساختار اینترنت را پیشگویی کرد. او از کار سلولهای مغزی انسان به عنوان الگو استفاده کرد، او معتقد بود: وقتی سلولهای مغزی از بین بروند، شبکه عصبی از آنها دیگر استفاده نمیکند و مسیر دیگری را در مغز انتخاب میکند. از دیدگاه وی این امکان وجود دارد که شبکهای با تعداد زیادی اتصالات برای تکرار ایجاد شوند تا در صورت نابودی بخشی از آن، همچنان به صورت مجموعهای به هم پیوسته کار کند. تا نیمه دهه ۶۰ میلادی کسی به نظرات او توجهای نکرد. تا اینکه در سال ۱۹۶۵ نیروی هوایی آمریکا و«آزمایشگاههای بل» به نظرات او علاقهمند شدند و پنتاگون با سرمایهگذاری در طراحی و ساخت شبکهای براساس نظریات او موافقت کرد.
ولی آقای باران (Baran) بنابر دلایلی حاضر با همکاری با نیروی هوایی آمریکا نشد. در این میان دانشمندی با نام تیلور (Tailon) وارد موسسه آرپا (ARPA) شد. او مستقیماً به آقای هرتسفلد رییس موسسه پیشنهاد کرد: (ARPA) آرپا هزینه ایجاد یک شبکه آزمایشی کوچک با حداقل چهار گره را تامین کند که بودجه آن بالغ بر یک میلیون دلار میشد. با این پیشنهاد تیلور تجربهای را آغاز کرد که منجر به پیدایش اینترنت امروزی شد. او موفق شد در سال ۱۹۶۶، دو کامپیوتر را در شرق و غرب آمریکا به هم متصل کند. با این اتصال انقلابی در نحوه صدور اطلاعات در دنیای ارتباطات رخ داد که نتیجه آن را امروز همگی شاهد هستیم. این شبکه به بستههایی (packet) از دادهها که به وسیله کامپیوترهای مختلف ارسال میشدند اتکا داشت. پس از انکه ازمایشها سودمندی انرا مشخص کردند سایر بخشهای دولتی و دانشگاهها پژوهشی تمایل خود را به وصل شدن به ان اعلام کردند . ارتباطات الکترونیکی به صورت روشی موثر برای دانشمندان و دیگران به منظور استفاده مشترک از دادهها در امد. در همان زمان که ARPAnet در حال رشد بود تعدادی شبکه پوشش محلی (LAN) در نقاط مختلف آمریکا به وجود امد. مدیران LANها نیز به وصل کردن کامپیوترهای شبکههای خود به شبکههای بزرگتر اقدام کردند . پروتوکل اینترنت ARPAnet IP زبان استاندارد حکمفرما برای برقراری ارتباط کامپیوترهای شبکههای مختلف به یکدیگر شد.تاریخ تولد اینترنت به طور رسمی اول سپتامبر ۱۹۶۹ اعلام شدهاست. زیرا که اولین “IMP” در دانشگاه “UCLA” واقع در سانتاباربارا در این تاریخ بارگذاری شدهاست.
از اوایل دهه ۱۹۹۰ رشد استفاده از اینترنت به صورت تصاعدی افزایش یافت . یکی از علل چنین استقبالی ابزار جستجویی مانند Gopher و archie بودهاست اما اینها در سال ۱۹۹۱ تحت تاثیر word wide web قرار گرفتند که به وسیله CERN یا ازمایشگاه فیزیک هستهای اروپا ساخته شد . با ان که اینترنت از ابتدا طوری بود که مبادله اطلاعات برای تازه واردان بسیار ساده باشد. بزرگترین جهش در وب در سال ۱۹۹۳ با عرضه نرمافزار موزاییک mosaic که نخستین برنامه مرورگر وب گرافیکی بود به وجود امد. برنامه موزاییک محصول تلاش دانشجویان و استادان بخش "مرکز ملی کاربردهای ابر کامپیوتر " در دانشگاه ایلینویز آمریکا بود. برای نخستین بار موزاییک امکانات اشاره و کلیک (به وسیله موش) را فراهم کرد. کاربران میتوانستند صفحات وب (web page) یا مجموعهای از متن و گرافیک را کنار هم بگذارند تا هر کسی که میخواست انها را بتواند روی اینترنت ببیند. وقتی با موش روی کلمهها یا تصاویر خاصی که hyper link نامیده میشد کلیک میکردند برنامه موزاییک به طور خود کار یک صفحه دیگر باز میکرد که به کلمه یا تصویر خاص و کلیک شده اختصاص داشت. بهترین بخش این سیستم انجا بود که hyper linkها میتوانستند به صفحاتی روی همان کامپیوتر یا هر کامپیوتر دیگر اینترنت با خدمات وب اشاره کنند. صفحات وب هر روز متولد میشدند و مفهوم موج سواری یا surfing روی وب متولد شد. اواسط سال ۱۹۹۴ سه میلیون کامپیوتر به اینترنت وصل شده بود و در ان هنگام اجرای عملیات اهسته نشده بود. صفحات جدید وب که شامل همه چیز از اسناد دولتی تا مدارک شرکتها و مدلهای جدید لباس بود در سراسر دنیا چندین برابر شد . موزاییک و جانشینان ان مانند navigator محصول شرکت " نت اسکیپ " اینترنت را از قلمرو علمی به میان مردم اوردند. طبق اخرین امار ۵۱ درصد کاربران بعد از سال ۱۹۹۵ وارد این محیط شدهاند. میلیونها انسانی که از اینترنت استفاده میکنند نیازی ندارند که نکات فنی مانند TCP/IP را بدانند . امروزه شرکتهای خدمات دهنده اینترنت یا ISP این کار را به عهده دارند.رشد روز افزون ان و ساده تر شدن استفاده ان همچنان ادامه دارد . هر چه تعداد مردم بیشتری به اینترنت رجوع کنند تعداد شرکتهای سازنده برنامههای اینترنت بیشتر میشود.با انکه بعضی از عاشقان اینترنت ان را نوعی شیوه زندگی میدانند. در نظر بیشتر کاربران منبع سرگرمی اطلاعات است ولی بیشترین مصرف ان پست الکترونیکی یا همان email است که یکی از ابزارهای ارتباطی کار امد به شمار میرود. پیامها از کامپیوتری به کامپیوتر دیگر با سرعت پرواز میکنند و منتظر میمانند تا شخص فرصت خواندن انها را پیدا کند . وب امکانات خوبی برای کپی از نرمافزارهای مجاز از لحاظ کپی فراهم میسازد. وقتی که میبینیم که در مدت کوتاهی اینترنت به چنین رشدی نایل آمده است، مطمئناً دشوار خواهد بود که آینده او را پیش بینی کنیم. طبق نظر کارشناسان ماهانه ۱۰ درصد به تعداد کاربران اینترنت افزوده میشود ولی تعداد دقیق کاربران که روزانه از آن استفاده میکنند مشخص نیست. هرچند که پارهای از کارشناسان تعداد آنها را تا ۹۰۰ میلیون نفر حدس میزنند. تعداد رسمی کاربران اینترنتی را در سال ۲۰۰۰ کارشناسان ۵۰۰ میلیون نفر اعلام کرده بودند.
قطعاً در سالهای آینده تحولات شگرفی را در زمینه شبکههای اینترنتی شاهد خواهیم بود. بهوسیله اینترنت انسان به راههای جدیدی دست پیدا کرد. در کنار این شانس جدید توسط اینترنت، باید بگوییم خطراتی نیز در رابطه با سیاست و اقتصاد و علم به دنبال خواهد داشت. فرم امروزی اینترنت مدیون همکاری تمام کاربران اینترنت در سرتاسر گیتی است که با این تصور که اطلاعات موجود در سطح جهان را به راحتی با یکدیگر مبادله کنند. این تصوری بود که آقای باران(Baran) از اینترنت داشت و امیدواریم در آینده نیز تکامل اینترنت در این مسیر باشد.
اینترنت در ایران
اینترنت در ایران عبارت است از کلیه جنبه های مرتبط به ایجاد، توسعه و استفاده از شبکه های رایانه ای تحت مجموعه پروتکل اینترنت در ایران که آن را از اینترنت به معنای عام مشخص و متمایز می کند و شامل امور فنی، ساختارهای حقوقی و اداری، دسترسی، خدمات، کاربری و نیز آثار و چالش های ناشی از آن می شود.
اینترنت در ایران در سطح جامعه اکثراً محدود به وبگردی و ارتباطات راهدور و در دانشگاهها تحقیقات علمی است و تجارت الکترونیک به علت نبود زیرساختها و قوانین لازم در سطح محدودی ارائه میگردد. در سال ۱۹۹۳، ایران دومین کشوری در خاورمیانه بود که به اینترنت متصل شد. از آن زمان، تعداد کاربران اینترنت در ایران روند فزایندهای داشته است. اما بر اساس آمار دسامبر ۲۰۱۲ ایران به لحاظ سرعت اینترنت در دسترسی برای کاربران خانگی، در بین ۱۷۸ کشور در جایگاه ۱۶۴ قرار داشت و از بین کشورهای خاورمیانه تنها مصر و سوریه رتبهٔ پایینتری داشتند. همچنین در فصل اول سال ۲۰۱۳ ایران در بین کشورهای جهان جزء کندترین کشورها در زمینه ارائه اینترنت پرسرعت است. کاربران اینترنت در ایران هم از فیلترینگ اعمالشده توسط نهادهای دولتی و هم از فیلترینگ معکوس اعمالشده توسط شرکتهای وابسته به کشورهایی که ایران را تحریم کردهاند، رنج میبرند. همچنین، تولیدکنندگان محتوا در اینترنت طبق قانون موظفند که اطلاعات شخصی خود و ویژگیهای فنی وبگاه خود را نزد دولت ثبت کنند.
پیشینه
پیش از ایجاد شبکه اینترنت، نسل قبلی شبکههای رایانهای جهانگستر به نام بیتنت در دنیا به کار میرفت. به گفتهٔ سیاوش شهشهانی، قائممقام سابق پژوهشگاه دانشهای بنیادی، این مرکز در ایران در سال ۱۳۶۸ خورشیدی (معادل ۱۹۸۹ تا ۱۹۹۰) برای اولین بار به شبکهٔ بیتنت متصل شد؛ هدف این کار ارتباط علمی و پژوهشی با دانشگاههای دنیا بود. شبکهٔ بیتنت با شبکهٔ اینترنتی که امروز استفاده میشود تفاوتهای بسیار داشت. استفادهٔ اصلی که از آن میشد دریافت و ارسال نامههای الکترونیکی بود. سیاوش شهشهانی، قائممقام آن زمان پژوهشگاه دانشهای بنیادی، در مصاحبهای میگوید: «وقتی عضویت ما را تصویب کردند یک بند جدید هم به تعهدات اعضا اضافه کردند و آن این که از شبکه برای تبلیغات مذهبی استفاده نشود.» یکی دیگر از تعهدات این بود که هیج عضوی نباید جلوی عبور اطلاعات از کشوری به کشور دیگر را بگیرد. محمد جواد لاریجانی فردی بود که تعهدات لازم برای برقراری این اتصال را پذیرفت و توافقنامه را امضا کرد. مرکز در ابتدا از طریق اتصال با شمارهگیری و با استفاده از خط تلفن به دانشگاهی در اتریش متصل شد. پس از آن یک خط استیجاری با دانشگاه وین برقرار شد. این اتصال از سال ۱۹۹۳ به شکل رسمی در آمد.
اینترنت به صورت عمومی از حدود سالهای ۱۹۹۳ (معادل ۱۳۷۲ خورشیدی) برای استفادههای دانشگاهی وارد ایران شد. پژوهشگاه دانشهای بنیادی اولین مرکزی بود که به سمت استفاده از اینترنت گام برداشت و از طریق دانشگاه وین به اینترنت متصل شد. در ابتدا خدمات اتصال به اینترنت فقط به کاربران دانشگاهی داده میشد. استفادهٔ عمومی از اینترنت برای اولین توسط شرکت ندا رایانه فراهم آورد.
6:40 am
کاربرد برنامه نویسی
زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف دادهها، و عملیات یا تبدیلهایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم میکند. یک برنامه نویس از انتزاعات آماده در زبان استفاده میکند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از سادهترین عناصر موجود بیان میشوند(مفاهیم ابتدایی نامیده میشوند).

زبانهای برنامه نویسی با غالب زبانهای انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبانهای طبیعی برای ارتباط با دیگر انسانها، نویسندگان و گویندگان میتوانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانهها "دقیقاً آنچه که به آنها گفته شده را انجام میدهند." و نمیتوانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بودهاست] البته امروزه برنامههایی برای انجام این کار تولید شدهاند و تلاشهای بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص میکند. برنامههای یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامهها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامهای استفاده میشود، زبان اسکریپت میگویند. بسیاری از زبانها کنار گذاشته شدهاند، برای رفع نیازهای جدید جایگزین شدهاند، با برنامههای دیگر ترکیب شدهاند و در نهایت استعمال آنها متوقف شدهاست. با وجود اینکه تلاشهایی برای طراحی یک زبان رایانه" کامل" شدهاست که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبانهای رایانهای گسترده از گستردگی زمینههایی که زبانها استفاده میشوند، ناشی میشود:
محدوده برنامهها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستمهای بسیار بزرگ نوشته شده توسط صدها برنامه نویس است
توانایی برنامه نویسها: از تازه کارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفهایهایی که با پیچیدگی قابل توجهی کنار میآیند.
برنامهها باید سرعت، اندازه و سادگی را بسته به سیستمها از ریزپردازندها تا ابر رایانهها متناسب نگه دارند.
برنامهها ممکن است یک بار نوشته شوند و تا نسلها تغییر نکنند، و یا ممکن است پیوسته اصلاح شوند.
در نهایت، برنامه نویسها ممکن است در علایق متفاوت باشند: آنها ممکن است به بیان مسائل با زبانی خاص خو گرفته باشند.
یک سیر رایج در گسترش زبانهای برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبانهای برنامه نویسی اولیه به سختافزار رایانه گره خورده بودند. همانطور که زبانهای برنامه نویسی جدید گسترش پیدا کردهاند، ویژگیهایی به برنامهها افزوده شده که به برنامه نویس اجازه دهد که ایدههایی که از ترجمه ساده به دستورات سختافزار دورتر هستند نیز استفاده کند. چون برنامه نویسها کمتر به پیچیدگی رایانه محدود شدهاند، برنامههای آنها میتواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را میدهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازندههای زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبانهای اختصاصی برنامه نویسی پیشنهاد شدهاند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.
المانها
تمام زبانهای بزنامه نویسی تعدادی بلوکهای ابتدایی برای توضیح داده و پردازش یا تبدیل آنها(مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه)دارند. این " عناصرابتدایی" بوسیله قوانین معناشناسی و دستوری تعریف میشوند که ساختار و معنای مربوطه را توضیح میدهند.
دستور(
syntax)
فرم سطحی یک زبان برنامه نویسی دستور آن نامیده میشود. غالب زبانهای برنامه نویسی کاملاً متنی اند؛ و از دنبالهٔ متون شامل کلمات، اعداد، نشانگذاری، بسیار شبیه زبان نوشتاری طبیعی استفاده میکنند. از طرف دیگر، برنامههایی نیز وجود دارند که بیشتر گرافیکی اند، و از روابط بصری بین سمبلها برای مشخص کردن برنامه استفاده میکنند. دستور یک زبان ترکیبات ممکن سمبلها برای ایجاد یک برنامهٔ درست را از نظر دستوری مشخص میکند. معنایی که به یک ترکیب سمبلها داده میشود با معناشناسی اداره میشود(قراردادی یا نوشته شده در پیاده سازی منبع). از آنجا که اغلب زبانها متنی هستند، این مقاله دستور متنی را مورد بحث قرار میدهد.
دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف میشوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص میکند:
یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکستهای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی میتواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) میآید.
یک لیست تعدادی پرانتز است که میتواند صفر یا چند عبارت در خود داشته باشد.
"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثالهایی هستند از دنبالههای خوش فرم در این گرامر.
همه برنامههایی که از لحاظ دستوری درست هستند، از نظر معنا درست نیستند. بسیاری از برنامههای درست دستوری، بد فرم اند، با توجه به قوانین زبان؛ و ممکن است (بسته به خصوصیات زبان و درست بودن پیاده سازی) به خطای ترجمه و یا استثنا(exception) منتج شود. در برخی موارد، چنین برنامههایی ممکن است رفتار نامشخصی از خود نشان دهند. حتی اگر یک برنامه در یک زبان به خوبی بیان شده باشد، ممکن است دقیقاً مطلوب نویسنده آن نبوده باشد.
به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:
"ایدههای بی رنگ سبز با خشم میخوابند."از نظر دستوری خوش فرم است ولی معنای مورد قبولی ندارد.
"جان یک مجرد متاهل است." از نظر دستوری درست است، ولی معنایی را بیان میکند که نمیتواند درست باشد.
این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام میدهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);
گرامر مورد نیاز برای مشخص کردن یک زبان برنامه نویسی میتواند با جایگاهش در "سلسله مراتب چامسکی" طبقه بندی شود. دستور اغلب زبانهای برنامه نویسی میتواند بوسیله یک گرامر نوع ۲ مشخص گردد، برای مثال، گرامرهای مستقل از متن.
معناشناسی ایستا
معناشناسی ایستا محدودیتهایی بر روی ساختار مجاز متنها تعیین میکند که بیان آنها در فرمول دستوری استاندارد مشکل و یا غیر ممکن است. مهمترین این محدودیتها به وسیله سیستم نوع گذاری انجام میشود.
سیستم نوع گذاری
یک سیستم نوع گذاری مشخص میکند که یک زبان برنامه نویسی چگونه مقادیر و عبارات را در نوع(type) دسته بندی میکند، چگونه میتواند آن نوعها را تغییر دهد و رفتار متقابل آنها چگونهاست. این کارعموما توضیح داده ساختارهایی که میتوانند در آن زبان ایجاد شوند را شامل میشود. طراحی و مطالعه سیستمهای نوع گذاری بوسیله ریاضیات قراردادی را تئوری نوع گذاری گویند.
زبانهای نوع گذاری شده و بدون نوع گذاری
یک زبان نوع گذاری شدهاست اگر مشخصات هر عملیات، نوع دادههای قابل اجرا توسط آن را با نشان دادن نوعهایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشتهاست. در غالب زبانهای برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبانهای برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامهها رد کنند. در برخی زبانها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامهها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبانهای نوع دار زبانهای تک نوعند. این زبانها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشتههای کاراکتری که هم برای دادههای عددی و هم برای دادههای سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبانهای اسمبلی، این امکان را میدهد که هر عملیاتی روی هر دادهای انجام شود، که معمولاً دنبالهای از بیتها با طولهای متفاوت در نظر گرفته میشوند. زبانهای سطح بالا که بی نوع هستند شامل زبانهای ساده رایانهای و برخی از انواع زبانهای نسل چهارم.
در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی میشوند(چک کردن یا رد کردن تمام عملیاتها)، غالب زبانهای امروزی درجهای از نوع گذاری را فراهم میکنند. بسیاری از زبانهای تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم میکنند.
نوع گذاری ایستا و متحرک
در نوع گذاری ایستا تمام عبارات نوعهای خود را قبل از اجرای برنامه تعیین میکنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمیتوانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.
زبانهای نوع گذاری شده ایستا میتوانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوعها را در جایگاههای منتنی مشخص مینویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریفها را بر اساس متن استنباط میکند. غالب زبانهای مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری میشوند
نوع گذاری قوی و ضعیف
نوع گذاری ضعیف این امکان را ایجاد میکند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.
نوع گذاری قوی مانع رخ دادن مشکل فوق میشود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا میشود. زبانهایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته میشوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبانها اشاره میکند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را میدهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل میکند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشتهای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان میکنند.
قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض میشوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار میبرند و منظورشان قوی، ایستایی نوع گذاری شدهاست، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شدهاست. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده میشود.
معناشناسی اجرا
وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیاتها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین میکند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.
برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی میشوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا میکنند.
کتابخانه هسته
اغلب زبانهای برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده میشوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازیهای زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتمها، داده ساختارها و مکانیزمهای ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار میکنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هستهای را مشخص میکنند که باید در تمام پیاده سازیها موجود باشند، و در زبانهای استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبانها به گونهای تعریف شدهاند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونهای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونهای از کلاس BlockContext کتابخانه میسازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان میباشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمیکنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.
عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازیهای زبان هستند.
خصوصیات
یک زبان برنامه نویسی باید تعریفی فراهم کند که کاربران و پیاده کنندههای زبان میتوانند از آن استفاده کنند تا مشخص کنند که رفتار یک برنامه درست است. با داشتن کد منبع: خصوصیات یک زبان برنامه نویسی چندین قالب میتواند بگیرد، مانند مثالهای زیر:
تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص میشود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبانهای مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.
پیاده سازی
پیاده سازی یک زبان برنامه نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سختافزار و نرمافزار را فراهم میکند. بطور وسیع، دو راه رسیدن به پیاده سازی زبان برنامه نویسی وجود دارد. کامپایل کردن و تفسیر کردن. بطور کلی با هر بک از ابن دو روش میتوان یک زبان را پیاده سازی کرد.
خروجی یک کامپایلر ممکن است با سختافزار و یا برنامهای به نام مفسر اجرا شود. در برخی پیاده سازیها که از مفسر استفاده میشود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیاده سازیهای زبان برنامه نویسی بیسیک کامپایل میکنند و سپس کد را خط به خط اجرا میکنند.
برنامههایی که مستقیماً روی سختافزار اجرا میشوند چندین برابر سریعتر از برنامههایی که با کمک نرمافزار اجرا میشوند، انجام میشوند.
یک تکنیک برای بهبود عملکرد برنامههای تفسیر شده کامپایل در لحظه آن است. در این روش ماشین مجازی، دقیقاً قبل از اجرا، بلوکهای کدهای بایتی که قرار است استفاده شوند را برای اجرای مستقیم روی سختافزار ترجمه میکند.
تاریخچه
پیشرفتهای اولیه
اولین زبان برنامه نویسی به قبل از رایانههای مدرن باز میگردد. قرن ۱۹ دستگاههای نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثالهایی از زبانهای برنامه نویسی با حوزه مشخص شناخته میشوند. با شروع قرن بیستم، پانچ کارتها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتمها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.
در دهه ۴۰، اولین رایانههای دیجیتال که توسط برق تغذیه میشدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سالهای ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.
کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامههای زبان ماشین استفاده میکردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده میشوند جایگزین شد. در سالهای بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخههای به روز شده این برنامهها همچنان مورد استفاده قرار میگیرند، و هر کدام قویا توسعه زبانهای بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبانهای برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبانهای برنامه نویسی به شدت متاثر از محدودیتهای رابط بودند.
پالایش
دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثالهای عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبههای آن بهینه سازی ایدههای اولیه نسل سوم زبان برنامه نویسی بود:
APL برنامه نویسی آرایهای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایدههای خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی میکرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به
عنوان اولین زبان کاملاً شئ گرا معرفی شد.
C بین سالهای ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبانهای برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.
هر یک از این زبانها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبانها از تبار حداقل یکی از زبانهای فوق به شمار میآیند.
دهههای ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبانهای برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.
"ادسگر دیکسترا" در نامهای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبانهای سطح بالا حذف شود.
در دهههای ۶۰ و ۷۰ توسعهٔ تکنیکهایی صورت گرفت که اثر یک برنامه را کاهش میداد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.
یکپارچگی و رشد
دهه ۸۰ سالهای یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینههای گزافی صرف تحقیق در مورد زبان نسل پنجم میشد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثالهای جدید، تمام این تلاشها ایدههایی که در دهههای قبل حلق شده بودند را بهتر کرد.
یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستمهای بزرگ از طریق مدولها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستمهای مدولی برجستهای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبانهای دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستمهای مدولی غالباً با ساختارهای برنامه نویسی عام همراه شدهاند.
رشد سریع اینترنت در میانه دهه ۹۰ فرصتهای ایجاد زبانهای جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وبگاههای دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعهها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثالهای موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا میکند، هم در تحقیقات و هم در صنعت. جهتهای فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونههای جدید مدولی(mixin، نمایندهها، جنبهها) و تجمع پایگاه داده.
۴GLها نمونهای از زبانهایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه دادههای اسکالر را برگردانند، مجموعههایی را تغییر داده و بر میگردانند که برای اکثر زبانها متعارفند. Perl برای مثال، با "مدرک اینجا" خود میتواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
سنجش استفاده از زبان
مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفادهاست، و اینکه کاربرد چه معنی میدهد با توجه به زمینه تغییر میکند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبانها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامههای کاربردی، C در برنامههای تعبیه شده و سیستمهای عامل؛ و بقیه برنامهها معمولاً برای نوشتن انواع دیگر برنامهها کاربرد دارند. روشهای مختلفی برای سنجش محبوبیت زبانها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شدهاست:
شمارش تعداد تبلیغات شغلی که از آن زبان نام میبرند.
تعداد کتابهای آموزشی و شرح دهندهٔ آن زبان که فروش رفتهاست.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبانهایی را که در جستجوها کمتر پیدا میشوند دست کم گرفته شوند.
شمارش ارجاعهای زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.
طبقه بندیها هیچ برنامه غالبی برای دسته بندی زبانهای برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبانها معمولاً با ترکیب المانهای چند زبان پیشینه بوجود میآیند که هربار ایدههای جدید درگردشند. ایدههایی که در یک زبان ایجاد میشوند در یک خانواده از زبانهای مرتبط پخش میشوند، و سپس از بین خلاهای بین خانوادهها منتقل شده و در خانوادههای دیگر ظاهر میشوند.
این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر میکند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق میکند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.
در نگاه کلی، زبانهای برنامه نویسی به مثالهای برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم میشوند. مثالها شامل برنامه نویسی رویهای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبانها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبانهای برنامه نویسی ممکن است همه منظوره باشند، زبانهای برنامه نویسی سیستمی، زبانهای اسکریپتی، زبانهای محدوده مشخص، زبانهای همزمان/ گسترده(و یا ترکیب اینها). برخی زبانهای همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شدهاند.
یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثالهای برنامه نویسی دسته بندی شود. برای مثال، غالب زبانهای برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده میکنند، در حالیکه تعداد کمی این کار را نمیکنند. سایر زبانها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف دادهها، و عملیات یا تبدیلهایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم میکند. یک برنامه نویس از انتزاعات آماده در زبان استفاده میکند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از سادهترین عناصر موجود بیان میشوند(مفاهیم ابتدایی نامیده میشوند).

زبانهای برنامه نویسی با غالب زبانهای انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبانهای طبیعی برای ارتباط با دیگر انسانها، نویسندگان و گویندگان میتوانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانهها "دقیقاً آنچه که به آنها گفته شده را انجام میدهند." و نمیتوانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بودهاست] البته امروزه برنامههایی برای انجام این کار تولید شدهاند و تلاشهای بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص میکند. برنامههای یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامهها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامهای استفاده میشود، زبان اسکریپت میگویند. بسیاری از زبانها کنار گذاشته شدهاند، برای رفع نیازهای جدید جایگزین شدهاند، با برنامههای دیگر ترکیب شدهاند و در نهایت استعمال آنها متوقف شدهاست. با وجود اینکه تلاشهایی برای طراحی یک زبان رایانه" کامل" شدهاست که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبانهای رایانهای گسترده از گستردگی زمینههایی که زبانها استفاده میشوند، ناشی میشود:
محدوده برنامهها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستمهای بسیار بزرگ نوشته شده توسط صدها برنامه نویس است
توانایی برنامه نویسها: از تازه کارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفهایهایی که با پیچیدگی قابل توجهی کنار میآیند.
برنامهها باید سرعت، اندازه و سادگی را بسته به سیستمها از ریزپردازندها تا ابر رایانهها متناسب نگه دارند.
برنامهها ممکن است یک بار نوشته شوند و تا نسلها تغییر نکنند، و یا ممکن است پیوسته اصلاح شوند.
در نهایت، برنامه نویسها ممکن است در علایق متفاوت باشند: آنها ممکن است به بیان مسائل با زبانی خاص خو گرفته باشند.
یک سیر رایج در گسترش زبانهای برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبانهای برنامه نویسی اولیه به سختافزار رایانه گره خورده بودند. همانطور که زبانهای برنامه نویسی جدید گسترش پیدا کردهاند، ویژگیهایی به برنامهها افزوده شده که به برنامه نویس اجازه دهد که ایدههایی که از ترجمه ساده به دستورات سختافزار دورتر هستند نیز استفاده کند. چون برنامه نویسها کمتر به پیچیدگی رایانه محدود شدهاند، برنامههای آنها میتواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را میدهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازندههای زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبانهای اختصاصی برنامه نویسی پیشنهاد شدهاند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.
المانها
تمام زبانهای بزنامه نویسی تعدادی بلوکهای ابتدایی برای توضیح داده و پردازش یا تبدیل آنها(مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه)دارند. این " عناصرابتدایی" بوسیله قوانین معناشناسی و دستوری تعریف میشوند که ساختار و معنای مربوطه را توضیح میدهند.
دستور(
syntax)
فرم سطحی یک زبان برنامه نویسی دستور آن نامیده میشود. غالب زبانهای برنامه نویسی کاملاً متنی اند؛ و از دنبالهٔ متون شامل کلمات، اعداد، نشانگذاری، بسیار شبیه زبان نوشتاری طبیعی استفاده میکنند. از طرف دیگر، برنامههایی نیز وجود دارند که بیشتر گرافیکی اند، و از روابط بصری بین سمبلها برای مشخص کردن برنامه استفاده میکنند. دستور یک زبان ترکیبات ممکن سمبلها برای ایجاد یک برنامهٔ درست را از نظر دستوری مشخص میکند. معنایی که به یک ترکیب سمبلها داده میشود با معناشناسی اداره میشود(قراردادی یا نوشته شده در پیاده سازی منبع). از آنجا که اغلب زبانها متنی هستند، این مقاله دستور متنی را مورد بحث قرار میدهد.
دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف میشوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص میکند:
یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکستهای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی میتواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) میآید.
یک لیست تعدادی پرانتز است که میتواند صفر یا چند عبارت در خود داشته باشد.
"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثالهایی هستند از دنبالههای خوش فرم در این گرامر.
همه برنامههایی که از لحاظ دستوری درست هستند، از نظر معنا درست نیستند. بسیاری از برنامههای درست دستوری، بد فرم اند، با توجه به قوانین زبان؛ و ممکن است (بسته به خصوصیات زبان و درست بودن پیاده سازی) به خطای ترجمه و یا استثنا(exception) منتج شود. در برخی موارد، چنین برنامههایی ممکن است رفتار نامشخصی از خود نشان دهند. حتی اگر یک برنامه در یک زبان به خوبی بیان شده باشد، ممکن است دقیقاً مطلوب نویسنده آن نبوده باشد.
به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:
"ایدههای بی رنگ سبز با خشم میخوابند."از نظر دستوری خوش فرم است ولی معنای مورد قبولی ندارد.
"جان یک مجرد متاهل است." از نظر دستوری درست است، ولی معنایی را بیان میکند که نمیتواند درست باشد.
این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام میدهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);
گرامر مورد نیاز برای مشخص کردن یک زبان برنامه نویسی میتواند با جایگاهش در "سلسله مراتب چامسکی" طبقه بندی شود. دستور اغلب زبانهای برنامه نویسی میتواند بوسیله یک گرامر نوع ۲ مشخص گردد، برای مثال، گرامرهای مستقل از متن.
معناشناسی ایستا
معناشناسی ایستا محدودیتهایی بر روی ساختار مجاز متنها تعیین میکند که بیان آنها در فرمول دستوری استاندارد مشکل و یا غیر ممکن است. مهمترین این محدودیتها به وسیله سیستم نوع گذاری انجام میشود.
سیستم نوع گذاری
یک سیستم نوع گذاری مشخص میکند که یک زبان برنامه نویسی چگونه مقادیر و عبارات را در نوع(type) دسته بندی میکند، چگونه میتواند آن نوعها را تغییر دهد و رفتار متقابل آنها چگونهاست. این کارعموما توضیح داده ساختارهایی که میتوانند در آن زبان ایجاد شوند را شامل میشود. طراحی و مطالعه سیستمهای نوع گذاری بوسیله ریاضیات قراردادی را تئوری نوع گذاری گویند.
زبانهای نوع گذاری شده و بدون نوع گذاری
یک زبان نوع گذاری شدهاست اگر مشخصات هر عملیات، نوع دادههای قابل اجرا توسط آن را با نشان دادن نوعهایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشتهاست. در غالب زبانهای برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبانهای برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامهها رد کنند. در برخی زبانها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامهها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبانهای نوع دار زبانهای تک نوعند. این زبانها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشتههای کاراکتری که هم برای دادههای عددی و هم برای دادههای سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبانهای اسمبلی، این امکان را میدهد که هر عملیاتی روی هر دادهای انجام شود، که معمولاً دنبالهای از بیتها با طولهای متفاوت در نظر گرفته میشوند. زبانهای سطح بالا که بی نوع هستند شامل زبانهای ساده رایانهای و برخی از انواع زبانهای نسل چهارم.
در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی میشوند(چک کردن یا رد کردن تمام عملیاتها)، غالب زبانهای امروزی درجهای از نوع گذاری را فراهم میکنند. بسیاری از زبانهای تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم میکنند.
نوع گذاری ایستا و متحرک
در نوع گذاری ایستا تمام عبارات نوعهای خود را قبل از اجرای برنامه تعیین میکنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمیتوانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.
زبانهای نوع گذاری شده ایستا میتوانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوعها را در جایگاههای منتنی مشخص مینویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریفها را بر اساس متن استنباط میکند. غالب زبانهای مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری میشوند
نوع گذاری قوی و ضعیف
نوع گذاری ضعیف این امکان را ایجاد میکند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.
نوع گذاری قوی مانع رخ دادن مشکل فوق میشود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا میشود. زبانهایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته میشوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبانها اشاره میکند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را میدهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل میکند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشتهای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان میکنند.
قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض میشوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار میبرند و منظورشان قوی، ایستایی نوع گذاری شدهاست، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شدهاست. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده میشود.
معناشناسی اجرا
وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیاتها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین میکند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.
برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی میشوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا میکنند.
کتابخانه هسته
اغلب زبانهای برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده میشوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازیهای زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتمها، داده ساختارها و مکانیزمهای ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار میکنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هستهای را مشخص میکنند که باید در تمام پیاده سازیها موجود باشند، و در زبانهای استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبانها به گونهای تعریف شدهاند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونهای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونهای از کلاس BlockContext کتابخانه میسازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان میباشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمیکنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.
عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازیهای زبان هستند.
خصوصیات
یک زبان برنامه نویسی باید تعریفی فراهم کند که کاربران و پیاده کنندههای زبان میتوانند از آن استفاده کنند تا مشخص کنند که رفتار یک برنامه درست است. با داشتن کد منبع: خصوصیات یک زبان برنامه نویسی چندین قالب میتواند بگیرد، مانند مثالهای زیر:
تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص میشود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبانهای مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.
پیاده سازی
پیاده سازی یک زبان برنامه نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سختافزار و نرمافزار را فراهم میکند. بطور وسیع، دو راه رسیدن به پیاده سازی زبان برنامه نویسی وجود دارد. کامپایل کردن و تفسیر کردن. بطور کلی با هر بک از ابن دو روش میتوان یک زبان را پیاده سازی کرد.
خروجی یک کامپایلر ممکن است با سختافزار و یا برنامهای به نام مفسر اجرا شود. در برخی پیاده سازیها که از مفسر استفاده میشود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیاده سازیهای زبان برنامه نویسی بیسیک کامپایل میکنند و سپس کد را خط به خط اجرا میکنند.
برنامههایی که مستقیماً روی سختافزار اجرا میشوند چندین برابر سریعتر از برنامههایی که با کمک نرمافزار اجرا میشوند، انجام میشوند.
یک تکنیک برای بهبود عملکرد برنامههای تفسیر شده کامپایل در لحظه آن است. در این روش ماشین مجازی، دقیقاً قبل از اجرا، بلوکهای کدهای بایتی که قرار است استفاده شوند را برای اجرای مستقیم روی سختافزار ترجمه میکند.
تاریخچه
پیشرفتهای اولیه
اولین زبان برنامه نویسی به قبل از رایانههای مدرن باز میگردد. قرن ۱۹ دستگاههای نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثالهایی از زبانهای برنامه نویسی با حوزه مشخص شناخته میشوند. با شروع قرن بیستم، پانچ کارتها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتمها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.
در دهه ۴۰، اولین رایانههای دیجیتال که توسط برق تغذیه میشدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سالهای ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.
کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامههای زبان ماشین استفاده میکردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده میشوند جایگزین شد. در سالهای بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخههای به روز شده این برنامهها همچنان مورد استفاده قرار میگیرند، و هر کدام قویا توسعه زبانهای بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبانهای برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبانهای برنامه نویسی به شدت متاثر از محدودیتهای رابط بودند.
پالایش
دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثالهای عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبههای آن بهینه سازی ایدههای اولیه نسل سوم زبان برنامه نویسی بود:
APL برنامه نویسی آرایهای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایدههای خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی میکرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به
عنوان اولین زبان کاملاً شئ گرا معرفی شد.
C بین سالهای ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبانهای برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.
هر یک از این زبانها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبانها از تبار حداقل یکی از زبانهای فوق به شمار میآیند.
دهههای ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبانهای برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.
"ادسگر دیکسترا" در نامهای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبانهای سطح بالا حذف شود.
در دهههای ۶۰ و ۷۰ توسعهٔ تکنیکهایی صورت گرفت که اثر یک برنامه را کاهش میداد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.
یکپارچگی و رشد
دهه ۸۰ سالهای یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینههای گزافی صرف تحقیق در مورد زبان نسل پنجم میشد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثالهای جدید، تمام این تلاشها ایدههایی که در دهههای قبل حلق شده بودند را بهتر کرد.
یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستمهای بزرگ از طریق مدولها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستمهای مدولی برجستهای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبانهای دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستمهای مدولی غالباً با ساختارهای برنامه نویسی عام همراه شدهاند.
رشد سریع اینترنت در میانه دهه ۹۰ فرصتهای ایجاد زبانهای جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وبگاههای دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعهها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثالهای موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا میکند، هم در تحقیقات و هم در صنعت. جهتهای فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونههای جدید مدولی(mixin، نمایندهها، جنبهها) و تجمع پایگاه داده.
۴GLها نمونهای از زبانهایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه دادههای اسکالر را برگردانند، مجموعههایی را تغییر داده و بر میگردانند که برای اکثر زبانها متعارفند. Perl برای مثال، با "مدرک اینجا" خود میتواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
سنجش استفاده از زبان
مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفادهاست، و اینکه کاربرد چه معنی میدهد با توجه به زمینه تغییر میکند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبانها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامههای کاربردی، C در برنامههای تعبیه شده و سیستمهای عامل؛ و بقیه برنامهها معمولاً برای نوشتن انواع دیگر برنامهها کاربرد دارند. روشهای مختلفی برای سنجش محبوبیت زبانها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شدهاست:
شمارش تعداد تبلیغات شغلی که از آن زبان نام میبرند.
تعداد کتابهای آموزشی و شرح دهندهٔ آن زبان که فروش رفتهاست.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبانهایی را که در جستجوها کمتر پیدا میشوند دست کم گرفته شوند.
شمارش ارجاعهای زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.
طبقه بندیها هیچ برنامه غالبی برای دسته بندی زبانهای برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبانها معمولاً با ترکیب المانهای چند زبان پیشینه بوجود میآیند که هربار ایدههای جدید درگردشند. ایدههایی که در یک زبان ایجاد میشوند در یک خانواده از زبانهای مرتبط پخش میشوند، و سپس از بین خلاهای بین خانوادهها منتقل شده و در خانوادههای دیگر ظاهر میشوند.
این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر میکند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق میکند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.
در نگاه کلی، زبانهای برنامه نویسی به مثالهای برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم میشوند. مثالها شامل برنامه نویسی رویهای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبانها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبانهای برنامه نویسی ممکن است همه منظوره باشند، زبانهای برنامه نویسی سیستمی، زبانهای اسکریپتی، زبانهای محدوده مشخص، زبانهای همزمان/ گسترده(و یا ترکیب اینها). برخی زبانهای همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شدهاند.
یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثالهای برنامه نویسی دسته بندی شود. برای مثال، غالب زبانهای برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده میکنند، در حالیکه تعداد کمی این کار را نمیکنند. سایر زبانها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 6:40 am | نویسنده : admin
|
گرافیکسولوژی |
مطلب قبلی