I'm really new to programming, and I really only know web scripting. But I want to excel in programming.

Anyway, what languages would be used to create something like adobe photoshop? I've created about 2 programs using c++, but they're like those tutorial things where they run in DOS, and the most advanced one I did was adding two numbers. :(

But How would you make a program where it opens outside of DOS, with it's own interface and things like that. Basically something like photoshop, or any program like excel or word. I know I won't be programming something like that soon, but it would be appreciated if someone could tell me where to start.

Hey Mr Gates, I'm a big fan of yours :-).

Adobe Photoshop is written in straight C++. Although C++ is an extremely powerfull language, it has a very steep learning curve. C++ has GUI features, consult the links section for some help. When in doubt, google searching works wonders.

Photoshop has an MDI a Multiple Document Interface. This is when multiple windows are open inside one main window.

Because this is computer programming, there are always many ways to write programs. I love Visual Basic.NET, and C#. C# is a new language written from the ground up geared for the .NET framework and ease of use. Its a fusion of Java and c++ with VB ease. Best of all C# and VB.NET are very GUI geared, and have extensive GDI+ support (image manipulation).

Again, be sure to check out the links section. Their is a comprehensive set of links to get you going on your way.

"C++ has GUI features"

Well, strictly speaking, C++ has no GUI features whatsoever. It knows nothing about such things, they're simply not part of the C++ language or standard library. If your compiler has GUI features (as many do) they're a platform specific extension. For instance MS VC++ comes with everything you need to be able to write GUI apps that run under Windows.

"C++ has GUI features"

Well, strictly speaking, C++ has no GUI features whatsoever. It knows nothing about such things, they're simply not part of the C++ language or standard library. If your compiler has GUI features (as many do) they're a platform specific extension. For instance MS VC++ comes with everything you need to be able to write GUI apps that run under Windows.

..thats what I ment to say :-P

You can create windows applications with pretty much any popular language out there, even Perl. I take it you haven't explored deep enough in the C++ realm to do any Windows programming. Visual Studio comes with premade classes where you can instantiate windows, buttons, controls, etc. You just use them. Simple as that. There is no magic. There are no tricks. You have to know what classes to use, and how they are called, and that means knowing about OOP, pointers, inheritence, and all the good stuff that makes up applications. You can pick up a book on "Windows Programming" or "Visual C++" to learn more.

If you want to go the easy way, you can try Visual Basic. Visual Basic hides a lot of the complexity, so it makes it easier and faster to code Windows applications. GUI development in VB is easier because a lot of it is drag and drop. You can double click on a control and code the events right there.

Actually it depends on compiler, if you are using a compiler DEV C++ then it does not supports GUI, you have to run you programs on command prompt window.
But if you want to use GUI in C++ then you have an options to use Visual C++ , or you can use the compiler Visual Studio. Visual Studio is a frame work or compiler which has many built in functions and supports GUI (graphical user interface).

Beside c++ if you want to use an easy language with good GUI , then you can use Visual Basic 6.0. For Visual basic 6.0 you don,t have any need to install any other compiler. Visual basic 6.0 (short name VB 6) has its own integrated development environment , that means it has its own compiler , debugger and tools in one environment. You have to just buy Vb 6 from market and install it on your system

Actually it depends on compiler,

Actually it depends on the libraries you have availible, as well as the capabilities of the platform you're developing for. Nearly any C++ toolchain with the capabilities to work with the system API will also have the capabilities to make GUI's as long as the platform supports it.

what languages would be used to create something like adobe photoshop?

Photoshop is entirely written in C++, as far as I know. They've released a lot of open-source code in the past, always in C++, and their developers have been active in the C++ community.

Actually it depends on compiler

No, it does not. It depends on the system and external libraries that can be used to facilitate the process of constructing and programming GUI applications. And for any platform, any C++ compiler can be used to compile code that uses one of these system or external libraries.

if you are using a compiler DEV C++ then it does not supports GUI

First, DevC++ is not a compiler, it's an IDE (Integrated Development Environment), which is just the application that assists you when writing / compiling / debugging code. On the one end of the spectrum, you can just write code in Notepad (or some other basic text editor) or some enhanced text editors like emacs, vim, sublime-text, Kate, gedit, etc.. On the other end of the spectrum, you can write code with a comprehensive IDE like Visual Studio or C++Builder XE6. And in the middle of things, there are lightweight IDEs that just assist you in writing code (with highlighting, code-completion, and documentation tooltips on classes and functions) and perhaps debugging it (step-through) without too much heavyweight features (like integration with a GUI toolkit). DevC++ is one of those lightweight IDEs, but there are plenty of others like KDevelop, CodeBlocks, Eclipse, Geany, NetBeans, etc..

Second, although some of the heavier-weight IDEs come with an integrated GUI library and toolkit (such as Visual Studio, C++Builder, QtCreator), it is only there to make it easier to go back and forth between designing the GUI (layout of visual components) and writing the code in the back-end of it (event-handlers, etc.). It is by no means necessary to have such an IDE to write GUI applications. I have written the code for many GUI applications with little more than a basic text editor. There are many GUI libraries and toolsets that are standalone (or both standalone and integrated into a particular IDE). I generally use Qt, which you can use as standalone (no IDE integration), although it can be a bit tedious, or via a plugin integration within most popular IDEs (Visual Studio, CodeBlocks, QtCreator, KDevelop). There are also other standalone GUI toolkits like GTK+ and WxWidget. Some GUI toolkits are tied only to a particular IDE, but that is generally intentional, i.e., the GUI toolkit is part of what you buy with the IDE software, like with Microsoft's WinForms (which is .NET only, can be used with a hybrid language between C++ and C#, called C++/CLI, which will probably be deprecated once it has lurred and trapped enough C++ programmers in the world of .NET) and Embarcadero's FireMonkey FMX (previously known as VCL).

Visual Studio is a frame work or compiler

Visual Studio is neither a framework nor a compiler, it is an IDE. For C++, Visual Studio uses the Microsoft Visual C++ compiler (most commonly known as "MSVC" for short, which is invoked in command-line as cl.exe). While a framework generally refers to a comprehensive set of libraries (and maybe applications to help build some of the things, we call that a toolset or toolkit) that essentially drives the whole way the code is written (because all your code rests on the framework's capabilities). For example, .NET is a framework, Qt is a framework, and so on. So, Visual Studio is an IDE that is highly integrated with the .NET framework and uses the MSVC compiler for C++ code.

This article has been dead for over six months. Start a new discussion instead.