Subject: In need of Guidens

From: "Anees Namouz" <[email-masked]>
Date: Sun, 17 Oct 2004 11:15:14 +0200

Hello everyone
Though neither my programming skills, nor my English matches the level of 
this list’s members. I find no place else to ask this.

I got interested and naturally started learning programming at relatively 
late age of 21.
I first started studying c/c++ and soon enough I found myself going towards 
the internet with php.
I became a php enthusiast, and cant get enough of it. I spend most of my 
little free time scripting and learning as much new stuff that I can find.

But more and more I’m understanding that by itself its not enough. And I 
would like to learn some new programming language. (even though some people 
I talked to calimed that php cannot be considered a serious programming 
language, its what I know and what I like)
The more I advance with it, the closer a dead end seems.
And when I considered my options the answer to my question “free + cross 
platform” seemed to be  “java”.
Now. My problem is that I live in a software free environment, I have no 
guidens or consultant on this topic that’s why I’m referring to this list 
for help.

Am I right about java?, and if so, can any one give guide me on where to 
start or any recommendations.
Or the most serious question is. What’s the the other options I have if any 
exists?
I find it hard to believe that in the vast world of programming languages 
there’s only one evolutionary step I can take.

As I said, I’m not involved with anyone (else) that can provide me with 
answers,  so I apologize to anyone that finds this email irrelevant to the 
list.

P.S i've been notified (by a returned email) that im moderated on the list, 
is there a special reason for that?

regards.

Anees Namouz

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.com/

---

From: Ofir Carny <[email-masked]>
Date: Sun, 17 Oct 2004 12:51:57 +0200

Anees Namouz wrote:

>Yahoo! Groups Links
There are several options, I would go with Python rather than Java 
though, because for me, Java boils down to C++ with a garbage collector, 
but YMMV, you may also want to look at functional languages (e.g. 
Haskel, Protel), or maybe something from the LISP family, but it really 
depends on what you're trying to achieve. If you're looking to focus on 
web programming, maybe Java is right for you after all. I would also 
look at more theoretic venues (like data structures, algorithms or 
complexity).

---

From: "Evgeny Gesin" <[email-masked]>
Date: Sun, 17 Oct 2004 11:10:27 -0000

--- In [email-masked], "Anees Namouz" <sick_ace@h...> wrote:
> And when I considered my options the answer to my question
> "free + cross platform" seemed to be  "java".

I recommend to read Sun's Java Tutorial available on-line and for
download on java.sun.com. It will take you some months to go over
Standard Java APIs. Next you can read Java Enterprise Tutorial,
available there, too. Average it may take half a year of intensive
studies and writing sample programs to get good understanding of Java.

You can also consider to join mailing lists and forums. I believe most
of Israeli Java professionals seat on advanced
http://groups.yahoo.com/group/java-desk group. Newbie questions are
not allowed in that group, but you can learn from discussions.

You development environment could be:
- Java 2SE and EE
- JEdit, a simple IDE
- Ant, if you want a make-like deployment
- Tomcat, Jboss, etc, if you want to run J2EE stuff

Last word, there is no good language. There is a good job.

Evgeny Gesin
Javadesk

---

From: Arik Baratz <[email-masked]>
Date: Sun, 17 Oct 2004 13:19:05 +0200

On Sun, 17 Oct 2004 11:15:14 +0200, Anees Namouz <[email-masked]> wrote:

[snip]

> The more I advance with it, the closer a dead end seems.

Very understandable.

> And when I considered my options the answer to my question "free + cross
> platform" seemed to be  "java".

I would suggest an alternative - Python. (www.python.com)

> start or any recommendations.

Like I said, I think Python is a more obvious choice. It has plenty
documentation, it's easy to get started programming, it doesn't force
object oriented programming on you, although you better learn these
concepts fast because they are very useful in Python.

And maybe more important, I have a feeling that the community around
Python is more "warm" and "friendly" than the Java community. Can't
define or quantify it, it just "feels" that way.

To get you started, go to http://www.python.org and read the overview.
Then if you are on Windows go to
http://www.activestate.com/Products/Download/Download.plex?id=ActivePython
or if you are on Linux you most likely have it installed already. Next
thing you want to do is to read the Tutorial from
http://docs.python.org/tut/tut.html while experimenting in the IDE
(PythonWin on Windows is my favorite, but there are many more for
Windows, Linux, whatever. An IDE called IDLE is probably already
installed with your Python distribution).

> As I said, I'm not involved with anyone (else) that can provide me with

I think we've all been there.

> is there a special reason for that?

Yes, this is a moderated list. Yes, your message did go through.

-- Arik

---

From: Shlomi Fish <[email-masked]>
Date: Sun, 17 Oct 2004 13:25:00 +0200

> this list’s members. I find no place else to ask this.

Hi Mr. Namouz!

First of all - a note. Your mailer sends some valid characters (like 
single-quote, double-quotes, etc. as characters that when replied to appear 
as squares. We generally only accept ASCII here.

> I got interested and naturally started learning programming at relatively

OK.

> I first started studying c/c++ and soon enough I found myself going towards

C/C++ is not a good idea for a language to start with. A higher-level language 
such as Perl is a better idea.

> little free time scripting and learning as much new stuff that I can find.

Nice.

> platform” seemed to be  “java”.

Java is free as in "costless", but it is not free as in free speech. It is a 
proprietary language which is controlled by Sun. There are partial 
open-source implementations like Kaffe, gcj, etc. but they are still not as 
encompassing as Sun's is.

Furthermore, it is not the only cross-platform language around. Perl, Python, 
Ruby, Tcl, PHP and friends are cross-platform as well. C and C++ are also 
cross-platform - it's just that you need to compile them, first. One can 
argue that .NET with Mono is also cross-platform.

I suggest you learn Perl next - it's high-level, cross-platform and highly 
enlightening. There are plenty of resources for Perl beginners here:

http://perl-begin.berlios.de/

You may also wish to refer to Eric S. Raymond's "How to become a Hacker":

http://www.catb.org/~esr/faqs/hacker-howto.html

Just note that I recommend learning Perl instead of Python.

Java may be a good language to know, but after you have learned Perl or 
something similar.

> is there a special reason for that?

Well, this list is first-time moderated. The first time you post to it you 
will be moderated.

Regards,

	Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish      [email-masked]
Homepage:        http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

---

From: Ori Idan <[email-masked]>
Date: Sun, 17 Oct 2004 13:37:49 +0200

>>start or any recommendations.
As I see it, Java is not free and therfore might be a dead end.

People here suggested both Python and Perl, I think you should go with 
these recomendation, where to start it's hard to say, it seems to me 
that perl is more common (this is not a fact, just my observation and I 
might be wrong), Perl also has object oriented but in it's basis it is 
not object oriented. Python is more object oriented, I myself started 
Perl after C and find it a very strong and flexible language and I use 
it now for any text file processing mission I have, this is not the only 
tasks that perl are good for, this is what I know. As for Python, I did 
hear a few talks about it and read some basic material, it seems to me 
even easier to learn then Perl and just it would be hard to recomend 
what language to learn.

--

Ori Idan

---

From: "Tzahi Fadida" <[email-masked]>
Date: Sun, 17 Oct 2004 13:44:06 +0200

Well, its difficult to say what anyone will like though
I can tell you what I think will be useful.
If you don't know Object Oriented yet then you'd better go with java.
Java as you may know, needs a Virtual Machine and thus have less performance
then c/c++ but not so much, I,e. 10-20% less. 
However, java is good when you want to write a program and have fast results
in
terms of easy debugging and implementing your thoughts.
I also recommend knowing it and J2EE, servlets, etc... since it would bring
you
jobs :).
C/C++ are important too because they are also used intesively in the
industry
especially when performance is important.

Object Oriented major contribution is to help you write large programs,
however,
for smaller programs I suggest learning perl and possibly python but I
cannot recommend
it since I did not go into it much but a lot of people recommend it.

lisp, etc... are antient but are good to help you comprehend the theoretical
side of things.
And anyone who knows them knows they are still usefull though no one
appreciate them
anymore.

Programming isn't enough though, I suggest learning xml, xpath, xquery, SQL
(very important).
Regular expressions, etc... I.e. complementary material that you can't do
without.

If you really want to get into the theoretical/historical programming you
might want to glimpse:
"Concepts of Programming Languages", SEBESTA.

Regards,
	tzahi.

> -----Original Message-----
> From: Anees Namouz [mailto:[email-masked]] 
> Sent: Sunday, October 17, 2004 11:15 AM
> To: [email-masked]
> Subject: [hackers-il] In need of Guidens
> 
> 
> 
> Hello everyone
> this list's members. I find no place else to ask this.
> 
> But more and more I'm understanding that by itself its not 
> enough. And I 
> guidens or consultant on this topic that's why I'm referring 
> to this list 
> for help.
> 
> Or the most serious question is. What's the the other options 
> I have if any 
> exists?
> there's only one evolutionary step I can take.
> 
> ------------------------ Yahoo! Groups Sponsor 
> --------------------~--> 
> $9.95 domain names from Yahoo!. Register anything. 
> http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/saFolB/TM
> --------------------------------------------------------------
> ------~-> 
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
>

---

From: Shlomi Fish <[email-masked]>
Date: Wed, 17 Nov 2004 18:33:55 +0200

On Sunday 17 October 2004 13:44, Tzahi Fadida wrote:
> Java as you may know, needs a Virtual Machine and thus have less
> performance then c/c++ but not so much, I,e. 10-20% less.
> However, java is good when you want to write a program and have fast
> results in

Ah, the classic "learn Java to get jobs" argument. Paul Graham points it in 
"Java's Cover":

http://www.paulgraham.com/javacover.html

<<<
People are forced to use it. A lot of the people I know using Java are using 
it because they feel they have to. Either it's something they felt they had 
to do to get funded, or something they thought customers would want, or 
something they were told to do by management. These are smart people; if the 
technology was good, they'd have used it voluntarily.

> especially when performance is important.

That's not why C/C++ are important. ANSI C is important because it's a 
low-level language that works close to the machine level. Understanding it is 
important to understand how a computer works. I was also told C programmers 
who become Assembly programmers are better Assembly programmers than people 
who started with Assembly.

As for C++, well, it supports Object-Oriented Programming roughly as much as 
COBOL supports Functional Programming. It used to be hyped as Java is today. 
I tend to dislike it for most purposes, and prefer either ANSI C or Perl.

> it since I did not go into it much but a lot of people recommend it.

I totally disagree that Perl, Python and friends are suitable only for smaller 
programs. In fact, they can easily scale to large codebases. Much better than 
Java or C++.

> lisp, etc... are antient but are good to help you comprehend the
> theoretical side of things.

What do you mean by "LISP, etc."? What falls under the LISP umbrealla.

> Regular expressions, etc... I.e. complementary material that you can't do

You are right about SQL, regexps and XML. There are many other technologies 
that are important.

> "Concepts of Programming Languages", SEBESTA.

All in all, your message smells of "money-oriented learning". I.e: you should 
learn what's hyped in the industry.

Regards,

	Shlomi Fish

--

---

From: "Tzahi Fadida" <[email-masked]>
Date: Wed, 17 Nov 2004 20:31:52 +0200

> From: Shlomi Fish [mailto:[email-masked]] 
> Sent: Wednesday, November 17, 2004 6:34 PM
> Subject: Re: [hackers-il] In need of Guidens
> 
> 
> 
> > performance then c/c++ but not so much, I,e. 10-20% less. However, 
> > java is good when you want to write a program and have fast 
> results in

I don't agree with half of what he says.
Mainly with the claim that no on loves java. Just enter JAVADESK list and
see
for yourself. I personally after many many years with different languages
sees
java as a blessing. I can tell you that in IE faculty where complex projects
that runs over many
teams and years could never hold without java's design, debugs, and
countless
other factors.
I personally very much appreciate it exists. I do not rule out any language
since
I don't dislike or like a language per ce. They are tools to do my job or my
algorithms,
etc... for example, Its been years since I programmed in C and now I am
about to do a major
coding project for my thesis inside postgreSQL. I would have been glad if it
was written
in java because of the debugging and the ease of coding but obviously if it
was written
in java you would get poor performance. As I always say, use the best tool
for the job.

As for java for jobs, it's the same. If an organisation tells you "we use
java, do you know java?".
I won't tell them, "java is bad, lets rewrite your software" because they
would just not hier me.

> > industry especially when performance is important.
> >
> 

Important to learn not important as in performance which IIRC was the whole
question.
Obviously C was written for Oss and being close to Assembly without the
problems
of assembly.

> I tend to dislike it for most purposes, and prefer either 

I know C++, COBOL, etc... and I can tell you that java is superior to C++
design wise.
I was trying to debug and add an algorithm to a fairly C++
standard-everyday-program
just a few months ago and it took me too much time to understand what was
going on there.
Java is higher level then C and C++ and lacks many problems with both, 
of course at the expense of performance and features.

> programs. In fact, they can easily scale to large codebases. 

Just because you can do any program with most languages its not a reason to
do it.
suitability is a concept that must be learnt as I am sure you did shlomi.
I bet you won't suggest to me to write the kernel using perl or python. C is
much
better. although I bet, with some tweaking and a suitable compiler both can
do it.

> What do you mean by "LISP, etc."? What falls under the LISP umbrealla.

LISP can help you to understand orthogonality and the beauty of simplicity.
Besides it still has its uses in AI etc...

> learn what's hyped in the industry.

Yes, pragmatism in today's market will help you. When I do community coding,
only then I cosiders other factors and yes I sometimes even code with perl
:)

---

From: Shlomi Fish <[email-masked]>
Date: Sun, 12 Dec 2004 20:27:16 +0200

On Wednesday 17 November 2004 20:31, Tzahi Fadida wrote:
> > > If you don't know Object Oriented yet then you'd better go
> >
> > with java.
> >
> > > I also recommend knowing it and J2EE, servlets, etc...
> >
> > since it would bring
> >
> > > you
> > > jobs :).
> >

Well, I agree with almost everything Graham says there.

> for yourself. 

