The future of the compiler-do we still need C + +?

Source: Internet
Author: User
Tags lua

Do we still need a pure C + + development model in the future?

With the birth of c++11, C + + has become more and more bloated, from 03 to think that C + + is too complex. to a qualified C + + Programmer's standard to simply say 3-5 years slightly small, 5-8 years before you can be said to be a qualified C + + programmer, more than 10 years to dare everywhere and others say that they are proficient in C + +, not to be someone with a very bt question. The cost of training C + + programmers is too high.

With the development and progress of technology, as well as the complexity of the product, led to the development began to go a variety of people who want faster development speed, better quality. So the hybrid development is already a lot of companies adopted the scheme. Use python,ruby,java,php to develop the high-level, performance bottleneck using C to develop. This is more appropriate for today's development approach. There are fewer places to use C + +.

C + + programmers have always been proud that C + + can have OO control and also have C performance. C + + was born in the 80 's, then the hardware performance does not, into the 21st century with the continuous development of hardware technology, now Java represents the virtual machine or dynamic language development has become the mainstream platform. The share of C + + in enterprise development is getting smaller and lower, compared with c+ compilation, C + + due to resource occupancy and overly complex structure leads to the development of the system at the lower level does not occupy an advantage. (such as operating system, drivers, microcontroller, embedded and other fields.) C + + is rarely used, that is, the use of simple OO packaging, almost no use of advanced features such as STL, and even Linux without the C + + development kernel.

Several major problems with C + +.

1. Running speed and Resource usage: C + + is certainly much higher than C for the time being. And the more features C + + compilers are growing in size. Compile speed is also a very big problem, a compilation of several 10 minutes of the project is not a rare thing

2. Portability and Extensibility: many small embedded platforms do not have a C + + compiler at all or do not have a complete compiler that supports C + + features. For general companies and individuals, maintaining the C compiler is possible, but maintaining a C + + compiler is simply unthinkable. and C + + although there are standards but binary compatibility and a variety of parameter delivery methods but there is no uniform standard, compared to this is not the problem of C.

3. Personnel, development, commissioning, management costs: Many times do not need the ultimate performance of the product (if the need is not in C + + but the language such as Fortran) C + + programmers are very expensive, and because C + + It's too complicated for the old man to go. The new people take the code can not be maintained by the frequent occurrence. And now Python,ruby,lua, such as the rise of dynamic language C + + slow development speed compared to it is quite not cost-effective, more popular C+python (Lua,ruby) Development model. Where performance is required with C development, plus Python,ruby advanced package management, more sophisticated object-oriented support and a variety of syntactic sugar C + + is increasingly unnecessary ... And start I have the project directly to the Python,ruby output of the C language or simply become a compiler is not impossible. and a variety of more than Java better JIT birth, C module call cost is very low, and even can be completely comparable with C + +. In the low cost of debugging and testing, the cost of C + + is really worth thinking about whether it is worth using.

4. Really need C + + engineering: Of course, many people think that the game engine ah, a variety of low-level engine AH or need C + +, taking the third example, the game engine after more and more toward rapid development and development, the module split naturally is inevitable. c constructs the bottom layer (including Python converted to c also counted in) can be applied naturally. And the game is now more and more in favor of scripting, after all, the engine is not everyone needs to modify, most people just learn how to use it, lua\python+ a suitable JIT performance can be guaranteed.

