محیط توسعه یکپارچه

[بندانگشتی|300px|[آنجوتا، آی‌دی‌ئی سی و سی++ در محیط گنوم|چپ]]
یک **محیط توسعهٔ یکپارچه**  با کوته‌نوشت **IDE**، نرم‌افزاری است که امکانات کاملی را برای برنامه‌نویسان رایانه جهت توسعهٔ نرم‌افزار فراهم می‌کند. IDE معمولاً از حداقل یک ویرایشگر کد منبع، ساخت ابزارهای اتوماسیون و یک اشکال زدایی تشکیل شده است. برخی از IDEها، مانند نت‌بینز و اکلیپس، حاوی کامپایلر، مترجم یا هر دو مورد لازم هستند. دیگران، مانند شارپ دولوپ و Lazarus، چنین کاری نمی‌کنند.

مرز بین IDE و سایر قسمت‌های وسیع‌تر از توسعهٔ نرم‌افزار کاملاً مشخص نیست. گاهی یک سیستم کنترل نسخه یا ابزارهای مختلف برای ساده‌سازی یک رابط کاربری گرافیکی (GUI) یکپارچه شده است. بسیاری از IDEهای مدرن همچنین دارای یک مرورگر کلاس، یک مرورگر شیء و یک نمودار سلسله مراتبی کلاس برای استفاده در توسعهٔ نرم‌افزار شی‌گرا هستند.

## بررسی اجمالی
بندانگشتی|IDLE پایتون ورژن ۳٫۱۰٫۷ که یک محیط توسعه یکپارچه است.
محیط‌های توسعه یکپارچه به منظور به حداکثر رساندن بهره‌وری برنامه‌نویس با ارائه مؤلفه‌های گره‌دار با رابط‌های کاربری مشابه طراحی شده‌اند. IDEها یک برنامه واحد ارائه می‌دهند که در آن تمام توسعه‌ها انجام می‌شود. این برنامه به‌طور معمول ویژگی‌های بسیاری را برای نویسندگی، اصلاح، کامپایل، راه‌اندازی و اشکال‌زدایی نرم‌افزار ارائه می‌دهد. این با توسعه نرم‌افزار با استفاده از ابزارهای نامربوط، مانند vi, GCC یا make سازگار است.

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

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

در حالی که اکثر IDEهای مدرن گرافیکی هستند، IDEهای مبتنی بر متن مانند Turbo Pascal قبل از در دسترس بودن سیستم‌های پنجره‌ای مانند مایکروسافت ویندوز و سامانه پنجره اکس (X11) مورد استفاده رایج قرار می‌گرفتند. آنها برای اجرای دستورها یا ماکروها معمولاً از کلیدهای عملکردی یا کلیدهای مهم استفاده می‌کنند.

## تاریخچه
IDE در ابتدا هنگام توسعه از طریق کنسول یا ترمینال امکان‌پذیر شد. سیستم‌های اولیه قادر به پشتیبانی از آنها نبودند، زیرا برنامه‌ها با استفاده از نمودارهای پخش شده، ورود به برنامه‌ها با کارتهای سوراخ دار (یا نوار کاغذی و غیره) پیش از ارسال آنها به کامپایلر ساخته می‌شدند. دارتموث بیسیکاولین زبانی بود که با IDE ایجاد شد (و همچنین اولین کسی بود که هنگام نشستن در مقابل یک کنسول یا ترمینال برای استفاده طراحی شده بود). IDE آن (بخشی از سیستم به اشتراک گذاری زمان Dartmouth) بود. مبتنی بر دستور، و بنابراین به نظر نمی‌رسد بسیار شبیه به IDEهای گرافیکی مبتنی بر منو پس از ظهور رابط کاربری گرافیکی. با این حال، ویرایش، مدیریت پرونده، تلفیق، اشکال زدایی و اجرای را به روشی سازگار با IDE مدرن یکپارچه کرده است.

همچنین به ساختار برنامه‌نویسی ساخت یافته از آی‌بی‌ام(1974) مراجعه کنید.

Maestro I محصولی از Softlab مونیخ است و نخستین محیط توسعه یکپارچه جهان برای نرم‌افزار بود. مائسترو I برای ۲۲۰۰۰ برنامه‌نویس در سراسر جهان نصب شد. تا سال ۱۹۸۹، ۶۰۰۰ نصب در جمهوری فدرال آلمان وجود داشته است. مائسترو مسلماً رهبر جهان در این زمینه در دهه ۱۹۷۰ و ۱۹۸۰ بود. امروز یکی از آخرین مائستروها را می‌توان در موزه فناوری اطلاعات در آرلینگتون یافت.

یکی از اولین IDEها با یک مفهوم افزونه، Softbench بود. در سال 1995 Computerwoche اظهار داشت که استفاده یک IDE توسط توسعه دهندگان به خوبی مورد استقبال قرار نگرفته است زیرا این امر در خلاقیت آنها حکمر خواهد زد.

از دسامبر سال ۲۰۱۹، سه IDE که صفحات بارگیری آنها بیشتر در جستجوی آنها قرار گرفته عبارتند از: اکلیپس، اندروید استودیو و مایکروسافت ویژوال استودیو.

## مباحث
بندانگشتی|یک نمونه از برجسته سازی نحو توسط ویرایشگر IDE

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

### تکمیل کد
تکمیل کد یک ویژگی مهم IDE است که برای سرعت بخشیدن به برنامه‌نویسی در نظر گرفته شده است. IDEهای مدرن حتی دارای تکمیل کد هوشمند هستند.

### پالایشگاه
IDEهای پیشرفته پشتیبانی از پالایشگاه‌های خودکار را پشتیبانی می‌کنند.

### کنترل نسخه
انتظار می‌رود که یک IDE کنترل نسخه یکپارچه را به منظور تعامل با مخازن منبع فراهم کند.

### اشکال زدایی
IDE همچنین برای اشکال زدایی، با استفاده از یک دیباگر یکپارچه، با پشتیبانی از تعیین نقاط شکست در ویرایشگر، ارائه بصری مراحل و غیره استفاده می‌شود.

### جستجوی کد
IDEها می‌توانند پشتیبانی پیشرفته ای را برای جستجوی کد ارائه دهند: به منظور یافتن اعلامیه‌های کلاس و عملکرد، کاربردها، خواندن یا نوشتن متغیر و میدانی و غیره. IDEها می‌توانند از انواع مختلف رابط کاربری برای جستجوی کد استفاده کنند؛ به عنوان مثال ابزارک‌های مبتنی بر فرم و رابطه‌ای مبتنی بر زبان طبیعی

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

این رابط با سیستم Lego Mindstorms رواج یافته است و توسط تعدادی از شرکت‌ها که مایل به سرمایه‌گذاری بر روی مرورگرهای سفارشی مانند آنچه در موزیلا است، فعالانه مورد سوء استفاده قرار می‌گیرد. KTechlab از کد پویا پشتیبانی می‌کند و یک IDE و شبیه‌ساز محبوب Open Source برای توسعه نرم‌افزار برای میکروکنترلرها است. برنامه‌نویسی ویژوال همچنین وظیفه قدرت برنامه‌نویسی توزیع شده را دارد (به عنوان مثال نرم‌افزار LabVIEW و EICASLAB). یک سیستم برنامه‌نویسی بصری اولیه، حداکثر، پس از طراحی سینت سایزر آنالوگ مدل شد و از 1980s برای توسعه نرم‌افزار عملکرد موسیقی در زمان واقعی استفاده می‌شود. نمونه اولیه دیگر Prograph بود، یک سیستم مبتنی بر dataflow که در ابتدا برای Macintosh توسعه یافته بود. محیط برنامه‌نویسی گرافیکی «انگور» برای برنامه‌ریزی کیت‌های ربات qfix استفاده می‌شود.

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

### پشتیبانی از زبان
بعضی از IDEها از چندین زبان پشتیبانی می‌کنند، مانند گنو ایمکس مبتنی بر زبان سی و ایمکس لیسپ و اینتلیجی آیدیا, اکلیپس، MyEclipse یا NetBeans، همه بر اساس جاوا، یا مونودولاپ، مبتنی بر سی‌شارپ یا PlayCode.

پشتیبانی از زبان‌های جایگزین اغلب توسط افزونه‌ها ارائه می‌شود و به آنها امکان می‌دهد همزمان در همان IDE نصب شوند. به عنوان مثال، Flycheck یک برنامه مدرن چک کردن نحو در پرواز برای GNU Emacs 24 با پشتیبانی از ۳۹ زبان است. اکلیپس و Netbeans دارای افزونه‌هایی برای سی / سی پلاس‌پلاس، Ada ,GNAT (به عنوان مثال AdaGIDE)، پرل، پایتون، روبی و پی‌اچ‌پی هستند که براساس برنامه‌های افزودنی فایل، محیط یا تنظیمات پروژه بین اتوماتیک انتخاب می‌شوند.

### نگرش در سیستم عامل‌های مختلف محاسباتی
برنامه نویسان یونیکس می‌توانند ابزارهای خط فرمان پازیکسرا در یک محیط کامل توسعه، قادر به توسعه برنامه‌های بزرگی مانند هسته لینوکس و محیط آن قرار دهند. [۸] به این معنا، کل سیستم یونیکس به عنوان یک IDE عمل می‌کند. ابزارهای نرم‌افزاری GNU رایگان (مجموعه کامپایلر گنو (GCC)، اشکال زدایی GNU (GDB) و ساخت GNU) در بسیاری از سیستم عامل‌ها از جمله ویندوز در دسترس هستند. فلسفه فراگیر یونیکس «همه چیز یک جریان متنی است» توسعه دهندگان را که از ابزارهای خط فرمان پشتیبانی می‌کنند، قادر به استفاده از ویرایشگرهایی با پشتیبانی از بسیاری از ابزارهای استاندارد ساخت یونیکس و GNU، ساختن IDE با برنامه‌هایی مانند Emacs یا Vim می‌کند. داده نمایشگر اشکال زدایی در نظر گرفته شده است به عنوان یک جلو گرافیکی پیشرفته برای بسیاری از ابزارهای استاندارد دیباگر مبتنی بر متن. برخی از برنامه نویسان، مدیریت ساختن فایلها و مشتقات آن را با ابزار ساختن کدهای مشابه که در یک IDE کامل گنجانده شده است، ترجیح می‌دهند. به‌عنوان مثال، بیشتر مشارکت کنندگان در پایگاه داده PostgreSQL و GDB را مستقیماً برای ایجاد ویژگیهای جدید استفاده می‌کنند. حتی هنگام ساخت PostgreSQL برای Microsoft Windows با استفاده از Visual C ++، از اسکریپت‌های Perl به جای اینکه به ویژگی‌های IDE تکیه کنید، جایگزینی برای ساخت استفاده می‌شود. برخی از IDEهای لینوکس مانند Geany تلاش می‌کنند تا جلوی گرافیکی را برای عملیات ساخت سنتی ارائه دهند.

در سیستم عامل‌های مختلف ویندوز مایکروسافت، از ابزارهای خط فرمان برای توسعه به ندرت استفاده می‌شود. بر این اساس، بسیاری از محصولات تجاری و غیرتجاری وجود دارد. با این حال، هر یک از طراحی متفاوتی که معمولاً ناسازگاری ایجاد می‌کند، استفاده می‌کنند. اکثر فروشندگان اصلی کامپایلر برای ویندوز هنوز نسخه‌های رایگان ابزار خط فرمان خود، از جمله مایکروسافت (Visual C ++، Platform SDK , .NET Framework SDK، ابزار nmake) را ارائه می‌دهند.

IDE همیشه در محیط‌های Mac OS و MacOS کلاسیک اپل محبوب بوده و قدمت آن به کارگاه برنامه نویسان Macintosh , Turbo Pascal , THINK Pascal و THINK C در اواسط دهه ۱۹۸۰ بازمی‌گردد. در حال حاضر برنامه نویسان macOS می‌توانند بین IDEهای بومی مانند Xcode و ابزارهای منبع بازمانند Eclipse و Netbeans را انتخاب کنند. ActiveState Komodo یک IDE اختصاصی چند زبانه است که در macOS پشتیبانی می‌شود.

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

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

## جستارهای وابسته
* مقایسه محیط‌های یکپارچه توسعه نرم‌افزار
* آی‌دی‌ای وینگ
* آی‌دی‌ال‌ئی
* پای‌دو
* اکلیپس

## منابع

* 

## پیوند به بیرون

* 

رده:ابزارهای برنامه‌نویسی
رده:برنامه‌نویسی
رده:پایتون (زبان برنامه‌نویسی)
رده:محیط‌های توسعه مجتمع
رده:ویرایشگر کد (IDE)