Ambiente de desenvolvimento integrado

Da Wikipédia, a enciclopédia livre
Ir para a navegação Saltar para pesquisar

Anjuta é um IDE para programação C e C++ no ambiente de desktop GNOME .

Um ambiente de desenvolvimento integrado ( IDE ) é um aplicativo de software que fornece recursos abrangentes para programadores de computador para desenvolvimento de software . Um IDE normalmente consiste em pelo menos um editor de código-fonte , ferramentas de automação de compilação e um depurador . Alguns IDEs, como NetBeans e Eclipse , contêm o compilador , o interpretador ou ambos necessários; outros, como SharpDevelop e Lazarus , não.

A fronteira entre um IDE e outras partes do ambiente de desenvolvimento de software mais amplo não é bem definida; às vezes, um sistema de controle de versão ou várias ferramentas para simplificar a construção de uma interface gráfica do usuário (GUI) são integrados. Muitos IDEs modernos também têm um navegador de classes , um navegador de objetos e um diagrama de hierarquia de classes para uso no desenvolvimento de software orientado a objetos .

Visão geral

Vim com preenchimento automático e linting integrados por meio de um plug-in externo

Os ambientes de desenvolvimento integrados são projetados para maximizar a produtividade do programador, fornecendo componentes unidos com interfaces de usuário semelhantes . Os IDEs apresentam um único programa no qual todo o desenvolvimento é feito. Este programa normalmente fornece muitos recursos para criação, modificação, compilação, implantação e depuração de software. Isso contrasta com o desenvolvimento de software usando ferramentas não relacionadas, como vi , GDB , GCC ou make .

Um dos objetivos do IDE é reduzir a configuração necessária para reunir vários utilitários de desenvolvimento; em vez disso, ele fornece o mesmo conjunto de recursos de uma unidade coesa. Reduzir o tempo de configuração pode aumentar a produtividade do desenvolvedor, especialmente nos casos em que aprender a usar o IDE é mais rápido do que integrar e aprender manualmente todas as ferramentas individuais. A integração mais estreita de todas as tarefas de desenvolvimento tem o potencial de melhorar a produtividade geral além de apenas ajudar nas tarefas de configuração. Por exemplo, o código pode ser analisado continuamente enquanto está sendo editado, fornecendo feedback instantâneo quando erros de sintaxe são introduzidos, permitindo assim que os desenvolvedores depurem o código com muito mais rapidez e facilidade com um IDE.

Alguns IDEs são dedicados a uma linguagem de programação específica , permitindo um conjunto de recursos que mais se aproxima dos paradigmas de programação da linguagem. No entanto, existem muitos IDEs de vários idiomas.

Embora a maioria dos IDEs modernos sejam gráficos, os IDEs baseados em texto, como o Turbo Pascal , eram de uso popular antes da disponibilidade de sistemas de janelas como o Microsoft Windows e o X Window System (X11). Eles geralmente usam teclas de função ou teclas de atalho para executar comandos ou macros usados ​​com frequência.

História

GNU Emacs , um editor extensível que é comumente usado como IDE em sistemas do tipo Unix

IDEs inicialmente se tornaram possíveis ao desenvolver por meio de um console ou terminal . Os primeiros sistemas não suportavam um, pois os programas eram preparados usando fluxogramas, inserindo programas com cartões perfurados (ou fita de papel, etc.) antes de enviá-los a um compilador . Dartmouth BASIC foi a primeira linguagem a ser criada com um IDE (e também foi a primeira a ser projetada para uso sentado na frente de um console ou terminal). [ carece de fontes ] Seu IDE (parte do Dartmouth Time Sharing System ) era baseado em comandos e, portanto, não se parecia muito com os IDEs gráficos orientados a menus populares após o advento doInterface gráfica do usuário . No entanto, integrou edição, gerenciamento de arquivos, compilação, depuração e execução de maneira consistente com um IDE moderno.

O Maestro I é um produto da Softlab Munich e foi o primeiro ambiente de desenvolvimento integrado do mundo [1] para software. O Maestro I foi instalado para 22.000 programadores em todo o mundo. Até 1989, existiam 6.000 instalações na República Federal da Alemanha . Maestro foi sem dúvida o líder mundial neste campo durante os anos 1970 e 1980. Hoje um dos últimos Maestro I pode ser encontrado no Museu de Tecnologia da Informação em Arlington no Texas.

Um dos primeiros IDEs com conceito de plug-in foi o Softbench . Em 1995 , a Computerwoche comentou que o uso de um IDE não foi bem recebido pelos desenvolvedores, pois restringiria sua criatividade.

A partir de janeiro de 2021, os três IDEs cujas páginas de download são mais pesquisadas são Visual Studio , Eclipse e Android Studio . [2]

Tópicos

Destaque de sintaxe

O editor IDE geralmente fornece realce de sintaxe , ele pode mostrar as estruturas, as palavras-chave do idioma e os erros de sintaxe com cores e efeitos de fonte visualmente distintos. [3]

Conclusão de código

A conclusão de código é um recurso importante do IDE, destinado a acelerar a programação. Os IDEs modernos têm até mesmo preenchimento de código inteligente .

Refatoração

IDEs avançados fornecem suporte para refatoração automatizada . [3]

Controle de versão

Espera-se que um IDE forneça controle de versão integrado , a fim de interagir com os repositórios de origem. [3]

Depuração

IDEs também são usados ​​para depuração, usando um depurador integrado , com suporte para definir pontos de interrupção no editor, renderização visual de etapas, etc. [4]

Pesquisa de código

IDEs podem fornecer suporte para pesquisa de código. A pesquisa de código tem dois significados diferentes. Primeiro, significa procurar declarações de classes e funções, usos, leitura/gravação de variáveis ​​e campos, etc. IDEs podem usar diferentes tipos de interface de usuário para pesquisa de código, por exemplo, widgets baseados em formulários [5] e interfaces baseadas em linguagem natural. [6] Em segundo lugar, significa procurar uma implementação concreta de alguma funcionalidade especificada. Isso pode ser feito com técnicas formais [7] ou neurais [8] .

Programação visual

A programação visual é um cenário de uso no qual um IDE geralmente é necessário. O Visual Basic permite que os usuários criem novos aplicativos movendo programação, blocos de construção ou nós de código para criar fluxogramas ou diagramas de estrutura que são compilados ou interpretados. Esses fluxogramas geralmente são baseados na Unified Modeling Language .

Essa interface foi popularizada com o sistema Lego Mindstorms e está sendo ativamente examinada por várias empresas que desejam capitalizar o poder de navegadores personalizados como os encontrados na Mozilla . O KTechlab suporta flowcode e é um IDE e simulador de código aberto popular para desenvolvimento de software para microcontroladores. A programação visual também é responsável pelo poder da programação distribuída (cf. software LabVIEW e EICASLAB ). Um sistema de programação visual inicial, Max , foi modelado após o design de sintetizadores analógicos e tem sido usado para desenvolver software de performance musical em tempo real desde a década de 1980. Outro exemplo inicial foiPrograph , um sistema baseado em fluxo de dados originalmente desenvolvido para Macintosh . O ambiente de programação gráfica "Grape" é usado para programar kits de robôs qfix .

Essa abordagem também é usada em softwares especializados como o Openlab, onde os usuários finais desejam a flexibilidade de uma linguagem de programação completa, sem a tradicional curva de aprendizado associada a uma.

Suporte a idiomas

Alguns IDEs suportam vários idiomas, como GNU Emacs baseado em C e Emacs Lisp ; IntelliJ IDEA , Eclipse , MyEclipse ou NetBeans , baseado em Java ; MonoDevelop , baseado em C# ; ou PlayCode.

O suporte para idiomas alternativos geralmente é fornecido por plugins , permitindo que eles sejam instalados no mesmo IDE ao mesmo tempo. Por exemplo, Flycheck é uma extensão de verificação de sintaxe dinâmica e moderna para o GNU Emacs 24 com suporte para 39 idiomas. [9] Eclipse e Netbeans possuem plugins para C / C++ , Ada , GNAT (por exemplo AdaGIDE ), Perl , Python , Ruby e PHP , que são selecionados automaticamente com base na extensão do arquivo, ambiente ou configurações do projeto.

Atitudes em diferentes plataformas de computação

Os programadores Unix podem combinar ferramentas POSIX de linha de comando em um ambiente de desenvolvimento completo, capaz de desenvolver grandes programas como o kernel Linux e seu ambiente. [10] Nesse sentido, todo o sistema Unix funciona como um IDE. [11] As ferramentas GNU de software livre ( GNU Compiler Collection (GCC), GNU Debugger (GDB) e GNU make ) estão disponíveis em muitas plataformas, incluindo Windows. [12] A filosofia universal do Unix de "tudo é um fluxo de texto" permite que os desenvolvedores que preferem a linha de comandoferramentas orientadas para usar editores com suporte para muitas das ferramentas de compilação padrão Unix e GNU, construindo um IDE com programas como Emacs [13] [14] [15] ou Vim . O Data Display Debugger pretende ser um front-end gráfico avançado para muitas ferramentas padrão de depuradores baseados em texto. Alguns programadores preferem gerenciar makefiles e seus derivados às ferramentas de construção de código semelhantes incluídas em um IDE completo. Por exemplo, a maioria dos contribuidores do banco de dados PostgreSQL usa make e GDB diretamente para desenvolver novos recursos. [16] Mesmo ao construir o PostgreSQL paraMicrosoft Windows usando o Visual C++ , os scripts Perl são usados ​​como um substituto para make em vez de depender de qualquer recurso IDE. [17] Alguns IDEs do Linux, como o Geany , tentam fornecer um front-end gráfico para operações de compilação tradicionais.

Nas várias plataformas Microsoft Windows , as ferramentas de linha de comando para desenvolvimento raramente são usadas. Assim, existem muitos produtos comerciais e não comerciais. No entanto, cada um tem um design diferente comumente criando incompatibilidades. A maioria dos principais fornecedores de compiladores para Windows ainda oferece cópias gratuitas de suas ferramentas de linha de comando, incluindo a Microsoft ( Visual C++ , Platform SDK , .NET Framework SDK, utilitário nmake ).

Os IDEs sempre foram populares no Mac OS e macOS clássico do Apple Macintosh , desde os ambientes Macintosh Programmer's Workshop , Turbo Pascal , THINK Pascal e THINK C de meados da década de 1980. Atualmente os programadores de macOS podem escolher entre IDEs nativos como Xcode e ferramentas de código aberto como Eclipse e Netbeans . O ActiveState Komodo é um IDE multilíngue proprietário com suporte no macOS.

Inteligência artificial

Alguns recursos dos IDEs podem se beneficiar dos avanços da IA . [18] Em particular, pode-se coletar informações das ações do IDE entre os desenvolvedores para aumentar os recursos do IDE. [19] Por exemplo, uma abordagem orientada a dados para conclusão de código resulta em conclusão de código inteligente .

Ambiente de desenvolvimento integrado da Web

Um ambiente de desenvolvimento integrado da Web (Web IDE), também conhecido como IDE Online ou Cloud IDE , é um IDE baseado em navegador que permite o desenvolvimento de software ou desenvolvimento da Web. [20] Um web IDE pode ser acessado a partir de um navegador web, permitindo um ambiente de trabalho portátil. Um IDE da Web geralmente não contém todos os mesmos recursos de um IDE tradicional ou de desktop, embora todos os recursos básicos do IDE, como realce de sintaxe, estejam normalmente presentes.

Veja também

Referências

  1. ^ "Interaktives Programmieren als Systems-Schlager" de Computerwoche ( alemão )
  2. ^ "Índice do ambiente de desenvolvimento integrado superior do IDE superior" . pypl.github.io .
  3. ^ a b c "Curso CS350 Integrated Development Environments" . cs.odu.edu . Universidade do Velho Domínio . Recuperado em 10 de outubro de 2018 .
  4. ^ "Software de programação e o IDE" . BBC Bitesize . Recuperado em 10 de outubro de 2018 .
  5. ^ "Livro de receitas Eclipse - Pesquisando código" . O'Reilly .
  6. ^ Kimmig, Markus; Monperrus, Martin; Mezini, Mira (2011). "Consultando o código-fonte com linguagem natural" . 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011) . pp. 376-379. arXiv : 1205.6361 . doi : 10.1109/ASE.2011.6100076 . ISBN 978-1-4577-1639-3. S2CID  6898947 .
  7. ^ Stolee, Kathryn T.; Elbaum, Sebastião; Dobos, Daniel (2014). "Resolvendo a Pesquisa de Código Fonte" . Transações ACM em Engenharia de Software e Metodologia . 23 (3): 1–45. doi : 10.1145/2581377 . ISSN 1049-331X . 
  8. ^ Gu, Jian; Chen, Zimin; Monperrus, Martin (2021). "Representação Multimodal para Pesquisa de Código Neural" . 2021 IEEE International Conference on Software Maintenance and Evolution (ICSME) . Luxemburgo: IEEE: 483–494. doi : 10.1109/ICSME52107.2021.00049 . ISBN 978-1-6654-2882-8.
  9. ^ "Introdução - Flycheck 0,18-cvs" . Leia os Documentos . Arquivado a partir do original em 10 de março de 2014 . Recuperado em 10 de março de 2014 .
  10. ^ Rehman, Christopher Paul, Christopher R. Paul. "A Plataforma de Desenvolvimento Linux: Configurando, Usando e Mantendo um Ambiente de Programação Completo". 2002. ISBN 0-13-009115-4 
  11. ^ "UnixIsAnIde" .
  12. ^ ""Use o Emacs com o Microsoft Visual C++... use o Emacs como um IDE"" . Arquivado a partir do original em 4 de julho de 2013.
  13. ^ "Emacs: o IDE de Software Livre | Linux Journal" . www.linuxjournal.com .
  14. ^ "The Common Lisp Cookbook - Usando Emacs como um IDE Lisp" . cl-cookbook.sourceforge.net .
  15. ^ "Emacs como um IDE Perl" . obsidianrook . com .
  16. ^ PostgreSQL "Perguntas frequentes do desenvolvedor - wiki do PostgreSQL" . wiki.postgresql.org . {{cite web}}: Verifique o |url=valor ( ajuda )
  17. ^ "Capítulo 18. Instalação do código-fonte no Windows" . Documentação do PostgreSQL . 29 de setembro de 2021.
  18. ^ Williams, Christina Mercer & Hannah. "Ferramentas de IA que todos os desenvolvedores precisam experimentar" . Techworld .
  19. ^ Bruch, Marcel; Bodden, Eric; Monperrus, Martin; Mezini, Mira (7 de novembro de 2010). IDE 2.0: inteligência coletiva no desenvolvimento de software . FoSER '10. págs. 53-58. doi : 10.1145/1882362.1882374 . ISBN 9781450304276. S2CID  7637561 .
  20. ^ "Ferramentas baseadas na Web vs. baseadas em desktop – EclipseSource" . eclipsesource . com . 19 de junho de 2018.