Jump to content

How would someone go about making an IDE?

AlTech

I want to make an IDE. I know that it's probably stupid of me to think it can be achieved by a one man crew. 

 

But i want to try nonetheless.

 

I want to make an IDE which can handle multiple programming languages including:

C++

C#

HTML

CSS

Javascript.

 

I know that the base will have to be made using Visual C++ for the best performance. But how would i go about making an IDE? I know i need compilers, Debuggers, correct formatting of text.

 

EDIT: Could i just use MinGW for the C++ compiler since it's open source and free?
 

Could i take an open source IDE and then add language support in addition to the current ones supported?

 

If so then I could take Komodo Edit (already supports HTML, PHP, CSS, Javascript) and then add C++ and C# support.

 

What would be the best option and if i wanted to make my own IDE from Scratch how would i do it? Is this too ambitious?

 

 

AND (this is a BIG IF) IF i ever made my own programming language, how would i add that to the IDE?

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

You're trying to mix apples and rocks and expect to make a good pie out of it.

 

HTML, PHP, CSS and Javascript are web-oriented and don't need much compiling (although PHP needs to have a PHP server for it to work)

 

C++ and C# need a compiler.

 

Easiest way to do it is by not doing it

Remember kids, the only difference between screwing around and science is writing it down. - Adam Savage

 

PHOΞNIX Ryzen 5 1600 @ 3.75GHz | Corsair LPX 16Gb DDR4 @ 2933 | MSI B350 Tomahawk | Sapphire RX 480 Nitro+ 8Gb | Intel 535 120Gb | Western Digital WD5000AAKS x2 | Cooler Master HAF XB Evo | Corsair H80 + Corsair SP120 | Cooler Master 120mm AF | Corsair SP120 | Icy Box IB-172SK-B | OCZ CX500W | Acer GF246 24" + AOC <some model> 21.5" | Steelseries Apex 350 | Steelseries Diablo 3 | Steelseries Syberia RAW Prism | Corsair HS-1 | Akai AM-A1

D.VA coming soon™ xoxo

Sapphire Acer Aspire 1410 Celeron 743 | 3Gb DDR2-667 | 120Gb HDD | Windows 10 Home x32

Vault Tec Celeron 420 | 2Gb DDR2-667 | Storage pending | Open Media Vault

gh0st Asus K50IJ T3100 | 2Gb DDR2-667 | 40Gb HDD | Ubuntu 17.04

Diskord Apple MacBook A1181 Mid-2007 Core2Duo T7400 @2.16GHz | 4Gb DDR2-667 | 120Gb HDD | Windows 10 Pro x32

Firebird//Phoeniix FX-4320 | Gigabyte 990X-Gaming SLI | Asus GTS 450 | 16Gb DDR3-1600 | 2x Intel 535 250Gb | 4x 10Tb Western Digital Red | 600W Segotep custom refurb unit | Windows 10 Pro x64 // offisite backup and dad's PC

 

Saint Olms Apple iPhone 6 16Gb Gold

Archon Microsoft Lumia 640 LTE

Gulliver Nokia Lumia 1320

Werkfern Nokia Lumia 520

Hydromancer Acer Liquid Z220

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, revsilverspine said:

You're trying to mix apples and rocks and expect to make a good pie out of it.

 

HTML, PHP, CSS and Javascript are web-oriented and don't need much compiling (although PHP needs to have a PHP server for it to work)

 

C++ and C# need a compiler.

 

Easiest way to do it is by not doing it

If i wanted to do C# and C++ elusively then how would i start to make it?

 

Assuming i wanted to.

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

Well, since you want so much variety of languages I really suggest that you take a look at Github's Atom, really, that thing can do ANYTHING firstly because it's modular and open-source. Just see it like this, imagine you want to start building robots and you need to program an arduino, no need to get the ugly IDE, just install Atom's Arduino module, and tons of really good themes, also, auto detection for most programming languages, the default ones are HTML, CSS, Less, Sass, GitHub Flavored Markdown, C/C++, C#, Go, Java, Objective-C, JavaScript, JSON, CoffeeScript, Python, PHP, Ruby, Ruby on Rails, ShellScript, Clojure, Perl, Git, Make, Property List (Apple), TOML, XML, YAML, Mustache, SQL, but you can get literally millions of them with plugins. Just take a look at my setup, I do everything with it, Computer Science classes in python, iOS development, Arduino programming, etc. And also loads of theme packages, I love the Material Design one.

Atom.mov

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, AluminiumTech said:

If i wanted to do C# and C++ elusively then how would i start to make it?

 

Assuming i wanted to.

