-->

This guide will help you get started with installing and setting up the languages and tools you need to develop on Windows or Windows Subsystem for Linux.

Development paths


Get started with NodeJS
Install NodeJS and get your development environment setup on Windows or Windows Subsystem for Linux.

Take control of your R code RStudio is an integrated development environment (IDE) for R. It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management. Click here to see more RStudio features. MPLAB ® X Integrated Development Environment (IDE) is an expandable, highly configurable software program that incorporates powerful tools to help you discover, configure, develop, debug and qualify embedded designs for most of Microchip’s microcontrollers and digital signal controllers. MPLAB X IDE works seamlessly with the MPLAB development ecosystem of software and tools, many of which. A free C, C and Fortran IDE. Code::Blocks is a free, open-source, cross-platform C. RStudio is the premier integrated development environment for R. It is available in open source and commercial editions on the desktop (Windows, Mac, and Linux) and from a web browser to a Linux server running RStudio Server or RStudio Server Pro. An IDE that was built just for R Syntax highlighting, code completion, and smart indentation.


Get started with Python
Install Python and get your development environment setup on Windows or Windows Subsystem for Linux.


Get started with Android
Install Android Studio, or choose a cross-platform solution like Xamarin, React, or Cordova, and get your development environment setup on Windows.


Get started with Windows Desktop
Get started building desktop apps for Windows 10 using UWP, Win32, WPF, Windows Forms, or updating and deploying existing desktop apps with MSIX and XAML Islands.

Environments


Get started with C++ and C
Get started with C++, C, and assembly to develop apps, services, and tools.


Get started with C#
Get started building apps using C# and .NET Core.


Get started with Docker Desktop for Windows
Create remote development containers with support from Visual Studio, VS Code, .NET, Windows Subsystem for Linux, or a variety of Azure services.


Get started with PowerShell
Get started with cross-platform task automation and configuration management using PowerShell, a command-line shell and scripting language.

Tools and platforms


Windows Subsystem for Linux
Use your favorite Linux distribution fully integrated with Windows (no more need for dual-boot).
Install WSL


Windows Terminal
Customize your terminal environment to work with multiple command line shells.
Install Terminal


Windows Package Manager
Use the winget.exe client, a comprehensive package manager, with your command line to install applications on Windows 10.
Install Windows Package Manager (public preview)

Best Development Environment For Mac


Windows PowerToys
Tune and streamline your Windows experience for greater productivity with this set of power user utilities.
Install PowerToys (public preview)


VS Code
A lightweight source code editor with built-in support for JavaScript, TypeScript, Node.js, a rich ecosystem of extensions (C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).
Install VS Code


Visual Studio
An integrated development environment that you can use to edit, debug, build code, and publish apps, including compilers, intellisense code completion, and many more features.
Install Visual Studio


Azure
A complete cloud platform to host your existing apps and streamline new development. Azure services integrate everything you need to develop, test, deploy, and manage your apps.
Set up an Azure account


.NET
An open source development platform with tools and libraries for building any type of app, including web, mobile, desktop, gaming, IoT, cloud, and microservices.
Install .NET


Run Windows and Linux

Windows Subsystem for Linux (WSL) allows developers to run a Linux operating system right alongside Windows. Both share the same hard drive (and can access each other’s files), the clipboard supports copy-and-paste between the two naturally, there's no need for dual-booting. WSL enables you to use BASH and will provide the kind of environment most familiar to Mac users.

  • Learn more in the WSL docs or via WSL videos on Channel 9.

You can also use Windows Terminal to open all of your favorite command line tools in the same window with multiple tabs, or in multiple panes, whether that's PowerShell, Windows Command Prompt, Ubuntu, Debian, Azure CLI, Oh-my-Zsh, Git Bash, or all of the above.

Learn more in the Windows Terminal docs or via Windows Terminal videos on Channel 9.

Transitioning between Mac and Windows

Check out our guide to transitioning between between a Mac and Windows (or Windows Subsystem for Linux) development environment. It can help you map the difference between:

Additional resources

