[arch-general] Re: pacman new generation

2011-11-23 Thread Nicolas Sebrecht
The 22/11/11, Norbert Zeh wrote:

 but it's not an easy language to
 learn to use effectively.  For that reason, the pool of Haskell developers out
 there is much smaller than the pool of C programmers.  Furthermore, from my 
 own
 experience I know that writing good Haskell code poses its own set of 
 challenges

Agreed. I don't think Haskell is the best language for the purpose.
Go language may fit much better.

-- 
Nicolas Sebrecht


[arch-general] Re: pacman new generation

2011-11-22 Thread Nicolas Sebrecht
The 21/11/11, Thorsten Töpper wrote:

 Seriously, it's probably meant like this but your mail reads like a
 Hey why don't you learn $INSERT_LANG_HERE and rewrite your whole
 system.
 
 I've not participated in pacman development myself so I guess I should
 stfu myself, but for me this proposal just reads like a kick into the
 faces of Allan, Dan and all the other people who did so.

I don't think, so. Or nothing could be discussed because some others did
another choice some time ago.

OP raised one or two benefits of Haskell over shell scripting. He is
right even if it's somewhat partial: many of high-level languages have
very good advantages over shell scripting. I do think pacman could be
much better if rewritten in one of these languages.

-- 
Nicolas Sebrecht


[arch-general] Re: pacman new generation

2011-11-22 Thread Nicolas Sebrecht
The 22/11/11, Karol Blazewicz wrote:
 On Tue, Nov 22, 2011 at 10:50 AM, Nicolas Sebrecht nsebre...@piing.fr wrote:

  OP raised one or two benefits of Haskell over shell scripting. He is
  right even if it's somewhat partial: many of high-level languages have
  very good advantages over shell scripting. I do think pacman could be
  much better if rewritten in one of these languages.
 
 Isn't pacman written in C?

Yep, sorry. 

  s/shell scripting/low-level progrmming languages like C/g

:-)

-- 
Nicolas Sebrecht


[arch-general] Re: pacman new generation

2011-11-22 Thread Nicolas Sebrecht
The 22/11/11, Magnus Therning wrote:

 I am somewhat allergic to the kind of statements you make.

Don't be. We are only _discussing_ the advantages/disadvantages of the
current language, aren't we?

Please, don't be allergic from talking.

 It sounds
 like you are alluding to Haskell (and other hi-level languages,
 whatever _that_ means) as some sort of magic pixie dust that can be
 taken out in order to spray good-ness on a software project.  There
 are dozens of other things to consider.  In this particular case these
 are the most pertinent IMNSHO:
 
 - Many of these languages improve the ability to reason about the
 behaviour of the program.  This _can_ improve quality. HOWEVER, pacman
 doesn't strike as a tool that suffers from bad quality,

But it's missing advanced features.

OP raised rollbacks, I'd rather talk about simultaneous/concurrency
pacman calls and mutli-threading to handle packages installation where
applicable (handling pools of per-package fetch, uncompress  install
processes), for example. Or even a _three-way merge_ tool for
configuration files (think of dispatch-conf), /etc snapshoting, check
for conflicting path namespaces of files over packages at installation
time (not sure this check is already done for every file), or whatever
smart thing could be implemented.

I'm not saying all of this should be implemented. At least, allowing
wide contributions (from the technical POV, with a more simple language)
permits nicer discussions and by the end, interesting features to be
implemented.

 there seems to
 be a development team that fully understand the crucial role that
 pacman plays in Arch and they behave accordingly in relation to
 rolling out updates.

 - Many of these languages allow for quicker development; by raising
 the abstraction level it's possible to express more complex ideas in
 fewer lines of code and given that the lines/hour written by a
 developer is fairly static across languages it leads to quicker
 development.  HOWEVER, pacman doesn't suffer from slow development,
 there are new releases with new features fairly frequently (probably
 as frequently as the community can stand them).

According to what _you_ expect from a package manager to do.

 - Finally with each language comes a pool of possible contributors,
 the group of people who already know, or are willing to learn the
 language.  For C this pool is huge, for most of these hi-level
 languages not so.
 
 So my conclusion is that when you say I do think pacman could much
 better if rewritten in one of these languages, then I say that you
 most likely are completely wrong.  The more likely effect of rewriting
 pacman in one of these languages is that the current development team
 would disperse, there wouldn't be as large a pool of programmers to
 recruit from to replace them, and in the end pacman would turn out to
 be worse.

Oh, come on. You're kidding me, right? Did anyone talked about spreading
in the wild the current team?

-- 
Nicolas Sebrecht


[arch-general] Re: pacman new generation

