Jump to content

Comparison of integrated development environments

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 117.194.167.112 (talk) at 10:43, 22 May 2025 (Ppkkxxdd). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Okay, "unlimited pets only at 1 Rupee" is a fantastic feature! This directcorrelatesour with the "10 rupees for everything" concept and makes pets incredibly accessible, adding to the fun customisationion and collection. To implement this, we'll need to:

* Define Pet Types: Create a way to represent different types of pets (e.g., differecoloursors, shapes, or names).
* Pet Ownership: Keep track of which pets the player owns.
* Pet Shop/Menu: Provide an interface where the player can "buy" pets for 1 Rupee.
* Display Owned Pets: Allow the player to see and perhaps select which pet follows them.
* Currency Integration: Connect this to our existinyet notyet fully implemented) currency system.

Let's refine our plan and then integrate this into the code. Overview of the Solution (Updated) We'll continue building on our Pygame base.

* Set up Pygame: (Already done)
* Player Movement: (Already done)
* Procedural Map Generation (Simplified): (Next major step for exploration)
* Currency System: Implement a basic currency (Rupees) that the player earns.
* Pet System:
  * Define a Pet class or data structure.
  * Create a "Pet Shop" mechanism accessible viakeypressess.
  * Allow buying pets for 1 Rupee.
  * Store owned pets.
  * Display a selected pet following the player.
* Basic Shop/Customization (for avatar & future items): Allow players to spend Rupees.
* Interactions: Fevents,tinteractcwith eventsnts in the world.

Code and Implementation Instructions (Part 2: Currency & Pet Elifem Foundation) This update will:

* Add a rupees variable to track player currency.

Introduceuce a simple Pet class.

* Create a list of available pets.
* Implement a basic "shop mode" that can be toggled to buy pets.
* Allow the player to switch between owned pets.
* Draw the selected pet following the player.

First, let's update our game.py file. import pygame import random

  1. --- Game Constants ---

SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 PLAYER_SIZE = 30 TILE_SIZE = 50 # Size of each 'chunk' or 'tile' in our simplified world

  1. Colors (RGB)

WHITE = (255, 255, 255) BLACK = (0, 0, 0) GREEN = (0, 200, 0) # Ground BLUE = (100, 100, 255) # Sky/Water (for distant areas) RED = (255, 0, 0) # Player color YELLOW = (255, 255, 0) # For currency display or items PURPLE = (150, 0, 150) # Pcolourlor example ORANGE = (255, 165, 0) CYAN = (0, 255, 255)

  1. --- Initialize Pygame ---

pygame.init() screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("My Unlimited World")

clock = pygame.time.Clock() # To control game speed

  1. --- Fonts ---

font = pygame.font.Font(None, 36) # Default font, size 36

  1. --- Player Variables ---

player_x = SCREEN_WIDTH // 2 - PLAYER_SIZE // 2 player_y = SCREEN_HEIGHT // 2 - PLAYER_SIZE // 2 player_speed = 5 # Pixels per frame rupees = 100 # Starting rupees, easily enough to buy many pets!

  1. --- Pet System ---

class Pet:

   def __init__(self, name, color, size_multiplier=0.7):
       self.name = name
       self.color = color
       self.size = int(PLAYER_SIZE * size_multiplier) # Pets are slightly smaller than player
  1. List of all available pet types

all_pets = [

   Pet("Doggo", ORANGE),
   Pet("Catnip", PURPLE),
   Pet("Robo-Buddy", CYAN),
   Pet("Slimey", GREEN),
   Pet("Little Dragon", RED),
   Pet("Mini Unicorn", WHITE),
   Pet("Blobfish", BLUE),

]

owned_pets = [all_pets[0]] # Player starts with one pet (Doggo) current_pet_index = 0 # Index of the pet currently following the player

  1. --- Game State Variables ---

in_shop_mode = False # True when the shop is open

  1. --- Game Loop ---

