I sure hope Steve does not work for me. If he does and I can find out 
who he is, I will fire him immediately.

Let me explain.

Writing software is about solving problems. It is not, at its core, 
about originality or creativity. If one needs to be original or creative 
to solve the problem, fine. If not, the doing so it a waste of time and 
money.  If an individual who is consuming my financial resources to 
solve problems believes it is part of their task to be original when not 
absolutely necessary, they are wasting my money. 

One of the reasons science, engineering, and society in general 
progresses is because we can use tools effectively, and create tools of 
greater efficiency and complexity.  Calling the use of J "cheating" is 
analogous to a woodworker claiming the use of power tools is 
"cheating.'  Both claims are complete nonsense if the goals is to solve 
a problem - be it a calculation or modeling problem in computer 
languages, or the creation of a useful or artistic creation in wood. 
Note I specifically say that an artistic creation can without "cheating" 
use a tool. Artists create art every day without finding their own 
pigments, grinding them into powder, mixing them with a carrier, and 
thus creating their own paints. I have never heard that considered 
artistic "cheating."

J is, simply, a better tool for solving many classes of problems. Its 
use cannot be considered cheating under any (non-arbitrary) set of rules 
or circumstances. And, even arbitrary rules against using some tools 
should be challenged at every opportunity.  I am old enough to have gone 
to college in the days when slide rules were common, and engineering 
capable calculators a new thing.  It always struck me as a particularly 
Luddite attitude when an engineering professor would forbid the use of 
calculators (and some even the use of slide rules) when solving problems 
which required numerical answers.

Using J to solve a problem is not cheating - it is the wise use of a 
sophisticated tool.  Using C/C++ to write original code when a better 
tool is available is cheating - your employer.

-Tom


Ian Gorse wrote:
> Hello list,
>
> A few weeks ago I had a conversation with a programmer friend of mine
> about solving problems. I tend to use J alot now (but do have
> experience in several imperative programming languages) , and my
> friend is a c/c++ coder all the way.
>
> I stated to him that I had just solved another Project Euler, by using
> J and pasted the J code for him to see, even though I know for a fact
> he wont read the - in his own words - "gibberish" text that was
> presented infront of him. To my suprise, he said that J was "cheating"
>
> I obviously defended his statement and asked how could J be cheating,
> and his response was that J was using pre-made algorithms.
>
> So it is true that J has some brilliant pre-built verbs, such as  1 p:
> y   and   q: y   which greatly helps with some of the problems I tend
> to solve, but I still wouldn't class it as "cheating"
>
> My counter argument was that when he writes his own prime check
> function, he will re-use that same code in all his projects,
> essentially using a pre-built algorithm.
> Here is a snippet of our conversation
>
> Ian:    I just solved 187
> Steve:  in J?
> Ian:    yea
> Steve:  J is cheating in my opinion
> Steve:  because your using pre-made algorithms
> Ian:    when you write a prime class, do you re-use it everytime?
> Steve:  when *I* write a prime-class
> Steve:  not when J writes the class for you
> Ian:    no difference, I could write one up if I wanted too, like I have
> many of times. But there is no point in importing mine when its an
> exact copy of the existing one
> Steve:  that's called stealing, lol
> Ian:    you could say the same as sqrt
> Ian:    you use a pre-made sqrt function
> Ian:    or you could write your own
> Ian:    but you wont
> Steve:  I have in the past
> Ian:    yes I know, but I bet you don't use it
> Ian:    for example, if I want to sqrt in J, i would type %: 50.... you
> would type math.sqrt(50); or whatever
> Ian:    we both using pre-existing functions
>
> By his definition of "cheating", everybody will "cheat" unless they
> completely write their code in assembly, where there is no such thing
> as sqrt, is_prime etc (that I know of anyway)
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>   

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to