Hmmm... well I know both Java and Perl and I love Perl so much more. Java is 
something I can tolerate, but not really love. ("OutputStream = new 
FileOutputStream(...)" anyone? "public static void main()")

> I personally after many many years with different languages 
> sees
> java as a blessing. I can tell you that in IE faculty where complex
> projects that runs over many

People have run complex projects that run over many teams and years a long 
time before Java, and are still running them now in different langauges. Why 
is Java necessary?

> I don't dislike or like a language per ce. 

Well, I have sentiments towards languages. I love Perl. I enjoy programming in 
Haskell very much. I like Matlab a lot. I like ANSI C. I dislike Pascal, and 
don't like C++ as much as C. The mere thought of having to write something in 
COBOL gives me heat waves. If you don't have sentiments towards languages, 
maybe you're not really enthusiastic about being a programmer. Or maybe you 
haven't really found a language you really like, if you are indifferent to 
all languages.

> They are tools to do my job or 
> my algorithms,
> coding project for my thesis inside postgreSQL. I would have been glad if
> it was written

For once, the development of Ingress->Postgres->Postgres95->PostgreSQL was 
started a long time before Java. Regardless, the performance loss with Java 
in this case would have probably been incredibly significant. Plus, I believe 
I/O, multi-processing/multi-tasking and other UNIXisms is much better done in 
C.

> I won't tell them, "java is bad, lets rewrite your software" because they

Neither would I. But many times people use Java in the industry for things 
that Perl/Python/etc. would have been much more adequate. Or that are better 
done in C. Java is the new hype language like C++ was a few years ago, and 
that is what Paul Graham points out to, among else.

And sometimes, re-implementing these projects in a more suitable language 
would make sense.

> > > C/C++ are important too because they are also used
> >
> > intesively in the
> >

Sometimes C makes more sense than Java even if performance is not so relevant. 

> of course at the expense of performance and features.

Trying to understand complex C++ programs is a nightmare. I recall having a 
lot of fun trying to understand what was going on in OpenJade 
(http://openjade.sourceforge.net/). My main problem was that I did not know 
where each function was defined or what it did. Or in which class a variable 
was defined in.

> > > Object Oriented major contribution is to help you write
> >
> > large programs,
> >
> > > however,
> > > for smaller programs I suggest learning perl and possibly
> >
> > python but I
> >
> > > cannot recommend

Right. However, you can write large-scale programs in Perl, Python anbd 
friends, and often you should write them in these languages.

> suitability is a concept that must be learnt as I am sure you did shlomi.

Right.

> I bet you won't suggest to me to write the kernel using perl or python. C
> is much

Well, Perl does not have any built-in way to access hardware, and cannot deal 
with hardware within the time/memory constraints that a kernel requires. If 
you are goingn to write the kernel in Perl, you'll still need a lot of ANSI C 
glue. 

> Besides it still has its uses in AI etc...

LISP is not only for AI, and AI need not be done with LISP. 

>
> > > Programming isn't enough though, I suggest learning xml,
> >
> > xpath, xquery, SQL
> >
> > > (very important).
> > > Regular expressions, etc... I.e. complementary material
> >
> > that you can't do
> >
> > > without.
> >
> > > If you really want to get into the theoretical/historical
> >
> > programming you
> >
> > > might want to glimpse:
> Yes, pragmatism in today's market will help you. When I do community
> coding, only then I cosiders other factors and yes I sometimes even code
> with perl
>

Pragmatism may help you. However, you may also eventually get to learn the 
fine details of hyped technologies that will be replaced by other 
technologies in a few years, and you'll then have to re-learn everything you 
learned now. I'd rather avoid it. If I get a job in which I have to write 
something in a certain technology I'll learn it for the job. Else, I'll just 
use what I like to use to get my job done as efficiently as possible, and 
learn what interests me.

Up to now, I found out that Java was hardly ever the right tool for the job 
for me. Many workplaces like it, but I'd rather not have "3/5/10 years of 
Java Experience" now, if it means that I'll have to spend the next 3/5/10 
years programming in Java.

Regards,

	Shlomi Fish

---

From: "Tzahi Fadida" <[email-masked]>
Date: Mon, 13 Dec 2004 02:40:31 +0200

> Sent: Sunday, December 12, 2004 8:27 PM
> Subject: Java [was Re: [hackers-il] In need of Guidens]
> 
> 
> 
> > > Ah, the classic "learn Java to get jobs" argument. Paul Graham 
> > > points it in "Java's Cover":
> > >
> > Mainly with the claim that no on loves java. Just enter 
> JAVADESK list 
> > and see for yourself.
> 

its no like its so simple in other lang including perl. The shortcuts only
works
because you say in advance what output device you mean.
I.e. declare a short variable and find out they are all the same on that
level.
Good programming, especially in real world programs which will require
future
maitainance should include meaningful variables and not "_" or all kinds of
weird
mumbo jumbo which requires hrs to decipher.

> time before Java, and are still running them now in different 

And you know what, maybe they won't require an army of men if they'll use
the advancements in Software Engineering. I mean, come on, C is long due an
overhaul.
An you know what, many programmers and engineers understand that and make
use
of it. The only reason to use a low level lang like C is for performance
which nowadays
is not very important for most applications besides OS and related progs.
Perl is not a team language and you know it. There is no need to argue about
it since
you know the answer.
There is no need to be nostalgic.

> 
> > I personally very much appreciate it exists. I do not rule out any 
> > language since I don't dislike or like a language per ce.
> 

As I said, they are a tool for me. I programed on the Commodore basic, and
xt ,at 286,etc...
I can maybe feel nostalgic but it doesn't mean I live in the past. I always
try to use
the best tool for the job and best doesn't necessarily mean performance or
how short
the code is or even how much it can express but an all around consideration.
Mostly: Time, Monitary cost, Personell, future technology, scalability,
etc...

> For once, the development of 
> Ingress->Postgres->Postgres95->PostgreSQL was 

No argument there. C was designed with an OS in mind.
Performance is mainly the reason to use C. Mostly, performance is negligable
in todays and
probably tommorows hardware. I.e. beside the os almost all the user side
program which
are not an OS service program are to big to use with C unless you want to
waste
money and resources in the development process. Actually it's a well known
fact
that Hardware costs are negligable compared to a human developer costs.

> 
> >
> > As for java for jobs, it's the same. If an organisation 
> tells you "we 
> > use java, do you know java?". I won't tell them, "java is bad, lets 
> > rewrite your software" because they would just not hier me.
> >
> 

No complaints here. Perl and python have many uses like triger handling in
dbs,
scripts, small programs, prototyping, etc...

> And sometimes, re-implementing these projects in a more 

yes.

> 
> > > <<<
> > > People are forced to use it. A lot of the people I know 
> using Java 
> > > are using it because they feel they have to. Either it's 
> something 
> > > they felt they had
> > > That's not why C/C++ are important. ANSI C is important 
> because it's 
> > > a low-level language that works close to the machine level.
> > > Understanding it is
> > Important to learn not important as in performance which 
> IIRC was the 
> > whole question. Obviously C was written for Oss and being close to 
> > Assembly without the problems
> > of assembly.
> 

Yes, I agree. There are other factors that sometimes should be considered
like
portability to new hardwares, time to market on new microcontrolers or cpus
like the
arm, dragonball s ,etc..
But know something else, C and also java are not defined well. That's
something not
many undestands. I.E. different compilers gives different results. Militairy
grade
programms uses languages which are well defined and will always give the
same
results on different compilers.

> 
> >
> > > As for C++, well, it supports Object-Oriented Programming 
> roughly as 
> > > much as COBOL supports Functional Programming. It used to 
> be hyped 
> > > as Java is today.
> > I know C++, COBOL, etc... and I can tell you that java is 
> superior to 
> > C++ design wise. I was trying to debug and add an algorithm to a 
> > fairly C++ standard-everyday-program

Yes, C++ is a nightmare since it has multiple inheritance and many things
which
are half done. You CANNOT take a low level lang like C and add to it OO and
tell
everyone to start write user programs. JAVA fixed that by removing the
usuall
fallacies like multiple inheritance and range checking and garbage
collection and numerous
others. I don't know if its true but I was once told java was first designed
to be put in
microwaves. User softare+hardware is always risky because of a possible
recall.
This is why you prefer to lower the rate of bugs in your software. Compared
to C
Java is much better bugs wise.

> > > > it since I did not go into it much but a lot of people 
> recommend 
> > > > it.
> > >
> > > I totally disagree that Perl, Python and friends are 
> suitable only 
> > > for smaller programs. In fact, they can easily scale to large 
> > > codebases. Much better than
> > > Java or C++.
> >
> > Just because you can do any program with most languages its not a 
> > reason to do it.
> 

Not in perl that's for sure. Readability, Writability, etc... are concepts
learned in blood
like they say in the army. Why take a risk.
As for phyton I don't know, I only glimpsed at it.

> > I bet you won't suggest to me to write the kernel using perl or 
> > python. C is much better. although I bet, with some tweaking and a 
> > suitable compiler both can do it.
> >
> 

Probably right, but I don't think its the main reason to dismiss it since
you could in
theory make it to do this things.

> > > > theoretical side of things. And anyone who knows them 
> knows they 
> > > > are still usefull though no one appreciate them
> > > > anymore.
> > >
> > LISP can help you to understand orthogonality and the beauty of 
> > simplicity. Besides it still has its uses in AI etc...
> 

I didn't say it does but it's a good place to start doing small stuff like
in one of
the courses I took "Intro to AI".

> > > You are right about SQL, regexps and XML. There are many other 
> > > technologies that are important.
> > >
> > coding, only then I cosiders other factors and yes I sometimes even 
> > code with perl
> >
> 

Well, I appreciate the easy life with java. Using C all the time, is like
IIRC the
philosophers guild when they built big blue(I think it was called)? in
douglas adams book.
What will they do if there was a computer who could do what they do in a
fraction of
the time. So they decided to destroy it. :)

> $4.98 domain names from Yahoo!. Register anything. 
> http://us.click.yahoo.com/Q7_YsB/neXJAA/yQLSAA/saFolB/TM

---

From: Tal Rotbart <[email-masked]>
Date: Mon, 13 Dec 2004 02:46:57 +0200

Everybody like some languages and hate others. I for one, dislike Perl
very much, I think it is unreadable goblygook. I like Python to a
degree, except that I find some of its syntax esthetically ugly. Also
as much as I enjoy Java, I can think of at least ten ways to make it
better. Aside from Java, I've programmed in x86 assembler, Pascal, C,
Object Pascal (i.e. Turbo/Borland), Modula-2, C++, Smalltalk and gasp,
C#. And these are just the languages I've been actually _paid_ to
write in.

So? What's my point?

Although all these languages have their up sides and their down side,
conceptually they are almost all alike. Some more interpreted than
others, some more statically typed, some more object oriented. They
are all syntactic sugar for the same thing -- a Turing machine.

Aside from using the right tool for the job and all that, not thinking
that it matters all that much does not make one "not really
enthusiastic about being a programmer". That sounds like a bad
ad-hominem attack worthy of fatwa-fanatics.

I happen to think that businesses that look for Java programmers are
doing the right thing. Why? Because one of the thing that makes a
platform/language better than others is not just the sigma of features
in the compiler/runtime library. It is also the sum of the product of
the community that uses this language and the critical mass of
developers that know this language. Business-wise, Java is the better
choice for many projects, simply because of this critical mass and
surrounding milieu.

If you look at the highs-and-lows of languages, it is quite similar to
a process of darwinist selection and niches:

C++ achieved critical mass very quickly but then lost it just as
rapidly because it just didn't cut it-- It caused time to market for
many projects to grow exponentially, the niche for it became more
limited but it is very strong there (mass market applications, games,
more).

Fortran was never popular but carved itself a steady niche with
research projects in physics and math because it had built in matrices
semantics before Mathcad 1.0, Matlab 1.0 and before even Mathematica
was a glint in Wolframs' eye. It is still there, even being taught
strongly.

Visual Basic achieved its evolutionary niche (in-house IT
applications) in record time, because it fit the job
(make-it-barely-work-but-do-it-quickly-and-with-a-db attitude) yet it
is now being replaced by PHP, which does the same but for in-house
web-based IT applications. Visual Basic.NET, by the way is doing very
badly, as it grew too complex for script-kiddies-working-IT. The
previous version of VB is _still_ selling better than VB.net...

Java simply fit the bill for large platform-agnostic IT applications,
it balanced time-to-market with familiar-syntax, easy migration path
for C/C++ engineers, a very complete and simple runtime library and a
very lucky timing and it grew from there. There will come a time when
another language will come and replace it from its throne. As much as
I like Java, I like it for the reasons that will probably make me like
the new language even more... It will make my job easier.

Being a specific-language zealot, apart from showing that you've got a
distinct character flaw (fanaticism) it a self-defeating exercise. The
language you like is already on the road to extinction when it first
compiles... Just like any of us, except, much faster.

So back to my first paragraph, I've seen these languages come and go,
and will see, I hope, at least three-fold more come and go before I go
into the great /dev/nul in the sky.

Like pets, languages live for a while, mean the world to you, and then
they die away or get run over. But unlike languages, pets at least
they love you back. So come on, put it in perspective.

Oh, and speaking of ad-hominem attacks. Shlomi, get a shower, I
visited the Technion this weekend and your b.o is a legend
post-humusly. Pun intended, but not well meant.

-Tal

---

From: Shlomi Fish <[email-masked]>
Date: Mon, 13 Dec 2004 14:02:54 +0200

On Monday 13 December 2004 02:46, Tal Rotbart wrote:
> very much, I think it is unreadable goblygook. 

The supposed unreadability of Perl has to do with the fact that it allows many 
ways to do one thing or another. You have to understand what a certain thing 
does, and this requires experience. After you have it, you can understand 
Perl code more easily. Understanding any code that someone else wrote is hard 
( http://www.joelonsoftware.com/articles/fog0000000069.html ), and Perl is no 
exception.

> I like Python to a 
> degree, except that I find some of its syntax esthetically ugly. 

Very well.

> Also 
> better. 

OK.

> Aside from Java, I've programmed in x86 assembler, Pascal, C, 

You've been paid to write in Smalltalk? Cooooool!

> are all syntactic sugar for the same thing -- a Turing machine.

Actually, two points are in order. A Turing machine as modelled by Alan Turing 
would have caused most algorithms to be implemented with an awful complexity. 
But the more important point is that the differences between languages do 
matter. In many languages, doing things that are very straightforward in a 
certain language, would be very difficult. Many languages are much more 
succint than others allowing for a smaller code to do the same thing, less 
time to code, fewer bugs[1], and much less frustration on the part of the 
programmer.

Saying that "all languages are Turing-complete, thus they are all alike." is 
not something anyone can agree to. Here's a Perl module I wrote (and am still 
writing) to generate navigation menus and organize sites in a tree layout:

http://search.cpan.org/dist/HTML-Widgets-NavMenu/

Let me know when you finish writing it in i386 assembly... ;-) Let me know how 
much time you would need, so I can plan a schedule.

> ad-hominem attack worthy of fatwa-fanatics.

It's not an ad-hominem attack. An ad-hominem attack occurs when someone 
dismisses a claim based on who made it. I did not claim, that what Tzahi said 
was false because he made it. I said that if someone thinks so (Tzahi or 
whoever) then this is the case from him, and deduced that this is the case 
for Tzahi. It was making a generalization and a special case of it.

For more information about ad-hominem attacks, refer here:

http://www.nizkor.org/features/fallacies/ad-hominem.html

This was a fallacy of attributing the wrong fallacy. ;-)

And for the record, I do think that good hackers have sentiments towards 
programming languages, code, technologies, etc. You often hear people say, 
"This is wonderful code", "This code is beautiful", "I loath everything about 
Foo-lang.", "I _love_ Linux." etc. Those who don't, are just "doing their 
jobs" and nothing matters to them. They are not enthusiastic about what they 
do.

> choice for many projects, simply because of this critical mass and

Ah hah. So you say, "I should code in Java, because Java is the new hype 
language and everybody and his mother learned it, and I bet I can find some 
good (or bad - ?) programmers out there out of this mass." So, it doesn't 
matter that in Java it will require 100 times more code than 
Perl/Python/etc.. And it doesn't matter that I can find fewer programmers 
knowing Perl or Python, but such that are very enthusiastic about programming 
and the languages and technologies that they are using.