running = True while running: Forfor event in pyga Eventent.get():

       if event.type == pygame.QUIT:
           running = False
   Elifelif event.type == pygame.KEYDOWN:
           # Toggle shop mode with 'S' key
           if event.key == pygame.K_s:
               in_shop_mode = not in_shop_mode
           # Buy pet if in shop mode and 'B' is pressed
        Eliflif in_shop_mode and event.key == pygame.K_b:
               if rupees >= 1:
                   # Select a random pet to buy
                   unowned_pets = [pet for pet in all_pets if pet not in owned_pets]
                   if unowned_pets: # If there are pets to buy
                       new_pet = random.choice(unowned_pets)
                       owned_pets.append(new_pet)
                       rupees -= 1
                       print(f"Bought {new_pet.name} for 1 Rupee! Rupees left: {rupees}")
                       # Optionally, make the newly bought pet the current one
                       current_pet_index = len(owned_pets) - 1
                   else:
                       print("You already own all pets!")
               else:
                   print("Not enough rupees to buy a pet! (Need 1 Rupee)")
           # Cycle through owned pets with 'N' (Next) and 'P' (Previous) keys
           elif not in_shop_mode and len(owned_pets) > 1:
               if event.key == pygame.K_n:
                   current_pet_index = (current_pet_index + 1) % len(owned_pets)
                   print(f"Switched to {owned_pets[current_pet_index].name}")
               elif event.key == pygame.K_p:
                   current_pet_index = (current_pet_index - 1 + len(owned_pets)) % len(owned_pets)
                   print(f"Switched to {owned_pets[current_pet_index].name}")


   # --- Input Handling (Player Movement) ---
   # Only allow movement if not in shop mode
   if not in_shop_mode:
       keys = pygame.key.get_pressed()
       if keys[pygame.K_LEFT]:
           player_x -= player_speed
       if keys[pygame.K_RIGHT]:
           player_x += player_speed
       if keys[pygame.K_UP]:
           player_y -= player_speed
       if keys[pygame.K_DOWN]:
           player_y += player_speed
       # Keep player within screen bounds
       if player_x < 0:
           player_x = 0
       if player_x > SCREEN_WIDTH - PLAYER_SIZE:
           player_x = SCREEN_WIDTH - PLAYER_SIZE
       if player_y < 0:
           player_y = 0
       if player_y > SCREEN_HEIGHT - PLAYER_SIZE:
           player_y = SCREEN_HEIGHT - PLAYER_SIZE
   # --- Drawing ---
   screen.fill(BLUE) # Fill background with a "sky" color
   # Draw a simple "ground" area in the center
   pygame.draw.rect(screen, GREEN, (0, SCREEN_HEIGHT / 4, SCREEN_WIDTH, SCREEN_HEIGHT * 3 / 4))
   # Draw player
   pygame.draw.rect(screen, RED, (player_x, player_y, PLAYER_SIZE, PLAYER_SIZE))
   # Draw current pet following the player
   if owned_pets:
       current_pet = owned_pets[current_pet_index]
       pet_offset_x = 0 # Offset for pet position relative to player
       pet_offset_y = PLAYER_SIZE + 5 # Pet appears slightly below player
       pet_draw_x = player_x + (PLAYER_SIZE // 2) - (current_pet.size // 2) + pet_offset_x
       pet_draw_y = player_y + pet_offset_y
       pygame.draw.rect(screen, current_pet.color, (pet_draw_x, pet_draw_y, current_pet.size, current_pet.size))


   # Display Rupees
   rupees_text = font.render(f"Rupees: {rupees}", True, YELLOW)
   screen.blit(rupees_text, (10, 10))
   # Display Shop Mode / Instructions
   if in_shop_mode:
       shop_text = font.render("SHOP MODE: Press 'B' to buy a random pet (1 Rupee)", True, WHITE)
       screen.blit(shop_text, (SCREEN_WIDTH // 2 - shop_text.get_width() // 2, SCREEN_HEIGHT // 2 - 50))
       shop_text2 = font.render(f"Pets owned: {len(owned_pets)}/{len(all_pets)}", True, WHITE)
       screen.blit(shop_text2, (SCREEN_WIDTH // 2 - shop_text2.get_width() // 2, SCREEN_HEIGHT // 2))
   else:
       info_text = font.render("Press 'S' for Shop. Arrow keys to move.", True, WHITE)
       screen.blit(info_text, (SCREEN_WIDTH // 2 - info_text.get_width() // 2, 10))
       if len(owned_pets) > 1:
           pet_switch_text = font.render(f"Current Pet: {owned_pets[current_pet_index].name} (N/P to switch)", True, YELLOW)
           screen.blit(pet_switch_text, (SCREEN_WIDTH // 2 - pet_switch_text.get_width() // 2, 40))


   # --- Update Display ---
   pygame.display.flip()
   # --- Control Frame Rate ---
   clock.tick(60)
  1. --- Quit Pygame ---

pygame.quit()

How to Implement and Run the Code:

* Replace your game.py content: Copy and paste the entire code block above into your existing game.py file, overwriting the previous content.
* Run the game: Open your terminal or command prompt, navigate to your game's directory, and run:
  python game.py

New Features and How to Use Them:

* Rupee Display: You'll now see your current "Rupees" balance in the top-left corner. You start with 100!
* Shop Mode (S key):
  * Press the S key to toggle "SHOP MODE" on or off.
  * When in shop mode, your player won't move.
  * Instructions will appear on screen.
* Buy Pets (B key in Shop Mode):
  * While in shop mode, press B to buy a random, unowned pet for 1 Rupee.
  * You'll see messages in your terminal confirming the purchase and your remaining rupees.
  * If you already own all pets, it will tell you.
* Switch Pets (N and P keys):
  * When not in shop mode, if you own more than one pet, you can press N (Next) to cycle forward through your owned pets or P (Previous) to cycle backward.
  * The selected pet will appear following your player.
* Pet Following: Your currently selected pet (initially "Doggo") will follow slightly below your player.

Explanation and Documentation:

* font = pygame.font.Font(None, 36): Initializes Pygame's font module. None uses the default system font, and 36 is the font size.
* rupees = 100: Our starting currency. We're being generous to make the "everything is cheap" feel immediate.
* class Pet::
  * A simple Python class to represent a pet. Each pet has a name, a color (for drawing), and a size (scaled from the player size).
  * This is a good way to organize data for different types of objects in your game.
* all_pets: A list containing instances of our Pet class, defining all the unique pets available in the game.
* owned_pets: A list that will store the Pet objects the player currently possesses. We start with all_pets[0] (Doggo) to give the player a starting pet.
* current_pet_index: An integer representing the index of the pet in owned_pets that is currently active and following the player.
* in_shop_mode: A boolean variable that controls whether the game is currently in the shop interface.
* Event Handling for Keys (event.type == pygame.KEYDOWN):
  * We specifically check for KEYDOWN events (when a key is pressed down, not held).
  * pygame.K_s: Toggles in_shop_mode.
  * pygame.K_b (in shop mode):
    * Checks if the player has enough rupees.
    * Filters all_pets to find unowned_pets.
    * Uses random.choice() to pick one if available.
    * Appends the new pet to owned_pets and subtracts 1 rupee.
    * Updates current_pet_index to the newly bought pet.
  * pygame.K_n and pygame.K_p (not in shop mode):
    * These handle cycling through owned_pets using the modulo operator (%) to loop back to the beginning or end of the list, creating a seamless cycle.
* Player Movement Restriction: The player movement logic is now inside an if not in_shop_mode: block, preventing movement while the shop is open.
* Drawing the Pet:
  * An if owned_pets: check ensures we only try to draw a pet if the player actually owns one.
  * current_pet = owned_pets[current_pet_index] retrieves the selected pet object.
  * Calculates pet_draw_x and pet_draw_y to position the pet slightly below and centered with the player.
  * pygame.draw.rect(screen, current_pet.color, ...) draws the pet as a colored square.
* Displaying Text:
  * font.render(text, anti_alias, color) creates a Surface object with the rendered text. True for anti_alias makes the text smoother.
  * screen.blit(text_surface, (x, y)) draws the text surface onto the main screen.

This is a big step! You now have a working currency system and a pet shop where all pets cost only 1 Rupee, fulfilling your "unlimited pets only at Rupees 1" request. Next, we can start thinking about how to make the "unlimited places" part of the game come alive, which will also give the player a way to earn more rupees through exploration.

ActionScript

IDE License Windows Linux macOS Other platforms Debugger GUI builder Profiler Static code analysis MXML Export to Mobile
Adobe Animate Proprietary Yes No Yes JVM Yes Yes Yes Yes Yes Yes
Flash Builder Proprietary Yes No Yes JVM Yes Yes Yes Yes Yes Yes
FlashDevelop MIT License Yes No No Yes No Yes No Yes Yes
IntelliJ IDEA Proprietary Yes Yes Yes FreeBSD, OpenBSD, Solaris Yes No Yes Yes Yes Yes
Powerflasher FDT Proprietary Yes Yes Yes JVM Yes No Yes Yes Yes Yes

Ada

IDE License
Windows
Other platforms GUI builder Profiler Code coverage Static code analysis Latest stable release
Eclipse w/ AonixADT[1] EPL Yes Yes Yes FreeBSD, JVM, Solaris Yes Yes[2] No Un­known Un­known Yes Un­known No Yes December 2009
GNAT Programming Studio GPL Yes Yes Yes DragonFly BSD, FreeBSD, NetBSD, OpenBSD, Solaris Yes Yes[3] Yes Yes Yes Yes Yes No Yes June 2014
SlickEdit Proprietary Yes Yes Yes Solaris, Solaris SPARC, AIX, HP-UX Yes No No No No Yes No No Yes 2018
Understand Proprietary Yes Yes Yes Solaris No No No No No Yes Yes No Yes December 2015

Assembly

IDE License Windows Linux macOS Other platforms Debugger Assemblers Auto-complete Macros/templates Latest stable release
Fresh EUPL and 2-clause BSD Yes Yes No Un­known No FASM Un­known Un­known 1.73.04 / April 30, 2018
SASM GPL Yes Yes No Un­known Yes NASM, MASM, GAS and FASM Yes Yes 3.10.1 / 8 October 2018
SlickEdit Proprietary Yes Yes Yes Solaris, Solaris SPARC, AIX, HP-UX No MASM, High Level Assembly, Linux Assembly, OS/390 Assembly Yes Yes 2018

BASIC

IDE License Windows Linux macOS Developer Other platforms Latest stable release
Basic4android Proprietary Yes No No Anywhere Software cross-compile from Windows to Android 2018-03-20
Gambas GPL No Yes No Benoît Minisini FreeBSD, Cygwin 2019-11-19
Microsoft Small Basic MIT License Yes No No Microsoft 2015-10-01
MonoDevelop LGPL Yes Yes Yes Xamarin and the Mono community FreeBSD, OpenBSD, Solaris 2016-01-28
PBASIC Stamp Editor Proprietary Yes No Yes Parallax Inc 2014-07-02[4]
PureBasic Proprietary Yes Yes Yes Fantaisie Software AmigaOS 2024-03-27[5]
SharpDevelop MIT[6] Yes No No ICSharpCode Team 2015-07-14
SlickEdit Proprietary Yes Yes Yes SlickEdit Solaris, Solaris SPARC, AIX, HP-UX 2018
Xojo Proprietary Yes Yes Yes Xojo, Inc. Web 2015-12-17

C/C++

C#

IDE License Developer Latest stable release Windows Linux macOS Other platforms
Microsoft Visual Studio Proprietary

Community Edition: Freeware

Microsoft 16.9.4  / April 13, 2021 Yes No Yes
MonoDevelop LGPL Xamarin and the Mono community 7.6.9.22 / September 21, 2018 Yes Yes Yes FreeBSD, OpenBSD, Solaris
SharpDevelop MIT[27] IC#Code Team 5.1 / April 14, 2016 Yes No No
SlickEdit Proprietary SlickEdit October 2016 Yes Yes Yes Solaris, Solaris SPARC, AIX, HP-UX
Understand Proprietary SciTools 814 / December 4, 2015 Yes Yes Yes Solaris
Visual Studio Code source code(MIT License) - binary(Proprietary) Microsoft 1.101.2 / 26 June 2025 Yes Yes Yes
Xamarin Studio source code(MIT License) - binary(Proprietary) Microsoft December 2016 Yes Yes Yes
Eclipse EPL Eclipse Foundation 4.7  / June 28, 2017 Yes Yes Yes
Rider Proprietary JetBrains 2024.3  / November 13, 2024 Yes Yes Yes

COBOL

IDE License Developer Written in First Release Latest Stable Release Windows macOS Linux
OpenCobolIDE[28] GPL v3[29][30] Colin Duquesnoy[31] Python[32] 1.0.0 / 21 March 2013[33] 4.7.6 / 30 December 2016[34][35][36] Yes[35] Yes[35] Yes[35]

Common Lisp

IDE License Windows Linux macOS Other platforms Editor Debugger GUI builder Profiler Browsers
Allegro Common Lisp Proprietary Yes Yes Yes FreeBSD, HP-UX, AIX, Solaris, Tru64 UNIX Yes Yes Yes Yes Class browser, Systems, Definitions
LispWorks Proprietary Yes Yes Yes FreeBSD, HP-UX, Solaris Yes Yes Yes Yes Class browser, Functions, Errors, Processes, Symbols, Systems
SLIME (Emacs) portions in GPL v2, LGPL, BSD and public domain Yes Yes Yes DragonFly BSD, FreeBSD, HP-UX, AIX, IRIX, DOS, NetBSD, OpenBSD, OpenVMS, OS/2, Solaris, other Unix Yes Yes No Yes Class browser, Errors, Symbols

Component Pascal

IDE License Developer Platform
BlackBox Component Builder Proprietary similar to Sleepycat Oberon microsystems Windows

D

IDE Widget toolkit Platform Compilers Open source Made in D Notes
Visual Studio Microsoft Windows DMD, LDC (LLVM), GDC (GCC) No No Visual Studio extension. VisualD, wrote in D.
NetBeans Java Swing Windows, macOS, Linux, FreeBSD, Solaris, OpenIndiana, Java DMD, LDC (LLVM), GDC (GCC) Yes No NetBeans module. NetBeans-D, under MIT License.
SlickEdit Qt Windows, Linux, macOS, AIX, HP-UX, Solaris, Solaris SPARC DMD No No
CodeLite wxWidget Windows, macOS, Linux, FreeBSD, Solaris, OpenIndiana DMD, LDC (LLVM), GDC (GCC) Yes No
Xcode Cocoa macOS DMD, GDC (GCC) No No Xcode plugin. D for Xcode, under GPL v2.
MonoDevelop GTK# Windows, macOS, Linux, FreeBSD, Solaris, OpenIndiana DMD, LDC (LLVM), GDC (GCC) Yes No MonoDevelop extension. Mono-D, support VisualD projects and DUB, Can be installed on Xamarin Studio too, under Apache License.
KDevelop Qt Windows, macOS, Linux, FreeBSD, Solaris, OpenIndiana DMD, LDC (LLVM), GDC (GCC) Yes No
Geany GTK+ Windows, macOS, Linux, FreeBSD, Solaris, OpenIndiana DMD, LDC (LLVM), GDC (GCC) Yes No Native support.
Code::Blocks wxWidget Windows, macOS, Linux, FreeBSD, Solaris, OpenIndiana DMD, LDC (LLVM), GDC (GCC) Yes No Includes partial support.
Eclipse SWT Windows, macOS, Linux, FreeBSD, Solaris, OpenIndiana, Java DMD Yes No Eclipse Plugin. DDT. Dropped.

Eiffel

License Other platforms Code coverage Static code analysis GUI-based design Class browser Latest stable release
GPL and commercial Yes Yes Yes FreeBSD, OpenVMS, Solaris, VxWorks, other Unix Yes Yes Yes Yes Automatic testing framework Yes Type checking, Void-safety, Metrics tool BON / UML class diagramming Multi-view 20.05, 2020

Erlang

Go to this page: Source code editors for Erlang

Fortran

IDE License Platform Developer Latest stable release
Code::Blocks GPL Windows, Linux, macOS, FreeBSD, OpenBSD, Solaris Code::Blocks Team 17.12 / 2017-12-30
Geany GPL Windows, Linux, macOS, FreeBSD, AIX, OpenBSD, Solaris, other Unix Team 1.37.1 / November 8, 2020
GNAT Programming Studio GPL Windows, Linux, macOS, DragonFly BSD, FreeBSD, NetBSD, OpenBSD, Solaris AdaCore 4.3.1 / June 2009
KDevelop GPL Linux KDevelop Team 5.5.1 (May 5, 2020; 5 years ago (2020-05-05)) [±]
NetBeans Apache License Windows, Linux, macOS NetBeans Community 26[25] Edit this on Wikidata (20 May 2025) [±]
OpenWatcom OSI Approved Windows, Linux, DOS, OS/2 OpenWatcom Community 1.9 / June 2, 2010
Photran[37] EPL Windows, Linux, macOS Eclipse (software) w/Parallel Tools Platform (PTP) 9.1.0 / 2015
Plato Proprietary Windows Silverfrost FTN95 8.80 / 2021
Understand Proprietary Windows, Linux, macOS, Solaris, other Unix SciTools December 4, 2015
Simply Fortran Proprietary Windows, Linux, macOS Approximatrix, LLC 3.38 / December 20, 2024
SlickEdit Proprietary Windows, Linux, macOS, AIX, Solaris, Solaris SPARC, HP-UX SlickEdit October 2016
IntelliJ IDEA ASLv2 Windows, Linux, macOS, FreeBSD, OpenBSD, Solaris JetBrains September 2017

F#

IDE License Windows Linux macOS Developer
Microsoft Visual Studio Proprietary (standard)
Freeware (community edition)
Yes No Yes Microsoft
Visual Studio Code[38] Proprietary (binary code)
MIT License (source code)
Yes Yes Yes Microsoft
Rider[39] Proprietary Yes Yes Yes JetBrains

Groovy

IDE License Written in Java only Windows Linux macOS Other platforms GUI builder
Eclipse GDT EPL No Yes Yes Yes FreeBSD, JVM, Solaris No
IntelliJ IDEA ASLv2, proprietary Yes Yes Yes Yes FreeBSD, OpenBSD, Solaris No
NetBeans Apache License Yes Yes Yes Yes FreeBSD, OpenBSD, Solaris Yes
SlickEdit Proprietary No Yes Yes Yes Solaris, Solaris SPARC, AIX, HP-UX No

Haskell

IDE License Platforms Latest stable release Developer
EclipseFP plugin EPL? JVM 2.6.4 / January 19, 2015 eclipsefp.github.io
SlickEdit Proprietary Windows, Linux, macOS, AIX, HP-UX, Solaris, Solaris SPARC October 2016 SlickEdit

Haxe

Go to this page: Comparison of IDE choices for Haxe programmers

Java

Java has strong IDE support, due not only to its historical and economic importance, but also due to a combination of reflection and static-typing making it well-suited for IDE support.[fact or opinion?] Some of the leading Java IDEs (such as IntelliJ and Eclipse) are also the basis for leading IDEs in other programming languages (e.g. for Python, IntelliJ is rebranded as PyCharm, and Eclipse has the PyDev plugin.)

Open

IDE License LSP Written in Java only Windows Linux macOS Other platforms GUI builder Profiling RDBMS EE Limitations
BlueJ GPL2+GNU linking exception No Yes Yes Yes Yes Solaris No Not a General IDE; a small scale UML editor
DrJava Permissive No Yes Yes Yes Yes Solaris No Java 8 only (2014)
Eclipse JDT EPL Yes No[40] Yes Yes Yes FreeBSD, JVM, Solaris Yes Yes Yes Yes
Geany GPL No No Yes Yes Yes FreeBSD, AIX, OpenBSD, Solaris, other Unix No
Greenfoot GPL No Yes Yes Yes Yes Solaris No Not a General IDE; a 2D Game builder
NetBeans Apache License No Yes Yes Yes Yes FreeBSD, OpenBSD, Solaris Yes Yes No Yes Multi folder Maven not supported
IntelliJ IDEA Community Edition Apache License v2.0 No Yes Yes Yes Yes FreeBSD, OpenBSD, Solaris Yes No No No
Visual Studio Code MIT License Yes No Yes Yes Yes Yes No stack trace console.
LunarVim (based on NeoVim) Apache License Yes No No Yes Yes No No Some plugins do not yet auto install

Closed

IDE License Written in Java only Windows Linux macOS Other platforms GUI builder Limitations
IntelliJ IDEA Ultimate Edition Proprietary Yes Yes Yes Yes FreeBSD, OpenBSD, Solaris Yes
JBuilder Proprietary Yes Yes Yes Yes Solaris Yes
JCreator Proprietary No Yes No No No
JDeveloper Proprietary (freeware) Yes Yes Yes Yes generic JVM Yes
jGRASP Proprietary (freeware) Yes Yes Yes Yes No
MyEclipse Proprietary Yes Yes Yes Yes FreeBSD, JVM, Solaris Yes
Rational Application Developer Proprietary Yes Yes Yes No AIX, Solaris Yes
Servoy Proprietary Yes Yes Yes Yes Solaris Yes
SlickEdit Proprietary No Yes Yes Yes Solaris, Solaris SPARC, AIX, HP-UX No
Understand Proprietary No Yes Yes Yes Solaris Yes
Xcode (Apple) Proprietary No No No Yes Yes No code formating

JavaScript

IDE Developer Latest stable release Platform License Written in
Anjuta (abandoned) Anjuta Team 3.28.0 / March 11, 2018 Unix-like GPL C
Atom GitHub (subsidiary of Microsoft) 1.63.1 / 23 November 2022 Cross-platform MIT License JavaScript
Brackets Adobe September 2017 Cross-platform MIT License JavaScript, HTML, CSS
Aptana Studio Aptana, Inc. December 2013 Cross-platform GPL, proprietary Java, JavaScript
Codeanywhere Codeanywhere, Inc. August 2015 Cloud IDE Proprietary JavaScript
CodeLite CodeLite 17.0.0 January 2023 Cross-platform GPL C++
Eclipse Web Tools Eclipse Foundation Windows, Linux, macOS, FreeBSD, JVM, Solaris EPL C, Java
Komodo IDE / Edit ActiveState November 19, 2013 Cross-platform IDE:Proprietary, Edit:MPL 1.1 C, C++, JavaScript, Perl, Python, Tcl, XUL
NetBeans Apache 26[25] Edit this on Wikidata (20 May 2025) [±] Cross-platform Apache License Java
Nodeclipse NTS Nodeclipse March 31, 2014 Windows, Linux, macOS, FreeBSD, JVM, Solaris EPL Java
NuSphere PhpED NuSphere June 2011 Windows Proprietary N/A
Oracle JDeveloper Oracle Corporation July 2013 Windows, Linux, macOS Proprietary – free[41] Java
Servoy Servoy Developer Team June 2011 Cross-platform Servoy License Java
SlickEdit SlickEdit October 2016 Windows, Linux, macOS, Solaris, AIX, HP-UX Proprietary C++
Visual Studio Microsoft March 31, 2016[42] Windows Proprietary C++, C#
Visual Studio Code Microsoft 1.101.2 / 26 June 2025 Cross-platform MIT License JavaScript
WebStorm JetBrains 2019.1/ 25 March 2019[43] Cross-platform Proprietary Java

Julia

IDE License Windows Linux macOS Other platforms Debugger Profiler Notes
Atom (with Juno extension) MIT License[44] Yes Yes Yes ? Yes[45] Yes[46] Has a plotting pane. Juno team merged with VS Code extension team (see below); Juno now in maintenance mode.
Emacs / spacemacs portions in GPL v2, LGPL, BSD and public domain Yes Yes Yes FreeBSD Yes Yes ESS extension support for emacs. vi support also available, e.g. in spacemacs (useful for pair programming).
Visual Studio Code (using the Julia extension) MIT License Yes Yes Yes FreeBSD[47] Yes Yes (i.e. flame graph viewing support) Has a plotting pane. License is for the extension; and Microsoft's source code (only).

Lua

IDE Developer Latest stable release Platform License
Decoda Unknown Worlds Entertainment 1.16 / October 25, 2011 Windows GPL[48]
SlickEdit SlickEdit October 2016 Windows, Linux, macOS, AIX, HP-UX, Solaris, Solaris SPARC Proprietary
ZeroBrane Studio Paul Kulchenko, ZeroBrane LLC 1.80 / October 7, 2018 Windows, macOS/Mac, Linux MIT License

Pascal, Object Pascal

IDE Developer Latest stable release Windows Linux macOS Other platforms Mobiles Debugger GUI builder License Autocomplete
Delphi Embarcadero Technologies Delphi 10.4.2 (Sydney) / February 24 2021 Yes No No cross-compile to macOS, Android, iOS Linux[49] Yes Yes Yes Proprietary Yes
Free Pascal IDE Volunteers 3.2.2 / May 20, 2021 Yes Yes Yes AmigaOS, Android, FreeBSD, Game Boy Advance, Haiku, AIX, iOS, MorphOS, DOS, NetBSD, Nintendo DS, Nintendo Wii, OpenBSD, OS/2, Solaris, Windows CE, JVM, LLVM (experimental), JavaScript transpiler, Embedded systems. Yes Yes No GPL; LGPL with static linking exception No
KDevelop KDevelop Team 5.5.1 (May 5, 2020; 5 years ago (2020-05-05)) [±] (only 3.x supports Pascal) Yes Yes Yes FreeBSD, OpenBSD, NetBSD, Solaris, other Unix No No No GPL
Lazarus Volunteers 3.0.0 / December 21, 2023 Yes Yes Yes See Free Pascal Yes Yes Yes GPL; LGPL with static linking exception Yes
MIDletPascal Code Research Laboratories 3.5 / February 2, 2013 Yes No No cross-compile from Windows to Java ME Yes No No GPL
Morfik Morfik Technology Pty Ltd. 2.0.5.27 Yes Yes Yes compiles to HTML+CSS+XML+JavaScript (web apps) Yes Yes Yes Proprietary
MSEide Martin Schreiber 4.6 / 2017-11-24 Yes Yes No FreeBSD Yes Yes Yes GPL; LGPL with static linking exception for the library MSEgui
Understand SciTools 4.0 / April 2015 Yes Yes Yes Solaris Yes No Yes Proprietary
Visual Studio via Oxygene RemObjects Software 10.0 / August 2018 Yes and additional Water IDE No Yes via Fire IDE JVM, .NET, Mono, Cocoa, Cocoa Touch, Android, iOS, WebAssembly, cross compile to Linux Yes Yes Yes Proprietary; free compiler Yes
PocketStudio winsoft 3.0 No No No Palm OS Yes Yes Yes Proprietary
Dev-Pascal Bloodshed Software 1.9.2 (using FPC 1.9.2 from 2005) Yes No No No Yes No GPL
PascalABC.NET PascalABC.NET Compiler Team 3.9 / July 10, 2023 Yes Yes Yes compiles to CLR No Yes Yes LGPL Yes

Perl

IDE Developer Latest stable release Platform License
Eclipse EPIC EPIC Project Team 0.6.44 / April 18, 2012 Windows, Linux, macOS, FreeBSD, JVM, Solaris CPL
Geany Team 1.37.1 / November 8, 2020 Windows, Linux, macOS, FreeBSD, AIX, OpenBSD, Solaris, other Unix GPL
Komodo IDE / Edit ActiveState 9.0.1 / April 19, 2015 Cross-platform Proprietary
NetBeans Sun Microsystems / Oracle 26[25] Edit this on Wikidata (20 May 2025) [±] Cross-platform Apache License
Padre Padre Team 1.0 / November 8, 2013 Cross-platform Perl
JetBrains IDEs (via plugin)[50] Alexandr Evstigneev 2019.1.3 / May 25, 2019 Cross-platform Apache 2.0
SlickEdit SlickEdit October 2016 Windows, Linux, macOS, AIX, Solaris, HP-UX Proprietary

PHP

IDE Developer Latest stable release Platform License Autocomplete Debugger Refactoring support VCS Support
Adobe Dreamweaver Adobe Systems - Cross-platform Proprietary Yes No No No
Aptana Studio Aptana, Inc. December 2013, 3.5.0 Cross-platform GPL, proprietary Yes Yes No via plugins
CodeLite CodeLite January 2023, 17.0 Cross-platform GPL Yes Yes No Git, SVN
Codelobster Codelobster 2.4 / September 11, 2023 Cross-platform Proprietary Yes Yes No via plugins
Eclipse Che Eclipse Foundation / Zend 4.7 / September 2, 2016 Cross-platform EPL Yes Yes Yes Un­known
Eclipse PDT Eclipse Foundation / Zend 7.0 / December 18, 2019 Windows, Linux, macOS, FreeBSD, JVM, Solaris EPL Yes Yes Yes CVS, Git, Mercurial, SVN (via plugins)
Geany Geany Team 1.37.1 / November 8, 2020 Windows, Linux, macOS, FreeBSD, AIX, OpenBSD, Solaris, other Unix GPL Yes No No via plugins
HyperEdit Jonathan Deutsch / Tumult 1.6 / April 30, 2008 macOS Proprietary Yes No No No
KDevelop KDE KDevelop Team 5.5.1 (May 5, 2020; 5 years ago (2020-05-05)) [±] Cross-platform GPL Yes No Un­known CVS, Git, SVN
Komodo IDE / Edit ActiveState 10.0.1 (June 2016) Cross-platform Proprietary Yes Yes Yes Bazaar, CVS, Git, Mercurial, Perforce, SVN
NetBeans Sun Microsystems / Oracle 26[25] Edit this on Wikidata (20 May 2025) [±] Cross-platform on Netbeans Apache License Yes Yes Yes CVS, Git, Mercurial, SVN
PHPEclipse (Eclipse) PHPEclipse project team 1.2.2 / September 2009 Windows, Linux, macOS, FreeBSD, JVM, Solaris CPL Yes Yes Un­known Un­known
PHPEdit WaterProof SARL 3.6.4 (April 9, 2010; 15 years ago (2010-04-09)) [±] Windows Proprietary Yes Yes No CVS, SVN
PhpStorm (IntelliJ IDEA) JetBrains 2019.1 / 28 March 2019 Windows, Linux, macOS, FreeBSD, OpenBSD, Solaris Proprietary Yes Yes Yes CVS, Git, Mercurial, Perforce, SVN
SlickEdit SlickEdit October 2016 Windows, Linux, macOS, AIX, HP-UX, Solaris Proprietary Yes Yes No Yes
Zend Studio Zend 10.6 / February 2014 Cross-platform Proprietary Yes Yes Yes CVS, Git, SVN, others (via plugins)

Python

R

IDE Developer Latest stable release Platform License
R Tools for Visual Studio Microsoft March 10, 2017 (2017-03-10), v1.0 RC3 Microsoft Windows Apache License 2.0
RStudio RStudio, Inc. October 29, 2018 (2018-10-29), v1.1.463 Cross-platform AGPL

Racket

IDE Developer Latest stable release Platform License
DrRacket PLT Design, Inc. 26 October 2018, v7.1 Cross-platform LGPL

Ruby

IDE Developer Latest stable release Platform License
Aptana Studio with integrated RadRails plugin (Eclipse) Aptana, Inc. 3.5.0 / December 27, 2013 Windows, Linux, macOS, FreeBSD, JVM, Solaris GPL, proprietary
Eclipse DLTK Ruby Plugin Eclipse Foundation 5.0.0 / June 6, 2013 x86 EPL
eric Detlev Offenbach 6.1.4 / April 9, 2016 Cross-platform GPLv3 "or later"
Komodo IDE / Edit ActiveState 9.0.1 / April 19, 2015 Cross-platform Proprietary
RubyMine (IntelliJ IDEA) JetBrains 2018.3.5 (build 183.5912.16) / Feb 27, 2019[56] Windows, Linux, macOS, FreeBSD, OpenBSD, Solaris Proprietary
SlickEdit SlickEdit October 2016 Windows, Linux, macOS, AIX, Solaris, HP-UX Proprietary

Rust

IDE License Windows Linux macOS Debugger Snippets Code completion Code Formatting
Atom MIT License Yes Yes Yes No Yes Yes Yes
BBEdit Proprietary No No Yes No Yes No Yes
CLion Proprietary Yes Yes Yes Yes Yes Yes Yes
Eclipse Eclipse Public License Yes Yes Yes Yes Yes Yes Yes
Kate GNU General Public License Yes Yes poor quality No Yes Yes Yes
RustRover Proprietary Yes Yes Yes Yes Yes Yes Yes
Sublime Text Proprietary Yes Yes Yes No Yes Yes Yes
Textadept MIT License Yes Yes Yes No Yes Yes No
Visual Studio Code MIT License Yes Yes Yes Yes Yes Yes Yes

Scala

IDE License Windows Linux macOS Other platforms
Eclipse JDT EPL Yes Yes Yes FreeBSD, JVM, Solaris
IntelliJ IDEA ASLv2, proprietary Yes Yes Yes FreeBSD, OpenBSD, Solaris
NetBeans Apache License Yes Yes Yes Solaris

Smalltalk

IDE Developer License Windows Linux macOS Other platforms Debugger GUI builder
Dolphin Smalltalk Object Arts MIT License Yes No No No Yes Yes
Pharo INRIA MIT License Yes Yes Yes various Yes Yes
Squeak squeak.org MIT License Yes Yes Yes various Yes Yes
VisualAge IBM Proprietary Yes Yes Yes various Yes Yes
VisualWorks Cincom Proprietary Yes Yes Yes various Yes Yes

Tcl

IDE Developer Latest stable release Platform License
Eclipse DLTK 5.0 Windows, Linux, macOS, FreeBSD, JVM, Solaris EPL
Komodo IDE / Edit ActiveState 9.0.1 Cross-platform IDE:Proprietary, Edit:GPL, LGPL, MPL
SlickEdit SlickEdit October 2016 v.21 Windows, Linux, macOS, AIX, Solaris, HP-UX Proprietary

Unclassified

Visual Basic .NET

IDE Developer License Written in First Release Latest Stable Release Windows macOS Linux
Microsoft Visual Studio Microsoft Proprietary C++ 2001 16.9.15 / 14 December 2021 Yes Yes No
Visual Studio Code[57] Microsoft[58] MIT[58] TypeScript[58] 0.10.1 / 13 November 2015[59] 1.70.2 / 15 August 2022[60] Yes[61] Yes[61] Yes[61]

See also

References

  1. ^ "AonixADT Ada Development Toolkit for GNAT and ObjectADA 3.2.2". Archived from the original on July 26, 2010. Retrieved April 24, 2010.
  2. ^ a b "Qt Eclipse Integration for C++". Archived from the original on August 16, 2009. Retrieved April 24, 2010.
  3. ^ "GtkAda User's Guide". February 1, 2010.
  4. ^ "Parallax.com". Parallax.com. Retrieved 2018-02-28.
  5. ^ "PureBasic 6.10 LTS". PureBasic - Latest News. Frédéric Laboureur & Fantaisie Software. Archived from the original on 29 March 2024. Retrieved 9 April 2024.
  6. ^ SharpDevelop license.txt on GitHub https://github.com/icsharpcode/SharpDevelop/blob/master/doc/license.txt
  7. ^ Using the wxSmith plug-in (included in distribution, requires wxWidgets SDK)
  8. ^ codeblocks.org / Also provides relatively stable "nightly builds", an alternative to the official releases
  9. ^ Using the wxCrafter plug-in (included in distribution, requires wxWidgets SDK)
  10. ^ A Linux version was in the works, but has been abandoned since mid-2002; however, Dev-C++ has been reported to run on Wine.
  11. ^ "Eclipse CDT Toolchain Documentation". Retrieved January 29, 2014.
  12. ^ "Eclipse LinuxTools integration of OProfile". Retrieved January 29, 2014.
  13. ^ "Eclipse LinuxTools integration of GCov". Retrieved January 29, 2014.
  14. ^ "Eclipse CDT webpage".
  15. ^ "Eclipse Project Downloads".
  16. ^ "Simultaneous Release - Eclipsepedia".
  17. ^ "geany.org". geany.org. 2016-03-13. Retrieved 2018-02-28.
  18. ^ "What's New in CLion". Retrieved 2019-10-22.
  19. ^ Visual Studio supports C/C++ on Linux out of the box from version 2017 or later, but is also available via third-party plugins like VisualGDB
  20. ^ Refactoring for Visual Studio C/C++ is supported natively since Visual Studio 2015 and via third-party plugins Visual Assist X http://www.wholetomato.com/ and Resharper for C++ https://www.jetbrains.com/resharper-cpp/
  21. ^ "A Common Protocol for Languages".
  22. ^ "Refactoring source code in Visual Studio Code".
  23. ^ a b c "C and C++ Development". Sun Microsystems. Retrieved June 26, 2009.
  24. ^ "C/C++ Projects Quick Start Tutorial". Sun Microsystems. Archived from the original on October 18, 2012. Retrieved June 26, 2009.
  25. ^ a b c d e "Apache NetBeans 26". 20 May 2025. Retrieved 21 May 2025.
  26. ^ qt-project.org Archived July 17, 2013, at archive.today
  27. ^ SharpDevelop license.txt on GitHub https://github.com/icsharpcode/SharpDevelop/blob/master/doc/license.txt
  28. ^ Duquesnoy, Colin, OpenCobolIDE: A simple COBOL IDE, retrieved 2022-08-27
  29. ^ "OpenCobolIDE in Launchpad". Launchpad. March 18, 2013. Retrieved 2022-08-27.
  30. ^ Duquesnoy, Colin, OpenCobolIDE: A simple COBOL IDE, retrieved 2022-08-27
  31. ^ "ColinDuquesnoy in Launchpad". Launchpad. December 7, 2013. Retrieved 2022-08-27.
  32. ^ OpenCobolIDE/OpenCobolIDE, OpenCobol IDE, 2022-08-26, retrieved 2022-08-27
  33. ^ "1.0.0 : Series trunk : OpenCobolIDE". Launchpad. March 21, 2013. Retrieved 2022-08-27.
  34. ^ Duquesnoy, Colin, OpenCobolIDE: A simple COBOL IDE, retrieved 2022-08-27
  35. ^ a b c d "OpenCobolIDE project files : OpenCobolIDE". Launchpad. December 30, 2016. Retrieved 2022-08-27.
  36. ^ "Releases · OpenCobolIDE/OpenCobolIDE". GitHub. Retrieved 2022-08-27.
  37. ^ "Photran". Eclipse PTP. Eclipse. Retrieved 18 April 2022.
  38. ^ "Use F# on Windows". F# Software Foundation. Retrieved 2018-08-07.
  39. ^ "Features – Rider". JetBrains. Retrieved 2018-08-07.
  40. ^ "482387 – Add arm and aarch64 source only fragments". Bugs.eclipse.org. Retrieved 2018-02-28.
  41. ^ oracle.com
  42. ^ "Xamarin now free in Visual Studio". Ars Technica. March 31, 2016. Retrieved 2016-04-09.
  43. ^ "WebStorm 2019.1: smart intentions for JavaScript, improvements in Angular support, updated CSS and HTML docs, and new debug console". March 25, 2019.
  44. ^ "Juno". GitHub. Retrieved 14 November 2020.
  45. ^ "Debugging · Juno Documentation". docs.junolab.org. 3 June 2019. Retrieved 14 November 2020.
  46. ^ "The Juno.jl Front-End · Juno Documentation". docs.junolab.org. 20 May 2020. Retrieved 14 November 2020.
  47. ^ "prash-wghats/Electron-VSCode-Atom-For-FreeBSD". GitHub. Retrieved 2018-09-12.
  48. ^ Decoda COPYING.txt on GitHub https://github.com/unknownworlds/decoda/blob/master/COPYING.txt
  49. ^ "Embarcadero Delphi Product Page". Embarcadero Technologies. Retrieved 2020-01-19.
  50. ^ "Perl - IntelliJ IDEs Plugin | Marketplace".
  51. ^ "eric news 2014". Eric-ide.python-projects.org. Retrieved 2018-02-28.
  52. ^ "eric news 2010". Eric-ide.python-projects.org. Retrieved 2018-02-28.
  53. ^ Python support is integrated into Visual Studio 2017 and later. Python Tools for Visual Studio is still available as a plug-in for Visual Studio 2015 and earlier.
  54. ^ "Edit Python code - Visual Studio (Windows)". April 18, 2024.
  55. ^ "Release Ninja-IDE 2.4 released! · ninja-ide/ninja-ide". GitHub. Retrieved 2022-09-26.
  56. ^ "RubyMine 2018.3.5 is Available!". February 27, 2019.
  57. ^ "Visual Studio Code - Code Editing. Redefined". code.visualstudio.com. Retrieved 2022-08-27.
  58. ^ a b c Visual Studio Code - Open Source ("Code - OSS"), Microsoft, 2022-08-27, retrieved 2022-08-27
  59. ^ "Tags · microsoft/vscode". GitHub. Retrieved 2022-08-27.
  60. ^ "Tags · microsoft/vscode". GitHub. Retrieved 2022-08-27.
  61. ^ a b c "Download Visual Studio Code - Mac, Linux, Windows". code.visualstudio.com. Retrieved 2022-08-27.