Breaking News

Why is C++ important?




Disclaimer: this post is sort of a motivating post for students. Professional programmers may find it uninteresting or painful (especially if you code in C# or Java or JavaScript).

C++ is the hardest language for students to master, mostly because they have to think much. Really much. We don’t claim that C# is easy, or Java is easy, but in comparison, yep, they are easy. 

Many other popular languages provide some cool “features” allowing developers to concentrate on their actual problem, instead of worrying about language-specific quirks (agree, C++ has so many of them). In Java/C# you have automatic memory management, e.g. “don’t think about the memory at all”. In JavaScript you also have freedom of using var, no int’s, no double’s, no floats and char pointers at all. “Just store the value somewhere and somehow”. 

The levels of abstraction allowed programmers to solve their problems faster than before and simultaneously, those levels of abstraction allowed programmers to “know less, do more, don’t worry, make money”. For sure, you don’t need to worry about memory management, or types or whatever else packed in a fancy title “performance”. It’s just you and the problem you are trying to solve. Language is just a tool. It must help you, not hurt you and your little feelings. And your job title (senior, right?).

What would become a programming student who will study, for example, JavaScript as their first and only language? Definitely not a programmer. Yep, just an advanced user, or you might say a “StackOverflow copy-paster”. Why so? Let me introduce you Alice, she’s a lawyer, she‘s good with computers, she can install software, setup a network connection, she’s able to distinguish WiFi from Mobile Data, but she doesn’t know programming. She is aware of different operating systems for desktop and mobile.

 She even uses two operating systems, an OS X installed on her MacBook and a Windows, installed on her office desktop. She kind of knows even that Mac applications couldn’t be installed on Windows. She uses some hard to master software for her job, some lawyer-specific soft, with many menu items, buttons and dialogs. 

To master this software she took classes for “SupaLoya2012-Ultimate”, she learned difficult queries to request court cases, she learned the protocol of using the SupaLoya2012-Ultimate, e.g. the order of buttons and menu items to click to get desired results. She definitely is not a programmer, you can call her someone who knows how to work on a computer better than many others and she knows some hard and specific software, its protocols, queries and stuff.

So, why is it a MUST for students to learn C++ as their first programming language (and learn it really well). Because, by learning C++, students have to:

  • worry about memory management;
  • know the difference between compiler, linker and loader;
  • find out that compilers make some optimizations (compilers code better than you);
  • learn meta-programming;
  • distinguish compile time from run-time;
  • really understand low-level implementation of polymorphism (such as virtual tables and virtual table pointers, or dynamic type identification);
  • pointer arithmetics, which could be a good base for understanding node-based data structures (f.i., linked lists, trees or graphs);
  • find out that compiler generates platform-specific code, and discover that there are many other platforms, instead of Windows on x86;
  • find out that there are ELFs and PEs and other executable file formats, each of which has a bunch of sections you should at least partially be familiar with;
  • find out that the size of data types is something you have to worry about (sometimes);
  • implement some function pointers to understand the under the hoods of callbacks;
  • dive deeper into generic programming;
  • use and understand iterators, implement containers supporting various categories of iterators;
… the list goes on and on and on..


These are some “knowledge” that are a MUST for any CS student, at least for any CS student who is willing to become a good programmer. Mastering C++ guarantees required experience to master almost any other programming language. 

Why C++? Easy to answer to this one. Tell me what you want to be a world-class developer working on really interesting stuff.. ?
..or you just want to make some money while coding routine tasks with some Currently Popular JS Framework?

If your answer is “ye-yeah, i want to be a rock-star developer”, then C++ is your choice. If you are the guy who claims “oh, come on, language is just a tool, I know React, I can do a lot of stuff, I make money, man!” Sure you are right, no one tells you shouldn’t use other tools, no one tells you shouldn’t solve problems with a tool created just for that particular problem. Finally, no one says you should code some website’s front-end with C++.

 It’s your choice, but remember this, JavaScript runs on engine written in C/C++ (f.i. Google V8), .NET Framework CLR is written in C++, even MS Windows is written in C/C++. Java JVM is written in C++, MongoDB, Redis, web-browsers, Linux, MySQL, (I’m listing random software/tools), Adobe Photoshop, Illustrator, Nginx, OS X is written in a mix of language, but a few important parts are C++, many Google internal/external products (including Google Search), Microsoft Visual Studio, even C# compiler itself is written in C++. (you can find more by googling).

At the dawn of the 21 st century, C++ was under assault. Fans of C pointed to C++ programs whose performance was inferior to supposedly equivalent code written in C. Famous corporations with big marketing budgets touted proprietary object-oriented languages, claiming C++ was too hard to use, and that their tools were the future. 

Universities settled on Java for teaching because it came with a free toolchain. As a result of all this buzz, big companies made big-money bets on coding websites and operating systems in Java or C# or PHP. C++ seemed to be on the wane. It was an
uncomfortable time for anyone who believed C++ was a powerful, useful tool.

Then a funny thing happened. Processor cores stopped getting faster, but workloads kept growing. Those same companies began hiring C++ programmers to solve their scaling issues. The cost of rewriting code from scratch in C++ became less than the cost of the electricity going into their data centers. All of a sudden, C++ was popular again.

So, do you want to make some noise? Then learn C++!

Share:

No comments:

Look at

Popular Posts

Powered by Blogger.

Categories

Categories

Advertisement

Main Ad

Tags

Tags

Business

Business/featured
Find Your Destanation in Here on Us

Sheekooyin Jaceel ah

SHEEKO: Iska Illow Boodhari iyo Hodan, Qays iyo Layla, Lamaane kale oo Jacaylka Astaan u Noqday Adduunkana Taariikh ku Reebay!!

Jacaylku waa Maxay? Culumadii Hore ee Falsafaddu waxay ku wareereen in ay Qeexaan macnaha dhabta ah ee Jacalka , Plato oo kamid ah culu...

Recent Posts