Function recommendations for Standard Library?

new topic     » topic index » view thread      » older message » newer message

Please read this whole message before creating any response. Thank You.

I am asking for function recommendations that you think should be added to the
standard library. Please, do not debate if they should be added or not in this
thread. If someone suggests function ABCDEF() and you do not think it should be
part of the standard library, please, start a new thread titled: "Include
function ABCDEF() in standard library?"... pretty please?

Here are a few rules I setup for determining if something should be included in
the standard library. Again, if you think a rule is incorrect or a new rule
should be added, pretty please create a new thread, do not post in this thread.

Rules:

1. Must be of general and popular use.
2. Must not rely on 3rd party installs.
3. Must be cross-platform *or* platform dependent.
4. Doesn't have multiple ways of doing the same thing w/varying benefit
5. Must not be overly complex

Ok, I'll explain these rules a bit.

1. Must be of general and popular use
=====================================

It must be a general function. For instance, atan2. That is not specific to my
program. It must be a popular function. I have an extract that tears apart an EDI
file. This can be applied to other applications but the percentage of Euphoria
programmers who deal with EDI files is probably very low, therefore, it is not a
candidate for inclusion in the general library.

2. Must not rely on 3rd part installs
=====================================

The general library should contain functions that are available on *all*
installations of Euphoria. Function ABC should not be available on John's because
he happens to have program DEF installed, but not on Jane's because she does not
have program DEF.

If it's in the standard library, it should work.

3. Must be cross-platform *or* platform dependent
=================================================

This sounds like an oxy-moron at first glance but what it means is, if Windows
and Linux/FreeBSD are both capable of doing the task the function provides, then
the function must work on both Windows and Linux/FreeBSD. If the function
provides a task that is not available on both platforms, for instance, reading
and writing to the Windows registry, than this rule does not dis-qualify that
type of routine from being included. Just because Euphoria is cross-platform does
not mean that we should limit functions to only the common attributes of all
platforms.

Now, another example may be tcp/ip sockets. TCP/IP sockets are capable on both
Windows and Linux/FreeBSD. Therefore, if any standard socket library is accepted
into the standard library, it *must* work on both Windows and Linux/FreeBSD
platforms.

4. Doesn't have multiple ways of doing the same thing w/varying benefit
=======================================================================

An example (I know this example conflicts w/point #2, but, it's an example): A
GUI framework. There is Win32Lib, Arwen, wxWidgets, GTK, X/WMOTOR, Iup, and
others. Each have their own pro's and con's. The user/programmer should decide
which is best for him/her.

5. Must not be overly complex
=============================

By adopting code into the standard library, the Euphoria developers are taking
on the role of bug fixes and maintenance. We hope that users will create patches,
bug fixes, performance enhancements, etc... but by becoming part of the standard
library, there is an increase of responsibility for the Euphoria developers.

There may be a really handy function but to implement it takes 2,000 lines of
code. This would be cause to not include it in the standard library.


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

Please, if you would like to see something in the standard library, reply to
this message. It can be a function you wrote, something in the archive, or even
something you would like to do but have no code to do it (in that case, it would
be nice if you would write the code and submit smile)

Also, a note. Just because something is suggested here does not mean it will be
included. I am just querying the Euphoria public now. If it meets the above, then
chances are it will be included.

Not all functions that have been added have been documented yet, but, they are
all listed in the release notes. I have made this (and documentation generated
from the SVN copy of Euphoria) available on my personal website:

http://jeremy.cowgar.com/euphoria/relnotes.html
http://jeremy.cowgar.com/euphoria/library.html

Please note, as always when I post this URL, these documents are TEMPORARY, they
will be removed once 3.2/4.0 is released. They are NOT official and the
documentation you see in them may/PROBABLY will change. It IS the documentation
off a SVN TRUNK, therefore, in high development.

Thank you

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu