public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-portage-dev] Portage Language
@ 2003-11-27 23:17 Thomas L. Bevan
  2003-11-28  0:06 ` Daniel Robbins
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas L. Bevan @ 2003-11-27 23:17 UTC (permalink / raw
  To: gentoo-portage-dev

I did a little bit of background reading on the new portage development.
I was wondering whether the debate over the new implementation language has 
been settled.
If not, I'd like to suggest 'Haskell' a lazy functional language with a good 
FFI.

Tom

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-portage-dev] Portage Language
  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
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel Robbins @ 2003-11-28  0:06 UTC (permalink / raw
  To: gentoo-portage-dev

[-- Attachment #1: Type: text/plain, Size: 778 bytes --]

On Thu, 2003-11-27 at 16:17, Thomas L. Bevan wrote:
> I did a little bit of background reading on the new portage development.
> I was wondering whether the debate over the new implementation language has 
> been settled.

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.

OK, it will be one of the languages we will look at.

Regards,

Daniel

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-portage-dev] Portage Language
  2003-11-28  0:06 ` Daniel Robbins
@ 2003-11-28  8:17   ` Jason Mobarak
  2003-11-28 12:18     ` Philippe Lafoucrière
  2003-11-28 18:52     ` Daniel Robbins
  0 siblings, 2 replies; 5+ messages in thread
From: Jason Mobarak @ 2003-11-28  8:17 UTC (permalink / raw
  To: gentoo-portage-dev

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-portage-dev] Portage Language
  2003-11-28  8:17   ` Jason Mobarak
@ 2003-11-28 12:18     ` Philippe Lafoucrière
  2003-11-28 18:52     ` Daniel Robbins
  1 sibling, 0 replies; 5+ messages in thread
From: Philippe Lafoucrière @ 2003-11-28 12:18 UTC (permalink / raw
  To: gentoo-portage-dev

On Friday 28 November 2003 09:17, Jason Mobarak wrote:
>
> 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.

[+1]


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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-portage-dev] Portage Language
  2003-11-28  8:17   ` Jason Mobarak
  2003-11-28 12:18     ` Philippe Lafoucrière
@ 2003-11-28 18:52     ` Daniel Robbins
  1 sibling, 0 replies; 5+ messages in thread
From: Daniel Robbins @ 2003-11-28 18:52 UTC (permalink / raw
  To: gentoo-portage-dev

[-- Attachment #1: Type: text/plain, Size: 1828 bytes --]

On Fri, 2003-11-28 at 01:17, Jason Mobarak wrote:
> My opinion: Python. 

First: you live in Albuquerque? :)

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

One of the things we are trying to do this time around is to have a very
professional, well-managed development process. That process involves
writing up (excuse the "*"'s) *requirements* before selecting an
implementation language. That is, we need to decide what our goals are
before we determine the best way to reach those goals. The prolog
prototype is meant to just explore possibilities... the portage-ng code
itself will not come from this prototype.

This also means that there has been a shift in our approach, after I got
some feedback from nerdboy. We're going with a requirements-first
approach for development.

> 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.

What is the portage-ng list? I don't think I'm on it.

The best thing to do right now is to assist in the effort described on
the portage project page:

http://www.gentoo.org/proj/en/portage/

Specifically, the:

"24 Dec 2003
portage-ng: 
public initial comprehensive requirements and design goals document"

There is no community work happening yet because there have been no
efforts from the managers to foster community development, so I'm
jumping in to get things started.

What we need to do is figure out what the requirements of the system
should be. I'll post my initial list to this list and hopefully show you
what I'm looking for, and allow you to get the ball rolling.

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

Hopefully this'll help :)

Regards,

Daniel

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-11-28 18:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2003-11-28 12:18     ` Philippe Lafoucrière
2003-11-28 18:52     ` Daniel Robbins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox