[OT] Why did "enterprise" crap seem to win? (re: Virtualization, Java, Microsoft, Outsourcing, etc.)...
aimass at yabarana.com
Wed Oct 4 14:10:06 UTC 2017
... or did they?
You may be asking why would I post such a question (mostly rant) here.
The reason is because I was curious at the reaction to this thread:
It seems that people who use and support FreeBSD have a similar
mindset in that we think that the Unix model is mostly good, and are
many time baffled with the direction the "industry" takes, for the
most part. So what better outlet to post this rant ;-) So pls. take
this thread just a food for thought:
On operating systems and languages
Why did C++ and Java seem win over C and shared object libraries?
In the Unix model the general philosophy is precisely that is made up
of tiny little things that do one thing really, really well and are
able to operate with other tiny things by means of a common protocol
such as pipes etc.
What more encapsulation than shared objects, header files, and C
structs? if you want higher level there is for example, Perl with an
elegant XS interface to C which can in turn leverage all the
underlying O/S. Not only that, Perl (amongst other great "scripting"
langs) is multi-paradigm allowing you write software to tackle
problems in different ways, which are much more clearer than trying to
stick a square peg in a round hole approach of single paradigm
languages such as Java.
And only after 30 years or so, do you start seeing some functional
paradigms come to Java and new languages over the JVM such as Scala.
When in fact these things have been with us for ages since Scheme,
Perl, etc. ? and these integrate beautifully with the underlying O/S.
Why dis the industry degrade the languages as "scripting languages"
when in fact this is precisely what you want: simplicity, elegance and
tight integration to the O/S!
So why did the Java Virtual Machine concept win, instead of leveraging
the underlying O/S ? Was portability the only mermaid song ? or was it
the promise of a language to protect us from the mediocre programmer ?
What is the point of portability if it doesn't really leverage the
underlying O/S? I personally think portability is not only a myth
(i.e. Java is not really portable as people may think) and it's
actually pretty stupid and it's actually what you DON'T want.
What you really want IMHO is a fined-tuned architecture that not only
plays well with the underlying O/S but that actually leverages the
O/S, which makes it NOT portable by definition. Why do we want
portability in the first place? Does portability foster competition
and innovation or just makes everybody mediocre at best? Does it
increase security or performance? NO, it's actually the total
Code reusability is mostly bullshit too, and what you wind up with,
AGAIN, is piles over piles of crap, wheel re-invention and duplication
of efforts. A quick look to the Java ecosystem is enough to show this
is fundamentally flawed. Even the simplest Java application winds up
bloated with megabytes (sometimes gigabytes) of crap in there that is
not doing anything but hampering performance and opening up all sorts
of security holes. The same goes for the Windows world and C++ where
it gets even worse as every application you install is able to
overwrite critical system libraries.
On Virtualization and Outsourcing
Why did virtualization and outsourcing (AWS) seem to win over concepts
such a chroot and FreeBSD Jails and a good old sysadmin? Why do we
really need full virtualization in the first place? Does it help in
performance or security? Does it reduce costs? On the contrary it does
neither, at least IMHO.
If you need to "slice" your hardware, e.g. : to avoid contamination of
the base system, to be able to run several environments in a single
machine, for prototyping, etc. the concept of a container such as
FreeBSD Jails is more than enough, IMO. When you add things like
EzJail on top, why would you need more than that?
HTF did we get such aberrations as Docker on an already virtualized
environment such as AWS??? I mean WTF is that? really? Why pile up all
those layers of shit to get what you could get with a real hardware
with FreeBSD and EzJail ?
I write these reflections at a time when all these security breaches
such as Yahoo's 3 billion account breach and Equifax 145 million and
much more serious breach are happening and the situation will only get
worse because of all the piles, over piles and piles of shit the most
companies run on.
So how did we get here? Why does industry insist on complicating stuff
instead of a complete back to basics approach? Why is the answer to
these problems is more and more outsourcing and throwing even more
piles of crap and wasting money in the hopes that will fix the
fundamentally broken systems we have in place? What we need is a
radical back to basics approach to software engineering.
Well at least not ALL industry. I think Apple made the right choice
when they decided to embrace NeXT (which is heavily based and inspired
on FreeBSD) and Objective-C from the start, creating highly-tuned
systems that are not only NOT portable in software terms but not even
portable in hardware terms! The choice of tight integration between
hardware, O/S and application software is the way of the future, which
is actually the way of the past, invented by Unix and the original
hackers since the dawn of computing. Everything else, is just "shit".
Borrowing the late Jobs' favourite word to describe just that: shit.
Pardon the rant and have a wonderful day.
More information about the freebsd-questions