It looks like you're using an Ad Blocker.
Please white-list or disable AboveTopSecret.com in your ad-blocking tool.
Thank you.
Some features of ATS will be disabled while you continue to use an ad-blocker.
originally posted by: Starbuck799
a reply to: Metallicus
Hey brother. I’m an old school AS/400 RPGIV programmer, 25 years in.
I took a C++ course a few years back. My advice would be to not do C++. It’s just a big sell/con job. Not that I couldn’t do it. But Object Oriented programming is not the panacea that it’s made out to be. It’s awkward and way too low level for application programming, unless you’re gonna write operating systems.
All how OO programming is just a big show is just starting to come out generally lately, but I knew it all along.
There’s a video on YouTube somewhere where a smart guy talks all about it being a sham. It’s called Why C++ isn’t a good language, or something like that. He does a good job of explaining why it’s a crap language, and why OO is a waste of time. I’ll see if I can find it. But you might be able to find it yourself. There are a ton of YouTube videos out there that explain why OO and C++ are bad.
originally posted by: ChaoticOrder
originally posted by: Starbuck799
a reply to: Metallicus
Hey brother. I’m an old school AS/400 RPGIV programmer, 25 years in.
I took a C++ course a few years back. My advice would be to not do C++. It’s just a big sell/con job. Not that I couldn’t do it. But Object Oriented programming is not the panacea that it’s made out to be. It’s awkward and way too low level for application programming, unless you’re gonna write operating systems.
Just use C if you don't like the object oriented aspect of C++, but modern C++ isn't so hard to understand once you get the hang of it. Here's the thing, C++ was the last language I learned. I started with scripting languages like VBScript and PascalScript, then moved onto web languages such as JavaScript and PHP, then got into desktop programming languages such as C# and Java. When I finally started learning C and C++ suddenly it all clicked for me, I could see how all these other languages had borrowed paradigms from C and C++ but had abstracted away a lot of the low level stuff that C and C++ provide, trading speed for ease-of-use. This is why if you want maximum speed you code in C or C++, it's why game engines are built with C++.
If you want to write code that exploits the parallel computing power of a GPU then you most likely want to use CUDA or OpenCL, which allow you to write kernel code in a C based language. C/C++ is strictly typed and provides the ability to manage your own memory, so you know exactly what your variables and memory are doing. Yes it requires more effort and a better understanding of what's actually happening behind the scenes, but that gives you a much more solid understanding of what your code is really doing and that understanding extends into other languages. I can read almost any programming language now, I couldn't do that before I was experienced with C and C++ because I didn't have that deeper understanding of how a programming language works.
All how OO programming is just a big show is just starting to come out generally lately, but I knew it all along.
There’s a video on YouTube somewhere where a smart guy talks all about it being a sham. It’s called Why C++ isn’t a good language, or something like that. He does a good job of explaining why it’s a crap language, and why OO is a waste of time. I’ll see if I can find it. But you might be able to find it yourself. There are a ton of YouTube videos out there that explain why OO and C++ are bad.
I have seen that video and it's complete nonsense. Object oriented code has several major advantages over procedural or functional programming, a large one being it allows for intuitive and well organized code. It's certainly isn't suited to all problems, especially not simple problems like shown in that video. Many of my web applications are simple procedural PHP code which just call some functions to create dynamic aspects of the page. However when you start creating software that does more complicated stuff you'll find object oriented code far more practical and will reduce the amount of spaghetti code in a large project by a substantial fraction.
I view classes as a template for the object, which should contain some data and some methods for manipulating the data. If the class only contains methods then it's typically just better to use global functions. But lets say you want to create a simple particle simulation engine with thousands of particles and each particle needs to have a different position, speed, mass, etc. In that case it's probably better to create a particle class with variables to hold information about the particle, and methods to act on the particle. The code will certainly be more elegant and the process of creating and manipulating particles becomes easier to understand.
OO is just way too involved and time wasting for general business applications. Business application development needs to be fast, readable, and high level. Procedural programming meets this need best.
Spaghetti code, and intuitive and well organized code, has nothing at all to do with what language is being used.
originally posted by: ChaoticOrder
When I finally started learning C and C++ suddenly it all clicked for me, I could see how all these other languages had borrowed paradigms from C and C++ but had abstracted away a lot of the low level stuff that C and C++ provide, trading speed for ease-of-use. This is why if you want maximum speed you code in C or C++, it's why game engines are built with C++.
However when you start creating software that does more complicated stuff you'll find object oriented code far more practical and will reduce the amount of spaghetti code in a large project by a substantial fraction.
originally posted by: Starbuck799
Well you certainly make a good case for OO programing. But 80% of programming jobs out there are for application development, (by that I mean, banks, insurance companies, retail, manufacturing, inventory, and other straight forward business applications.) OO is good for other but small market jobs like operating systems, gaming, and scientific programming. OO is just way too involved and time wasting for general business applications. Business application development needs to be fast, readable, and high level. Procedural programming meets this need best. There is no need to know what is going on at the lower lever in those types of environments. In fact it is a hindrance to rapid application development.
The thing I don't like in C++ is that I find it too complex for simple tasks but not as fast as assembly, so when I was first learning programming if I wanted speed and a small footprint I used assembly, if I wanted ease-of-use I used BASIC or Pascal.
originally posted by: ChaoticOrder
Well I wouldn't try to write a program in assembly because it's even lower level than C and harder to write even simple code imo.
originally posted by: Metallicus
a reply to: MisterSpock
I learn best when I am doing rather than reading. I would like to find a course integrated with a specific IDE. Also, I am not sure what language is the best choice to learn since I want to find one or two rather than learn a bunch.
Eta...there must be some good, fee coding courses out there for men.