From: thelifter
Subject: How to survive using a non Lisp language?
Date: 
Message-ID: <b295356a.0412011646.74c7dac4@posting.google.com>
Hello,

after I have discoverd Lisp/Scheme I have a big problem. I can't use
it at work, because people don't use Lisp here and it seems unlikely
they ever will. It hurts me every time I look at Java code and I
perceive it as a big waste of resources. Even worse, I have to program
in Java also and add to this waste, and there is nothing I can do
about it.

Sometimes you can do a bit about it, like the people who generate Java
code using Lisp/Scheme. But if several people work on the same
codebase you can only make limited use of that, because once you have
generated your Java code and other people have modified it, you can
throw away the Lisp sources, because they will be out of sync.

So how do I program in Java and not feel like a fool, or like I'm
wasting my time, brain or other precious resources? Any ideas? Do you
have any strategies?

One idea of mine is trying the mentality of Junkyard Wars: how to
build something out of junk. The limitation of an inferior language
becomes a challenge and you have to figure out how to build something
useful from it.

Any other strategies?

A permanent solution would be to find a Lisp job. The problem is I
love my job, first because it is only part-time(I use the rest of the
time for private projects, not all programming related) and second
because it is very near from home, and the pay is ok also. I think it
will be almost impossible to find an equivalent Lisp job.

Any additional feedback is welcomed.

TheLifter

From: ivant
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <1101974749.799363.81370@c13g2000cwb.googlegroups.com>
I'm in a similar situation.  What I'm trying right now is to use the
Greenspoon's tenth rule to my advantage.  Because the programs we are
writing aren't trivial we are bound to write half of Common Lisp.
Well, I'm trying to do this consciously: when I see a need for some
improvement I'm trying to see how I'd have done this in Lisp, then see
what's missing to do this in Java and try to implement it.  Well, not
*everything* :)

I still don't have to much experiense with this process, so I don't
know how well it'll work.

--
Ivan
From: William Bland
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <pan.2004.12.02.08.17.22.319854@abstractnonsense.com>
On Thu, 02 Dec 2004 00:05:49 -0800, ivant wrote:

> I'm in a similar situation.  What I'm trying right now is to use the
> Greenspoon's tenth rule to my advantage.  Because the programs we are
> writing aren't trivial we are bound to write half of Common Lisp.
> Well, I'm trying to do this consciously: when I see a need for some
> improvement I'm trying to see how I'd have done this in Lisp, then see
> what's missing to do this in Java and try to implement it.

Yes, that's exactly what I'm doing too.  It has the additional benefit
that I get to learn Lisp at the same time as doing my day job.

Cheers,
	Bill.
From: Julian Fondren
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <1101976058.426385.140360@c13g2000cwb.googlegroups.com>
thelifter:
> after I have discoverd Lisp/Scheme I have a big

I don't know why, but saying "I discovered Lisp/Scheme"
makes me immediately think that you mean "I discovered
Scheme" =)

I'd say you can deal with it by finding what neatness people
have already offered to your profane (ahem, a Forth term)
programming languages: with Java, you may find it helpful to
look at that compile-CLish-to-readable-Java system that
somebody on c.l.l has developed; with, say, Perl, you may
find it helpful to read that Higher Order Perl book that will
come out soon.  For Python, you can console yourself with
Peter Norvig's Lisp-Python writings.

And even if you find that you must use some extremely
profane language, such as C or Fortran, you may still amuse
yourself with leaning hard on your own lispy build|dev-system
From: Surendra Singhi
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <comoqh$83$1@news.asu.edu>
Julian Fondren wrote:
> 
> And even if you find that you must use some extremely
> profane language, such as C or Fortran, you may still amuse
> yourself with leaning hard on your own lispy build|dev-system
> 
"C" a profane language? I guess, your definition of profanity is 
different from mine.

-- 
Surendra Singhi

www.public.asu.edu/~sksinghi
From: Pascal Bourguignon
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <87hdn4disx.fsf@thalassa.informatimago.com>
"Julian Fondren" <·······@gmail.com> writes:

> thelifter:
> > after I have discoverd Lisp/Scheme I have a big
> 
> I don't know why, but saying "I discovered Lisp/Scheme"
> makes me immediately think that you mean "I discovered
> Scheme" =)
> 
> I'd say you can deal with it by finding what neatness people
> have already offered to your profane (ahem, a Forth term)
> programming languages: with Java, you may find it helpful to
> look at that compile-CLish-to-readable-Java system that
> somebody on c.l.l has developed; with, say, Perl, you may
> find it helpful to read that Higher Order Perl book that will
> come out soon.  For Python, you can console yourself with
> Peter Norvig's Lisp-Python writings.
> 
> And even if you find that you must use some extremely
> profane language, such as C or Fortran, you may still amuse
> yourself with leaning hard on your own lispy build|dev-system

It's easy to write a lisp --> some-lesser-language.
It'd be more useful to write a some-lesser-language --> lisp.

When having to work on a package in some-lesser-language, you'd have
the lisp system load it, analyse it, display it as if it was lisp,
Perhaps not 100% common-lisp, it could (use-package "C-IN-LISP") or
(use-package "JAVA-IN-LISP"), where you could edit it and with some
luck, keep it in lisp eventually.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
The world will now reboot; don't bother saving your artefacts.
From: Lars Brinkhoff
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <85k6s0eu0v.fsf@junk.nocrew.org>
"Julian Fondren" <·······@gmail.com> writes:
> thelifter:
> > after I have discoverd Lisp/Scheme I have a big
> I'd say you can deal with it by finding what neatness people
> have already offered to your profane (ahem, a Forth term)
> programming languages [... Java, Perl, Python, C, Fortran ...]

Since you seem to know Forth: What neatness, would you say, could a
lisper find in Forth?
From: velco
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <1101981151.457239.291520@f14g2000cwb.googlegroups.com>
thelifter wrote:
> One idea of mine is trying the mentality of Junkyard Wars: how to
> build something out of junk. The limitation of an inferior language
> becomes a challenge and you have to figure out how to build something
> useful from it.

Another idea is to throw away the concept of "inferior languages".
If the language bothers you, then *you* are inferior.

~velco
From: Alain Picard
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <87u0r5c7bx.fsf@memetrics.com>
"velco" <·····@fadata.bg> writes:

> Another idea is to throw away the concept of "inferior languages".
> If the language bothers you, then *you* are inferior.

So you program in INTERCAL?  Or you think one could write
PostgreSQL in Perl?

What it is nowadays with this bizarre notion some folks
have that _everything_ must be considered equal?  Sheesh.
From: Tim Bradshaw
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <1101987403.695383.133310@z14g2000cwz.googlegroups.com>
Alain Picard wrote:
> "velco" <·····@fadata.bg> writes:
>
> > Another idea is to throw away the concept of "inferior languages".
> > If the language bothers you, then *you* are inferior.
>
> So you program in INTERCAL?  Or you think one could write
> PostgreSQL in Perl?

I'm sure you could do the latter: what would stop you?  It might not
be as fast as it could be in C, but it might be faster than it *is*.
There's no reason perl programs have to be unreadable any more than
there is a reason that Lisp programmers have to emit a continuous
whining sound.

--tim
From: Alain Picard
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <87mzwvh9hl.fsf@memetrics.com>
"Tim Bradshaw" <··········@tfeb.org> writes:

> Alain Picard wrote:
>> "velco" <·····@fadata.bg> writes:
>>
>> > Another idea is to throw away the concept of "inferior languages".
>> > If the language bothers you, then *you* are inferior.
>>
>> So you program in INTERCAL?  Or you think one could write
>> PostgreSQL in Perl?
>
> I'm sure you could do the latter: what would stop you?  It might not
> be as fast as it could be in C, but it might be faster than it *is*.
> There's no reason perl programs have to be unreadable any more than
> there is a reason that Lisp programmers have to emit a continuous
> whining sound.

I simply do not believe that.  I base that belief on reading and writing
a lot of code in a lot of languages, including Perl.
From: Espen Vestre
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <kw7jo097yj.fsf@merced.netfonds.no>
Alain Picard <············@memetrics.com> writes:

> So you program in INTERCAL?  Or you think one could write
> PostgreSQL in Perl?

Real hackers program directly in hex code. Assembly is a girl thing.
-- 
  (espen)
From: Greg Menke
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <m3pt1szray.fsf@europa.pienet>
Espen Vestre <·····@*do-not-spam-me*.vestre.net> writes:

> Alain Picard <············@memetrics.com> writes:
> 
> > So you program in INTERCAL?  Or you think one could write
> > PostgreSQL in Perl?
> 
> Real hackers program directly in hex code. Assembly is a girl thing.
> -- 
>   (espen)

Once you get beyond an oscilloscope, its all gui crap.

;)

Gregm
From: Hannah Schroeter
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <cpplvv$gq3$1@c3po.use.schlund.de>
Hello!

Greg Menke  <··········@toadmail.com> wrote:
>[...]

>Once you get beyond an oscilloscope, its all gui crap.

>;)

An oscilloscope is quite graphical, compared to just lamps that are
on or off, and switches or cables with plugs for input ;-)

Kind regards,

Hannah.
From: Tim Bradshaw
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <1101984715.326059.127330@f14g2000cwb.googlegroups.com>
thelifter wrote:
> Hello,
>
> So how do I program in Java and not feel like a fool, or like I'm
> wasting my time, brain or other precious resources? Any ideas? Do you
> have any strategies?

Get over it.  If you spend your time thinking of the tools you must
use as `inferior' you'll end up as a classic Lisp/ITS whiner.
Everyone will hate you, you'll lose your job, your hair will fall out
and you will spend your life flaming away in some obscure newsgroup
inhabited by other whiners until eventually you bore yourself to death
and die.

People do cool stuff with the most primitive tools you can imagine
(and Java is not the most primitive tool).  Beethoven wrote fantastic
music without the aid of electricity and people play it on things made
out of wood, bone glue and animal guts, some of them hundreds of years
old.  Some of the best things he wrote *after he'd gone deaf*!

And if you want cool tools, Java has them.  Look at eclipse for
instance: a pretty comprehensive IDE with loads of cool stuff in
it. Look at aspectj.  Yes, I know, Lisp has, or could have, or once
had, better versions of all these things: so what?

Most of all: just use the tools you have to do interesting stuff,
instead of sitting around whining.

--tim
From: Tayssir John Gabbour
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <1101998756.374004.283040@c13g2000cwb.googlegroups.com>
Tim Bradshaw wrote:
> thelifter wrote:
> > Hello,
> >
> > So how do I program in Java and not feel like a fool, or like I'm
> > wasting my time, brain or other precious resources? Any ideas? Do
you
> > have any strategies?
>
> Get over it.  If you spend your time thinking of the tools you must
> use as `inferior' you'll end up as a classic Lisp/ITS whiner.
> Everyone will hate you, you'll lose your job, your hair will fall out
> and you will spend your life flaming away in some obscure newsgroup
> inhabited by other whiners until eventually you bore yourself to
death
> and die.

I think a positive way to do this is to read commentators like Noam
Chomsky (Understanding Power) and David Noble (Forces of Production).
For one thing, programmers are certainly not the only people using bad
tools for purely nontechnical reasons. And the high-tech industry
itself is a double-edged sword for humanity.

I think that if we believe that there's anything like "technological
darwinism" at work, we'll constantly have a crawling angry feeling
about being skilled users with marginal power to choose appropriate
tools for the task. It's hard to live with cognitive dissonance.


> Most of all: just use the tools you have to do interesting stuff,
> instead of sitting around whining.

In some old paper on Unix (it's in Interactive Programming
Environments, cowritten by Brian Kernighan), the Unix guys claimed that
Unix was able to spread insidiously because it was ported to orphaned
machines (where it ran reasonably well) and incrementally used as part
of the admin duties.


MfG,
Tayssir

--
Tyranny of the majority is another term for democracy.
Tragedy of the commons is averted by the crudest communication.
Decentralized democracy helps keep rights intact.
From: Jon Boone
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <m3sm6oen0q.fsf@spiritus.delamancha.org>
"Tayssir John Gabbour" <···········@yahoo.com> writes:

> the Unix guys claimed that Unix was able to spread insidiously
> because it was ported to orphaned machines (where it ran reasonably
> well) and incrementally used as part of the admin duties.

  The same way that perl was adopted.

--jon
From: David Magda
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <86brdcd3uv.fsf@number6.magda.ca>
Jon Boone <········@delamancha.org> writes:

> "Tayssir John Gabbour" <···········@yahoo.com> writes:
> 
> > the Unix guys claimed that Unix was able to spread insidiously
> > because it was ported to orphaned machines (where it ran reasonably
> > well) and incrementally used as part of the admin duties.
> 
>   The same way that perl was adopted.

And Linux in many places. Really, OSS in general.

