[Curiosity] What does the "average" C++ developer work on?
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
These days it seems like C++ is used for high-efficiency applications, e.g. graphics, as one person has suggested. The .NET languages (typically C#) are easier and more powerful for GUIs and simple non-time-critical applications, and have the advantage of reliability; e.g. fewer memory leaks. In the applications I'm working on, C# is used for the GUI, and C++ for the pixel-based graphical operations. C++ is the new assembly language.
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
-
Super Lloyd wrote:
What does that leave
Graphics-intensive applications (e.g., video games, video codecs). Perhaps programs that are run on super computers (where a sub-optimal program would cost thousands of dollars in excessive processing). Legacy C++ applications. High performance libraries (e.g., math libraries, multi-threading libraries). Operating systems. iPhone and other mobile devices (where low-level access can be important and raw performance is necessary).
Compilers/interpreters for other programming languages.
-
He spends three or four days creating a message box.
I can picture in my mind a world without war. A world without hate. A world filled with gentle, loving people. And I can picture us attacking that world because they'd never expect it. ~ Jack Handy
Well i do symbian development using qt(new to it and learning so i'm below average maybe :) ) but its fun(especially using qt)
-
That is correct. And a time will come when the "tools" will become so easy that anyone with a diploma will be able to write applications. You will no longer be required to study all the 'boring' details. Just get a diploma in a language and start cranking out code... like a monkey. It is happening right now.
NULL
I'm quite OK with that. Making it easy to write code just makes the harder problems easier, so you will still have hard problems to work on, but the easy problems will be solvable by anyone. That's how frameworks are developed. You build a layer of abstraction (lower one) so you can work on the more complicated next level.
-
Super Lloyd wrote:
So I wonder what does this strange beast do for a living?
Code?? :) Maybe I could not understand your question properly.
The strange beast works on all of the tools that allow other developers to develop websites such as this. They develop the runtime engines that support the code that java, .Net, etc. put forth. They create the tools that edit the C#, VB, SQL etc. All of these things and more are written using C++, Objective C, or just C, and in some cases they too use MFC. Most importantly what this strange beast does is keep the OS from Linux to Windows, devices from the Apple iPod to the Zune functioning so that individuals who want to write with higher level languages can interact with these OS's and devices. C++ Developers write the code the keeps the military functioning, the code for hardware that controls and move missiles around, and that monitors space travel. The .Net and java languages are not considered reliable enough, secure enough, or stable enough to do a lot of the development that occurs on these levels. (Read these language specifications). As far as detecting memory leaks, a C++ developer is able to manage memory on his own. He is the one that writes garbage collection routines for those who are less skilled an unable to manage their own memory. Yes we may have to track a memory leak, but we can also move into and write assembly language routines from our code and back out again. The routine that allow your editors to track memory leaks. This is just touching the surface. If you want control over the machine learn C++. As far as the comment about tracking down memory leaks, if all you can come up with is tracking memory leaks – put the keyboard down before you hurt yourself (Just kidding too). A C++ developer is a true developer. Those who write in the other languages I have mentioned are likewise developers and professionals. Each language serves a purpose, and is useable and honorable in its realm, just as C++ is.
modified on Monday, April 19, 2010 11:46 AM
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
I think you hit it on the head.. an average C++ programmer does a little of this and a little of that without ever really getting in depth on any one thing. Now, your star C++ programmers, they do about the same smattering of this and that, but they dig deeper and understand things. That gives them the knowledge and experience to do amazing things, which is what makes them no longer just "average".
patbob
-
Mechanical wrote:
someone with a fast tongue gets the job
Only if your prospective boss is a woman.
or the person from hr that is interviewing you for the position
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
Natural language parsing, voice recognition, OOP is pretty much required to form relationships between various disparate objects. Focus is mainly on the process, and polymorphism takes over the decision branching. Standard C representation executed in terms of minutes, hours, and sometimes days. Rewrite in C++ resulted in split second responses. Rendering HTML took longer than parse times. In my opinion, C++ more closely represents logic, or more specifically OOP does this. Ada coding was my first introduction to OOP, and it was really hard to wrap my head around the concept. It wasn't until I did practical software development where meaning was added, that it all came clear(er). I do far more coding in Java and Flex now, but once in a while I have a need for C(++).
-
That is correct. And a time will come when the "tools" will become so easy that anyone with a diploma will be able to write applications. You will no longer be required to study all the 'boring' details. Just get a diploma in a language and start cranking out code... like a monkey. It is happening right now.
NULL
And I think that should be our aim too. To move the 'real' developers into making frameworks and support tools for 'users' to program.
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
I guess, in my case,as a .net programmer, it is writing small console applications and programming micro controllers.
-
C++ GUIs are pretty powerful if you use the right framework (we use WTL, as it's both lightweight and flexible, without the bloat and legacy baggage of MFC). If algorithms are your thing, take a look at the way STL (Standard Template Library) algorithms work. It's very powerful stuff, and easily parallelised (another area of big change at the moment) if you're doing number crunching. Be aware of the existance of the Boost library too. New candidates for the standard library often start off in Boost, and it's a good indicator of where the language is going.
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
After much reflection I decided to be inspired by your comments and I'm downloading WTL right now! On the other hand my energy level (and night work) is pretty low these days.. but things look like they are going to improve! :-)
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
-
After much reflection I decided to be inspired by your comments and I'm downloading WTL right now! On the other hand my energy level (and night work) is pretty low these days.. but things look like they are going to improve! :-)
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
Good for you! I do hope you find WTL to be as good a framework as we have. As a bonus, Michael Dunn's articles on it here on CP are an excellent learning resource. :)
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
-
The strange beast works on all of the tools that allow other developers to develop websites such as this. They develop the runtime engines that support the code that java, .Net, etc. put forth. They create the tools that edit the C#, VB, SQL etc. All of these things and more are written using C++, Objective C, or just C, and in some cases they too use MFC. Most importantly what this strange beast does is keep the OS from Linux to Windows, devices from the Apple iPod to the Zune functioning so that individuals who want to write with higher level languages can interact with these OS's and devices. C++ Developers write the code the keeps the military functioning, the code for hardware that controls and move missiles around, and that monitors space travel. The .Net and java languages are not considered reliable enough, secure enough, or stable enough to do a lot of the development that occurs on these levels. (Read these language specifications). As far as detecting memory leaks, a C++ developer is able to manage memory on his own. He is the one that writes garbage collection routines for those who are less skilled an unable to manage their own memory. Yes we may have to track a memory leak, but we can also move into and write assembly language routines from our code and back out again. The routine that allow your editors to track memory leaks. This is just touching the surface. If you want control over the machine learn C++. As far as the comment about tracking down memory leaks, if all you can come up with is tracking memory leaks – put the keyboard down before you hurt yourself (Just kidding too). A C++ developer is a true developer. Those who write in the other languages I have mentioned are likewise developers and professionals. Each language serves a purpose, and is useable and honorable in its realm, just as C++ is.
modified on Monday, April 19, 2010 11:46 AM
OH PLEASE MAN, get off your high horse! I programmed C++ for years, you make it sound like we're gods, above everyone else. I'm sure the assembler guys would say the same things about us. IT'S JUST A LANGUAGE, and it's the technology that was available at the time. I knew a lot of C++ guys who wrote crappy code, so how is "a C++ developer is a true developer"? C++ still has it's purpose, but it's on the way out, like COBOL, Fortran, assembler, etc. A "true developer" is one who can adapt to and embrace new technologies as times change. After using C# for the past 5 years, I can honestly say that it is a much more robust OO language/environment, and takes just as much brainpower to wrap your head around some of the more advanced concepts such as anonymous delegates, LINQ, Lamba expressions, etc. And with p/invoke, you still have the same access to low level platform API functions. Your last two sentances are the only ones I completely agree with.
TpB wrote:
The strange beast works on all of the tools that allow other developers to develop websites such as this. They develop the runtime engines that support the code that java, .Net, etc. put forth. They create the tools that edit the C#, VB, SQL etc. All of these things and more are written using C++, Objective C, or just C, and in some cases they too use MFC. Most importantly what this strange beast does is keep the OS from Linux to Windows, devices from the Apple iPod to the Zune functioning so that individuals who want to write with higher level languages can interact with these OS's and devices. C++ Developers write the code the keeps the military functioning, the code for hardware that controls and move missiles around, and that monitors space travel. The .Net and java languages are not considered reliable enough, secure enough, or stable enough to do a lot of the development that occurs on these levels. (Read these language specifications). As far as detecting memory leaks, a C++ developer is able to manage memory on his own. He is the one that writes garbage collection routines for those who are less skilled an unable to manage their own memory. Yes we may have to track a memory leak, but we can also move into and write assembly language routines from our code and back out again. The routine that allow your editors to track memory leaks. This is just touching the surface. If you want control over the machine learn C++. As far as the comment about tracking down memory leaks, if all you can come up with