Woah, woah.... take it easy lol
That stuff impacts the user. Never take it easy on things that impact the user
Have you looked at wxWidgets? It is a cross-platform C++ library that uses the native controls wherever possible. Apps built under Windows look like any other Windows app. On Linux it uses GTK. Mac apps look correct as well. There are several WYSIWYG resource editors available. My favorite is wxSmith in Code::Blocks. These days I use it for all my GUI based projects.
_________________
I stopped fighting my inner demons. We're on the same side now.
Have you looked at wxWidgets? It is a cross-platform C++ library that uses the native controls wherever possible. Apps built under Windows look like any other Windows app. On Linux it uses GTK. Mac apps look correct as well. There are several WYSIWYG resource editors available. My favorite is wxSmith in Code::Blocks. These days I use it for all my GUI based projects.
I used wxWidgets circa 1998, when it was called wxWindows. I compared it to Qt and Qt was more complete at the time. I believe Qt is still more professional and complete and has a saner API.
I don't understand why folks like MyFutureSelfnMe & Burzum get so butthurt by criticism of the Java programming language. My best pal J has a PhD in CS, has been programming for the last 25 years, and what he and other seasons programmers tell me is that in their opinon, C++ is too powerful and more specifically too flexible. That is, it's flexibility leaves a lot of room for errors whereas the more modern objected oriented languages have more restrictions to prevent programmers from screwing up memory management. I don't know Ruby or Perl, but I do know Python which is really wonderful language that is surprisingly flexible. But programming languages don't just come out of the void these days, they are almost always based on pre-existing languages. But I have done some audio programming recently using Python, Java, and c++. And lemme tell ya, neither Python nor Java have the tools necessary for real time audio(like the Google Moog for example). I do wonder why people actually like Java though......
I am a seasoned pro, and I am the one who was criticizing Java, not getting butthurt by criticism of it. I think garbage collected languages are fundamentally/theoretically wrong, and that wrongness rears its head in practical ways. You are correct that it's possible to screw up in C++, but what's important is being able to diagnose your screwups rapidly. I think in either sense, if you know what you're doing, you're fine. You could theoretically manipulate realtime audio in Java, but you'd have to meticulously write your code to not create any objects while processing a frame. Hence why I think the GC is wrong.
Let's face it - if you're a programmer, there's the language you're using at the moment, and there are all the rest. It's really hard to be objective. Currently, between work and hobbies, I write Sharepoint, C#, Java, XQuery and Objective C and you know what? There's little to choose between them. If you want to write for iOS then Objective C is the only choice. If your workplace insists on Java then it's that or nothing and if you're a Sharepoint site then you'd better be OK with C#. Well, you can hook up to Java web services or XQuery ones, but there's only one way to show them.
It's possible to structure iOS apps of any significant complexity as a C++ backend and ObjC platform dependent layer. Just sayin
I haven't seen any jobs so far that are Java-only, but if I did I would likely not apply. In part because if they're going to fix themselves on the straight and narrow as far as languages, they are probably not fun people to work for/with. I use plenty of languages.
I've done C, and C# but not much in C++.
I think the proper way to learn C++ is to first learn C, so that would make you off to the right start
I've done C, and C# but not much in C++.
I think the proper way to learn C++ is to first learn C, so that would make you off to the right start
Why learn C before C++? I haven't done any C, but from what I know it complicates things. You don't have a standard library, so you have to use char* instead of std::string, no classes, structs can't have functions and it's quite focused around the C functions, which can be quite confusing. Not saying your answer is wrong, just curious to what advantages learning C before C++ has.
I don't really think there is a right way to do it. The comon recomendation is to learn another language first to learn the basics of programming, then move into C++ and learn about pointers, standard library, stl etc.
It's probable the stl wasn't meant to make the life of beginners easier. When I learned C++ there was a debate about if it's better to learn C first or learn C++ first. But this debate happened before C++ was standardized. I think it's better to learn C first if it's the learner's first language. And the purpose for that is object orientation can be confusing for a lot of beginners in computer programming. About learning C or C++ first has no consequences on the learner once one of them is learned. C is like a subset of C++ and C++ is a superset of C. Knowing how to program in C is useful when C++ is not available. But for those who like not putting any effort into mastering a powerful tool, none of these languages is for them.
C helps the beginner in being concise, and C++ help the intermediate programmer with managing the source code. There's no purpose in learning C++ if the learner doesn't want to know how to program in C.
I've done C, and C# but not much in C++.
I think the proper way to learn C++ is to first learn C, so that would make you off to the right start
Why learn C before C++? I haven't done any C, but from what I know it complicates things. You don't have a standard library, so you have to use char* instead of std::string, no classes, structs can't have functions and it's quite focused around the C functions, which can be quite confusing. Not saying your answer is wrong, just curious to what advantages learning C before C++ has.
I don't really think there is a right way to do it. The comon recomendation is to learn another language first to learn the basics of programming, then move into C++ and learn about pointers, standard library, stl etc.
C was the basis for C++ (C with the increment operator). You don't have the overhead of learning OO and it is a simpler language. Also, C++ is mostly a super set of C. See the compatibility with C section. http://en.wikipedia.org/wiki/C%2B%2B
C has a standard library. It is different than C++'s, but it is there. It used to be called stdlib.h
Structs can have functions, but it's a kludge. Hint: create a typedef of a function pointer to your function. In your structure, add a member of the type of that function pointer. You have just created an "class" in C.
C is a procedural language where C++ is an OO language.
They're different paradigms. Both are still used in the "real world".
C helps the beginner in being concise, and C++ help the intermediate programmer with managing the source code. There's no purpose in learning C++ if the learner doesn't want to know how to program in C.
STL was added to make it comparable to languages that already supported generic programming. Generic programming was a very powerful concept. Implementing STL also allowed developers the chance to stop abusing the pre-processor to do it. This abuse is still done in C programs today.
I disagree with C being a good beginner language. It is too hardware oriented. Other languages seemed better for teaching if the person didn't know the basics. Pascal was an immensely better language for teaching, IMO. C started making much more sense to me after I started learning an assembly language.
I've done C, and C# but not much in C++.
I think the proper way to learn C++ is to first learn C, so that would make you off to the right start
Why learn C before C++? I haven't done any C, but from what I know it complicates things. You don't have a standard library, so you have to use char* instead of std::string, no classes, structs can't have functions and it's quite focused around the C functions, which can be quite confusing. Not saying your answer is wrong, just curious to what advantages learning C before C++ has.
I don't really think there is a right way to do it. The comon recomendation is to learn another language first to learn the basics of programming, then move into C++ and learn about pointers, standard library, stl etc.
C was the basis for C++ (C with the increment operator). You don't have the overhead of learning OO and it is a simpler language. Also, C++ is mostly a super set of C. See the compatibility with C section. http://en.wikipedia.org/wiki/C%2B%2B
C has a standard library. It is different than C++'s, but it is there. It used to be called stdlib.h
Structs can have functions, but it's a kludge. Hint: create a typedef of a function pointer to your function. In your structure, add a member of the type of that function pointer. You have just created an "class" in C.
C is a procedural language where C++ is an OO language.
They're different paradigms. Both are still used in the "real world".
I know C++ is based on C, it was originally called "C with classes", I think. But I'm still curious to whether there is any big advantage to learn C before C++ as oposed to learning Java or C# before C++? I know C is more similar to C++ in some ways, but to me, C seems a bit complicated for a first language. And the only two C specific things I ever use ( as far as I know ) are char* and sometimes the old c functions. ( which can be very confusing, not something you want to try to use when you are starting to learn programming. ) I think I've heard that the old C functions can be skipped entirely too, leaving you with an easier language.
And as you say, C is more procedural while C++ is OO. Wouldn't it be an advantage to learn another language that focuses more on OO?
