I enjoy programming in Assembly. For obvious reasons, completing a difficult task in x86 Assembly is far more satisfying than completing a difficult task in any high-level language. Still, C++ is still a good language :)
I enjoy programming in Assembly. For obvious reasons, completing a difficult task in x86 Assembly is far more satisfying than completing a difficult task in any high-level language. Still, C++ is still a good language :)
I feel quite the opposite - doing anything in low-level feels tedious. Usually it's because I'm doing it wrong.
I love C++ because it lets me do what I want with whatever strategy or design I wish. Unfortunately, it doesn't do a lot of it correctly and most of them feel hackish (lamdas, templates, class permissions, and so on).
C++ needs a successor and unfortunately, I've yet to find a suitable one that doesn't force me into a garbage collector.
The first language that I used was C# for a few years, which is relatively much newer then C++, and could be considered a successor. However I found C++ to be much more powerful and useful after learning it for a few months.
force me into a garbage collector.
I fail to see why that is an issue. The Garbage Collector in most languages that uses it, is actually very good at its job. Most of the time that you are using a high-language that would use a GC, you wouldn't be in a memory constraining environment.
The Garbage Collector in most languages that uses it, is actually very good at its job.
Only its job is not needed by people who are good at programming, and it's still slow.
you wouldn't be in a memory constraining environment
You are in a memory constraining environment in each and every programming language and computing system.
My own c++ data structures are "stretch-on-demand", so I get all the benefits of garbage collection without any of that monstrosity's overhead (Without having checked the assembly, I presume that my commands checking whether the buffer is large enough cost 1-2 instructions).
"I feel quite the opposite - doing anything in low-level feels tedious."
..or maybe you're not as passionate about it than other programmers? :)
tition wrote:
"You are in a memory constraining environment in each and every programming language and computing system."
True, but systems have more of a RAM capacity these days -- however, it doesn't excuse the the "I'll free the memory when I feel like it" attitude you get from the GC. In addition, GC simply is not a viable option on lower-performance systems. With C/C++, however, one is able to create a memory manager based on the constraints of a given system; something not possible with C#'s and Java's GC systems.
Also, GC cannot be used all the time since GC isn't available on every architecture, nor can it be used in real-mode (I think) as it depends on the OS.
I don't think C++ needs a successor; C# is certainly not going to be it if the time ever came.
I gave reasons why C++ needs a successor. C++ as a syntax is incredibly complex unnecessarily to the point it makes optimization difficult. You can ask just about anyone who's made a C++ compiler or parser, as opposed to a language like D or even something like Java.
I also don't care that it keeps backwards compatibility with C (when its not really backwards compatible and the C code often requires modification to compile successfully on both).
There are things I like about C++ but it is clearly NOT doing the correct thing everywhere and some of the obvious areas are being ignored because it would either break compatibility with C or it would be too much work.
I don't mind garbage collection. What most people don't really realize is that garbage collection in C and C++ work just fine. There's also no reason to limit your entire fucking language (COUGH D COUGH) because you force your users to use a garbage collector out the box and you make it a complete pain in the ass to do otherwise.
The reason I don't use D anymore is because they have no interest as a system's programming language but claim they are one. It's frustrating.