What applications are currently running in C ++

With RoR, Java, C #, PHP, etc., what do people use C ++ for these days?

+4
source share
14 answers

You compare apples to oranges. Languages ​​such as PHP, Ruby, and Python are scripting languages. They a) are interpreted and b) do not provide the kind of access to low-level memory access that C ++ does, and therefore are not suitable for things that should speak directly to equipment. Java and C # run in runtime on top of a specific platform and for the same reason are not always the best choice. In all of these cases, things like garbage collection can cause speed and performance.

Languages ​​are just tools; You choose the best tool for this task. Just because higher-level languages ​​facilitate many tasks for a particular application domain does not mean that lower-level languages ​​do not have a place.

+12
source

C ++ is the preferred language when the user interface is more important than the cost of development.

Performance. When the user’s time is valuable enough to spend the extra hours of development. Stability. Other languages ​​can quickly raise something of the quality of descent. But if you want it to be flawless, C ++ is the best choice. As usual in C ++, both are easier to understand that this is completely wrong and completely correct, depending on your skill and time. Ease of use. You can provide a single binary that works everywhere. It is not necessary for an inexperienced end user to bother with setting runtimes and translators who care about VM versions and configuring GC. User Resources. Just because the user has 2 GB of bar, this does not mean that she wants our program to use all this. Usability. If you need a custom, custom streamlined user interface.
+8
source

What has been missed so far are projects in which a significant base of C or C ++ code already exists. Most software work is not going to create completely new programs. If you are so blessed that you are creating something completely de novo, great, but that is not the general situation.

You can mix languages, of course, so that you have the old main C ++ program with additional code written in some other language. But this is not easy, for several reasons:

  • Here the mismatch of the impedance between the languages ​​themselves. Try sending std :: multiset C ++ to Perl. This looks like an associative array, but not really. You end up using data structures with the lowest common denominator, avoiding anything that is common to only one of the two languages. Then you lose some of the features that you tried to get by mixing languages.

  • You have to spend a lot of effort to define some kind of API between the two parts of the program. Most programs have not yet been created for this layer. Refactoring and packaging old kernel functionality to ensure this is not easy, and it continues to work as the program area expands.

  • You need to either integrate the interpreter for another language into the old C ++ kernel, or you need to run it as a separate program and arrange coordination between these two different programs. They must start and close together, they must support their IPC channels, etc.

  • Having overcome all of the above, you often have to write code for both halves of the program. You will always have a slight delay, while your brain makes a kind of shift in the mental context between the two languages. It never drops to 0 delays. This absorbs some of the superior performance of a higher level language. This is especially bad when working on a new high-level code feature that requires adding something to the old C ++ core, so you constantly bounce between them. This can be done, but it drag on performance, the main declared ability to switch to another language.

+5
source

Two of the most common ways to use C ++, I would think, are graphical interfaces and video game programming.

+4
source

Almost everything on the desktop (except paint.net)

Everything on the server running RoR, php, etc. (any language that your own compiler cannot write is probably written in C ++)

Anything less built in than iPhone

All that has to do with a lot of calculations is not in Fortran ;-) Yes, I know that C # performance has improved, has anyone turned around to rewrite LAPACK, BLAS or NAG into it yet?

change -
Is there an icon for most comments?

This is why SO is not working for discussion. Please note that the order of the comments changes as they vote. If you want to have child arguments, there is always reddit.

+4
source

Anything where performance is top priority. Garbage collection, HTML rendering, animation, games, heavy computing ...

+3
source

And thanks to the personal capabilities of CAD / CAM plugins / add-ons, C ++ is also available, especially if you want to target multiple CAD systems (e.g. Pro / Engineer, SoludWorks, CATIA, UG, AutoCAD, etc.).

+2
source

While there are other languages. Many poeples that have used C ++ in the past are not just about to pick up winners from Java or C #. Linux is doing fine and good in its own way, but most of the computer market still belongs to the evil empire. Java is not the dominant language there, no matter how religious Zealots claim to be. In fact, in small business applications, VB is king. I think I saw one figure giving 58% of the internal development for GUIs. C # is gaining momentum, but I suspect that this is primarily from a younger crowd, which is less tuned there. You can argue until your blueness becomes the virtue of a new language with someone who has been using the language for 15 years, and they don't care. "Oh, that's great". and they turn back and keep typing their C ++.

Edit:

OS, C development possible C ++.

The tool and development of Langauge, C is possibly C ++.

Industrial control, C, C ++, Labview in somecases, FPGA development and NO fashionable languages.

The nested set of C, some C ++ and some necessary assemblies.

(The iPhone is a universal phone-enabled PC. For special purposes.)

PS3 C, C ++ and some build required.

XBox360 Some C #, mostly C ++ and some C, and assembly is required again.

GPU programming? This is not PHP for confidence in DAMN.

Programming in Windows C ++, C # and even some C fixed, VB.

Edit:

@Jeff L: A cult following many of these languages, I find irrational and disagreeable. I am starting to move away from anyone who steals poetry about ANY language; it's just mental. It is not a question that professionally selling applications are NOT written in Java for Window, it is a fact. Sorry, but it's true. This may be useful in the IT world, but not for Windows-packaged software. I am writing embedded software, and the “function” of the lack of pointers means that hacks that break the language are required to do any practical work there or on the OS and device drivers. There are times when you have to "fly without a network", and interpreting languages ​​are developed SPECIFICALLY so that you do not.

And not to be too controversial, but the legacy code base is a difficult issue to get around. Although we are writing new code in C and C ++, I can’t even get PAY control to update old code written in Fortran or Ada in C or C ++, forget Java, which requires a completely new coding standard and loading procedure and documenting downloads that cost even more. And if the only software you write is the GPL and the freeware that pay for it, is the main concern. And in many cases, “if it does not break, do not fix it,” it does not even apply, “if it breaks, and no one sticks, we do not pay to fix it” - this is the choice of management.

+1
source

Project Support. Many projects are written in several languages, where all backend operations are written in C ++, where APIs for other languages ​​are provided.

The best project I can think of is GNU Radio. Basically, how GNU Radio works, all DSP blocks (modulators, filters, etc.) are written in C ++. However, you are using your radio using python, i.e. you are connecting blocks together in python.

+1
source
  • Any project that requires direct access to hardware, such as drivers, operating systems.
  • Any project where higher productivity is a competitive advantage, for example, games, simulations.
  • Any project that requires a small area, such as embedded systems
+1
source

Check out the modular click router. Fully written in C ++ (with some C where necessary)

0
source

Many micro-players (enthusiastically) use C ++ for just about anything you can think of.

It is not supported regularly, but here is a list of applications written using C ++ Builder. I was pleasantly surprised to see WinRAR and Partition Magic.

0
source

I just interviewed a company that has C ++ programs using VS5.0, as they continue to plan phasing applications in C ++, so no update is required. After 12 years, you expect them to just upgrade their compiler.

If you want to use DirectX, you need to use C ++ now, since MS has refused support for the DirectX API.

As already mentioned, in the embedded world, C ++ or C are the main languages.

If you are working on a system that cannot crash, you can use C or C ++ and just not use the new or malloc, but use arrays so that you do not have memory leaks, which could probably be the reason the lengthy process may end due to lack of memory and failure.

If you intend to do a lot of programming at the kernel level, then C or C ++ makes more sense, as there will be some functions to call that will be incredibly difficult to call from C #, for example.

0
source

We carry out these projects in C ++:

  • Modeling
  • The game
  • GIS Tools

if you need performance you should use C ++ ...

0
source

All Articles