-- 
David Magda <dmagda at ee.ryerson.ca>, http://www.magda.ca/
Because the innovator has for enemies all those who have done well under
the old conditions, and lukewarm defenders in those who may do well 
under the new. -- Niccolo Machiavelli, _The Prince_, Chapter VI
From: Kaz Kylheku
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <cf333042.0412021056.10512bbf@posting.google.com>
·········@gmx.net (thelifter) wrote in message news:<····························@posting.google.com>...
> So how do I program in Java and not feel like a fool, or like I'm
> wasting my time, brain or other precious resources? Any ideas? Do you
> have any strategies?

Yes, what you should do is keep a rational, big-picture perspective.
You have a better way of making a living than many people.

Some other people own the code that you are writing. They want it
written with such and such requirements. So what?

Suppose you could write it your way. What benefit would that bring
/you/ in the long run? One day, maybe not that long from now, you will
work somewhere else and no longer have access to the code you wrote
here, and probably won't think about it much.

If the only harm that comes from using the inferior language is that
you feel bad, you should get over that. Just don't invest too much of
your own /personal/ success into the bad technology.

When you have your own startup, and some of your own investment riding
on its future, do it your way then.

> A permanent solution would be to find a Lisp job. The problem is I
> love my job, first because it is only part-time(I use the rest of the
> time for private projects, not all programming related) and second

So you have these private projects, *some* of which are programming
related. You can use them as the outlet for what is missing in the
programming you do at work.
From: ·············@yahoo.com
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <1102017399.141399.201760@c13g2000cwb.googlegroups.com>
thelifter wrote:
> So how do I program in Java and not feel like a fool, or like I'm
> wasting my time, brain or other precious resources? Any ideas?

It's all crap.  Every software breaks your heart eventually,  even
lisp. Focus on delivering running,  tested features from the endless
swamp of crappy software we have to deal with every day.

> Do you
> have any strategies?

Do it test-first in little pieces and unit-test the hell out of
everything.  It has its appeal in any situation.

> Any additional feedback is welcomed.

Heh he.  I am gonna laugh.  You'll not get any clues from me :-)
Do it yourself.
From: Arie van Wingerden
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <cc16a$41af38b0$3e3ba7c9$29359@news1.zonnet.nl>
"thelifter" <·········@gmx.net> schreef in bericht
·································@posting.google.com...
> So how do I program in Java and not feel like a fool, or like I'm
> wasting my time, brain or other precious resources? Any ideas? Do you
> have any strategies?

Perhaps the most pragmatic way to cope is:
    1. write your own CL to Java source conversion tool (kind of a
"compiler")
    2. program in CL (so be more productive) and still produce the required
Java sources
One big bottleneck however is that, unless you yourself are the only
programmer, other people also maintain the (generated) Java sources, putting
them out of sync with the CL sources.
To solve that however, you could of course write an inverse tool, Java to CL
;-))

Have fun.

Met vriendelijke groet / with kind regards,
   Arie van Wingerden

"One of the most important and fascinating of all computer languages is Lisp
(standing for "List Processing"),
 which was invented by John McCarthy around the time Algol was invented.".
----- Douglas Hofstadter, Godel, Escher, Bach -----
From: Jeff Sandys
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <41AF498F.2F7ABC02@juno.com>
A friend of mine works in a java shop and he uses Jython,
writes all his code with python syntax and delivers jars.
No one has caught on that he is programming in python, 
since he produces more than anyone elso, no one cares.

Isn't there a version of lisp or scheme written in java?
As long as you deliver working jars, do they care about 
the source code?

Thanks,
Jeff Sandys

thelifter wrote:
> 
> Hello,
> 
...
> 
> So how do I program in Java and not feel like a fool, or like I'm
> wasting my time, brain or other precious resources? Any ideas? Do you
> have any strategies?
>
From: Will Hartung
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <3193poF395udaU1@individual.net>
"Jeff Sandys" <·······@juno.com> wrote in message
······················@juno.com...
> A friend of mine works in a java shop and he uses Jython,
> writes all his code with python syntax and delivers jars.
> No one has caught on that he is programming in python,
> since he produces more than anyone elso, no one cares.

That's funny. The detail here is that "they care", they just don't know it
yet. They'll care when you friend moves on somewhere else, or gets hit by a
bus, or goes on vacation and a bug turns up in "his jar file". Believe me,
they DO care. What you have here is a ticking time bomb. If he's that
productive, then he should bring everyone more up to speed so they can all
be more productive. If management won't support that, imagine how they'll
feel when a chunk of their app is not maintainable by the rest of the team.

> Isn't there a version of lisp or scheme written in java?
> As long as you deliver working jars, do they care about
> the source code?

Clients may not care about source code, but the folks responsible for the
development and, most importantly, the maintenance most certainly do care
about source code.

As with any form of abstraction, you be "program to the interface". If your
interface to the project is mainstream Java source code, then folks probably
don't care whether you used Notepad, Emacs, cat > File.java, or
(compile-to-java "myproject.lisp").

But if you're delivering one thing, jar files, and they're expecting the
other, Java source code, but they see jar file and ASSUME that there's Java
source code behind it, then someone is in for a VERY rude shock when they
look behind the curtain and find that assumption voided.

Regards,

Will Hartung
(·····@msoft.com)
From: Pascal Bourguignon
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <87is7kb30d.fsf@thalassa.informatimago.com>
"Will Hartung" <·····@msoft.com> writes:

> "Jeff Sandys" <·······@juno.com> wrote in message
> ······················@juno.com...
> > A friend of mine works in a java shop and he uses Jython,
> > writes all his code with python syntax and delivers jars.
> > No one has caught on that he is programming in python,
> > since he produces more than anyone elso, no one cares.
> 
> That's funny. The detail here is that "they care", they just don't know it
> yet. They'll care when you friend moves on somewhere else, or gets hit by a
> bus, or goes on vacation and a bug turns up in "his jar file". Believe me,
> they DO care. What you have here is a ticking time bomb. If he's that
> productive, then he should bring everyone more up to speed so they can all
> be more productive. If management won't support that, imagine how they'll
> feel when a chunk of their app is not maintainable by the rest of the team.
> [...]
> But if you're delivering one thing, jar files, and they're expecting the
> other, Java source code, but they see jar file and ASSUME that there's Java
> source code behind it, then someone is in for a VERY rude shock when they
> look behind the curtain and find that assumption voided.

Sssshhh!  He's trying to make them believe python _is_ java.  The
proof: jython generates .jar!

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
The world will now reboot; don't bother saving your artefacts.
From: William Bland
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <pan.2004.12.02.18.17.26.526695@abstractnonsense.com>
On Thu, 02 Dec 2004 16:57:51 +0000, Jeff Sandys wrote:

> A friend of mine works in a java shop and he uses Jython,
> writes all his code with python syntax and delivers jars.
> No one has caught on that he is programming in python, 
> since he produces more than anyone elso, no one cares.

And how do they do code reviews?  They *should* care.

Cheers,
	Bill.
From: Wade Humeniuk
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <HKIrd.263515$9b.13549@edtnps84>
thelifter wrote:

> Hello,
> 
> after I have discoverd Lisp/Scheme I have a big problem. I can't use
> it at work, because people don't use Lisp here and it seems unlikely
> they ever will. It hurts me every time I look at Java code and I
> perceive it as a big waste of resources. Even worse, I have to program
> in Java also and add to this waste, and there is nothing I can do
> about it.
> 

One suggestion is to write your module and unit testing tools in Lisp.
Use http://jfli.sourceforge.net/ .  Try it out and when successful show
some of your "automated" regression testing.  Take things from there.
One could hope that you might work one's way into being in the testing group,
and using Lisp to test the Java code.  There is not enough attention paid
to testing in most development shops, one could always use some
automated test suites (which are fairly intelligent).

I took this approach once, and what do you know!, people stared to adapt
to reading the Lisp (in this case Scheme) code.  The boss was happy too,
as he was stickler for thorough testing.

Wade
From: Fernando
Subject: Re: How to survive using a non Lisp language?
Date: 
Message-ID: <718ur0hofsfopnlniotni8ej1bahsvbkuk@4ax.com>
On 1 Dec 2004 16:46:31 -0800, ·········@gmx.net (thelifter) wrote:

>Hello,
>
>after I have discoverd Lisp/Scheme I have a big problem. I can't use
>it at work, because people don't use Lisp here and it seems unlikely
>they ever will. It hurts me every time I look at Java code and I
>perceive it as a big waste of resources. Even worse, I have to program
>in Java also and add to this waste, and there is nothing I can do
>about it.

It could be worse, I have to program in VB.