Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <van2ok$3f3q8$1@dont-email.me>
Deutsch   English   Français   Italiano  
<van2ok$3f3q8$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!npeer.as286.net!npeer-ng0.as286.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Thiago Adams <thiago.adams@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: Top 10 most common hard skills listed on resumes...
Date: Wed, 28 Aug 2024 08:47:32 -0300
Organization: A noiseless patient Spider
Lines: 66
Message-ID: <van2ok$3f3q8$1@dont-email.me>
References: <vab101$3er$1@reader1.panix.com>
 <vad7ns$1g27b$1@raubtier-asyl.eternal-september.org>
 <vad8lr$1fv5u$1@dont-email.me> <vaf7f0$k51$2@reader1.panix.com>
 <vafgb2$1to4v$2@dont-email.me>
 <vafkdk$1ut4h$2@raubtier-asyl.eternal-september.org>
 <20240825192810.0000672c@yahoo.com>
 <vafs6u$21ofd$1@raubtier-asyl.eternal-september.org>
 <20240825220016.00002793@yahoo.com> <86bk1e4y7t.fsf@linuxsc.com>
 <vajn50$2rqra$2@raubtier-asyl.eternal-september.org>
 <vajnha$2rtl3$1@dont-email.me>
 <vajns4$2rvg8$1@raubtier-asyl.eternal-september.org>
 <vajspc$2so1b$1@dont-email.me>
 <vajtdo$2ssc8$1@raubtier-asyl.eternal-september.org>
 <valodj$35rt8$7@dont-email.me>
 <vamarr$3btll$1@raubtier-asyl.eternal-september.org>
 <van0h7$3eqvr$1@dont-email.me>
 <van1sb$3f45o$1@raubtier-asyl.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 28 Aug 2024 13:47:33 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="ff69eccb6a03ed8e39f9d9a339aa428c";
	logging-data="3641160"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19WqGiz4wVZW4N6GjC7rHA1mDP+h8DTxws="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:+GFclc59Coh6GJYZYhrbT+yzaj4=
Content-Language: en-US
In-Reply-To: <van1sb$3f45o$1@raubtier-asyl.eternal-september.org>
Bytes: 3877

On 28/08/2024 08:32, Bonita Montero wrote:
> Am 28.08.2024 um 13:09 schrieb Thiago Adams:
> 
>> There is often confusion between abstraction and the syntax used to 
>> achieve abstraction. Since there isn't a specific term for this, I'll 
>> refer to it as "syntax for abstraction."
> 
> The distinction is that with abstraction you have not much code but
> a big effect. Take f.e. a dynamic_cast<> which does a downcast. What
> the dynamic_cast<> does is simple, but compared to C it generates a
> lot of code.


C++ generates a lot of code, including constructors, destructors, and 
virtual functions.

While abstractions can also be achieved in C, they have to be 
implemented manually.

However, the solutions are often more tailored when done this way.



>> In C, we have everything we need: "data" and "functions."
> 
> In C you have five to ten times the code and mostly boilerplat-code
> to do the same thing.

But this is nothing we can't live with, with the befit of disallowing 
other unwanted C++ features.


>> For example, we can create an abstraction for a Matrix. Ultimately, 
>> the Matrix abstraction is represented by struct and the operations on 
>> it are functions:
>>
>>
>> struct matrix a = {};
>> struct matrix b = {};
>> ...
>> struct matrix c = matrix_mult(&a, &b);
> 
> In C++23 you can have a matrix class and a multidimensional array
> -operator. This would result in the same code but much less effort.
> 

If you mean code written by other people, then this is about a big 
"framework".
C does not have that.
On the other hand you find any code you need in C searching on the web.

(But I think C need more std functions, like utf8 support)

---

Many times, C++ abstraction are incomplete.
For instance, "smart pointers" should be called fake pointers.
C++ std::string does not represent "literals". Them we have .c_str() and 
we also my have extra unnecessary conversions and allocations.