Date: Wed, 4 Oct 2017 10:10:04 -0400 From: Alejandro Imass <aimass@yabarana.com> To: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: [OT] Why did "enterprise" crap seem to win? (re: Virtualization, Java, Microsoft, Outsourcing, etc.)... Message-ID: <CAHieY7RLYQZU0enKe9OF0Ruw2A7vRi59rkoBpvGf2aLngkFw_g@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
... or did they? Hi all, 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: https://docs.freebsd.org/cgi/getmsg.cgi?fetch=117621+0+archive/2017/freebsd-questions/20170820.freebsd-questions 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 opposite! 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. -- Alex
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHieY7RLYQZU0enKe9OF0Ruw2A7vRi59rkoBpvGf2aLngkFw_g>