It reminds me that in a talk I had with a few people, Java was labeled the new 
COBOL. Lots of code. Lots of programmers who don't know this way or the 
other. etc.

Well, obviously a business may make such a decision. I just doubt if he's 
making the right one. You can see what Paul Graham wrote about it in "Beating 
the Averages":

http://www.paulgraham.com/avg.html

Right.

Right.

> web-based IT applications. 

From the fire to the firing pan.

> Visual Basic.NET, by the way is doing very 

And because VB.NET, as all things .NET, is not portable to older Windows 
versions.

> the new language even more... It will make my job easier.

You are right.

> compiles... Just like any of us, except, much faster.

I'm not a specific-language zealot. I like Perl because it behaves the way I 
think, because I can implement what I want with it quickly, because it will 
work, because it's fast, because of CPAN, because I like the community, etc.

See here for other reasons:

http://www.nntp.perl.org/group/perl.advocacy/2108

At the moment, writing most of what I do in Perl is the right thing for me to 
do. However, for some things, I'm still using bash or ANSI C or whatever.

Two things are possible in the future. One of them is that Perl will die and 
eventually be replaced by different languages. However, I'm sure one of these  
different languages will have most of the elements I like about Perl (or else 
it won't be able to compete with Perl), and some newer things. This will 
cause me to like it as much as I like Perl now and to adapt to it. 
Nevertheless, any time I invest now in working with Perl is good because my 
Perl skills will still be useful in times to come.

Another option is that Perl will gradually evolve to form a language that is 
very different from what it is today, and still would be useful in the 
future. This is what I proposed in "A Critique of Perl 6":

http://freshmeat.net/articles/view/1339/

In this case, I'll only have to learn the incremental changes as I come with 
them.

An example for the latter case is C (K&R/C89/C99). It started out at the early 
seventies, is still in active use today, has evolved since then. There are 
still projects that are written in C, (even new ones), and there is no 
indication that it is dying. The most important open-source software packages 
are written in C, and also many commercial products, and to a lesser extent 
in-house applications.

An example for a language that died living no offspring is COBOL. There is a 
lot of legacy in-house code written in it, but no-one want to use it anymore. 
Furthermore, no language evolved out of it.

An example for a language that is no longer in active use, but has offspring 
is ALGOL. The foundations laid by it, were incoroporated into most modern 
languages, including C, Pascal, Modula, Perl, Python, Ruby, Smalltalk, Java, 
etc. Using Algol by now makes little sense, but it had an enormous effect on 
the programming world.

I realize one might argue that Perl may end up like COBOL. However, in that 
case, we have to assume that Ruby (which is derived from Perl) and many other 
languages will as well. I think Perl will not die as COBOL did for many 
reasons, among them that people love it too much. So, it's a safe bet.

> they love you back. So come on, put it in perspective.

As I demonstrated, languages are very different than Pets. "Beware the 
analogy, my son! The jaws that bite, the claws that catch!".

> post-humusly. Pun intended, but not well meant.

1. Again, this is not an ad-hominem attack. You criticized a quality of mine, 
not criticized an opinion, just because I expressed it.

2. I take showers once a day, and after any sporting activity, thank you.

3. I had to check up "b.o." (= body odour) and post-humously (that's the way 
it is spelled, and itg means "following or occuring after death" in this 
context), by a web and dictionary searches.

4. Many times I encountered people with unpleasant body odour, yet I cannot 
pinpoint a certain one. I forgot about it because it isn't important.

5. I applaud you for giving me this insulting physical criticism in this 
public forum, which will be recorded for prosperity in the Yahoo-Groups and 
Gmane forums, and which will arrive at the mailboxes of all Hackers-IL 
subscribers, some of which my good friends, and some of which complete 
strangers. Bravo!

Regards,

	Shlomi Fish

[1] - it was found that the number of bugs in a program is proportional to the 
number of lines of code it has.

--

---

From: "Evgeny Gesin" <[email-masked]>
Date: Tue, 14 Dec 2004 12:10:40 -0000

I don't write in Perl, because I not know Perl. Shlomi doesn't write
in Java, because he not know Java.

Shlomi looks for a forum in PHP, because he knows PHP. I run forum in
Java, because I know Java.
(recently opened http://forum.alltelescopes.com/forum/forums/list.page )

Choice of language depends on many factors, including qualification
and experience. Nothing bad with using that or another languages,
bla-bla. :)
-- 
Evgeny Gesin
Owner
http://www.javadesk.com
http://www.alltelescopes.com

---

From: Shlomi Fish <[email-masked]>
Date: Tue, 14 Dec 2004 15:16:09 +0200

> in Java, because he not know Java.

That's wrong. I do know Java. I have learned it so I can convert MikMod (a 
player for various formats of MOD music files) to Java:

http://www.shlomifish.org/jmikmod/

The project generated a code that worked and rendered the files with good 
quality, but did not produce identical results (possibly thanks to the fact 
that Java lacks unsigned integeral data-types), consumed about 6 times more 
CPU than the equivalent C version (when benchmarked when running on Kaffe), 
and the code is incredibly un-Javaish. It was also ported to JDK 1.0.2, 
albeit the code is more or less forward compatible to more recent versions. 

Nevertheless, I do have a familiarity with the Java language as a language. 
(which is not hard, because Java was kept simple on purpose). What I do not 
have is working knowledge of all the class library, much less third party 
components like Jakarta. I'm not too worried about that, because they are not 
very hard to learn, either.

Do you think I would criticize Java without knowing it?

I do not use Java by choice. The reason is that where performance does not 
matter too much, Perl gives me everything Java does and more. The core 
language is far superior and CPAN is equally as good for my needs as the Java 
class library, if not much better. I love programming Perl and am not that 
enthusiastic about programming in Java.

If perforamnce did matter, where I had one such case ([1]), I chose to use C 
simply because living in the Linux and FOSS culture, writing it in Java was 
not even an option, and possibly did not even come to my mind. C is much more 
ubiquotous, portable, accessible, FOSSnessed, etc. It also maps to the 
problem domain much better than Java. (and more than any other language I 
know, in fact, including Perl). And naturally, the added speed and much 
smaller startup time did not hurt.

BTW, why don't you learn Perl, Python or a similar agile language? They are 
highly enlightening and useful.

> (recently opened http://forum.alltelescopes.com/forum/forums/list.page )

That's not true. I've installed PHP-BB on the Jerusalem Linux Club site 
because it is the state-of-the-art in forums nowadays. As it turned out it 
has one huge flaw of not supporting Unicode well. I had another alternative 
by a friend of mine, which was Unicode-aware but had other limitations and 
suffered from several design problems.

At the moment, I'm looking for anything written in either Perl, PHP or Python, 
which supports Unicode and has some other important features. I avoid Java 
because setting up a Java HTTP service is painful, and I'm not sure it would 
be available on my web-hosting anyhow. 

If necessary I will implement my own forum (in Perl).

> and experience. Nothing bad with using that or another languages,

Every project that is started now has an optimal language based on the goals 
that are set for it, and the conditions in which it has to operate. This 
language has nothing to do with how many people know it, or how much the 
programmer who needs to implement the project knows it. It has everything to 
do with what the language offers: syntactically, grammatically, 
technologically, legally, implementation-wise, philosophy-wise, and with 
regards to the components that are already available (and their conditions). 
Many times, Java is now used instead of a more suitable language, simply 
because it's the latest hyped technology.

So far I encountered only one time when I needed to use Java for a code I 
began writing (this MikMod for Java thing). The reason I wanted to write it 
was because I wanted to learn Java, because I wanted a high-level-VM-based 
MOD Player, and Java was the most similar language to ANSI C that I could 
port it to, and because I had hopes it could portably run inside a browser.

Note that if I encounter a project where performance is important and yet I 
need a clean and powerful language with a rich and integrated class library, 
I may choose Java. That is at least until Parrot becomes available to depend 
on, bringing hopes of much greater speed for Perl 5 and friends.

Regards,

	Shlomi Fish

[1] - I'm not mentioning the project's name so as to not to invoke Muli's 
corrolary on Godwyn's law.

--

---

From: "Evgeny Gesin" <[email-masked]>
Date: Tue, 14 Dec 2004 15:41:09 -0000

> consumed about 6 times more CPU than the equivalent C version

I hope with up-to-date JVM it should work faster. Java provides fine
performance on the server side, especially when no calling windowing
APIs. Performance today is a function of CPU/memory.

> Nevertheless, I do have a familiarity with the Java language as
> a language. (which is not hard, because Java was kept simple on
> purpose). What I do not have is working knowledge of all the
> class library, much less third party components like Jakarta.
> I'm not too worried about that, because they are not very hard
> to learn, either.

Yes Java is not very hard to learn, the J2SE has about 1300 classes
and interfaces and J2EE has a bit less. Third party components will
add some little overhead to the learning process. :)

> BTW, why don't you learn Perl, Python or a similar agile language?
> They are highly enlightening and useful.

Working knowledge and experience provide better results, than learning
apples-and-apples. The ability to make a system is more important,
than learning new language/technology to do the same job.

Regards

---

From: Shlomi Fish <[email-masked]>
Date: Tue, 14 Dec 2004 21:33:31 +0200

> APIs. Performance today is a function of CPU/memory.

It probably will. Kaffe has been relatively unmaintained for a while, and 
reportedly has serious performance issues in comparison to more up-to-date 
JVMs. It was the best I could get for Linux at the time, though. Blackdown's 
JDK was much worse, IIRC.

> add some little overhead to the learning process. :)

