Hello guys! I wanted to introduce myself and ask a little question :)

My name is Mark Miller and I'm a 16 years old teen from Lithuania, a small country located in Europe. I've started programming only two years ago. And what's for sure, I loved it. But the sad thing is that since the start I kept making wrong choices. First of all I took Pascal. After a month or two I realised I'm outdated. Then I took assembly (I was totally unaware of how complex that is, OK?)... Well, at least now I know how computers work, I even designed a little 6-bit one myself, but other than that, I just wasted my time. Then, I took C++. That was quite a good shot. But not the best one. After meeting with pointers, SDL 1.2 (I realised I was outdated again), SFML 2.1 I understood that it's too powerful for me. I need something simpler. Something easier. Something less powerful. Something more code efficient. Because I program alone and I want to focus on gameplay, not menu.
I want to create 2D games. I want easy GUI libraries so that I could write Button button(posX, posY, "text") and don't worry about implementing hovering, mouse pressing and releasing effects, searching for alpha values in image and other stuff when I call button.run(). In other words, I want something that creates big things with less code than C++ needs. Anyone?
I've got some guesses: Java, Python, Ruby. Please, help me to make the right choice.

Thanks in advance.

Hi Mark, welcome to DaniWeb.
I would not consider learning assembly a waste of time though.
Why not stay with C++ and Visual Studio as IDE?

Hello and welcome.

I don't see what you have described as a waste of time either. If anything, it has given you exposure and is helping you move towards your goals.

Well, maybe it wasn't. Maybe it will help me more in the future. But definitely, assembly language isn't the tool that will let me create 2D games quickly.

Why not stay with C++ and Visual Studio as IDE?

I couldn't afford anything that has a price, and I don't think that pirating is good nor older versions of VS are better than Code Blocks. As for C++, it needs too much code and focus on not the main things for me. I want to create productively.

I would not consider assembly to be a waste of time either. You will find that this "low-level" knowledge that you gained there will be useful later. If anything, it informs the way you program or "see through" the code.

I couldn't afford anything that has a price, and I don't think that pirating is good nor older versions of VS

Well, there is the Express version, which is free and essentially as good as the full version. The full version (non-free) is only really useful for professional development companies and large teams. None of the full-version features are really useful for lone coders or amateurs.

But then again, VS is not an IDE that I would recommend in general.

As for C++, it needs too much code and focus on not the main things for me. I want to create productively.

In general, C++ allows you to work on many different levels. If you find yourself "needing too much code" or "not focusing on the right things", then it only means that you are working on the wrong level. There are many high-level libraries in C++ that allow you to do a lot with very little code. What you are describing is called RAD (Rapid Application Development), and there are several ways to do RAD in C++. I would suggest that you try to use Qt with QtCreator as an IDE (both are free). There are also other options like C++Builder or wxWidgets.

Also, if you want to move to another "higher-level" language, then I would recommend trying Python, because it will expose you to a very different style, while remaining close to the "serious" languages C/C++ (most of Python just thinly wraps C/C++ code). Also, if you want to do game development or things related to that, you really should stay fairly close to C++, but Python is a great language to use as a higher-level layer on top of C++.

Java could be a decent choice too, but I don't think it will really be interesting to you. Java is much more verbose than C++, and much heavier, and not really more "high-level". It's just a bit easier for some to use or learn than C++ is, but if you've gone through Pascal and Assembly, I don't see why you would need that. Python is a much nicer language and a true "high-level" language, unlike Java.

Explore scripting languages such as:

  • Ruby
  • Python
  • PHP

Many people underestimate their power and potential usages. I will tell you, they can create wonderful, fast programs.

Regards,
Matthew