[ previous ] [ next ] [ threads ]
 From:  Michael Hanselmann <m0n0 at hansmi dot ch>
 To:  Manuel Kasper <mk at neon1 dot net>
 Cc:  Chris Buechler <cbuechler at gmail dot com>, m0n0wall dash dev at lists dot m0n0 dot ch
 Subject:  Re: [m0n0wall-dev] Re: [m0n0wall] Survey results
 Date:  Mon, 31 Oct 2005 21:28:18 +0100
Hello Manuel

> I realize that it's not exactly popular among you, but personally, I'd
> still like to use Java for the core.

I'm strongly against using Java as it's not portable. Some of you might
think it is, but in reality, it isn't. There is, for example, no java
runtime available for Linux on PA-Risc. It's portable as long as you
define "portable = Java runtime available", but that's not my
understanding of portable. Why am I writing that? Because I would love
to see m0n0wall at least on MIPS and ARM.

Compiling it to native code using gjc is one possibilty, but then you
can also use a real^W^Wanother programming language.

> I haven't actually run any tests with Perl or Python - maybe someone
> could implement a simple XML-RPC server and determine its RSS after a
> request just so we can get a rough idea of their memory requirements?

A friend of mine and I have written a system to watch RSS feeds and
distribute new entries/news. The server and one client are written in
Ruby, the other client, which sends mails for each new entry, is written
in Perl. Both of those languages have a large library of existing
available and are suitable for single-threaded servers when using
non-blocking I/O. Ruby also supports threads. Currently, those processes
use quite some modules and have a RSS of about 10 MB after starting.
Programming using non-blocking I/O can get *very* tricky, so this would
require some extended designing first.

Why don't we use Brainfork[1]? :-)

> The most efficient solution, and also the most popular one after PHP
> (according to the survey) would be C.

C++ would also fit and simplify abstraction of, for example, network
interfaces. Objective-C isn't very spread in the Free Software world and
requires huge libraries from GNUSTEP, but it would be a good mix between
C and OOP.

I would be comfortable with PHP, C, C++, Objective-C, Python, Ruby and
Perl for the core. But you're the one deciding that.

> Linux would be tempting because of the hardware support and just maybe
> a smaller kernel and userland (don't know how much of that is still
> true with 2.6 though).

Normally Linux 2.6 kernels on servers are between 1.0 and 1.5 MB, but
that depends on how much you put in modules, too.


[1] http://en.wikipedia.org/wiki/Brainfork

Gentoo Linux Developer using m0n0wall | http://hansmi.ch/
You can measure a programmer's perspective by noting his attitude on
the continuing viability of FORTRAN.
cti    	-- Alan Perlis