Right. Too bad Java does not have an easy-to-use-and-submit-to repository of 
third-party components like Perl has with CPAN. It probably shouldn't be too 
hard to implement, (CPAN wasn't), but it is possible that Sun wishes to hold 
all the cards to itself, or is afraid of fragmenting Java. I don't agree that 
they are valid reasons, but they are possible.

Last time I tried to install Apache Batik, I had to install a gazillion RPMs 
from RPMFind and eventually gave up and installed the self-contained (non-RPM) 
package. 
I also recall barbarically having to download various optional APIs from 
java.sun.com. Ah, the civil order of perl -MCPAN -e 'install Module::Foo' or 
perl -MCPANPLUS.

> than learning new language/technology to do the same job.

I totally disagree that Perl/Python/Ruby are equivalent to Java and thus are 
"Apples-and-Apples". Someone once said that "To someone who only has a hammer 
- everything looks like a nail." If you know Java and don't know 
Perl/Python/etc., then you have no idea what you're missing. You see 
everything as a Java problem to be solved with Java techniques, and Java's 
way-of-doing things. Perl/Python/etc. are very different than Java, and in 
many ways superior (at least, IMHO). Do you know C? (and I'm talking about 
ANSI C, not Standard C++-isms) Would you claim that someone who knows only C 
should not learn Java, or vice versa? Certainly not! They are very different 
languages with different philosophies, different capabilities, different uses 
and different ways of doing things. Each gives you different insights, and 
you need to know them both if you want to be a good programmer.

This is the same case for Java and Perl and friends. You can't expect to be as 
good a programmer before you learn any one of the Perl and friends languages 
than after you learned them. For the record, I think that learning Java has 
clarified some things with Perl and C for me. Its everything is a reference 
philosophy made me realize the distinction between the memory models of Perl 
and C, and better understand why writing structs in Perl would be less 
convenient and useful than doing the same in C.

I think the same was true when I learned Scheme from "Structure and 
Interpretation of Computer Programs" which made me discover closures and 
lexical scoping as used in Perl, and Haskell, which brought me a whole new 
way of things about list management. Haskell and Scheme also made me realize 
why manipulating linked lists in C or Perl was sub-optimal.

Here are some other anecdotes I know of:

1. I once told an engineer who happens to be a good friend of mine, that I am 
writing a module for generating HTML navigation menus in Perl. Now, he knows 
C++ very well, knows bash and recently switched to Python for his system 
scripts. He said, that he would implement such a thing in Java if it was up 
to him. But why not Python? Python would be so much more suitable because (as 
Perl) data and text processing is so much stronger there. Perhaps he doesn't 
know Python that well, or is afraid of exploring it further?

2. When Google is looking for Java programmers, they post wanted ads for 
people with Python experience. That is because they know experienced 
Pythoneers will write much better Java, than those who only know Java.

3. I met a Pythoneer who also codes Python for his job. (tried Perl for one 
script, and didn't like the result, so he ended up converting it to Python). 
He was a nice guy, but quite inexperienced and full of it. I met him at a 
Tel-Aviv Linux Club meeting, and he and two other guys (one of which a 
regular of Israel.PM meetings) went for a dinner at a cafe and stayed up to 
late at night talking. Like I said he was full of it. Among else, he quoted 
Paul Graham (IIRC) as saying that the internals of the computer and the 
details of the operating system are becoming less and less relevant for 
modern day programmers, or something along this line. As we were discussing 
multi-tasking techniques, this Pythoneer claimed there was a new way of 
multi-tasking which was superior to multi-threading or mutli-processing. I 
asked him what it was, and he said that you have a queue of tasks, handle 
each one in its turn, if one tasks requires a wait, you put it in the queue 
and turn to handle another task. I said, "Very well, but as opposed to 
multi-threading or multi-processing, your way cannot make use of multiple 
processors or processing nodes." He said "Why not?"... Then the Israel.PM 
regular told him this was one case where understanding of OSes and CPUs 
mattered.

4. One of the Israeli.PMers have dropped out of high school and became a Perl 
programmer. He seems very knowledgable and all, but did not get around to 
learn C yet. I tried to explain to him when using C was preferable to using 
Perl. He said that he never had the need to write applications that were too 
performance-critical or good GUI programs. I asked him "What GUI has to do 
with it?", and he said: "I wrote a couple of GUIs in Perl using Perl/Tk or 
Perl/Gtk. They came out ugly and stupid as hell.".

I ended up explaining to him that programming GUI was hard, and a good GUI 
needs to be polished a lot, regardless of the language used. You can perform 
the same GUI operations with Perl/Gtk as you can with plain Gtk. It's just 
that the C or C++ based GNOME or KDE apps were heavily polished, possibly by 
programmers who are experienced GUI designers.

He had a certain mystique about C that was wrong. I admit that I used Perl to 
write a few lame GUIs, but then again, I didn't have the need to polish them. 
On the other hand, a tweak I tried to do in one of the GIMP (written in C) 
dialogs came out mis-aligned and a bit ugly no matter what I tried.

Regards,

	Shlomi Fish

--

---

From: omer mussaev <[email-masked]>
Date: Tue, 14 Dec 2004 12:47:41 -0800 (PST)

> know Python that well, or is afraid of exploring it

I was the "an engineer" in question. Actually, I had
told Shlomi that I would opt for XPath/Xalan option,
and would not implement the system neither in Perl nor
in Python. Reason? I can implement the thing in Java
in 2 hours, and thousands of other people can use it
out of box.

my 2 cents.

=====
--
o.m.

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com

---

From: "Evgeny Gesin" <[email-masked]>
Date: Tue, 14 Dec 2004 22:11:32 -0000

Shlomi,
with yum tool and right JPackage repositories you can search and
install, remove, upgrade third party java software as easy as you do
in CPAN.

By the way, I used CPAN when installed Razor and Spamassasin for
QMail. Can you tell me please, how to remove some unnecessary modules
in CPAN?

---

From: Arik Baratz <[email-masked]>
Date: Wed, 15 Dec 2004 00:31:08 +0200

On Tue, 14 Dec 2004 21:33:31 +0200, Shlomi Fish <[email-masked]> wrote:

[snip]

> regular told him this was one case where understanding of OSes and CPUs

To set the record straight, there is such a concept in Stackless
Python (a Python variant), and it's called tasklettes[1].

I'm not a Stackless expert, but as far as I know, tasklets can be sent
to other machines to run there by pickling (serializing, marshalling)
them and un-pickeling them in a different time/space.

[1] https://www.centera.de/stackless/wiki/Tasklets/wikipage_view
[2] https://www.centera.de/stackless/wiki/Stackless

-- Arik

---

From: Shlomi Fish <[email-masked]>
Date: Wed, 15 Dec 2004 07:34:48 +0200

> install, remove, upgrade third party java software as easy as you do

Hmmm... OK. Is JPackage as comprehensive as CPAN? How easy is it to submit 
packages there. Can I use it to install cross-platform packages?

yum is an RPM tool. It installs binary pre-compiled packages. In CPAN, you can 
install everything from source, which will run on any problem. And what about 
JNI code?

You can probably do the same with apt and urpmi. Mandrake has a JPackage 
repository.

> QMail. Can you tell me please, how to remove some unnecessary modules

The CPANPLUS module has an uninstall option.

Regards,

	Shlomi Fish

---

From: Tzafrir Cohen <[email-masked]>
Date: Wed, 15 Dec 2004 09:13:07 +0200

On Tue, Dec 14, 2004 at 03:16:09PM +0200, Shlomi Fish wrote:
> matter too much, Perl gives me everything Java does and more. 

[snip]

> CPAN is equally as good for my needs as the Java  class library, if not 
> much better. 

Using CPAN is indeed very easy when you write a small program for
yourself. But not when you want to distribute it. The JVM is accompanied
by a class library which is guaranteed to be there. However there is
much less a guarantee on what CPAN modules will be included in the perl
distribution the user will have.

Otherwise you wouldn't have so many perl programs that claim that they
don''t require "no extra modules".

-- 
Tzafrir Cohen                       +---------------------------+
http://www.technion.ac.il/~tzafrir/ |vim is a mutt's best friend|
mailto:[email-masked]       +---------------------------+

---

From: Tzafrir Cohen <[email-masked]>
Date: Wed, 15 Dec 2004 09:23:28 +0200

Though we're getting dangerously close to practical sysadmin issues,
I'll answer...

> QMail. Can you tell me please, how to remove some unnecessary modules

And just the same: never install directly from CPAN. Use cpanflute or
whatever to pack it to an rpm and then install it. Though I believe that
freshrpms now have decent packages of Razor and SpamAssassin with files
in the proper places, init.d script for spamd, etc.

---

From: Shlomi Fish <[email-masked]>
Date: Wed, 15 Dec 2004 17:21:09 +0200

On Wednesday 15 December 2004 09:13, Tzafrir Cohen wrote:
> > I do not use Java by choice. The reason is that where performance does
> > not matter too much, Perl gives me everything Java does and more.
>
> [snip]
>
> yourself. 

Or a large one.

> But not when you want to distribute it. The JVM is accompanied  

True. You can try using PAR or whatever to package the Perl program in a 
self-contained package. That's one option. Another is to create a CPAN Bundle 
to install all the pre-requisites (or alternatively put the program itself as 
a CPAN package). The latter option won't work if you don't have administrator 
privileges.

Of course, nothing prevents you from creating a Perl distribution that will 
contain other modules than what already exists. Or simply bundling the 
required modules with the program (like wml does). But, at least you have the 
option of easily installing modules that are not shipped with the 
distribution, which isn't the case for Python, whose core distribution also 
contains many different modules.

Perhaps it would be a better idea if Perl shipped with more modules. But CPAN 
is hetrogeneous, and many there is a lot of duplicate or even mostly 
identical functionality.

Right.

Regards,

	Shlomi Fish

---

From: Shlomi Fish <[email-masked]>
Date: Wed, 15 Dec 2004 17:34:08 +0200

> in the proper places, init.d script for spamd, etc.

cpanflute? First time I've heard of it. Where can I find it? It's nowhere in 
my Mandrake packages or already installed. (searched for flute). I found a 
few pages that mention it on the Net, but nothing specific to download.

I did, however, hear of Ovid (which also recursively create RPMs of the 
dependant modules) but haven't used it yet:

http://search.cpan.org/dist/Ovid/

Regards,

	Shlomi Fish

---

From: Shlomi Fish <[email-masked]>
Date: Fri, 17 Dec 2004 12:14:17 +0200

First of all Tzahi - a general note. Your message is very hard to read. You 
have many grammatical errors, wrong capitalization, improper spelling, missing 
or extra apostrophes, etc. Furthremore, your mailer places the last word of a 
line in a separate line, which is confusing to the eye.

Please either configure your mailer (Lookout, IIRC) to behave, or use a 
different mailer for correspondence with Hackers-IL. You can get an E-mail 
account at Yahoo/Hotmail/etc. and I can give you a gmail invite.

On Monday 13 December 2004 02:40, Tzahi Fadida wrote:
> its no like its so simple in other lang including perl. 

Yes, it is. I don't need to define a main function or an Applet/Application 
class in Perl just for getting the program to do something. And for the 
simple task of writing to a file, I can use open/print/close. Much more 
succint than Java. Much more cognitively sound. Much more environmentally 
friendly.

Larry Wall said that in Perl easy tasks should be easy, and hard tasks 
possible. Writing System.out.println("Hello World") to print a damn string to 
stdout, is not what I call a sane thing to do. Neither is calling 
CreateFile() with 7 arguments just to open a file (well it's Win32 API and 
not Java, but you get the idea).

> The shortcuts only 

1. I completely lost you here.

2. Short variables sometimes make sense. Often I use $i or $j as indices 
instead of $index_to_array_element. That's because everyone knowledgable 
enough knows that $i can serve as an index. Shorter variable names make the 
code flow more and less time to read. 

> the advancements in Software Engineering. 

"Army of Men"? Beg your pardon? But some complex projects that ran over many 
teams and years did not require an army of men. Furthermore, an army of men 
may not necessarily be an advantage, unless you forgot Brooks' Law:

http://www.jargon.net/jargonfile/b/BrookssLaw.html

> I mean, come on, C is long due an 
> overhaul.

Why? What's wrong with C? It is perfectly acceptable as a language for some 
needs.

> is not very important for most applications besides OS and related progs.

There are other reasons to use C besides performance:

1. Portability - ANSI C is portable for every architecture there's a gcc 
backend or any other compiler for. With Java you rely on Sun's whims.

2. FOSSness - gcc is a full-featured and robust compiler for ANSI C, and it's 
open-source. Java has a very problematic license. It's not distributed as 
part of most Linux distributions due to this.

3. Low-levelness - you cannot effectively duplicate a struct containing other 
structs in Java (or Perl for that matter) as you can in C. (due to the fact 
that in Java every struct is a refernence) You cannot work with interrupts, 
DMAs, and other hardware elements. It's much harder to write your own custom 
fine-grained memory-management routines. 

Believe it or not, but many problem domains call for ANSI C. I myself have 
written a program in ANSI C, which when trying to think how I would implement 
it in Java, I encountered a lot of techniques I used that were almost 
impossible to translate effectively.

4. Self-contained-ness : you can compile a C library and distribute it as is. 
With Java/Perl/whatever you need a huge run-time as well.

5. Making use of UNIXisms: there's no fork() in Java, and not many other UNIX 
system calls. You need to create bindings for them (which require JNI) or 
work around them. Perl, BTW, usually doesn't have this limitation.

6. Integrability - A C library can be used by Perl code, Python code, Tcl 
code, Ruby code, to a lesser extent Java code, etc. Java code is mostly 
usable only for Java.

> Perl is not a team language and you know it. There is no need to argue
> about it since
> you know the answer.

I realize why some people can think that Perl is not a team language, but I 
don't agree with it. So let's argue about it.

You have made a dogmatic claim that "Perl is not a team language". Care to 
explain why? I, for once, can give some counter-evidence to this 
generalization. I know of some software shops in which teams of programmers 
successfully work on the same Perl code. And that's without taking into 
account all the Perl projects and CPAN modules, for which a 
geographically-dispersed team worked and contributed to the same code. 
Arguably, working on the same codebase with a geographically-dispersed team 
is harder than with a team in which everyone are located in one place.

> There is no need to be nostalgic.

Nostalgic? I wrote in Perl a few days ago.

> > > etc... for example, Its been years since I programmed in C
> >
> > and now I am
> >
> > > about to do a major
> > > coding project for my thesis inside postgreSQL. I would
> >
> > have been glad if
> >
> > > it was written
> > > in java because of the debugging and the ease of coding but
> >
> > obviously if it
> >
> > > was written
> > > in java you would get poor performance. As I always say,
> >
> > use the best tool
> >
> > > for the job.
> >
> Performance is mainly the reason to use C. 

Like I said it's not.

[Other ramblings about performance snipped...]

> scripts, small programs, prototyping, etc...

They have many other uses besides that. By all means they can be used for 
serious large scale applications, often replacing things that are now written 
in C, C++ or Java.

> portability to new hardwares, time to market on new microcontrolers or cpus

These are not the only factors - see above.

> many undestands. I.E. different compilers gives different results.

Care to explain what you mean exactly and give examples? I realize about 
byte-sex (little-endian vs. big-endian), field padding, and other hardware 
differences. Furthermore, if I only use gcc (just with different back-ends), 
will it also hold?

> Militairy grade
> > > just a few months ago and it took me too much time to
> >
> > understand what was
> >
> > > going on there.
> > > Java is higher level then C and C++ and lacks many problems
> >
> > with both,
> >
> are half done. 

Actually, the reasons why I found C++ to be problematic did not involve 
multiple inheritance. 

> You CANNOT take a low level lang like C and add to it OO and 
> tell
> everyone to start write user programs. 

Well, ANSI C by itself supports OO pretty well. (look at Gtk+, void 
*-polymorphism, etc.) And as Joel Spolsky identified in:

http://www.joelonsoftware.com/articles/APIWar.html

OO is not a big productivity-enhancement as managed programming and garbage 
collection. (i.e: doing $a = $b . $c to concatenate two strings).

I tend to agree with him, because when writing C, I spend a lot of time on 
malloc()/free() and other stuff like that.

> JAVA fixed that by removing the 
> usuall
> others. 

Right.

> I don't know if its true but I was once told java was first 
> designed to be put in
> microwaves. 

Microwave ovens?

> like they say in the army. Why take a risk.

"You cannot write large-scale programs in Perl". Yet, another statement that 
many people feel is true, but I believe the opposite.

Let me give some counter-evidence:

1. The Mail::Box module alone consists of 22,093 Perl Lines of Code (according 
to SLOCCount by David A. Wheeler). That's certainly a lot. Furthermore it 
depends on several other Perl modules (which I did not take into account) and 
has some other optional dependendencies. Together, it's probably about 
50K-100K if not more.

2. Bricolage alone consists of 61,673 Lines of Code. And it is dependant on 44 
required and 17 optional CPAN modules. Together, it's well above 100,000 
Lines of code, probably even above 200,000 Lines of code.

3. Some Perl modules such as Maypole or XUL::Node require a lot of Perl 
modules. If we make a LOC count of them along with all of their dependencies, 
it will be a substantial amount of LOCs.

4. The U.S. Federal District Court calendaring system is a 1.6 million line 
perl5 package. This is pretty much a large-scale program by any means:

http://www.nntp.perl.org/group/perl.advocacy/2123

5. Amazon.com has a ~100 million LOCs codebase, a lot of it in Perl:

http://xrl.us/eepc

Now if this isn't large-scale, I don't know what is.

> theory make it to do this things.

In theory yes. However, the kernel problem domain maps much better to C than 
to Perl or Python. As is the case for a different program I wrote.

> > > Yes, pragmatism in today's market will help you. When I do
> >
> > community
> >

It was called "Deep Thought". "Big Blue" is a nickname for IBM that predates 
Douglas Adams' Books. The reason you are probably confused is that initially 
IBM named their chess-playing computer "Deep Thought" after the computer in 
"The Hitchhiker's Guide to the Galaxy". Then they renamed it to "Deep Blue".

> the time. So they decided to destroy it. :)

That's not how I recall the "Hitchhiker's Guide to the Galaxy". And I don't 
understand the analogy, anyhow.

Regards,

	Shlomi Fish

---

From: omer mussaev <[email-masked]>
Date: Fri, 17 Dec 2004 02:38:19 -0800 (PST)

[whining removed]

> not Java, but you get the idea).

IMIAOO, 27 y.o. writing "hello world" programs is
obsolete.

[more whining removed]

=====
--
o.m.

__________________________________ 
Do you Yahoo!? 
Send holiday email and support a worthy cause. Do good. 
http://celebrity.mail.yahoo.com

---

From: Tzafrir Cohen <[email-masked]>
Date: Fri, 17 Dec 2004 13:38:43 +0200

> line in a separate line, which is confusing to the eye.

Not exactly. Those are simply long lines.

I rather use lines of 72 chars, so they can get quoted a number of times
before reaching a length of 80

> 
> Please either configure your mailer (Lookout, IIRC) 

You may dislike Microsoft Outlook. But calling it names will not get
your reader to actually try to implement what you advise.

---

From: Shlomi Fish <[email-masked]>
Date: Fri, 17 Dec 2004 15:49:36 +0200

On Friday 17 December 2004 13:38, Tzafrir Cohen wrote:
> > First of all Tzahi - a general note. Your message is very hard to read.
> > You have many grammatical errors, wrong capitalization, improper
> > spelling, missing or extra apostrophes, etc. Furthremore, your mailer
> > places the last word of a line in a separate line, which is confusing to
> > the eye.
>

I see.

> before reaching a length of 80

Well, Tzahi's long lines were completely unquoted, and yet were displayed this 
way. They were long right at the start.

> your reader to actually try to implement what you advise.

It was a joke, which I'm sure Tzahi will not be offended by. And your 
commenting on it was completely redundant.

Regards,

	Shlomi Fish

---

From: Shlomi Fish <[email-masked]>
Date: Fri, 17 Dec 2004 16:15:32 +0200

> --- Shlomi Fish <[email-masked]> wrote:

It wasn't whining. We were arguing about Java.

> IMIAOO, 27 y.o. writing "hello world" programs is

1. What's "imiaoo"? A Google search for it returns no results. I realize it's 
something like "In my [something] opinion", but I don't know what IAO stands 
for. is "I" "incredibly"?

2. Most of the program I write, don't just read:

<<<
#!/usr/bin/perl
print "Hello World!\n";

However, discussing how common tasks require a lot of code is helpful to 
understand why a language may be inadequate for doing real-world tasks. 
System.out.print/System.out.println might as well be:

System.out.println(myString + " " + myInt.toString());

Where in Perl it would be:

print "$mystring $myint\n";

Imagine having to call a function with 7 arguments every time you want to open 
a file. That's insanity, and should not be this way.

It is instructive to discuss how easy/brief/cognitively sound/intuitive common 
tasks are in various languages. That's because they are done very commonly, 
and indicate how well the language is human-engineered.

If you feel it isn't so, you may wish to consult the Intercal "Hello World" 
program:

http://www2.latech.edu/~acm/helloworld/Intercal.html

> [more whining removed]

Omer, please don't insult me by claiming that everything I did in the E-mail 
to which you responded was "whining". Among else, I dispelled two myths about 
Perl, dispelled a claim regarding huge teams and their necessity to maintain 
non-Java programs, and explained why C was sometimes preferable to Java even 
if performance was not such a big consideration.

Regards,

	Shlomi Fish

---

From: Tal Rotbart <[email-masked]>
Date: Fri, 17 Dec 2004 16:45:02 +0200

High five on that, Omer :)

And on another note, I think Shlomi's perl-mongering is simply due to
the fact that he can't bring himself to learn any other language
deeply and finds rationalizations to avoid doing so. Sounds just like
his rationalizations for his poor grades at the Technion from his
whiny rant a while back.

Over all, a case of an over-inflated ego try to avoid a cushion of needles.

-Tal

-- 
/************************************************

  Tal 'redbeard' Rotbart
  Software Wizard

  eMail:  redbeard of gmail dot com
  Tel:    +972-2-671-6178
  Mobile: +972-52-896-5025

  Snail mail:
          Klozner 7/2
          Jerusalem 93388
          ISRAEL

************************************************/

---

From: omer mussaev <[email-masked]>
Date: Fri, 17 Dec 2004 07:01:52 -0800 (PST)

[ whining removed ]
> for. is "I" "incredibly"?

IMIAOO stands for "In My Indecent and Obscene Opinion"

[ embarassing whining disclosing complete
misunderstanding of Java, Win32 API and the fact that
I do not tend to open files, but rather implement
filesystems removed as well as whining above]

=====
--
o.m.

		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - You care about security. So do we. 
http://promotions.yahoo.com/new_mail

---

From: omer mussaev <[email-masked]>
Date: Fri, 17 Dec 2004 07:11:00 -0800 (PST)

> his rationalizations for his poor grades at the

I do not think Shlomi lacks any ability in learning
languages. I recall he taught himself Lambda calculus
- out of sheer curiosity. That's something - isn't it?

I guess Shlomi's right in sense that Java is not good
for oneliners, and that C++ is overly complex (in
comparison to C) tool  for creating memory leaks. 

It's just I do not tend to think that oneliners desrve
thinking...

> avoid a cushion of needles.

Like our previous bossen? 

> -Tal

Omer (junior perl monger in disguise)

=====
--
o.m.

__________________________________ 
Do you Yahoo!? 
Dress up your holiday email, Hollywood style. Learn more. 
http://celebrity.mail.yahoo.com

---

From: Tzafrir Cohen <[email-masked]>
Date: Fri, 17 Dec 2004 18:28:38 +0200

Anyway, I claim perl is better than Java, and I have the numbers to
prove it!

  http://shootout.alioth.debian.org/
  http://merd.sourceforge.net/pixel/language-study/scripting-language/

:-)

---

From: "Tzahi Fadida" <[email-masked]>
Date: Fri, 17 Dec 2004 19:27:28 +0200

First, let me start with saying that I am not java mongering
even though I am arguing for it at this thread. Java is a
tool to do things like perl is a tool. I admit that sometimes
a language can be more than a tool and even considered
poetry to some but I am attached to any in such manner
as yet. I did program in dbase, cobol, sever assembly
operation codes, c and the list goes on. Every once
in a while, there comes a new programming language
that makes my life easier and makes a better
programming but usually I am not so sentimental
(even if its as cool as perl, pyhton, etc...).
AND, most importantly the thread started because
a person wanted to start with an easy enough language
that will include most of the main principles. I still
endorse using java or pascal to start learning.

> account at Yahoo/Hotmail/etc. and I can give you a gmail invite.

I am using outlook, and yes I don't like the MS way of thinking for
you. I tried to wrap the text at 72 76 and what have you many times.
Most of the times I usually add CR at every line but sometimes I am
missing some or the character limit mark.
If you can find me a way to answer my email win GVIM I will implement
it immidietly. I reconfigured the mailer again (though I am more
attentive now to the CR) and hope it will be better.
Before some ask why I use outlook: I use it because I have 
hunderds of thousands of archived mails, mainly security,programming
mailing lists,
that I sometimes refer when I remember something I saw in the past.
I just don't know if thunderbird, etc... can handle it but as tzafrir
suggested
I shuold try. I just didn't find the time to do it.

> > > Hmmm... well I know both Java and Perl and I love Perl so 
> much more. 
> > > Java is something I can tolerate, but not really love. 
> > > ("OutputStream = new FileOutputStream(...)" anyone? 
> "public static 
> > > void main()")
> >

Most big programs never write to files or screen directly but
rather use libraries for DBs, etc...

> succint than Java. Much more cognitively sound. Much more 

Just think about what would happen if you would ever want
to reverse engineer a perl program back into a diagram,
say UML. Which will be harder to reverse, Java or Perl.
From experience and from seminars I participated
than java is the easiest and perl is low on the list.
I.E. its readability sucks.

> not Java, but you get the idea).

same as the last.

> 1. I completely lost you here.

In short, reading a perl program is like deciphering "Ktav hartumim".

> code flow more and less time to read. 

that's not what I meant. But know that on large programs I always
ask myself what will happen if 3 years from now no one that
was working on the original project will be in place to maintain it.
What will happen then? How hard would it be to work with it then?

> http://www.jargon.net/jargonfile/b/BrookssLaw.html

Complex in what sense? everything is relative.
Think about this: We have a many years endevour project in the IE
faculty called OPCAT with is really something like case tool
for our own language instead of UML called OPM.
Now, several student team each year works on that project.
Some may never meet the core integrator teams.
Just think how hard would it be to do in perl or c?
I shudder to the thought. Lets face it, anything is possible, but
at what costs?
Human costs are overwhelmingly costier than hardware costs
and anything you would think on buying for your project. I.E.
its better for your team to produce more productive codes than
to mess with inegrations, problematic libraries, etc...

> Why? What's wrong with C? It is perfectly acceptable as a 

Yes, but that does not mean its perferct! there is always room for
improvements. The problem is, its too rooted to do many things
because of portability problems.
And yes, for SOME needs its perferct.

> backend or any other compiler for. With Java you rely on Sun's whims.

but at what cost? at least in java you won't have to mess around all
day tuning and also you could be relaxed about portability
bugs such as variable sizes, etc... see orna's lecture in haifux.

> part of most Linux distributions due to this.

Yes, that's a problem. There are minor pluses though.
If you believe them, they claim releasing it would destroy the
faith of people in it. because of forks, etc...
I for one don't really buy their claims.

> fine-grained memory-management routines.

That's not whats java is for. JAVA is high leve, C low level.
They each have their uses.
 
> With Java/Perl/whatever you need a huge run-time as well.

Yes, but its negligable. CPU and storage and even internet connection
width are more and more powerfull, making this an irrelevant argument
more and more.

> work around them. Perl, BTW, usually doesn't have this limitation.

Yes, it's a problem. but at least you can use JNI as you said.
But its not so big of a problem. Plus, I am guessing that
some application servers (where this really matters) have
all kinds of facilities in place already for your java programs.

> code, Ruby code, to a lesser extent Java code, etc. Java code 

because it runs in a safe environment. Its against its prime directive
to run other codes. Non the less, obviously you can't fix the world
in one day (at least to their thinking) so you open an api to System
Calls. From there you can do anything.

> don't agree with it. So let's argue about it.

Yes, its not consistent enough. Lets agree to disagree on that
because it's the same as the writing to a file argument.

> is harder than with a team in which everyone are located in one place.

Everything is relative. If you can do something does not make it the
best thing to do.

> Nostalgic? I wrote in Perl a few days ago.

Maybe sentimental is a better word.

> > Performance is mainly the reason to use C. 

not the only issue, but to my thinking the main issue.

> serious large scale applications, often replacing things that 

I question the logic of that and require examples so I can try
to refute them.
(aside from web apps where I don't want to argue since
perl is sometimes better there)

