Jump to content

Is C/C++ Dying?

cpuxtech

I am learning Objecitve-C for Xcode iOS app developement, I began learing C, as a preface for Obj-C, but I am realizing that the only benefit to learning only C/C++(stuff like that), would be basic console applications. These have no GUI(though it is possible to add a GUI in Visual Studio(but why not just use .NET/C# for that))....So I started thinking, Is learning only C or C++ for windows console programs getting outdated?....They seem kind of useless anymore and besides for creating drivers(apparantly C is the fastest way to communicate with hardware), I just cannot see what to use it for....For me, it was just a basis for Obj-C, but I mean for anyone solely learning and developing programs with C/C++, it just seems kind of pointless when you could move into other languages including the .NET or the C# which from my understanding, works better with a GUI then C/C++.

Link to comment
Share on other sites

Link to post
Share on other sites

no not at all,few years back i learned bit of visual basic (which was suck) then i moved on to c# and now i m learning c++ and c# was the most user friendly once you get good with c# you can learn c++ easily and once you learn c++ you can get good at obj c i dont think the end is near by at last you can check this http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

mY sYsTeM iS Not pErfoRmInG aS gOOd As I sAW oN yOuTuBe. WhA t IS a GoOd FaN CuRVe??!!? wHat aRe tEh GoOd OvERclok SeTTinGS FoR My CaRd??  HoW CaN I foRcE my GpU to uSe 1o0%? BuT WiLL i HaVE Bo0tllEnEcKs? RyZEN dOeS NoT peRfORm BetTer wItH HiGhER sPEED RaM!!dId i WiN teH SiLiCON LotTerrYyOu ShoUlD dEsHrOuD uR GPUmy SYstEm iS UNDerPerforMiNg iN WarzONEcan mY Pc Run WiNdOwS 11 ?woUld BaKInG MY GRaPHics card fIX it? MultimETeR TeSTiNG!! aMd'S GpU DrIvErS aRe as goOD aS NviDia's YOU SHoUlD oVERCloCk yOUR ramS To 5000C18

 

Link to comment
Share on other sites

Link to post
Share on other sites

I dont think so, correct me if I'm wrong but dont most HLL's run off C?

Link to comment
Share on other sites

Link to post
Share on other sites

all operating systems, games and realtimes apps have C++ at the heart out it

even middle level languages (.NET, java, darkbasic, etc...) are written in C++ with inline-ASM.

there will always be C/C++, until a better language is made. until now... there is none. :)

Link to comment
Share on other sites

Link to post
Share on other sites

Interesting...Is C a big part of learning Objective C? Like when should I stop looking and making basic console programs and solely begin Obj-C

Link to comment
Share on other sites

Link to post
Share on other sites

Interesting...Is C a big part of learning Objective C? Like when should I stop looking and making basic console programs and solely begin Obj-C

exactly.

ObjC is a supet-set of C++... which means the end-product (executable) will be built/compiled from APIs that are written in C++, but the code you type will make it easier for you too learn.

Link to comment
Share on other sites

Link to post
Share on other sites

Interesting...Is C a big part of learning Objective C? Like when should I stop looking and making basic console programs and solely begin Obj-C

exactly.

ObjC is a supet-set of C++... which means the end-product (executable) will be built/compiled from APIs that are written in C++, but the code you type will make it easier for you too learn.

So how much time do you think I should spend with C related things before jumping into Obj-C. Like I don;'t wanna waste all my time going too deep into C stuff when I will not use it to make an app....You Know?
Link to comment
Share on other sites

Link to post
Share on other sites

C and C++ are probably never going to completely die out because they're the only two "modern" programming languages I know of that actually can do low level access to hardware. Everything else is going through some API. If nothing else, learning C and C++ will make you a better programmer because it is far easier to make simple mistakes in C and C++ that will keep your program from running correctly; you'll learn to become more careful and therefore less likely to make the same mistakes in simpler languages such as Python or C# or Java that won't penalize you so heavily for it.

Current Rig
AMD Ryzen 5900X - Asus ROG Strix X570-E Gaming WiFi 2 - 32 GB GSkill TridentZ RGB
GeForce RTX 3080 - WD Black SN850 1TB  - Lian Li O11 Dynamic XL

Link to comment
Share on other sites

Link to post
Share on other sites

Not even close.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to comment
Share on other sites

Link to post
Share on other sites

C++ is still used for low level and performance critical applications such as driver software, and games.

C has faded recently but it is still heavily used in unix/Linux as well as a prime language for real time / embedded systems.

So to summarise, if your looking at basic applications, then you will probably look at framework backed technologies such as c#.net, java and objective c + cocoa but there are also limitations to those as they usually require a virtual machine to interperate the code runtime therefore impacting performance as well as limited access directly to the hardware.

Link to comment
Share on other sites

Link to post
Share on other sites

Not even close.
They aren't even close to dying, if anything they are becoming more important. They are great for low level, high performance applications in terms of both programs and overall infrastructure. They also wont be dying because there are billions of lines of code that will need to be maintained for quite a long time.

Unless you plan on rewriting all of that into some better language (no idea what you would use that would be better suited in all honesty) you won't be getting rid of C and C++ anytime soon.

Different languages for different needs, C/C++ are still needed and will continue to be needed for a very, very long time.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to comment
Share on other sites

Link to post
Share on other sites

I use C++ every day... finite element models would be so slow in anything else.

I have a 2019 macbook pro with 64gb of ram and my gaming pc has been in the closet since 2018

Link to comment
Share on other sites

Link to post
Share on other sites

C++ is not dying, and neither is C for OS development. For most users, however, making an OS, or efficient game isn't a top priority. C++ is the language for game development, due to its efficiency and wealth of libraries, such as OpenGL and DirectX, but it is definitely a "lower" level language. C, however, is not really useful for modern desktop applications. For GUI apps, Java seems to be the go-to choice, but I still stick with C++ and OpenGL/CL. I prefer the C-type syntax, which makes C++ my go-to choice for most situations. I don't think they are dying, just the audience is shifting.

Link to comment
Share on other sites

Link to post
Share on other sites

C yes maybe, but slowly.

C++ Definitely not, it's used in almost every game.

Link to comment
Share on other sites

Link to post
Share on other sites

No man i am learning C and C++, for a beginner its tells what a programming world looks like.

CPU: Intel Core i5-6600K, GFX: Asus GTX 970 Strix, MOBO: Asus Z170 PRO GAMING, RAM: DDR4 GSkill Ripjaw 4 (4GBx2 @ 3000mhz), SSD: Samsung 850 EVO 120gb, HDD: Hitachi 500gb, PSU: Corsair CX 430w, DISPLAY: Acer GD245HQ, CASE: NZXT S340 white, MOUSE: Logitech MX 518, KEYBOARD: TVS-E USB Mechanical  

 
Link to comment
Share on other sites

Link to post
Share on other sites

C dying? Yeah, that will never happen, every operating system around is written in C, be it windows, OSX (Which is BSD at its heart), Linux, BSD, Solaris etc the list goes on.

As for C++ like pointed out its used in practically all sane AAA titles. Its powerful, it works and its efficient.

The idea that C/C++ is only for console applications is no where near the truth, there are many full programs with GUIs made in C/C++ e.g. Google Chrome And Firefox

Arch Linux on Samsung 840 EVO 120GB: Startup finished in 1.334s (kernel) + 224ms (userspace) = 1.559s | U mad windoze..?

Link to comment
Share on other sites

Link to post
Share on other sites

C/C++ will not die.. as they are the lowest human readable programming language. It's used to do drivers, OS, highly optimized software (this allows the ability top do game engines and well games which can take full advantage of your hardware), and offer 0 limit to your imagination, is 100% OS independence. For example, you can't run C# on Linux or MacOS, you can run Objective-C on Windows (let alone develop on it).

You can do full interfaces in C/C++... it's just harder than other languages because it doesn't have anything embedded by default. It's tricky to use the OS GUI components (drop down box, menus, etc...). Microsoft solve this by making .NET and creating a What you see is what you get type of layout in Visual Studio which Microsoft continues to improve at each version of Visual Studio, about. Linux uses GTK, and GTK+. Mac I don't know. But GTK(+) is cross platform. Firefox uses GTX. Same for Gimp.

So what's happening with C/C++? It loosed popularity, as now you have higher level languages like C#, Java, an others, where A LOT of the work needed is done for the developer. This makes it the ideal language for small software, internal tools, or even large software, but you want to focus on features and other things, and not coding (see Office and Visual Studio IDE for example). Another potential language that could have been widely popular if Adobe didn't step in, was Flash, which was targeted at being like Java. But Saldy Adobe bought Macromedia, and Adobe really didn't care about Flash.. they wanted Macromedia Patents and other non-flag ship software for it's feature to implement in PhotoShop and other of it's softwares. Since then Flash died. Adobe just released what the team was working before, and now a can of tomatoes runs faster in a race, than Flash development. If you used Flash, you had the ability to made a stand alone (no plugin needed) Mac or Windows executable.What's cool with Flash is that it's like using Paint when doing the interface. It's easy, you can do anything you want. You can do designed that would take month to conceptualize, plan and code in any other languages, in minutes. But sadly, that didn't came to be (there was also rumors back in the days that Macromedia wanted to put the language open, and just make it's money from it's IDE environment, which imagine how Flash would be today, super slim, highly optimized, and runs on anything, and much more powerful. Oh well.

Link to comment
Share on other sites

Link to post
Share on other sites

The languages like C# and .NET are totally fair game, but almost seem like cheating lol....Its like so many things are handed to the developer...C is fun and it slightyly difficult going from .NET to C(my situation)...I like what I can do, but I guess it just seems like a lower level of programming to especially anyone coming down from these other languages

So far I like it, but I guess no Im just trying to figure out how much I want to dig into C...Eventually I want to be able to learn it very well, but for my current interest, iPhone apps, Objective C is my priority and I just want to see how much time I should be putting into plain C, before moving on to total Obj-C...It makes sense to have a fair background in C but I don't want to spend so much time on it that in the long run I am wasting time on things I will never use in the near future for iOS developement and things does that makes sense?

Thanks All for the replies...I agree C is not dying, I guess I just saw it slightly weaker and odd since it is just a console progrma with many functions, and can't be used in the farthest extent of programming...I really enjoy working with C but I want to find a good use for everyhting I am learning(remember I came from Visual Basic.NET and).....VB.NET seemed like a big upgrade from my batch knowledge as I left the terminal work and jumped into coding a GUI......

C is interesting and like i said I want to work a lot with it but I want to see how much I should work with it now if my end goal is iOS developement...Thanks alot!

Link to comment
Share on other sites

Link to post
Share on other sites

Yes. It is dying. Not in the sense that it will be gone within two years, but in the sense that we are all dying - nothing lasts forever.

It's currently in the prime of its life, but will it be there in thirty years? I doubt it. Five years? Definitely. There's no way to know for certain, but technology is rapidly evolving and newer solutions will become available.

Learning RPG/Pascal/COBOL, etc. are all languages that were heavily used - in their day. So yes, it will die and it is dying... just not quickly.

Learn the languages that are in use now, and transition onto newer languages as they come - don't restrict yourself to just C#.

Link to comment
Share on other sites

Link to post
Share on other sites

Yes. It is dying. Not in the sense that it will be gone within two years, but in the sense that we are all dying - nothing lasts forever.

It's currently in the prime of its life, but will it be there in thirty years? I doubt it. Five years? Definitely. There's no way to know for certain, but technology is rapidly evolving and newer solutions will become available.

Learning RPG/Pascal/COBOL, etc. are all languages that were heavily used - in their day. So yes, it will die and it is dying... just not quickly.

Learn the languages that are in use now, and transition onto newer languages as they come - don't restrict yourself to just C#.

Thanks..Im try not to restrict myself at all and I dont really think I do but am just wondering what the deal is because somebody told me that it was kind of dying...I just cant find a good use for them really.....I am working on Objective C as I said before which is really neat, slightly challenging though.
Link to comment
Share on other sites

Link to post
Share on other sites

as a stepping stone. i would start to learn C#. it'll give you a good grasp of OOP, and standard C-syntax.

then port your code, manually, to C++. this way you will notice the differences more.

Link to comment
Share on other sites

Link to post
Share on other sites

So, there are a lot of misconceptions here about the different languages, so I hope I can clear that up.

1. There is no C/C++. There is C, and there is C++, and both languages follow a hugely different philosophy. Considering templates, C++ looks less than C in many cases as Java does.

2. Is C dying? Well, kinda, the use of C decreasing in favor of C++. C++ had horrible compilers for a long time, that's why pretty much all (technically*) low-level stuff like drivers are written in C. But, since Compilers got much better, there's a slow transition there from C to C++. But this will still take years.

3. Is C++ dying? No, it's not. In fact, the use of C++ is increasing if anything. But, there's a good chance that modern C++ code will look quite different 5 years from now. Because the "current" C++ still has some huge issues with the compilation model it uses.

4. C and C++ don't have any GUI, how's that even good for anything? It is true that these languages don't have a standardized GUI library. But that doesn't mean you can't write a GUI with them. You just have to use the API of the platform you're programming for. (Which is of course the same thing Java and C# do. The language and virtual machines that are underlying just hide this stuff from the programmer.) There are libraries for C and C++ that do the same thing, e.g. Qt.

5. So C++ is not dying? I don't want to learn a dying language nobody will use 10 years from now! - It doesn't matter what you learn at this point. Because what you are always really learning are concepts, not languages. And concepts come and go, even inside languages, sometimes across different languages. That's just how it is. No matter what you do now, you'll still have to learn new stuff 10 years from. It's not like the development will suddenly just stop. Simultaneously, even if the language you learned will die (and I predict the objective-stuff to die relatively soon, as pretty much only Apple supports it, and they're currently working on a new C++ compiler, Clang.) that doesn't mean that you wasted your time, because there's a very good chance that you can still use the concepts you learned in another environment. tl;dr -> Do what you enjoy, you're most likely not going to waste your time.

* Technically low-level? What's the other low-level? - The other low-level is the absence of higher-level concepts _in the language_. This are two, admittedly somehow connected, but still different things. You can still write a driver, while using extremely high level language concepts. And you can write Java code that only uses static functions. This is why C++ gets sometimes described as a high-level and sometimes as a low-level language. The thing is, it's both. It's technically low-level, you can directly access memory, compilers produce native code, but the language itself is pretty high-level, I'd argue the "highest-level" language that is currently widely used. Things like expression-templates just don't fit into many other languages. (Sadly, these features are pretty much abusing a system that wasn't designed for it, so it looks pretty messy. But maybe someday we'll get a language with a very high expressiveness that doesn't look messed up. :p)

