Is C ++ still actively used for general-purpose development?

Possible duplicate:
In which sector of the software industry is C ++ used?

C ++ has been the holy grail of mission-critical high-performance development for many years. However, it seems that over the past 10 years, like most of the development world, they have switched to Java and C #. My quesiton is, is C ++ effectively assigned to embedded systems, OS, browsers and other special developments? Should I let this skill set go the way of VB 6 and other skill sets that no longer exhibit the same level of demand and value in the market? I love C ++ and would like to update my knowledge in it, but I don’t even know where to start trying to apply it to common business problems today.

Sincerely.

+7
c ++
source share
14 answers

First of all, I doubt that someone can give a definitive answer - it is simply impossible to say exactly how real any particular language is used. Almost everything you can measure is a secondary dimension, for example, how many people advertise assignments in that language. The problem is that this tends to show relatively new languages ​​as dominant to a much greater extent than real ones.

However, my conviction is as follows. At one time, C ++ was a hot new language on the block, and when it dominated the market, a bubble appeared. Some time ago, this bubble evaporated. Since then, the use of C ++ has been growing on an absolute basis, but the market is growing (quite a bit) faster, so its reduction is on a relative basis.

There are several reasons why this does not appear in most secondary measures, such as job postings. A couple of obvious ones include:

  • Many C ++ teams now have years to settle, so the turnover rate is relatively low.
  • Now it is well known where it is used, therefore, positions are usually filled with internal promotions.

There is another effect that I almost do not want to mention, but it is true no matter how few people like it: there are both programmers and managers who are more enthusiastic about the "new" than the effective ones. This leads to a large group of imitators who are constantly on the way to the latest and most “technological” technology (be it a language, wireframe, platform, or something else). They get a job, a loaf (or, worse, actually write some code), and then move on to the next victim ... er ... to the employer. They cause a lot of “outflow” and inflate the number of vacancy announcements, but practically do not give any real value. This group has long moved from C ++ to Java, and has long gone from Java in C # to Ruby on Rails on Hadoop, which is what managers are excited about this week.

In order for me to seem overly negative, I must add that along the way some of them really find something good, and (basically), as a rule, stay with it. Unfortunately, for everyone who does this, there are at least five more new graduates to join the crowd ...

+12
source share

"C ++ is effectively allocated to embedded systems, OS, browser"

"other special development"

Do you mean 99% of code users daily?

+10
source share

C ++ is still widely used in many mission-critical financial applications. For example, most Bloomberg platforms are based on C ++ with a very small interface in other languages. Many investment banks and hedge funds use algorithmic trading systems written entirely in C ++ (for example, Tower Research Capital, Knight Capital, etc.).

If you have been out of C ++ for some time, you may have to get used to a whole group of standard libraries. When I did most of my C ++, the STL was pretty new, and you either accepted Microsoft files or didn't. If I were to return to C ++ now, I would need to study all new libraries in order to be effective.

I think that most of the movement into other languages ​​is related to website development and website development. The main exception to this will be Google, which still mainly uses C ++ and Python.

+7
source share

C ++ is still valuable for many high-performance applications. There are other technologies, and depending on the situation, different languages ​​are better suited to your needs. But if you need high performance, good control over what your code does, as well as a flexible network and software stack, C ++ is still a good choice.

Best offer: let the problems come to you and find the language that is best for the situation, instead of taking the language and looking for problems.

However: if you know C ++ well, you can learn / program in everything.

+5
source share

So far, C ++ is the only language that is object oriented and compiled (or at least with a mature ecosystem of compiler optimizations). This leaves him the only choice for most large-scale, complex projects.

For me, a vivid example are games and game engines - these are huuuuuge projects that compress machines for milisecond fractions. MS is trying to get some craving for XNA (the game-dev managed infrastructure is basically a DirectX shell), but most likely it will never get any AAA games.

+3
source share

If I look at the applications that I installed on the laptop, I write this message, I see a lot of C / C ++ and several (if any) managed applications. Examples? Google Chrome, Firefox, iTunes, uTorrent, Spotify, Picasa, Google Earth, OpenOffice, Notepad ++, IrfanView ... the list goes on and on. I write desktop applications for life that are installed on thousands of computers around the world, and C ++ is still my language of choice. The lack of dependencies (WTL is your friend) is a massive plus of IMHO (and what I have to add for my clients!) YMMV, although as an experienced developer, I think that it is quite effective in C ++, but I can’t speak everything.

+3
source share

It has not disappeared if you need to do something really, really fast. If "fast enough" is okay, then C # and Java are okay, but if you have a calculation that takes several hours or days, or you need something to happen on microseconds of a time scale (for example, high-frequency trading), C + + is still the language to use.

+2
source share

Most often, we are mistaken in the advertising cycle. At first there was Java, then PHP appeared, and now Python. But the fact is that the development of a general-purpose desktop application still requires the use of libraries such as Carbon / Cocoa for Mac, GTK / QT for Linux, MFC for Windows. All of them are based on C / C ++. So most applications are written for these platforms. Thus, calling C ++ as an extension to the built-in is not right, although yes, it is widely used now, unlike before, when it was just an assembly or C at maximum. In my opinion, if you want to use a high-performance application with a great GUI, you still need to do it in C / C ++.

+2
source share

Different languages ​​are spoken in different areas. It is interesting that you think that this may not be important when assigned to embedded systems, when in fact this is where most of the software development takes place; at least in terms of the number of projects / products.

There are many ways to measure, and some of them are presented here: http://langpop.com/ . The evidence suggests that C ++ remains important.

+1
source share

I'm not sure if the gaming industry is a "general-purpose development", but if you want to develop something that you intend to work on more than one console, C ++ is for lunch. Although many game and 3D libraries have extensions for other languages, they have all extensions for C / C ++.

+1
source share

C ++ is still used wherever you need the best performance. Its main advantage is that you can use it literally for everything. In addition to what other people say, you can also use it to power websites, for example, OkCupid uses it almost exclusively.

As Facebook hip-hop recently shows, in the end, if you can afford it (that is, you have a large and competent team), you can always get something using it. Then it is also a matter of scale, other than industry.

+1
source share

C ++ is still very popular. For example, in combination with Qt, it is often used.

0
source share

C ++ is usually used to work in a system, it is usually defined as software in which the user interface is not central, and does not work with applications where the user interface is central. Thus, for the general use of the business, this is probably not very interesting, and these problems are better solved in a higher level language. However, low-level systems will always run, and C or C ++ is the practical answer to these problems right now.

0
source share

How is a common development language? Well, it depends on your industry, but I worked in two different industries, and there is always a lot of work in C ++:

  • Telecoms
    • Embedded devices often use C and C ++ for basic services.
    • Network equipment, often very complex, makes heavy use of C ++
    • Software applications that work with equipment are often written in C ++
  • Financial services
    • Trade Execution systems are often found in C ++. You cannot use your garbage collection when you complete an order for a customer.
    • Algorithmic and high-frequency trading systems are usually found in C ++
    • General trading systems that do not have strict speed requirements seem to be in C ++ and Java, and C # is also starting to display.
    • Administrative applications are usually written in Java, VB or C # these days
    • Recently, there has been a trend towards functional languages ​​for quantitative analysis, so F # and Haskell begin to appear, and SAS and Matlab are always common.

I read somewhere that Nyse / Euronext uses Java, but disables the garbage collector and runs on servers with insane amounts of memory.

0
source share

All Articles