> differences. Furthermore, if I only use gcc (just with 

for example, how would you implement a matrix multiplication.
using 2 or three loops and how many variables will be used, etc...
Even if the apparent outcome of the function is the same, you can
never know if at the crucial time it will fail because of some so minor
bug.
Just see the mars expedition. Metric systems vs Inches(I think) failed
the
multi million mission. is that insane or what?

> Actually, the reasons why I found C++ to be problematic did 

And others, I agree. though this issue rings a large bell.

> malloc()/free() and other stuff like that.

Its not that you can't its just that maybe C should stick to what it
does best.
It worked so far.

> > I don't know if its true but I was once told java was first 

Possibly an urban legend.

> Now if this isn't large-scale, I don't know what is.

I coded in pascal around the same area of code lines. this doesn't
mean it was easy. Why go mad and write 100 million lines
in chinese? again with the argument of reverse engineering, 
maintainance, etc... the usual.

> 
> > > > suitability is a concept that must be learnt as I am 
> sure you did
> > > > shlomi.
> > >
> > > Right.
> > >

Yes, it does. C is for kernels.

> "The Hitchhiker's Guide to the Galaxy". Then they renamed it 

possibly, I don't remember so you are probably right.

> understand the analogy, anyhow.

I have the complete collection in hard cover. (of course they didn't
distroy it in the end)

> Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
> Now with Pop-Up Blocker. Get it for free!
> http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/saFolB/TM

---

From: Shlomi Fish <[email-masked]>
Date: Fri, 17 Dec 2004 20:16:50 +0200

> - out of sheer curiosity. That's something - isn't it?

Omer, thanks for coming to my defence.

Regards,

	Shlomi Fish

---

From: omer mussaev <[email-masked]>
Date: Sat, 18 Dec 2004 07:22:19 -0800 (PST)

--- Shlomi Fish <[email-masked]> wrote:

> > > And on another note, I think Shlomi's
> perl-mongering
> > > is simply due to
> > > the fact that he can't bring himself to learn
> any
> > > other language
> > > deeply and finds rationalizations to avoid doing
> so.
> > > Sounds just like

It's pity.

I do indeed believe that Shlomi Fish has some learning
abilities; it saddens me to realize that he uses these
abilities to develop his nitpicking skills to the 
extreme instead of exploring new areas of knowledge, 
to set up almost all population of "hackers-il" 
against his (however irrelevant/biased/impractical)
views; to bring himself into situations in which he
has to rely on grownups to "defend" him.
 
It saddens me even more that these days almost all
discussions on Hackers-IL - a mailing list which was,
by choice and by design, devoted to "intelligent 
discussions on software" - evolve into egocentric 
discussions on "what programming language is the 
best". 

IMPCYFFO, this thread must be terminated.

P.S. 
Shlomi, you've claimed you do not read messages by Tal
anymore but rather deploy a modified "mulix' device" 
against him. How come you've read this message? 

=====
--
o.m.

__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com

---

From: omer mussaev <[email-masked]>
Date: Sat, 18 Dec 2004 08:06:03 -0800 (PST)

Different number show that Java is more _popular_:
http://www.tiobe.com/tpci.htm

Masses of developers and employers love Java (and C)

=====
--
o.m.

---

From: Shlomi Fish <[email-masked]>
Date: Sat, 18 Dec 2004 22:28:57 +0200

God, protect me from my lovers - I will protect myself from my haters on my 
own.

On Saturday 18 December 2004 17:22, omer mussaev wrote:
> > On Friday 17 December 2004 17:11, omer mussaev
> >
> > wrote:
> > > I do not think Shlomi lacks any ability in
> >
> > learning
> >
> > > languages. I recall he taught himself Lambda
> >
> > calculus
> >
> > > - out of sheer curiosity. That's something - isn't
> >
> > it?
> >
> >

First of all, let me say that a simple "You're welcome" would have been 
enough.

> abilities to develop his nitpicking skills to the

How would my _learning_ abilities help in develop my nitpicking skills? Is 
nitpicking a process of learning?

> views; 

I don't think my views are irrelavant, biased or impractical. I don't agree 
with some of the views of the other members of Hackers-IL and disagree with 
others. I do believe some people here agree with some of my views. Among the 
views I have expressed in the recent discussion are:

1. That Perl is a Team Language.

2. That Perl can scale to large codebases.

3. That C may be preferable to Java even if performance is not such a major 
issue.

4. That C++ can become very hard to follow.

5. I agreed with some views of Tal Rotbart regarding why some languages became 
popular.

6. That brevity and succintness are a virtue in a language.

None of these views are irrelevant, and impractical, and while I may be biased 
in expressing them, there are other people who share these opinions, and I 
also tried to give evidence for supporting them. And some people here share 
some of these views.

> to bring himself into situations in which he 

That is not the case. If you didn't reply to Tal, I would have simply been a 
bit offended, and would not have replied to Tal's message about it. (I know 
better than that). But, then you replied and protected me, so I felt obliged 
to thank you. But I can take care of myself pretty well.

> discussions on "what programming language is the

One, I'm pretty sure that most threads in Hackers-IL do not detoriate into "my 
programming language is the best" fights. Among the recent threads that did 
not:

1. Joel Spolsky on Software Pricing.

2. Making money from software (several discussions)

3. "Does Israel have the economic means to send people to space"

4. The meta-discussion of what is on-topic and off-topic here.

5. The "Open Source DB Programming" Recommendation.

6. Dereference by XOR?

7. RPM vs. DEB - which is better and why?

8. The Gmail Account thread.

9. The "My Cover Letter for Jobs" thread.

10. The various Wiki threads.

In fact only one thread in recent times did that and this is this one. 

Moreover, I believe that Tzahi and I discuss the issues pretty much 
intelligently. This is not a simple "C/Java/Perl sucks where C/Java/Perl 
rocks!". It's more than that, it discusses important issues. Besides that, 
language wars (if done intelligently) were never off-topic in Hackers-IL. In 
fact, one of the main incentives for creating Hackers-IL in the first place 
had been a language war in Linux-IL.

> IMPCYFFO, this thread must be terminated.

Well, I'd like to reply to Tzahi in my free time, and Tzahi may wish to 
respond as well. This thread is not off-topic or un-intelligent, and Tzahi 
and I seem to enjoy it, and others on this list may as well. If you are not 
interested in reading this thread, feel free to mark the messages as 
read/delete them/filter them. (that's what I do if there are threads in 
mailing list I'm a member of that don't interest me). But it's certainly a 
desirable thread.

> against him. How come you've read this message?

1. I deployed this device (i.e: set a mail filter to mark his messages as read 
and put them in an obscure mailbox), after I read his second message 
insulting message.

2. This filter filters on the From: header and is still not sophisticated 
enough to filter replies made to messages by Tal by other people. (nor do I 
want it to).

3. When I told OmerM about that, I did not intend it to become public 
knowledge.

Regards,

	Shlomi Fish

---

From: guy keren <[email-masked]>
Date: Sun, 19 Dec 2004 01:09:42 +0200 (IST)

shlomi - just shut up.

think perl is just a great tool? keep it as your secret weapon, then, and
leave us to our blissful ignorange.

i've had enough of this. hmmm... where is my black-list editor?

-- 
guy

"For world domination - press 1,
 or dial 0, and please hold, for the creator." -- nob o. dy

---

From: Tal Rotbart <[email-masked]>
Date: Mon, 20 Dec 2004 01:45:36 +0200

I second Guy's second to Omer's motion to shut this thread down :)

GRBT,

Tal

  Tal 'redbeard' Rotbart
  Software Wizard

  Snail mail:
          Klozner 7/2
          Jerusalem 93388
          ISRAEL

---

From: Shlomi Fish <[email-masked]>
Date: Fri, 24 Dec 2004 17:14:39 +0200

Hi!

I'm taking this discussion off-list. If anyone wishes to receive my reply to 
Tzahi (and sub-sequent replies), please E-mail me in private. After the 
discussion has faded away, I will put the future exchanged E-mails online 
somewhere for prosperity.

Regards,

	Shlomi Fish

---

From: "Nadav Har'El" <[email-masked]>
Date: Fri, 24 Dec 2004 20:07:53 +0200

> Over all, a case of an over-inflated ego try to avoid a cushion of needles.

I don't think this is the case. I personally know several dozen languages,
and used them for fun and profit, and Perl is definitely very high on my
preference list, and Java is lower. So Shlomi's opinion is not unique.

Why is my opinion thus?

Mainly because there are tasks for which Perl is best.
The wording of the above sententence is important. Perl is not best for
*all* tasks (no single language is), but it is best for many tasks - starting
from day-to-day file processing to more complex stuff (e.g., inflection of
Hebrew words in Hspell) it fits like a glove to the hand.

Java, on the other hand, usually fits look a boot to the hand :) I mean,
many of its supposed reasons for being used are mere illusions. Java isn't
much more portable than other languages, it doesn't really make code easier to
reuse (than in other modern languages), and worse of all (and this, in my
opinion, is the single thing that makes Java worse than C++) - it too often
generates code that is completely impossible to use, let alone reuse,
because of an uncontrollable memory appetite.
Moreover, Java is a very big language, perhaps even bigger than Perl (if you
don't use any CPAN stuff), so most people I know cannot program Java on paper,
and need a special editor (namely "eclipse") to help them edit. This is what
I think Shlomi referred to in his "Hello world" complaint.

-- 
Nadav Har'El                        |       Friday, Dec 24 2004, 13 Tevet 5765
[email-masked]             |-----------------------------------------
Phone +972-523-790466, ICQ 13349191 |Experience is what lets you recognize a
http://nadav.harel.org.il           |mistake when you make it again.

---

From: guy keren <[email-masked]>
Date: Sat, 25 Dec 2004 18:23:13 +0200 (IST)

On Fri, 24 Dec 2004, Nadav Har'El wrote:

> generates codethat is completely impossible to use, let alone reuse,

i only had the pleasure of programming in java for about half a year, but
i can say the following:

1. it is indeed faster to develope working code in java then in C or C++.
2. due to the nature of the language (mostly the dynamic class-loading
   eature), it has errupted an open-source environment that did things i
   did not saw done with C or C++. some of these things are now being
   ported back to C and C++. the very fact that the open-source community
   around java developed things that weren't done (or were done not as
   good as) for C/C++, suggests that there is someting to learn from java.

true, for someone like me, who'se used to having control on the
environment, it is hard to let go and give java the power - that's why i
originally ruled out any job offerings that had to do with java. however,
after the fact, i don't think it was a mistake using java.

do note that not everyone developes CPU-intensive applications. and in
those situations, it's easier to get the coding done in java, then in C++.

and i'm not talking about the scripted languages here - as much as i find
it even more fun to program with them - i don't want to touch large
code-bases created with them. and i'll ignore any attempts to argue about
this point with certain people....

> I think Shlomi referred to in his "Hello world" complaint.

judging a language by 'hello world' is naive. it shows how people tend to
do all of their "evaluations" of new tools - they try to write something
trivial, find the tool too complicated for something trivial, and conclude
its no good.

by the way, i looked at eclipse and at IntelliJ (a commercial product
that's quite stronger then eclipse) - and i resorted to coding in Java
with vi, and compiling the code with the command-line ant interface.
indeed, i needed to use an html reference in order to work with various
classes - but the language itself is not more complex then C++ - it's
the standard library that is very large. you'll have the same problem if
you work in C++ - for collections you need to remember STL, the same for
strings, for files you need the standard I/O, for threads you need a
3rd-party library, and so on. the fact that this is not considered part of
the language does not mean that the actualy material you need in order to
write _real_ code, isn't as large as in java. it just _looks_ smaller.

and i'll admit this - it was quite a relief not to need to use valgrind or
a similar tool in order to find where all my memory leaks to, or how i
managed to smear a pointer. it wasn't 100% the case, ofcorse - you can
still have segmentation faults in java (i saw one such nasty thing, which
was due to a bug in the java virtual machine implemnentation) - but still
a relief on day-to-day programming.

-- 
guy