The below comments
about Julia’s slowness were my thoughts on this day, however see the
above date 09/22 for a likely reason…SQLite! This probably
nullifies much of what I say here.
Well I have to be
honest. I pretty much finished my rewrite of my Python program in
Julia. It is pretty much “functionally” the same, and it is
noticabably slower. That wasn’t expected from a language
that’s almost as fast as C. There also is a very noticeable
pause at the start of the program which may be due to SQLite
connections. Being that I basically retrofitted Python code into the
Julia program…perhaps that is the, or a problem. The SQLite
functionality is probably being handled 2nd hand because when I
installed the SQLite module, it required Python. Also this was mostly
text processing which is NOT Julia’s claim to fame. I’m sure it
would be faster if I wrote it after working in Julia for a few
months. However I also kind of expected with the supposed great
speed, that it would make up to some extent, my lack of Julia
skills.
The Python took ~1hr 15min to generate one million
records. And I was going to time the Julia program in the same
sinerio. I did a test of both programs on 10,000 records and as I
noticed the Julia program was visibly noticeably slower. I output a
counter every 500 records. So there is really no need to test on a
larger number because it would only further prove the point.
Also
I should point out that I seemed to hangup a few times on the
understanding of the use of globals AND the try/catch/finalize
statements. There are still questions in my mind of why at times it
seemed like I needed to define a variable outside a loop with a
global and sometimes not. Also, at least in my mind I had two
try/catch/finalize setup in basically the same way and I decided I
was using it wrong because one wasn’t working and I needed to use the
catch portion, which caused it to behave as I expected. However
the other try/catch/finalize block, which to my mind did the same
thing…was working without the catch. Is this my not understanding
the Julia’s rules? Probably! Or is there a Julia problem. I say this
because I filed 2 bug reports (“segmentation fault” and
“Illegal instruction”) that caused Julia to crash and dump,
and the try/catch/finalize block contained the code in both cases
that caused the error. You know I’m a beginner and I’m more likely to
do something terribly wrong that an experienced programmer wouldn’t.
It’s probably hard for a developer to code really bad as opposed to a
newbe. Kind of like asking a great singer to sing bad.
However
this is version 1 AND I think I could jump back into the code after
many months and understand it as opposed to remembering all of
Pythons quirks. It sounds like I’m making excuses for Julia, and…I
guess I am. I still really like it, because in my case it works more
like I think than Python which I also really like. Despite all this I
think I will probably choose Julia for many future projects, because
it will get better over time AND I will become a better Julia
programmer too.