<!DOCTYPE html>

<html>
    <head>
        <title>NetBeans IDE - Overview</title>
        <meta charset="UTF-8">
        <meta http-equiv="content-language" content="en">
	<meta name="author"   content="jpirek"/>
        <meta name="description" content="NetBeans IDE features overview">
    <link rel="stylesheet" type="text/css" href="../features.css">
    <link rel="stylesheet" type="text/css" href="/images_www/js/colorbox/colorbox.css">
    </head>
    <body>
    <script type="text/javascript" src="/images_www/js/colorbox/jquery.colorbox-min.js"></script>
    <script type="text/javascript">
            $(document).ready(function(){
                $('a.cbox').colorbox({rel:'cbox',opacity:0.7});
            });
        </script>
    <div style="margin:10px 20px 0px 0px;">
      <h1>NetBeans IDE - The Smarter and Faster Way to Code </h1>
      <p class="intro"> NetBeans IDE lets you quickly and easily develop
        Java desktop, mobile, and web applications, as well as HTML5 applications
        with HTML, JavaScript, and CSS. The IDE also provides
        a great set of tools for PHP and C/C++ developers. It is free and open
        source and has a large community of users and developers around
        the world. </p>
      <div class="line">&nbsp;</div>
      <a name="o1"></a> <span id="im1" class="overview-right"><a
          href="/images_www/v7/design/overview/java_technologies.png"
          class="cbox" title="Latest Java Technologies"><img
            src="/images_www/v7/design/overview/image_java_technologies.png"
            alt="" height="253" width="320"></a></span>
      <h2>Best Support for Latest Java Technologies</h2>
      <p>NetBeans IDE is the official IDE for Java 8. With its editors, code
          analyzers, and converters, you can quickly and smoothly upgrade
          your applications to use new Java 8 language constructs, such
          as lambdas, functional operations, and method references.</p>
      <p>Batch 
          analyzers and converters are provided to search through
          multiple applications at the same time, matching patterns for
          conversion to new Java 8 language constructs.</p>
      <p>With its constantly improving Java Editor, many rich features
          and an extensive range of tools, templates and samples, NetBeans
          IDE sets the standard for developing with cutting edge
          technologies out of the box.<br>
        <br>
        <a href="https://netbeans.org/kb/docs/intro-screencasts.html" class="arr-link">Videos and more information</a>
      </p>
      <div class="line">&nbsp;</div>
      <a name="o2"></a> <span class="overview-left" id="im2"><a
          href="/images_www/v7/design/overview/code_editing.png"
          class="cbox" title="Fast &amp; Smart Code Editing"><img
            src="/images_www/v7/design/overview/image_code_editing.png"
            alt="" height="235" width="320"></a></span>
      <h2>Fast &amp; Smart Code Editing</h2>
      <p> An IDE is much more than a text editor. The NetBeans Editor
        indents lines, matches words and brackets, and highlights source
        code syntactically and semantically. It lets you easily
        refactor code, with a range of handy and powerful tools,
        while it also provides code
        templates, coding tips, and code generators. <br>
        <br>
        The editor supports many languages from Java, C/C++, XML and
        HTML, to PHP, Groovy, Javadoc, JavaScript and JSP. Because the
        editor is extensible, you can plug in support for many other
        languages. <br>
        <br>
        <a href="./java/editor.html" class="arr-link">More information on Editing and Refactoring</a>
        <br>
        <a href="./../kb/docs/java/editor-codereference.html" class="arr-link">More information on Code
          Assistance</a><br>
      </p>
      <div class="line">&nbsp;</div>
      <a name="o3"></a> <span class="overview-right" id="im3"><a
          href="/images_www/v7/design/overview/project_management.png"
          class="cbox" title="Easy &amp; Efficient Project Management"><img
src="/images_www/v7/design/overview/image_project_management.png" alt=""
            height="208" width="320"></a></span>
      <h2>Easy &amp; Efficient Project Management</h2>
      <p> Keeping a clear overview of large applications, with thousands
        of folders and files, and millions of lines of code, is a
        daunting task. NetBeans IDE provides different views of your
        data, from multiple project windows to helpful tools for setting
        up your applications and managing them efficiently, letting you
        drill down into your data quickly and easily, while giving you
        versioning tools via Subversion, Mercurial, and Git integration
        out of the box. <br>
        <br>
        When new developers join your project, they can understand the
        structure of your application because your code is
        well-organized. <br>
        <br>
        <a href="./ide/project-management.html" class="arr-link">More information on Project
          Management</a><br>
        <a href="./ide/versioning.html" class="arr-link">More
          information on Versioning</a> </p>
      <div class="line">&nbsp;</div>
      <a name="o4"></a> <span class="overview-left" id="im4"><a
          href="/images_www/v7/design/overview/ui_development.png"
          class="cbox" title="Rapid User Interface Development"><img
            src="/images_www/v7/design/overview/image_ui_development.png"
            alt="" height="170" width="320"></a></span>
      <h2>Rapid User Interface Development</h2>
      <p> Design GUIs for Java SE, HTML5, Java EE, PHP, C/C++, and Java ME applications
        quickly and smoothly by using editors and drag-and-drop tools
        in the IDE. <br>
        <br>
        For Java SE applications, the NetBeans GUI Builder automatically
        takes care of correct spacing and alignment, while supporting
        in-place editing, as well. The GUI builder is so easy to use and intuitive that
        it has been used to prototype GUIs live at customer presentations. <br>
        <br>
        <a href="./web/" class="arr-link">More information on Java EE</a><br>
        <a href="./html5/index.html" class="arr-link">More information on HTML5</a><br>
        <a href="./java-on-client/swing.html" class="arr-link">More information on
          Swing GUI Builder</a><br>
        <a href="./java-on-client/java-me.html" class="arr-link">More information on JavaME</a>
      </p>
      <div class="line">&nbsp;</div>
      <a name="o5"></a> <span class="overview-right" id="im5"><a
          href="/images_www/v7/design/overview/bugfree_code.png"
          class="cbox" title="Write Bug Free Code"><img
            src="/images_www/v7/design/overview/image_bugfree_code.png"
            alt="" height="215" width="320"></a></span>
      <h2>Write Bug Free Code</h2>
      <p> The cost of buggy code increases the longer it remains
        unfixed. NetBeans provides static analysis tools, especially
        integration with the widely used FindBugs tool, for identifying
        and fixing common problems in Java code. In addition, the
        NetBeans Debugger lets you place breakpoints in your source
        code, add field watches, step through your code, run into
        methods, take snapshots and monitor execution as it occurs.<br>
        <br>
        The NetBeans Profiler provides expert assistance for optimizing
        your application's speed and memory usage, and makes it easier
        to build reliable and scalable Java SE, JavaFX and Java EE
        applications. NetBeans IDE includes a visual debugger for Java
        SE applications, letting you debug user interfaces without
        looking into source code. Take GUI snapshots of your
        applications and click on user interface elements to jump back
        into the related source code. <br>
        <br>
        <a href="./java/debugger.html" class="arr-link">More information
          on Debugger and Profiler</a><br>
      </p>
      <div class="line">&nbsp;</div>
      <a name="o6"></a>
      <table>
        <tbody>
          <tr>
            <td class="valign-top">
              <h2>Support for Multiple Languages</h2>
            </td>
            <!--<td></td>--> <td class="valign-top">
              <h2>Cross Platform Support</h2>
            </td>
            <!--<td></td>--> <td class="valign-top">
              <h2>Rich Set of Community Provided Plugins</h2>
            </td>
          </tr>
          <tr>
            <td class="valign-top" style="width:33%;padding-right:10px;">
              <p> NetBeans IDE offers superior support for C/C++ and PHP
                developers, providing comprehensive editors and tools
                for their related frameworks and technologies. In
                addition, the IDE has editors and tools for XML, HTML,
                PHP, Groovy, Javadoc, JavaScript, and JSP. </p>
            </td>
            <!--<td>&nbsp;</td>--> <td class="valign-top"
              style="width:33%;padding-right:10px;">
              <p> NetBeans IDE can be installed on all operating systems
                that support Java, from Windows to Linux to Mac OS X
                systems. Write Once, Run Anywhere, is as true for
                NetBeans IDE as it is for your own applications...
                because NetBeans IDE itself is written in Java, too! </p>
            </td>
            <!--<td>&nbsp;&nbsp;&nbsp;</td>--> <td class="valign-top"
              style="width:33%">
              <p> The NetBeans community is large and active; many users
                are developing new plugins all the time because NetBeans
                IDE is extensible and has well-documented APIs. Are you
                missing a feature in NetBeans IDE? Create a plugin that
                fills the gap and participate in making NetBeans even
                better than it already is!<br>
                <br>
                <a href="http://plugins.netbeans.org/" class="arr-link">Visit
                  NetBeans Plugin Portal</a> </p>
            </td>
          </tr>
        </tbody>
      </table>
      <h2>See Also</h2>
      <ul class="bigger">
        <li><a href="/community/releases/81/index.html">NetBeans IDE 8.1
            Release Page</a> for a list of highlighted features in the
          latest stable release.</li>
        <li><a href="http://wiki.netbeans.org/NewAndNoteworthyNB81">NetBeans
            IDE 8.1 New &amp; Noteworthy page</a> for the complete list
          of features in the latest stable release.<br>
        </li>
      </ul>
    </div>
  </body>
</html>
