OK, Rephrasing the Questions - Something New

Steve Lamb pmmail@rpglink.com
Mon, 18 Sep 2000 23:04:39 -0700


On Wed, Sep 20, 2000 at 10:35:44PM +0000, John Drabik wrote:
> 	The best bet for cross-platform appears to be Java (Rexx is
> an option though).  

    Actually the most well known is Java.  In my experience, however, both
Perl and Python are just as cross platform as Java and, at least in the case
of Python, a lot friendlier to the end user.  Hell, Python is, technically, as
portable as Java.  There is always JPython, a Java port of the Python
interpretor.  ;)

> There have been a few Java mail clients.  Does anybody know of one that
> comes close to PMMail (it won't match, but it would be nice if it was
> close).  

    I don't know of any.  Then again, I haven't looked.  I dislike coffee and
anything associated it.  Of course, that has nothing to do with Java, either.
I just distrust any language which is controlled by one company, isn't open
and tries to reword the entire programming lingo.  I was staunchly anti-oo
until I played with Python but there is /NO/ way you'd get me to take any
language seriously which calls its Classes "beans".  "Oh, this is a Java
bean."  No, it is a Class in an OO language, call it a bean again and I'll
bean you, buddy.  :)

    BTW, did I mention at work out latest large project is using Java, EJBs
(Enterprise Java Beans, as if "Enterprise API" was too hard to say), XML and
XSLT.  We now have a dozen perl, c and perl/c hackers having to not only learn
3-4 new technologies but a new way to reference them all as well.  BAH.

    Whoops, was that a rant?

> Ideally, it should be Open Source (although I'd gladly pay for it), so that
> I and others can at least have a chance of helping to improve it.  Certainly
> faster (and with more openness) than BSW.

    Better chance of that with an open source language.

> I've looked at Open Source e-mailers, but have been left with the impression
> that they were written for Linux, not particularly well done, and not
> particularly usable.  In short, they suck.

    I don't see it that way.  My two favorite are mutt and pine.  Both are
extremely well written.  They are just written with the unix mindset and, as
such, appear unworkable to the average GUI person.  But under the hood, WHOA!
I use mutt at home almost exclusively now because I don't feel like
unarchiving my mail for TB! and for a single account it works quite well.  I
don't have any filters (because that is on TB! side) but can still easily
manage my daily load of mail quite efficiently.

    It is, however, not for everyone and I can see how some people would think
it isn't well done and sucked.  It is just different.  But I've spent years
ranting about that.

> So, does anybody know of such a product?  Can you aim me at a
> web site with source to get me started?  I've just purchased
> Simplicity for Java, and would love to try it out on a project of
> some magnitude and importance as I build up some other (commercial)
> programs too.  I'm not afraid to pay, but I want source and don't
> want to be held hostage again either.  There's a balance to be found.

    For Java?  No.  For Python?  Yes.  AIMS Prototype.  More on that later.
;)

> Perhaps that is the destiny of this list now that Steve is feeling burned
> out (which is too bad: THANK YOU for your work, Steve!).

    You're more than welcome.

 
> 	This CAN'T be that hard!  Any ideas?  Anybody want to give it
> a try?  Can you even point me to a "Basics of all E-mail Clients" web
> site that explains how to get started?

    Heh...  Ain't that the truth.

> Feature lists.  Flow charts.  Web resources.  Coding support. 
> Documentation.  Pretty icons.  Hey, whatever!  Let's go!  Don't look
> back!  There's a whole big world out there.  Time to get going!

    OK, I've been a good and didn't want to do this on this list because it
isn't exactly something you do professionally.  But, hey, you asked and I'm
willing to allow myself this one indulgence.

    Take a look at <http://www.sourceforge.net/projects/aimsprototype/>.  It
is my project and the summary reads, "AIMS Prototype is a proof of concept MUA
that will combine the best features of the Unix MUAs and Windows email clients
while cutting all the cruft from both.  See the Forums for more details."  It
will be written in Python although I don't know what GUI I will tack onto it.
I was leaning towards wxPython which uses GTK on Linux and Windows native on
Windows.  However after reading about the whoe GNome project and its aims I am
less than impressed with anything that uses GTK.  I dearly wish there was a
Python interface into Qt now that it is GPLed.

    Anyway, as it states I am planning on attempting a mail client which fits
my ideal.  I know that differs from everyone else's in the world but, hey,
anyone who has been on here knows what that ideal is.  The public forum has
been my dumping ground for thoughts about the client as I think about them or
they are debated.  In fact the latest post was because of a LONG debate on
Debian-User of all lists.  I won't quote them here, but here's the quick "will
and won't have" lists from there.

AIMS will have:
POP support

SMTP support (important as MUAs proper do not)

/FULL/ IMAP support as I see it, not glorified POP as other see it.

LDAP support

Message databases - IE, basic featureset of what BBSes had in their golden
age.  Threading, messages deleted by age or number in the message base or
overall message base size and so on.  None of this whimpy crap that I've been
forced into with email for the past decade.

Filtering /WITH/ regex!  Even toying with the idea of making the "complex"
filters just an extension into Python which would allow people full scripting
capabilities in the filters.

MIME, 'nuff said.

Anything else that is appropriate that I may have missed.


What AIMS will /NOT/ have:
Text editor - As anyone who has read any of my rants over the years knows the
email client is an email client, not a text editor.  It will hand off to a
text editor of the user's choice.  Ironically on the unix side, where this
practice more common, the "general" text editors often have a mail mode which
is more robust than the email client's specialized editors.  OK, I, for one,
expected that.  ;)

Spell checker - See above.

Contact list - See above.  It will have an address book for name/email pairs
but that is it.  My address book is in my Palm.  Not PMMail, not The Bat!, not
ICQ, not Star Office, not anywhere else where they crammed one of those
things.  I have at least 5 of them I don't use I won't be party to creating
one others won't use.

PGP - it will have hooks for it and also recognize PGP/MIME.  Not sure about
the non-standard PGP we have now.

GPG - Ditto.

Anything else which is not appropriate to a mail client which I may have
missed.


    I'll admit it.  I code in fits and spurts.  That is mainly because, I
think, I code only for myself and rarely release stuff.  However, if you or
anyone else (Jon?) is willing to pick up Python and help out, feel free to
join the public discussions.  In fact, I'm willing to make a mailing list when
enough interest is generated.  Right now, since it is still in the planning
stage in my mind, I don't have a lot of the major features of SourceForge
enabled.  That will come when I start coding and have a reason to have those
features opened up.  So consider this the offical call.

    Finally I feel compelled to explain my reasoning on settling on Python:

1: I went to the Perl/O'Reilly conference in mid-august and attended two 4
hour seminars on Python, basic and advanced.  I left feeling that I could
really be productive in the language.  My only long-term programming
experience was Perl with some aborted attempts into C and Turbo Pascal
WAAAAAAAAY back when it still was Turbo Pascal (not Delphi) and was on v4 or
v5.

2: I bought /one/ Python book (Beazley's, the guy who gave the seminars) and
within two weeks had ported one of my Perl scripts over to Python with
complete ease.  In fact I did it in a weekend with some bits and pieces spread
over the week.  Only 1-2 functions aren't ported and that is because I'm not
sure I want to port them over, not that I can't.  :)

3: Python has a robust set of standard libraries.  Most notably are libs to
parse RFC822 headers, MIME, interface with IMAP, LDAP, POP, etc.  IE, the core
interfaces of an email client are already coded, I just need to learn those
APIs and string them together in my framework.

4: (untested) There is also another script which supposedly would bundle the
interpretor and associated scripts together in such a manner that will allow
it to run from a single binary.  I have not played with this and do not know
if it is cross-platform.

5: Python itself is cross platform.  There is even a Java version of the
interpretor for platforms it isn't ported to... yet.  All of the libraries are
clearly marked for what platforms they do and don't work on as well as they
are generally coded for platform neutrality on the internal side.

6: Threads, conceptually, were quite easy to grasp in the seminar.  In fact I
think the guy did it in about 4 lines of code.  To me that is good.  ;)

7: Python is very logically laid out, easy to learn and easy to program in.
There really is no concept of pointers as everything is a pointer after a
fashion.  Once you get used to thinking in Python it all becomes easy.

8: Python is Open Source.  In fact, it is the #4 prject on SourceForge.

    Anyway, that is my pitch, you asked so I felt it was appropriate to toss
that out there for you.  I know it isn't Java but it is the closest I could
think of.  :)  If nothing else paw through SourceForge and see if someone is
working on a Java client.  All I can say is that on AIMS the overall design is
mine so if anyone wants to work on it what is on the lists above is set in
stone.  I feel those are the right choices to make and it would take a /LOT/
of convincing to sway me from them.  I won't turn people away, I just ask that
they abide by those decisions.

-- 
         Steve C. Lamb         | I'm your priest, I'm your shrink, I'm your
         ICQ: 5107343          | main connection to the switchboard of souls.
-------------------------------+---------------------------------------------