gnunet-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNUnet-developers] Java (was Freenet 0.5)


From: Krista Bennett
Subject: Re: [GNUnet-developers] Java (was Freenet 0.5)
Date: Sat, 2 Nov 2002 19:49:15 -0500
User-agent: Mutt/1.3.25i

Brett Wooldridge hath spoken thusly on Sat, Nov 02, 2002 at 05:35:06PM -0600:
> Blake Matheny wrote:
> 
> >The FSF would _prefer_ that an
> >application is written in a non-proprietary language, but it isn't 
> >required.
> >When GNU Java, or another GPL friendly Java interpreter is ready, I'm sure
> >that the FSF will warm up to the idea.
> >
> Well, the FSF would _prefer_ that people run on non-proprietary 
> operating systems, as well.  I doubt
> FSF will every warm-up to Java, C#, Windows, or Mac.

Whether or not they prefer this is irrelevant; this doesn't prevent
open-source software from being developed that runs on these systems. And
you're mixing languages and OS's with interpreters here. As Blake said,
the issue at hand is that there is effectively no "ready-for-prime-time"
GPL-friendly Java interpreter. The implication is clear; if the project is
coded in Java, it's hard to escape proprietary software being needed to
*run* it.

> >If GNUnet is going to succeed, we can't be stuck waiting for GNU Java or 
> >Sun to
> >port to new systems.
> >
> Don't get me wrong, but if _that's_ really the goal -- a large number of 
> GNUnet nodes and clients -- then
> a Windows specific solution, ala Kazaa, would be the way to go. 

If you'll read a few posts back, the Windows port is coming. We have never
had the intention of writing software "exclusively for Windows", and I
don't see that ever happening. 

I understand the importance of the Windows port if we're to "bring the
software to the masses", but since there is much of GNUnet that is still
in development, I personally don't think we're quite ready for them
anyway. And that has nothing to do with development language,
platform-specificity, or anything of the like. It is directly related to
time, as Igor said; most of us are juggling school, research, or jobs with
"recreational coding". If you care to do my research and coursework for
me, I'll be glad to work full-time on a Windows port :)

> Unbelievable as it might seem, Microsoft
> has the lion share of operating system installs.  

You're mistaken if you think we're all such zealots that this fact escapes 
us. :)

> Personally, I run 
> Linux _and_ Windows.  But I know that if
> GNUnet is going to succeed, it needs an installed base comparable to 
> Kazaa.  And having said that, IMHO,
> the best cross-platform GUI applications I've seen have been written in 
> Java.

Quite frankly, while I use Java if I need to whip something up quickly for 
my own use, if I need something that needs to dig at the operating system, 
memory internals, or complicated network stuff, I would choose C over Java 
any day. This is just a personal issue; at some point, the low-level 
details need to be dealt with, and C is a much more powerful way of doing 
this. If we need to get into the C vs. Java religious war, however, I 
think Glenn is right; let's take it off the list.

If you want to write a Java client for GNUnet, I don't think anyone is 
going to stop you :)

> >Finally, people know C. If you take some time and compare the number of 
> >open
> >source projects written in Java vs. C/C++, you will see that C/C++ has a
> >significant lead over Java. C has been around for decades and as a result
> >there are many many people who are proficient in the language. Choosing a
> >language that lots of people know is a good way to get volunteers.
> >

Furthermore (to add to Blake's comments) my experience over the past 
several years is that people who are proficient in C have a much better 
knowledge of the low-level details of what they are doing. The best Java 
programmers I know are also good C programmers. Whether or not this is 
true in the general case I don't know.

> There are extensive studies by Evans Data Corp. (including the Linux 
> Developer Survey) that basically
> sum up as follows:  1) There are more programmers who currently identify 
> themselves as Java programmers
> than C/C++ programmers, and 2) C/C++ is more popular than Java among 
> Unix developers.

Java is "easier" for the programmer in many ways. I have no problem with
the conceptual abstractions Java provides; they're fine, unless you need
to twiddle bits and specific addresses in memory. C is clearly the tool to
use then, IMHO, and GNUnet does a whole lot of that.

I don't see that the number of existing Java vs. C programmers in the 
world has much to do with anything. Most serious coders I know, and this 
includes folks who work with other OS's, are proficient in C whether or 
not it's their first-choice language.

> The fact is, the vast majority of open source projects have been started 
> by developers from the Un*x
> school.  Possibly due to their history and background of open source. 
> However, that does not mean
> that C/C++ should be the default and is the appropriate language for any 
> given project.

It wasn't the default; as is his wont, I'm sure Christian made this 
decision rather deliberately, and I'm fairly sure the original decision to 
do the project in C (which was 95% of the code, by the way, when Java was 
present) had little to do with the politics. It was the right tool to use 
for the kind of code that had to be written.

> The fact is, as much as I love Linux (for example), Linux isn't 
> "popular".  Not if you count users.  Not
> even close.  It couldn't be more UN-popular if it tried.  Let's get 
> realistic.  What are the goals of GNUnet?  
> I thought they were to build the most widely used, 
> censorship-resistant, anonymous data
> exchange backbone possible.  

There are a lot of goals for GNUnet, but you seem to imply that winning
the popularity contest should be prime among them. Right now, in an
incomplete system, if we have a windows port and are still in the midst of
serious development where each new release breaks compatibility with the
last, Windows users won't use it anyway. Right now, frankly, having a
huge, uninformed user base who had to keep reinserting content every few
weeks would only piss people off and drive them away, and this would
happen whether we were developed in Java, C#, Scheme, COBOL, or PA-RISC
assembler.

I'm not trying to say the user-base is unimportant; on the contrary, it's
critical. But you've got the cart WAY ahead of the horse here;  correct me
if I'm wrong, but we're not ready for the unwashed masses yet. We're 
getting there, but we're not there.

Anyway, I sort of feel like this dead horse has been beaten long enough. I
really don't see the development goals changing, at any point, toward
developing the whole thing in Java and abandoning Stallman's request that
we remove Java in order to be part of the GNU project. There is nothing
preventing a Windows/Mac/whatever port from coming out of this, and I
think it's fairly safe to say we're willing to accept the tradeoffs
involved in not using Java to achieve this end.

I'm (very) late for a party, so I'm out :)

- Krista

-- 
***********************************************************************
Krista Bennett                               address@hidden
Graduate Student
Interdepartmental Program in Linguistics
Purdue University

         If at first you don't succeed, try again. Then quit.         
             There's no use being a damn fool about it.
                           -- W.C. Fields




reply via email to

[Prev in Thread] Current Thread [Next in Thread]