$0.02 about platform independence: Also something where one has to differentiate. C, for example, is extremely platform independent. You could compile most of the code that runs on your computer for a freakin' washing machine. But could you run the same binary? No, because it's a different CPU. Java on the other hand, only runs on exactly one architecture: The Java VM. But you can "install" this architecture because it's virtual, so you don't have to re-compile your code for a different machine. Basically, the final step of compilation gets done on the target machine and not by you.

Link to comment
Share on other sites

Link to post
Share on other sites

Thanks cooky!

You say that Obj-C is one of the only few languages that supports objects now, and you suspect it do die relatively soon...Would that mean that the language C#/VB.NET would be good to learn on top of Obj-C as it is getting big especially in the Windows Phone market?...Objective C seems like the Visual Basic/C#(for windows phone dev) for mac, is this a wrong comparison?

And why would object oriented programming die relatively soon, isn't it one of the languages with the easiest implemented UI with great code implementation?

Would you say that Visual Basic and C# in Visual Studio 2012(Windows Phone Developement) is an Object Oriented Programming Language? Because if it is, I just have a hard time seeing how something that useful would die almost at all.

And when/if it does die, what would begin to emerge as a big success after that point.

Even for desktop software developemetn it seems that a GUI and well functioning program is best made in Visual Basic/C#, because you have all of the tools to make a great UI, and all of the language libraries to implement great source code for a very well functioning application....

Thanks a lot I hope you can answer these questions as I would really like to get into Windows Phone/iOS developement and besides that, would like to see a good perspective of what may happen in the future with these platforms.

Link to comment
Share on other sites

Link to post
Share on other sites

VB.NET already _is_ dead, it got replaced by C# and is basically just legacy. (Although some old VB.NET fanboy will probably crawl out of his cave any minute.)

Also, there's another misconception here: Just because a language doesn't have "objective" in it, doesn't mean it doesn't support "objects", whatever "objects" are anyway. So, here the thing: Object orientation is just an idea. You can program object oriented in pretty much every language, even in C, even though C does not commonly get referred to as an "object oriented language". In fact, most people that write clean new C code these days write most of it object oriented. So what an "object oriented language" really needs to get referred to as such is to provide some features that support the object oriented paradigm. Examples of such features are access-restrictions (private, protected, public), inheritance and dynamic dispatch (virtual). In this sense, "the big 3" Java, C# and C++ are all object oriented and this paradigm is not going to die any time soon, even if Objective-C would. (Although it has had some decline lately in favor of functional-style programming, but seriously, it's not going to die. ;-))

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×