[modular-debian] Re: Packaging: was Why focus on systemd?

  • From: Reco <recoverym4n@xxxxxxxxx>
  • To: modular-debian@xxxxxxxxxxxxx
  • Date: Sat, 22 Nov 2014 21:51:08 +0300

 Hi, Steve.

Nice to see you on *this* maillist.

On Sat, 22 Nov 2014 12:46:35 -0500
Steve Litt <slitt@xxxxxxxxxxxxxxxxxxx> wrote:

> WHY DO IT IN C, C++ OR JAVA?
> Imagine a world where most user programs were written in Python.

I cannot understand why you value Python so much. Unless, of course,
all those tabulations give you that warm fuzzy feeling :) I'd
understood Perl (it's fast, at least), or PHP (good backwards
compatibility), or Javascript (all cool kids doin' it), but Python?


> In such a world, you install Python,

Which version of Python should be installed? Python is famous for the
lack of backward compatibility.

> over time you install various Python
> tools (the ones using the import statement), 

And in C/C++ world you install various libraries. And in Java world you
install various classes (they prefer to stove them into .jars, but it
doesn't change the approach). What's the difference?

And please note that C has a package manager too. It's called
pkg-config.


> and bang, you can run anything anyone makes in Python. 

On the contrary - you are doomed to use pip and setup.py and clutter
your filesystem with endless versions of the same (or, just for the
kicks - *slightly* different) python modules (libraries, batteries,
whatever). And $DEITY help you if you decide to change Python version.

And do not forget those funny Python modules that are just bindings to C
libraries.

There's reason they put Python (and Perl, and Ruby) modules in packages
in Debian, and talk about 'transitions to Python version X'.


> The same can be said for Perl and Ruby, though less so.

Indeed. Perl and Ruby share the same deficiency once it comes to the
actual usage.


> A lot of people state performance as the reason they still use C or
> C++. And the bottleneck for a heck of a lot of those C and C++ programs
> is the human operator's use of mouse and keyboard. Python/Perl/Ruby/Lua
> can *easily* keep up with that.

If you don't mind additional memory and I/O requirements - sure, if you
design programs for human interaction. Users will hate you, but will
use your software if it's any good.
But please don't forget there are all kinds of other programs.


> By writing software in interpreters (you know what I mean), you
> dramatically cut down on dependencies, 

You're wrong here. Replacing one kind of dependencies by another one
does not equal cutting them down.

> save time on compililation (for
> those distros that compile at installation time),

One word - 'bindings'. Using Python (or Perl, or Ruby) does not free
one from the compilation.


> and just generally make deployment a lot easier.

And by the same virtue making upgrades a nightmare. It's Linux we're
talking about here, right? The one you install once and upgrade for
next ten years just because there's nothing that mandate the re-install.


> The reason this is all relevant is because, in the absense of package
> managers we can trust, we're going to start writing and sharing our own
> software. 

I hate to break it to you, but Python, Ruby and Perl have their own
'package managers' already. Google 'pip' for the example.

Reco

Other related posts: