[svlug] This mess is surely a conspiracy, my brain hurts and I don't like complexity or live long and prosper

Ivan Sergio Borgonovo mail at webthatworks.it
Thu Jan 1 09:43:58 PST 2015


On 01/01/2015 02:58 AM, Steve Litt wrote:

> How about this: Let's call the init fight our "Hello World". Let's see
> if we can prove the concept of jumpering around dependent cruft,
> starting with init, and continuing on to all the rest. And let's see
> if we can publicize this enough that the powers that be stop entangling
> everything, and slowly detangle what they've got.
> 
> Happy New Year to all, and let's toast a 2015 that will become known as
> the year of simplicity and choice.

https://devuan.org/

I know the people behind this and I know the Debian maintainer of udev
too and he is a pretty big fan of systemd and he works as a sysadmin.

I'm not a Linux system programmer.
>From my point of view and experience as a user I do like systemd.
I think I'll like it even when I'll have a chance to program Linux
embedded system (now I'm programming things that are just a bit too
small to run Linux or where Linux doesn't make sense just right now).
Many people more knowledgeable than me on this topic, in pretty
successful positions, decided it was a better thing than sysvinit.
Are they all secretly paid by NIST and is this all a big conspiracy?
Someone says so [0]. Should I add a smiley? Which is the evil grin one?

But well then why Linux doesn't have a microkernel? oh wait Debian had a
microkernel it has just been dropped from support [1].

I wouldn't be surprised if later, whenever some "better" candidate will
come out people will be more interested in decoupling.

Systemd is surely more complicated than sysvinit as memory management
and process scheduling is more complicated in Linux compared to 10 years
ago.

I still haven't run into troubles with systemd, so I didn't have to
debug anything but systemd let you have a much earlier log than sysinit
and I know there are people that are working on making journald even
more useful and fun to deal with.

Complexity is unavoidable, I'd say invaluable actually.

There are some investments that requires you to make debts and once
you're mostly successful you may even forget you've some small debt
hidden in some corner. sysvinit is actually a reasonably old system debt
for Linux and systemd is not the first attempt to improve it.
Worse is better, better is worse and everybody agree we can disagree,
but someone at the end has to be right, so really worse is better is not
really true, it is actually false and surely now someone is wrong on the
internet.

Did anyone came out with the perfect method of software development in
an environment that is as rich as complex? [2]

Do we have the perfect software? No
Do we have a better software than say 5 years ago? It seems so.
Do we have to be concerned? It just depend on how serious you are about
this particular problem, because there are many others.
If you've the skills do something, if you don't have the skills get
them, if neither invest your time better.

As a side note unix command line utilities don't really shine for a
coherent powerful interface, that was secretly meant to make them really
decoupled with anything with any random interface, IO redirection was
there just to mislead you.

[0]
http://igurublog.wordpress.com/2014/04/08/julian-assange-debian-is-owned-by-the-nsa/

[1]
https://lists.debian.org/debian-devel-announce/2014/09/msg00002.html

[2]
I seriously doubt. As you may remember I decided to go back to web
programming for fun.

This pretty summarize what I had to "rediscover" in a bunch of hours I
dedicated to find the "perfect" toolset that should have made me happy
to play with the web. And these days software development doesn't seem a
very rational process.
If you dare to look at the details of how many things were discovered,
done, broken and fixed and rediscovered over and over on the web you'd
be surprised how long the list is.

I started to look at python web frameworks. I ended up picking up flask.
Web development is changing so fast that people are concerned to invest
too much in one "component" that "micro framework" is the buzzword of
the day. That should say something about how important decoupling should
be until you have to choose all the complementary modules you actually
need to build something useful.

I played a bit with flask, made a couple of template applications and
decided it was time to see if I could write some mobile apps. I realized
that while 10 years ago JS was something you could (and should) ignore,
now it is an unavoidable tool.
Working with JS is much nicer now than it was 10 years ago, and you've a
lot of tools. Still JS compared to python is a PITA and people are
writing "compilers" as CoffeScript to avoid to directly deal with JS.
But JS is in all browsers and in all mobile devices (and Dart isn't yet)
and it will take time to replace it with something better... or with a
better JS.
I think very few people are writing Java applets that run in the
browser, Flash is unfortunately still alive but Adobe and Apple sent a
signal it may disappear (like COBOL), javascript is still among us and
strong. The irony.

So I said: well let's reduce the pain to deal with JS at least for the
frontend looking at node.js (node.js is for me as hipster as systemd may
seem to you) so I won't have to switch language when I'm dealing with
the frontend.

I had to chose a web server framework for node.js and pair it to a web
client JS framework. For some aspects they are less mature than python
web framework for some others they are more.

At the beginning choosing JS client framework was easy. AngularJS has
the largest momentum and it is developed by google that by the way it's
also the company behind Chrome and the JS engine behind node.js. They
should know where JS is going.

Then I thought, if I have to use JS I'd like to exploit it more than
just having to program in the same language the client and server
frontend part. I want to reuse code.

But wait... I saw it was coming... where the relationship URL -> content
has gone?

But no JS framework actually seems to support templating in a way you
could reuse code to push partial update to a page and also just generate
a static page. That's pretty much because they mix and match the DOM
with "string" templates.
So people are resorting to services that make PhantomJS crawl their web
site to generate a static version. Awful.

mmm but isn't AngularJS written by the same people that wrote a pretty
successful company around a search engine?

I bet google crawler can run JS... but still, where is the fun and
beauty I was looking for? This web stuff has been written by a million
monkeys.

I've started to do web development more than 15 years ago. I hated JS, I
still don't like it that much.
I came back to web development just to have some fun... and well what
I've found is somehow frustrating. Wasn't the web supposed to get better?

Come on... isn't the mapping url -> resource a fundamental part of the
web as decoupling should be one of the bases to manage large complex
systems? Hey they tried to break it so many times. And what about
spdy/http 2... it is binary as journald is, as Windows registry is. Oh
My, the sky is falling.
Where are we going? I can't handle it. That's a mess.

Or maybe we're not supposed to swallow it all in one time and pretend we
are expert in everything and even if we were experts we wouldn't be
coding in isolation.

I'm still thinking if I'll have more fun doing it the traditional way
with python and very few JS or just jump on node.js forgive about SEO,
url mapping and whateva and wait till someone else will "elegantly"
(feel free to pick up your definition of elegantly) solve the problem
for me... or find another hobby ;)
But then when someone will fix this problem elegantly I bet someone else
on the internet will be wrong.

That would be different if it were my work but then I'd be an expert and
I'd be writing code to fix what I think is not working as I think it should.

Should we talk about how the story on client and server went? or the one
about process/threads/virtualization/containers?
What about RISC/CISC/CPU/GPU?


-- 
Ivan Sergio Borgonovo
http://www.webthatworks.it




More information about the svlug mailing list