[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Lies in education [was Re: The "loop and a half"]

Bill <BILL_NOSPAM at whoknows.net>:

> Steve D'Aprano wrote:
>> Bjarne Stroustrup is famous for designing one of the most
>> heavyweight, baraque, hard-to-understand, difficult-to-use
>> programming languages in common use. While C++ has many excellent
>> features, and is constrained by the need to be compatible with C, I
>> don't think many people believe that it is a well-designed language.
> It is a well-designed language.  It is and was carefully thought out.
> One could argue that there are perhaps "too many ways" to do a given
> thing in Python (one could say it's features are "not orthogonal"). I'm
> sure you are familiar with where the language drew its name.   I'm not
> here to "cast stones", I like Python. I just think that you shouldn't
> cast stones at C/C++.

One is allowed to have opinions and express them. We are not talking
about religion here.

I don't like everything in Python. On the whole, though, it is an
excellent language. In practice, it is the best available tool for most
programming needs I face.

There are situations where C++ is suitable. Its primary advantage over C
is the automatic generation of the virtual table. However, having
programmed in C++ for a decade or so, it has left a bad taste in my
mouth. Its core philosophy (ie, do the utmost at compile time) is
cumbersome and misplaced. Until very recently, C++ didn't offer a good
way to implement callback functions, for example.

> People started programming in C in the late 70's,

For the most part, I like C much better than C++, even though the
standards committees have been working hard to sabotage it.

> One thing you didn't bring up at all, is that the audiences for the
> languages appears to be different. You still need folks who can encode
> data structures and write device drivers, from scratch. And "woe" if
> you need performance, such as applications involving AI.

For performance-critical stuff, I use C. For the rest, I use Python and
bash. There are other excellent languages, but they don't have a real
market niche between C and Python.