2011-11-22 Thread Nicolas Sebrecht
The 22/11/11, Magnus Therning wrote:
 On Tue, Nov 22, 2011 at 13:02, Nicolas Sebrecht nsebre...@piing.fr wrote:

  But it's missing advanced features.
 
  OP raised rollbacks, I'd rather talk about simultaneous/concurrency
  pacman calls and mutli-threading to handle packages installation where
  applicable (handling pools of per-package fetch, uncompress  install
  processes), for example. Or even a _three-way merge_ tool for
  configuration files (think of dispatch-conf), /etc snapshoting, check
  for conflicting path namespaces of files over packages at installation
  time (not sure this check is already done for every file), or whatever
  smart thing could be implemented.
 
  I'm not saying all of this should be implemented. At least, allowing
  wide contributions (from the technical POV, with a more simple language)
  permits nicer discussions and by the end, interesting features to be
  implemented.
 
 Simple language?

I admit it's not the best words. I should rather say

  language with a higher level of abstraction letting us to express
  more complex ideas in fewer lines of code, sometime relying on very
  small and atomic units of a more low-level language like C for critical
  pieces of code, giving us the advantages we all know for software
  maintenance, scalability and adaptability, even for less experienced
  programmers such as advanced admins

but this is not very concise.

 Even if there was such a thing you'd find that the
 problem is essentially difficult.

Trying to solve a difficult problem, say ones that would need a good
level of abstraction, is harder with a language like C than with a
high-level language. ,-)

 Indeed.  It's correct (well tested, has stood the test of time, etc)
 and reliable.  That's what I expect of a package manager.  Re-writing
 it in another language would mean starting over with something that's
 essentially difficult with something a tool that reduces accidental
 difficulty.

It's a bit in contradiction with your previous statements. As you said,
code source is changing, pacman is moving. Playing with C makes no help
to reduce accidental difficulty; it's the exact opposite.

Reliability is managed with good software development practices such as
development cycle and keep control on too much stressed pieces of code.

Starting with another language doesn't mean it should not be well tested.

 You can't possibly misunderstand me to that extent.  What I'm trying
 to say is that you are suggesting something that you haven't thought
 through properly, if you were to stop and ponder a little you would
 realise that your suggestion would have the _unintended_ consequences
 of
 
  1. reduce the pool of possible contributors

I don't think, so. IMHO, the pool of contributors is bigger with a
high-level language than for C, simply because the learning curve of
a good high-level language is much shorter.

  2. push away the current contributors who don't know language X and
 don't want to learn it

With statements like that, even C language would not have become what it
is today and we were all running of softwares in B language alone, or so.

-- 
Nicolas Sebrecht


[arch-general] Re: pacman new generation

2011-11-22 Thread Nicolas Sebrecht
The 22/11/11, Rodrigo Amorim Bahiense wrote:
 On 11/22/2011 13:36, Taylor Hedberg wrote:

 You can't seriously be suggesting that switching to Haskell would
 increase the size of the pacman developer pool.

Notice I didn't support Haskell. I'm talking about high-level languages
in general. Not all of these languages are widely used nor very scalable
for a package manager.

  I
 don't think there's any compelling reason to rewrite pacman in another
 language.

I already gave some good reasons in this thread, though.

 Code language should not be chosen based on popularity. C is used in
 most unix-like software because of its quality and not as a
 consequence of the available developer pool for it.

I tend to agree.

-- 
Nicolas Sebrecht


[arch-general] Re: pacman new generation

2011-11-22 Thread Nicolas Sebrecht
The 22/11/11, Taylor Hedberg wrote:

 Maybe not, but the person I was replying to was making the specific
 argument that higher-level languages like Haskell would be more suitable
 for a tool like pacman because a larger number of people would be able
 to contribute. I was simply pointing out the fact that that is certainly
 not the case for Haskell in particular.
 
 I don't think popularity is irrelevant, either, assuming you are
 interested in increasing the volume of contributions to your project. If
 you pick a relatively obscure language to work in, you are just creating
 another barrier that makes it harder for new people to become acquainted
 with the codebase.

Here is a very good resume of this aspect of the discussion and we fully
agree, here.

-- 
Nicolas Sebrecht


[arch-general] Re: pacman new generation

2011-11-22 Thread Nicolas Sebrecht
The 22/11/11, Piyush P Kurur wrote:

 Many here will agree to almost all the points that you raised about
 Haskell. However the way the you introdued might have irked some.

I'm sorry about that. Poor circumstances might give this wrong
impression.

 Here is how one would go about suggesting such a changes:
 
 Hi folks I was interested to know whether implementing rollbacks like
 NixOS is interesting for people here. Since I feel that C is too low
 level as a first step  I am attempting a port of pacman to Haskell.
 The code is available under darcs at http://somewhere.org/me/
 Patches are welcome. The current version does nothign but prints
 package meta info.
 
 Regards
 
 me

Notice I'm not the OP show suggested porting pacman to Haskell. I came
into this thread after the facts and tried hard to make the original
suggestion as a part of the larger POV in favor of high-level languages.

Also, I don't want to flame and rather keep the discussion out of free
attacks against the current team of developers. I took part of this
thread only because I've already been faced to pacman limitations in its
current form.

-- 
Nicolas Sebrecht