To make this more fit for my situation im going to give a little bio about myself.
Bio: Im 19 years old, and currently use C++ as my main programming language. Im not exactly sure what i want to do with my life, only that i want it to involve programming. At the moment im really only comfortable putting one thing on my resume and that's a 32bit typeless scripting language called PAWN. Im OK in C++, i have a strong understanding of the language, but no GUI library/API to make any of that of use (hence me not being comfortable enough to put it on my future resume). Im currently leaning towards software development (and/or engineering - i love making kick ass designs!) so not having any GUI lib/api under my belt is a big deal; I do however have SQL experience (Mostly the basic statements: SELECT, INSERT, UPDATE, CREATE, DELETE, DROP, etc...).
[/EndBoringBio]
Now here is where the root of my confusion begins. Since i think it will be to difficult to explain, im just going to make a list to try and demonstrate instead.
- C++ - People keep telling my its not wise to stick with this language if my goal is software development. They tell me JAVA and C# are the industry standards, and encourage me to learn those instead. I REALLY like c++ and would like to stick with it if at all possible. I like that i can code ANYTHING i want with it, and chose HOW i code it (<3 multiparadigm languages). The speed and power are the main reasons i love this language though.
Paths available with C++ (pros and cons):- - Qt
- Pros:
- 1.) No need to worry about platforms, its completely cross-platform. This saves a ton of time and money to companies.
2.) If i learn Qt for C++, i can learn JAVA and add it to my resume since there is a Qt port for JAVA! Learning java itself its that big of a deal, as im already comfortable with object oriented programming.
3.) Qt has a GUI builder that comes with their IDE. Although the IDE is terrible in my opinion, the creator saves tons of time and makes life very easy.
- 1.) Since the goal of Qt is to keep everything platform independent i'd have to use a TON of libraries to keep code platform independent-since i cant just use Win32 functions.
2.) Companies might not be fond of paying for this library (or using other people's work in general?). That inclines people to use other methods - meaning less employers?
- 1.) No need to worry about platforms, its completely cross-platform. This saves a ton of time and money to companies.
- Pros:
- Pros:
- 1.) Since platform independence isnt a factor here, i can use the vast amount of functions that comes with the API (limiting the amount of third party libraries i have to use).
2.) No fee to keep your source code private.
3.) This makes learning assembly less of a hassle. I could make full fledged programs instead of just using inline assembly in my C++ programs (this also gives me another language to add, if i ever get a good enough understand of assembly-atm its just an interest).
- 1.) For some unfathomable reason the API uses Hungarian notation. This makes the code incredibly ugly for absolutely no reason (especially with modern IDE's).
2.) Employees will possibly have to hire other coders if they want to port their stuff, or will be JUST have to developing for windows (i assume they'd JUST develop for windows).
- 1.) Since platform independence isnt a factor here, i can use the vast amount of functions that comes with the API (limiting the amount of third party libraries i have to use).
- - Qt
- - Swing
- Pros:
- 1.) The great thing about swing is that its all inside the language! No need for any third party libraries at all.
2.) There's probably a huge market out there for swing coders due to the above.
- 1.) The great thing about swing is that its all inside the language! No need for any third party libraries at all.
- Cons:
- 1.) Swing seems very messy and unorganized. I think this is due to its age. Having events in your application is seriously frustrating due to this.
- Pros:
- - Qt
- Pros:
- 1.) Qt seems to be a very nice alternative to swing. It seems more organized and handles everything with a more modern approach.
2.) If i learn Qt instead of Swing, thats sort of killing two birds with one stone. I can also list myself as a C++ programmer using the Qt library.
- 1.) Qt seems to be a very nice alternative to swing. It seems more organized and handles everything with a more modern approach.
- Cons:
- 1.) JAVA is already significantly slower than C++, using Qt means my applications will be even slower since Qt for java is a wrapper.
2.) There's a fee to keep your source private.
- 1.) JAVA is already significantly slower than C++, using Qt means my applications will be even slower since Qt for java is a wrapper.
- Pros:
Which route do you guys think is the best one for me to take? It seems every route has a serious down side with it :\.