public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Jason Mobarak <jmob@unm.edu>
To: gentoo-portage-dev@gentoo.org
Subject: Re: [gentoo-portage-dev] Portage Language
Date: Fri, 28 Nov 2003 01:17:05 -0700	[thread overview]
Message-ID: <20031128081705.GA9736@unm.edu> (raw)
In-Reply-To: <1069977997.12099.19.camel@ht.gentoo.org>

On 17:06 Thu 27 Nov     , Daniel Robbins wrote:

[...]
> There really isn't a debate; an initial exploratory prototype is being
> written in prolog, after which a set of requirements and design goals
> will be written up, and will be used to select the language(s) that will
> be used for the implementation. 
> 
> Our exploratory prototype is being used to see what is possible, and
> will help us to develop our vision for the next portage.
> 
> > If not, I'd like to suggest 'Haskell' a lazy functional language with a good 
> > FFI.

My opinion: Python. 

Arguments for Python
--------------------

Python is a language with a huge user base, standard library and large number of
third party libraries.

Developer friendly, we have a lot of user submitted patches to portage. Chances
are more people are going to know languages like Python/Perl/Ruby rather than
something else (like Scheme/Haskell).

We already have a several developers who are well versed with Python. Python's
design potential and scalability is quite large... consider projects like Zope
and Twisted.

We already have a lot of portage code that's already written, it's tested and it
works, reordering and redesigned it is going to help portage-ng come about
quicker.


Arguments against other languages
---------------------------------

Less user base than Python. While Ruby's user base is growing it still isn't
*that* large. Haskell I don't know a lot about -- but searching for projects on
sf.net or freashmeat.net was less than promising. I can say with relative
certainty that users are going to be more motivated to write patches if portage-ng
is written in a popular language.

Most developers (including me) would have to study another language. I know how
use Ruby and Scheme, and had a brief stint Haskell. Looking through portage I
see a lot of things that an experienced Python programmer might recognise as bad
style, or design patterns that don't reflect the optimum design potential of the
language -- more common I see things that are "python specific mistakes" that
are a result of not being completely versed with language's standard library. The
only reason I see these things is because I've used python so much and studied
it at great length (2-3 years utilising Python). So the case is, if we don't
have developers that already know the language we are going to use well then we
are going to need to spend extra time learning the language well before we even
spend time trying to actually write and production code -- alternately, we
should find new developers that know the language.

Consider the example of an employer, most employers want people that already
have experience in the language they are going to be using. Some employers will
train -- but it seems much more logical to just higher the people that already
know the language.


Arguments for prolog
--------------------

In my ideal world Prolog would be used to write the dependency resolver (one of
them) and the core would be written in Python or possibly a very small core
written in C but designed to be easily extensible with Python.

====================

Also, I'm listed on the portage-ng developer list, but I don't have any idea
what's going on with the development, all I've heard is a little bit about
what's happening with the other developers (I know there's someone working on
dependency algorithms with prolog). What are the plans for coordinating the
portage-ng project? Who's working on what, are they keeping documentation on
what they are doing?

Also, I'm working on separating portage into packages, I feel a bit disconnected
from other developers and I'm not sure if I should just scrap what I'm doing and
wait for portage-ng development to get under way.

So, please, advice, comments, direction. :-)


-- 
-------------------------~
----------Jason-A-Mobarak-~
-aether-at-gentoo-dot-org-~
-------------------------~


--
gentoo-portage-dev@gentoo.org mailing list


  reply	other threads:[~2003-11-28  8:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-27 23:17 [gentoo-portage-dev] Portage Language Thomas L. Bevan
2003-11-28  0:06 ` Daniel Robbins
2003-11-28  8:17   ` Jason Mobarak [this message]
2003-11-28 12:18     ` Philippe Lafoucrière
2003-11-28 18:52     ` Daniel Robbins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031128081705.GA9736@unm.edu \
    --to=jmob@unm.edu \
    --cc=gentoo-portage-dev@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox