Sujet : Re: Top 10 most common hard skills listed on resumes...
De : janis_papanagnou+ng (at) *nospam* hotmail.com (Janis Papanagnou)
Groupes : comp.lang.cDate : 28. Aug 2024, 17:48:34
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vankd2$3i0if$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
On 27.08.2024 01:47, Bart wrote:
On 27/08/2024 00:33, Janis Papanagnou wrote:
On 25.08.2024 20:24, Bart wrote:
On 25/08/2024 19:12, Bonita Montero wrote:
Am 25.08.2024 um 18:28 schrieb Michael S:
>
Define "abstraction".
>
This could have been looked up online (e.g. in a Wikipedia article).
>
>
OOP, functional programming, generic programming, exceptions.
>
(And there are yet more.)
>
That isn't surprising. The code you constantly post always uses the most
advanced features, uses every toy that is available, and the most
elaborate algorithms.
>
I'm not sure in what bubble you lived the past decades. The listed
abstraction examples date back to the 1960's. They were realized in
many programming languages,
Perhaps not so much in the ones people used. Assembly? Fortran? Cobol?
There have always been academic languages.
As said, there are lots of languages. And since from the thousands
of existing languages you cannot expect all to become hyped or used
there's of course "not so much" that people generally use. From the
widely used ones - inspect Wikipedia or Google to find them! - just
pick some and see what abstraction concepts they support (e.g. from
the listed ones above). Living examples for OOP are many; C++, Java,
or OO versions of long existing languages. For functional programming
I've heard of e.g. Lisp(-Dialects) still widely used, and even C++'s
STL implements a functional framework (in addition to genericity and
OO). - It's presumably the bubble you're living in that prevents you
from seeing that? If you'd have, intellectually or practically from
own experience, understood abstraction concepts you'd probably see
more clear what that means, what advantages you gain from each of
these abstraction concepts.
including long existing ones as well as
many contemporary ones. I suggest to try to understand the concepts
if you want to reach the next experience level. :-)
I sometimes use (and implement) such features in scripting code which
has the support to use them effortlessly.
I've rarely needed them for systems programming.
If you're restricting only to a small subset of software engineering
areas some concepts may probably be less useful to you. Though why
you think that, e.g., OO concepts are not useful to be applied to
systems programming is beyond me. I can only say that "thinking OO"
is not naturally given, it's something you may instantly understand
when you hear about it (given a proper experience and open mindset)
or observe others how they use it advantageously.
My comments were in connection with their clunky and abstruse
implementations in C++, and BM's habit of posting C++ code full of
gratuitous uses of such features.
I cannot see what examples you have in mind or what it is that you
find "clunky and abstruse". The intention of, e.g., OO design is
certainly to make non-trivial code flexible and comprehensible,
i.e. exactly the opposite of what you allege. Of course, nothing
is for free, and a programmer must have a minimum of knowledge,
experience, or openness of mind to understand that. And of course
you can (as in any language [but Intercal]) design and code your
programs more or less intelligibly; this is independent of using
abstraction methods or not. And C++ is a special matter anyway;
you have (inherited C-) things that contribute to abstruse code,
and you have (specifically with the newer C++ standards) a lot of
often cryptic appearing features which makes it hard especially
for C++ newbies. I suggest to try to separate the concepts from
specific (strange appearing) language features or specific (bad)
code samples.
Janis