Re: [dev] Web development in C (or, C'ing clearly through the webs of bias)

From: Anselm Garbe <garbeam_AT_gmail.com>
Date: Thu, 31 Jan 2019 09:49:02 -0800

On Thu, 31 Jan 2019 at 07:50, Zach van Rijn <me_AT_zv.io> wrote:
> If I may cite a brief excerpt from this page:
>
> > Our philosophy is about keeping things simple, minimal and
> > usable. We believe this should become the mainstream
> > philosophy in the IT sector. Unfortunately, the tendency for
> > complex, error-prone and slow software seems to be prevalent
> > in the present-day software industry. We intend to prove the
> > opposite with our software projects.

This is still totally accurate for the software industry, even more
accurate than we could imagine 13 years ago when those lines were
written.

> It has been my observation that valuable discussion has been
> shut down or skewed due to knee-jerk biases such as yours. This

The problem is we don't have time for endless discussions and should
rather spend the time we can cut out of our day lives with coding.
I've become very bad at finding time for coding during the last yearS.

> > [Rust] is certainly better than C++ or Java and avoided many
> > mistakes (like exceptions and going to far with OO).
>
> * OK, you made a claim. Please explain _why_ and _how_ this
> supports your claim.

I provided some pointers that support my claim already, in particular
exceptions and OO. Both have proven to be root causes of complex
software design. The problem with exceptions is pretty obvious, as any
program using them has totally unpredictable control flow and the
point you start using them, you have to try catch almost everywhere to
handle them. Clearly simple error returns are the winner here,
regardless what language you use. This lesson is also shared by
seasoned C++ developers btw. No serious C++ developer would suggest
exception handling.

Regarding OO you only have to look at the Java world to understand
what went totally wrong. Mixing data structures with behaviour is one
of the worst ideas that progammers came up with and has led to almost
unmaintainable code and data structures. In Java world 'refactoring'
is daily business because of this. I can't go into more detail as this
would be a big waste of time. If you want to learn more about it, I
suggest to start here:
http://harmful.cat-v.org/software/OO_programming/

> > On the other hand the typesystem isn't great and much more
> > complex than golang's approach.
>
> * What (part of) golang's approach are you talking about?

I talked about the typesystem. Check out how Go's typesystem works and
compare that with Rust. You will notice within 10 minutes which one is
more complex.

> * Why is [Rust's approach] bad? How is it complex?

I said it isn't great, that doesn't imply it is inherently bad, but it
is certainly complex.

> In the same way that a developer is (or should be) responsible
> for every single line of code they write (and properly testing
> their software), it is my belief that people be responsible for
> their words, biases, and consequences of them. "Digital hate".

We won't give up the freedom of speech here. Suckless has never been
about PC BS, but focussing on technical stuff.
We call things what they are. Clear messages are required in this world ;)

Best regards,
Anselm
Received on Thu Jan 31 2019 - 18:49:02 CET

This archive was generated by hypermail 2.3.0 : Thu Jan 31 2019 - 19:00:08 CET