Just download an existing IDE. Microsoft Visual Studio has been serving my needs just fine.

 

There really isn't any point in building your own IDE with all the options you already have

Remember kids, the only difference between screwing around and science is writing it down. - Adam Savage

 

PHOΞNIX Ryzen 5 1600 @ 3.75GHz | Corsair LPX 16Gb DDR4 @ 2933 | MSI B350 Tomahawk | Sapphire RX 480 Nitro+ 8Gb | Intel 535 120Gb | Western Digital WD5000AAKS x2 | Cooler Master HAF XB Evo | Corsair H80 + Corsair SP120 | Cooler Master 120mm AF | Corsair SP120 | Icy Box IB-172SK-B | OCZ CX500W | Acer GF246 24" + AOC <some model> 21.5" | Steelseries Apex 350 | Steelseries Diablo 3 | Steelseries Syberia RAW Prism | Corsair HS-1 | Akai AM-A1

D.VA coming soon™ xoxo

Sapphire Acer Aspire 1410 Celeron 743 | 3Gb DDR2-667 | 120Gb HDD | Windows 10 Home x32

Vault Tec Celeron 420 | 2Gb DDR2-667 | Storage pending | Open Media Vault

gh0st Asus K50IJ T3100 | 2Gb DDR2-667 | 40Gb HDD | Ubuntu 17.04

Diskord Apple MacBook A1181 Mid-2007 Core2Duo T7400 @2.16GHz | 4Gb DDR2-667 | 120Gb HDD | Windows 10 Pro x32

Firebird//Phoeniix FX-4320 | Gigabyte 990X-Gaming SLI | Asus GTS 450 | 16Gb DDR3-1600 | 2x Intel 535 250Gb | 4x 10Tb Western Digital Red | 600W Segotep custom refurb unit | Windows 10 Pro x64 // offisite backup and dad's PC

 

Saint Olms Apple iPhone 6 16Gb Gold

Archon Microsoft Lumia 640 LTE

Gulliver Nokia Lumia 1320

Werkfern Nokia Lumia 520

Hydromancer Acer Liquid Z220

Link to comment
Share on other sites

Link to post
Share on other sites

You basically need a text editor and some buttons which interface with the compiler.

 

Of course, there's also debugging, project management , etc. , but those are more complicated.

i5 4670k @ 4.2GHz (Coolermaster Hyper 212 Evo); ASrock Z87 EXTREME4; 8GB Kingston HyperX Beast DDR3 RAM @ 2133MHz; Asus DirectCU GTX 560; Super Flower Golden King 550 Platinum PSU;1TB Seagate Barracuda;Corsair 200r case. 

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, tiferrei said:

Well, since you want so much variety of languages I really suggest that you take a look at Github's Atom, really, that thing can do ANYTHING firstly because it's modular and open-source. Just see it like this, imagine you want to start building robots and you need to program an arduino, no need to get the ugly IDE, just install Atom's Arduino module, and tons of really good themes, also, auto detection for most programming languages, the default ones are HTML, CSS, Less, Sass, GitHub Flavored Markdown, C/C++, C#, Go, Java, Objective-C, JavaScript, JSON, CoffeeScript, Python, PHP, Ruby, Ruby on Rails, ShellScript, Clojure, Perl, Git, Make, Property List (Apple), TOML, XML, YAML, Mustache, SQL, but you can get literally millions of them with plugins. Just take a look at my setup, I do everything with it, Computer Science classes in python, iOS development, Arduino programming, etc. And also loads of theme packages, I love the Material Design one.

Atom.mov

What plugins are you using?

Link to comment
Share on other sites

Link to post
Share on other sites

There's certainly nothing stopping you from taking an open source IDE/editor and building on it. Depending on your experience and the quality of the code, it may be tough to understand how it works, but if you pick through it enough you might figure it out enough to know how to work with it. Make sure to follow the licensing requirements if you make the project public. This could also lead you to contributing to the existing project which isn't a bad thing either.

 

I think it would be a fun project to do it from scratch though. Maybe given enough time it could turn into a releasable product, but I wouldn't worry about that at this stage. Just view it as a learning experience for now and see how things go. I'd recommend keeping things on GitHub or something so it's easy to share your code/get feedback, etc.

 

I'm certainly no expert in this area. I've never done this kind of thing but this is probably how I'd being things.

 

Start with the text editor.

  • Add the basic functionality (New, Save, etc)
  • Add syntax highlighting for the supported language(s)
  • etc

You can make your app run other command line apps and get their output. With that you should be able to start to get some functionality like

  • Linting
  • Compilation
  • Execution
  • etc

That's probably a good enough place to start.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×