Based on the above four, do we still need to use C + +? The C + + framework is pretty small, looking for a few large commercial companies, Microsoft (not cross-platform), Intel (not support arm,mips, etc.), GCC (most people are difficult to expand, Even if the 5.0 comes out may not be the general company has the ability to expand, LLVM (like GCC, too large, and how the optimization and future development is a problem). The C compiler almost always has the ability to maintain a company, even one person can maintain. (Lcc,pelles C,TCC etc many many C compilers)

Does anyone say that someone has a need to maintain a compiler? Far not to say near the bar, more and more mobile processors appear in the market, each IP although the use of the SOC but a variety of optimizations and special instructions are still there. For example, the JZ series, ARM's various processors also have their own special instructions. That for chip manufacturers and platforms, middleware and other third-party manufacturers. The ability to add hardware acceleration directly to the CPU and software to directly utilize hardware instructions is of course the best effect. So is there a need to use a high-cost programming language like C + + in the future? Of course, it may not be completely negative, but the current status of C + + is indeed declining. Coupled with various costs, the future of C + + is worth worrying about.

Curiosity 250w Line C code, 100w line handwriting (in order to see C is not able to develop large-scale projects, large-scale engineering is the design rather than the language, design patterns are not OO patents), the rest are generated by automated tools, even if the special CPU, Rewriting the CodeGen function yourself is something one or two people can do. But anti-C + +, that size of the compiler I think absolutely not one or two people can be maintained. Ruby,python compilers are also written based on C. Luajit Although immature but brings the optimization performance let us see, the lightweight language actually still has the considerable cost-effective. The rest of the problem is just the performance of call. Small functions are necessary, and the large functions actually do not see any performance improvements in the inline. But also can rely on the dynamic language JIT optimization to solve this problem completely. Advanced Dynamic language JIT speed generally not the reason is that the function is too large and global optimization in the "real-time" situation is not enough to achieve a perfect optimization. Of course, the smaller function can be done very well, and with the development of the compiler technology, this problem will certainly be effectively solved, it is not possible to directly generate C code, and then the C compiler for cross-compiling.

For this reason, I have been trying to develop a cross compiler for the underlying asm,c since I started two years ago (the cross-compiler of personal maintenance asm,c is still possible, and C + + is not a man can carry it). What we're doing is using C to refactor the FASM and ANSI C cross-compiler, Then is the ANSI C-based cross-platform interface Library and a lightweight dynamic language of the JIT. Use this as a middleware to develop future programs.

Of course, there are a lot of problems, but they can be solved. Technology in development, programming is also in development, some old unnecessary traditions can also be given up. At least personally, C + + can be completely replaced by the development model described earlier. A more lightweight, simpler cross-compiler.

Of course, the go language is also a good choice, although he still has a lot of problems. In the future, when the technology matures and has sufficient resources, it will try to develop a cross-platform RAD tool (the individual likes Delphi but it does not cross the platform.) And many features don't meet the lightweight requirements, but it's excellent.

Reference: http://my.oschina.net/sw23120/blog/119584

-----------------------------------------------------------------------------------

well, starting with the review, I think C + + is not hard to learn, it's hard to learn about architecture, framework, and platform features.

The first C can be done by C + + can still do, the problem is mainly the aging of the architecture, do not think lua,java such as high efficiency, lua,c# this kind of things relatively new, the framework is relatively new, so there is a very strong efficiency, Java architecture is beginning to aging, the support of Oracle does not give force , frequent leaks. and C + + basically popular framework for the time to innovate, MFC nearly 20 years, ATL also for many years in small-scale development to say this is a kind of harm, inefficient, a framework is also towards complex development. Only features are becoming more and more complex. This is the main confusion of C + +.
But the words come back, when you reach a certain level of code, and also efficient, then still use C + +, now Llvm/clang all in C + + code implementation, GCC can be compiled with g++ (c + + mode), large-scale projects to simplify the development of the difficulty through Modularization, Compilers, including Java, are implemented in C + +, and a superb C + + project is used with classes and templates. And a lot of virtual machine code is harmful to efficiency.

-----------------------------------------------------------------------------------

C + + is not difficult to learn is what you think, will certainly feel not difficult, I also think C + + is not difficult but I do not feel that C + + is necessary to use, you think you need C + + when you actually need to be Python or Delphi. A qualified C + + programmer does take 3-5 years to cultivate success. This is already a universal concept, and the price is very low.

C can be used in the microcontroller some memory very small embedded platform, VxWorks and other platforms, these are C + + do not. So don't say that C can do that C + + can do it. C + + can't do that. Of course, you can write C-style, but what is the meaning of C + +?

C + + is a Tantaiqiuquan product, at that time oo just rise, anything like to the top, look at the history of the development of this problem is not no, the ancient soldiers are heavy armor, re-installed. Later, with the development of tactics, it is more and more important to find the speed far more than defense. C + + What to do, what he can do, what dynamic language can do, he should be able to do. Now completely and comprehensively to expand their performance, c++11 almost covered the operating system to do something, the garbage collection + smart pointer or template can be called the dynamic language. A complex language learning cost is too high, STL and boost is actually aging, of course, boost I almost did not study carefully, but the light look at this heavyweight architecture I feel that this thing is definitely not what I want.
If you use 100% of your energy to develop, how much effort do you need to make mistakes and debug?

Lua can be close to the speed of C + +, the design of the structure of aging is needed to prove the history, with the natural shortcomings of many people slowly show up, C + + is so, early people think Oo can abstract all things, but he forgot tomorrow is unpredictable, you can not guess what needs tomorrow, how to set aside the interface? Inefficiencies can be improved. But C + + is not a good choice for anyone who can maintain too much volume and various costs after C + +.
C + + is really a template + class mix, but because of the complexity of the result of the program, the Linux code is very simple, any C programmer can copy a section to use. But I have seen the complexity of C + + engineering is not the average person can understand, say that you do not listen to the code you do not necessarily know what to write, many graduate students are selling code everywhere, but no one bought the reason that is so, do not understand really can not understand.
Developing dynamic languages requires performance and C or assembler writing at the bottom. Everything is debug OK, really not can also be the dynamic language directly output to C language. The overall development cycle is certainly less than C + +, and the performance is definitely and even stronger than C + +. Virtual machine technology is also progressing, although it can not be fully achieved, but not to do, such as dotnet do very well.
What else do I say about the small processor vendor's solution? Maintaining a project like GCC requires a very large team. And a C compiler requires only a small team, and C syntax is simple, so the code logic optimization and so on is much easier than C + +. This advantage must be seen, and to know that in China, for example, the compiler field of talent is actually rare. A C + + team that wants to assemble 5-10 people is not as good as a 1-2-person team.
Of course personally, Daniel can have other better ways to listen.

-----------------------------------------------------------------------------------

As for the radish cabbage each their own, such as me, tend to study the operating system, development framework, such as the bottom, accustomed to think C + + good, and your focus on different, like C,python, language and no merits and demerits of the points, just what is not suitable for what to do, according to your location to choose the language, In the acquisition of some language features at the same time must have lost, gains is normal, there is a language to evaluate as far as possible objective. It's good to have it. Focus on technology rather than focus on differences.

-----------------------------------------------------------------------------------

The operating system is almost not developed in C + +, how do you use C + + to develop the operating system? WINDOWS,LINUX,BSD, embedded operating system, not to mention the real-time, almost all of the c+asm developed, you tend to study the operating system where?
I've been writing code with C+asm,delphi. This is the place that makes me feel confused, where is the advantage of C + +, I used two or three years C + +, finally I decided to return to the advantages of c+asm,c++ gradually by its own complex and high cost offset.
The individual is the core layer of the operating system, including security, reverse, network, and other research. And the more that the bottom is invisible C + +, as for the development framework ~c++ can not bring rapid development effect, but debugging and porting costs will increase. This is the thing that has always been a headache to me.
At least I personally can't find the need to use C + +. Of course, turnip greens each their own.
With the advent of new compiler languages such as go, people need to be lightweight rather than a monster like C + +. And there are alternatives, and dynamic language features make it easier to manage code. Does C + + really need it? Just their own personal ideas, put forward a way to throw away the C + + development program. Of course it's just a personal idea. Thank you for your advice.

Haikuos Guide is C + +, I'm sorry about your view

-----------------------------------------------------------------------------------

The landlord's argument is now C + + no useful? But why do I feel that most desktop programs are still developed in C + +? At least now the Java,python,ruby is still more used in the development of the server, these language development of desktop programs in addition to eclipse and other development tools and bit comet, OpenOffice, the other is not much, even if you can enumerate out dozens of, can be compared with C + +. The GUI libraries such as Qt,wxwidget are developed in C + +, which is not enough to prove the advantages of C + + in this respect. Game development is not to mention that, whether it is open source or closed engine, more than 90% are C + + development. John Carmack just started with C to write the id tech engine, to DOOM3 when not also turn C + +? Don't use your own supervisor to deny products, STL and boost developers I think at least better than you, they don't have nothing to do these complicated work to kill time? Damn things will die, like what Visual FoxPro, you say C + + is useless? It's a little early to be trapped, and it's a topic that inevitably leads to saliva. Even if the Linus are sprayed by people to fly, not to mention you.

-----------------------------------------------------------------------------------

What do you write fourth? Python/lua + a suitable JIT performance is enough to guarantee ... This kind of joke is still not open, I do not know those languages write a cry3 picture of the program frame number will look like. The most successful implementation of the Java-developed client-side game MC is efficient enough to prove it. The game engine only uses those languages in the Script section, and Lua is so caught up in the fire of Wow. But is the theme part of Wow going to be written in Lua? C + + does not need a virtual machine, relying on the library, you want to say that Delphi also do not ... Of course, Delphi is also good, the original third-party control is also a lot, but now with the people do not have a lot of it, was the royal blue sold after not know how, and seems to have gone to the. NET route. Sure enough vcl and MFC are old.

-----------------------------------------------------------------------------------

I do not think that stl,boost than the individual write clever how much (you can say repeatedly build the wheel, I come to tell you, the memory occupies too big, the general type does not work to the side dish use can, the actual job uses the algorithm to branch, the dynamic plan redesign, therefore stl,boost simply useless. This is the difference between the CPU and the FPGA, really high-precision algorithm can only write their own, you did not meet can only say that you do the work is really. ), DOOM3 code is no way, can only be changed (because the ID is acquired, and most of the engine users are c++er Carmack have to compromise, you let those C + + programmers abandon C + + all use the -Read the code carefully and you'll know. That's called C + +? Don't think that he's using C + + in C + + because you see a few classes, and C's share is much higher than C + +. What you call the C + + advantage, the C + + advantage is actually only one execution speed fast enough (another very small advantage native code good encryption). To say OO and development efficiency what's really not as fast-paced as dynamic language. Dynamic language because of better dynamic features can provide more powerful OO features, this is the C + + is not able to catch up (C + + features are not good support, because it is a compiled language so the C + + compiler is more and more bloated, the speed of compiling more and more slowly) now many people are still using C + + Because they are already using C + + again. This is like a lot of people are accustomed to use XP, and suddenly replaced Win8 think it is not as XP, and changed back. In fact, lazy is the most important reason. Python,ruby,java is not unable to develop the client (most of the clients do not need a high performance requirements, even if the need to write in C) in fact, or that sentence, no one will be willing to make efforts to the desktop of these languages. If the efficiency of execution is completely abandoned. Which language do you think is more suitable for use?
Linus was sprayed because of tone and attitude, and I don't think C + + has anything good. Unqualified C + + programmers will only make the code worse this is really true (C + + provides too many features so that many of the things on the side of the features are used, and stl,boost compilation, debugging is very complex, Guess he's gone, too. People understand what this code says. The Linux kernel needs a code that is visible to the individual at a glance. The simpler the code is, the easier it is to maintain. Of course C is not invulnerable (package management sucks.) C + + namespace is very good, but and python,ruby weaker than a lot of) to abandon C + + is inevitable, because there are more new languages born, more suitable for multi-person collaborative development, package management, modular design and so on. In addition Stl,boost algorithm General people write to write also not long, they have nothing to do so complex thing actually is idle nothing to do, for example Loki is to prove oneself can do and engage in things. There are certainly more and more projects in the future for multi-language maintenance. A single need for C + + is not a lot. Even a game C+lua or Python can be done. The logical part does not require much performance calculations.

-----------------------------------------------------------------------------------

Most projects do not require very high performance, such as the interface library with C+asm to develop enough to guarantee the speed, I said it is necessary to use C + + is not to say no asm+c, even the cry3 inside is embedded a lot of ASM to optimize the speed. What you're saying is always a single and absolute thing, and I'm saying, is it entirely a language development? Use Java without C? What I said from the beginning is that hybrid development does not say using a single language development. Also do not understand Delphi don't say Delphi,delphi was Iboron after the acquisition, out of the XE series, Now XE3.5 has been able to directly develop iOS programs (native directly compiled, do not need to freepascal) and VCL has long been no one to pay attention to, the interface library also replaced by Firemonkey, the bottom is DIRECTX+OPENGL implementation of the dynamic self-painted window, Also for cross-platform design, of course, because the master walked a lot of volume is too big (with LLVM, no way, but now still how many people care about 1m or less 1m volume) XE4 is able to directly develop Android and iOS programs. NET words Delphi early no play, VCL although more advanced than MFC, but Delphi now is not the main play this. Iboron completely built it across the platform. You can search for Firemonkey.
This is a fast iterative development era, C + + is too heavyweight, and development speed is very slow. Isn't it a good way to use fast hybrid development? Of course, I said in the beginning that this is only my personal recommendation and use of the way, we do not need to look at the individual.
And I said the level is different from the way you use it. C Compiler General people can also be maintained, C + + is not necessarily (some big manufacturers to now not fully compatible with c++03,11 is only a part of the support) can be developed to build their own CPU companies are more and more, in order to achieve better performance, is now soc-cpu+gpu+vpu+ FPGA acceleration. That's the problem. Big manufacturers will not help you small vendors do support, and small CPU vendors have no way to maintain the C + + compiler. Finally, it's time to go back to the way you gave up the FPGA-no one developed the compiler. If you use C, you can solve this problem effectively. One or two people maintaining C cross-compiler is not a difficult task.
Don't misunderstand me, I did not say that other languages are stronger than C + +, but that the advantages of mixed development are greater than C + +. Graphics engine needs performance This does not say, with asm+c to develop, but the logical part of the fact that there is not much performance requirements with Lua,python also enough, such as LUA, such as the lightweight language, maintenance of a JIT is not difficult for a person also enough to use. Chip manufacturers dedicated one or two people to maintain their own chip acceleration instructions and JIT is also fully achievable.
Is this not a more suitable development model for the future? Of course, the interface library and the like need to be completely re-developed, but this is also the trend. And I personally began to work in this area, and now has completed a part of Windows,linux cross-platform Interface library (graphic self-painting is not using the existing interface library) to ensure that each platform has the same interface results, asm+c write the underlying speed is guaranteed. Even if the future is to be ported to the embedded under the other cross compiler to recompile things.

-----------------------------------------------------------------------------------

Delphi starts from VCL,CLX is open source, Firemonkey now also open source. You can see the source code directly. You can directly modify the like, VC is not RAD development tools, only suitable for the development of a number of performance requirements are very large, rather than and do some rapid iterative development. C # The main goal is Java, in fact, you can look closely to find that is completely a class of Delphi C-series language.
Is mainly oriented to enterprise-level, Delphi from the birth is vbkiller not to Delphi said, at present Iboron really do is better than the original Borland better.
With the rise of Linux and OSX, the market for Windows is no longer as big as it used to be.
Anyway, it's not a little unreasonable to choose c\c++ and bind yourself to Windows? So many people are still using windows or that sentence. Windows application software is very mature, linux,osx development at all do not need any innovation, can be more classic windows on the transplantation of the past is a great success.
Phone,pad after all is only entertainment products, and ultimately to return to native development, JIT performance is not as good as imagined, and better points. Users do not care what you use to develop, how long, people want in addition to better use, there is faster, more power-saving. This is where the benefits of native development lie. Of course I have nothing to say about C + +. Most of the C + + programmers are too rotten to be overly superstitious about design patterns and oo abstraction mechanisms.
program = data structure + algorithm. Rather than an abstract model, no one can guarantee that the structure you write today will still meet tomorrow's development needs.
And the asm+c has better optimization and portability. The upper layer can be encapsulated using C + + or Lua or Python. Business logic often needs to be modified, and choosing a more convenient language is the way to go, while C + + is not a good design language. The interpretation of OO is not perfect and the development cost is high, the commissioning cost is higher.

-----------------------------------------------------------------------------------

I'm sorry to misunderstand your meaning. I want to make a development tool like Pelles ' C (and build a cross-compiler and development tool myself) instead of just trying to recompile under OSX or Linux. Asm+c I feel enough. It is also possible to invoke the upper layer with LUA or python. The actual optimization of C + + does not dominate. And most of the 64-bit compilers are also very unreliable. VC + + can not be embedded asm,masm64 incredibly even invoke and SDK package also does not. Everything has to be done on your own. Open source when you are ready to finish a base Interface library. The high-speed interface library will say later. At present, the base Interface library can run on the linux-gtk,windows. OSX is currently considering whether to use X11 or quartz. (X11 is actually very difficult to use-almost 30 years, the so-called classic design is the traditional design is difficult to use) a very important part of the future plan.
In fact, I am relatively conservative open source, I think in China do not play open source-even if open source also commercial open source, foreigners can afford to play is someone else's income benefits are high enough, they are not enough to eat not to pretend generous. The reason why Chinese programmers are poorly treated is to use open source too much.

-----------------------------------------------------------------------------------

Asm+c is mainly used to do the bottom, the article has been said very clearly, for example, many compilers are not smart enough to use SIMD instructions to optimize some algorithms, so asm some of the underlying still very meaningful, such as the game and graphics engine in a large number of use of inline assembly, Including the boot part of the operating system ASM has the need to exist, C is mainly used to organize and write the data structure part of the code. ASM is just to compensate for the deficiencies of C. Of course you can write in C, but as a game engine programmer, ASM optimization is not justified. Kernel programmers do not have ASM.
The future development is absolutely impossible to be Windows Unified World, if the Linux and OSX programs are as much as Windows. Who's going to play on Windows? The virus is so much (in fact caused by objective reasons) after the tablet, desktop, workstation all need UI part.
Not everyone needs to maintain an engine, or the game companies do everything to buy the engine without going to their own development, is the development cost is too high, buy a relatively easy, and the development cycle is very short, make money fast. See the game engine code to know that many of the code is ASM optimized. Opengl,directx just provides a very simple graphical interface, and does not help you to optimize a variety of graphics algorithms. So developing a common cross-platform interface library I think at least I need to-directui this.
If you have the money, will you buy Apple's laptop? If Apple can also DotA, you can also video, watch movies, play a variety of games. The rich who still use Windows?
Finally, the operating system will evolve into:
All with Windows is a dick wire
With OSX, they're rich.
It's all geek with Linux.

Programmers are going to write software that overrides the operating system and hardware, why do they always have to work for Microsoft? Do not always want to give yourself the easy, want to give users a convenient, what users need. Instead of always thinking about the development of their own simple, simple things others can do. You do not show value, you can do what others can not do.

In addition, Delphi Xe4 program can be executed on the ios,osx,windows. ARM support is said to be added so that both Android and iOS native development can be done. As you said, Win7-delphi was the first to support WIN8 development. You can download a lite version to try it out.

-----------------------------------------------------------------------------------

Linux desktops are also starting to rise, and many game companies, such as blizzard and Valve, have started game development on Linux. Open up a little bit of ideas. If you have on software Linux on Windows. The UI is simple and beautiful. Who wants to buy a Windows? Ubuntu is not intended for servers. And also all with desktop environment. In addition, the sentence is not pleasant. With the same software Linux or OSX support, the price is much higher than the Windows version price. And OSX's anti-piracy and Linux hack technology is still very backward (Linux source debugging is very painful, not to mention in the case that there is no good binary debugger to play cracked, Windows has ollydbg,ida,windbg and so on)
Delphi xe+ is a primitive development does not need other DLLs and the like is the volume is a bit large. Around 2M, compression can also be very small. You've tried Delphi's development environment to know that it's far more powerful than vs. 2010 after Delphi began to support generics, Rtti and other features (basic have no use)
Go language is not suitable for the development of desktop programs, the first development of desktop programs need to have interface library, IDE, debugger and other cooperation can be, webkit you feel efficient enough? Users don't care what you develop with, they want to be more stable, faster, and more powerful. And the WebKit is too big? And the performance is poor. What if you develop a game?
Code Slave's thinking is how to give yourself the easy way, the programmer's thinking is how to give users a convenient.
High technical difficulty can also improve the competitiveness of products. Do not stand at the point of view of the code but the user perspective to think about problems and choose technology.

-----------------------------------------------------------------------------------

The language argument really is many many, but can be in the final analysis, is because the person's 3-5 years of study, does not want others to be easy to negate the outdated or does not have, this is not equal in denies this person?
In fact, C + + can live until now the first three (at least there is a scientific basis, right), one is the history of the left, the second is indeed there are extraordinary places, is so-called, hateful people will have a respectable place.
The problem with C + + now is not that it's huge, because you can choose your favorite parts without perfection. C + + is also the problem of teaching, the existing c++er almost all from the C-learning bar, so to say, the use of C + + mode is C, C + + support multi-paradigm, from the previous discussion can be seen, class+template, yes! This is one of the methods that is object-based rather than object-oriented.
C + + syntax is more than other languages, which is one of his strengths, C + + can let us play, other languages can play? Although this sentence is very extreme, the boss will not like!
Language is the ingredient, not the tool! The ingredients determine the way the design works, so the language will determine the design! Thus affecting more follow-up. That explains why a lot of people think C + + has a poor development efficiency and maintainability-that's because you're thinking differently!
Well, C + + is not suitable for OO, this is the limitations of OO and C + + limitations together caused, C + + development to today, not huge, but more and more reasonable, but C + + in a very thorny road, both to achieve reasonable abstraction, meet the changes, but also to achieve efficient efficiency (design efficiency, compile efficiency, Operation efficiency), this, really miserable! But life is a toss-up, isn't it?

The future of the compiler-do we still need C + +?

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.