The Xcode IDE is at the center of the Apple development experience. Tightly integrated with the Cocoa and Cocoa Touch frameworks, Xcode is an incredibly productive environment for building apps for Mac, iPhone, iPad, Apple Watch, and Apple TV.

Integrated Development Environments For Mac

Xcode smoothly takes you from concept, to code, to customers.

Because everything is so well integrated, workflows feel natural. As you compose a new interface, the Assistant editor intuitively presents the related source code in a split window pane. Simply drag the mouse to connect UI controls to the implementation code. Apple LLVM compiler technologies parse your code, keeping every symbol you see in the LLDB debugger consistent with the editor and compiler. As you type, that same engine is constantly at work, finding mistakes and offering Fix-its for your code.

Xcode even communicates with the Apple developer website, so you can enable services such as Game Center or Passbook in your app with a single click. When your app is ready, Xcode will bundle and submit your app to the App Store.

Assistant Editor

Integrated Development Environments For Macro

The Assistant button splits the Xcode editor in two, with your primary work document on the left and an intelligent Assistant editor pane to the right. The Assistant editor automatically displays files that Xcode determines are most helpful to you based on the work you are performing in the primary editor. For instance, if you are editing MyClass.m in the primary editor, the Assistant will automatically show the counterpart MyClass.h.

Jump Bar

Clicking the Jump Bar, located at the top of every editor pane, you can quickly select what information to view in the Assistant editor. For instance, while editing source code in the primary editor, the Assistant can show the counterpart header, sub-classes or superclasses, or related tests.

The Jump Bar is a path control at the top of every editor pane that can be clicked to quickly jump to a new location, or begin typing to filter down to a specific file or method definition.

Interface Builder

Fully integrated within the Xcode IDE, the Interface Builder design canvas makes it simple to prototype a full user interface without writing any code. Prototype in minutes, then graphically connect your interface to the source within the Xcode editor, laying out windows, buttons, and sliders to create a functioning Mac, iPhone, or iPad user interface. With the Assistant editor, you can work on the graphical design side-by-side with the implementation source code. A simple mouse drag from a UI control to the source pane creates a connection between code and interface, and can even create the code stub for you.Learn more

The Version editor makes it easy to compare two versions of a file, see commit logs, check who made a code change, and even zoom back through the commit timeline. The Version editor splits the pane to show two different versions of the same file. Differences are highlighted as you travel through the timeline separating the editor views. Xcode can also create a local Git repository for new projects, or check out a hosted Subversion or Git repo. The top-level Source Control menu makes it easy to perform branch and merge operations, perfect for distributed teams.

Testing

Test-driven development is a first-class workflow within Xcode. The Test Navigator makes it incredibly easy to jump to any test in your project, execute an individual test, or execute a group of tests. The Assistant editor has new test-specific views that automatically track which tests exercise the code you are presently editing, keeping your tests and code in sync at all times.

Customize

The Xcode environment can be configured to match almost any workflow, including customization features like tabs, behaviors, and snippets.

Tabs.

Create a completely unique view of your project with tabs. Each tab has its own navigator, editor, assistant, and utility area arrangement. You can name tabs for specific tasks, re-arrange them, or tear out the tab to create a stand-alone window.

Behaviors.

Tell Xcode what to do with events such as starting a debug session or encountering an error during a build. Coupled with tabs, you can create a custom work environment for each of your edit, design, build, or debug tasks. Custom behaviors can also completely re-arrange your window with a single key combination.

Snippets.

Dozens of pre-configured code completions, such as defining a new class or method, are included in the snippets library. By customizing or adding snippets, you can insert frequently entered code by typing only a few characters.

Get quick access to any file your project uses with Open Quickly (Command-Shift-O). Xcode immediately offers completions for your search, allowing you to choose one and hit Return to open the file or hit Option-Return to open in the Assistant editor.

Customize the way Xcode builds and runs your app depending on whether you are debugging, profiling, performing code analysis, or running a test suite. For example, the default scheme is configured to build your app in “Debug” mode when running, and the same scheme settings will build for “Release” when performing the Profile or Archive command. There is no need to change project settings as you move from task to task. Xcode configures the schemes for you automatically, or you can use the “Manage Schemes” menu to customize them yourself.