octave-maintainers
[Top][All Lists]
Advanced

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

Re: Requesting an Octave mentor


From: Jaroslav Hajek
Subject: Re: Requesting an Octave mentor
Date: Fri, 14 Aug 2009 17:33:03 +0200

On Fri, Aug 14, 2009 at 5:11 PM, Jordi Gutiérrez
Hermos<address@hidden> wrote:
> I hope it's ok if I respond to several people at once.
>
> 2009/8/13 Ben Abbott <address@hidden>:
>> I'll be of little help understanding the c++ sources, but regarding
>> something to work on, the listeners for the backend would be nice to
>> have. In particular having one to convert between the various units
>> would be great!
>>
>> If you're not familiar with what I'm referring to, I can explain.
>
> Alright, this sounds interesting. I really want Octave's plotting to
> shine. This is likely to attract more people to the project. Yes,
> please, I'd like more explanations. I'll contact you privately
> momentarily to see if you have an IM account I can use for chatting
> about this.
>
> Or if IRC is convenient, maybe #octave in Freenode?
>
> 2009/8/13 Robert T. Short <address@hidden>:
>> In my case it is a case of the blind leading the blind, but I would be happy
>> to give this a try myself. Nothing teaches like teaching!
>
> I agree. Perhaps you'd be more comfortable thinking of yourself as my
> study buddy?
>
>> Also, if there is anything I can do to help if you like the stuff Ben is
>> looking at, that would be fine.
>
> Let's do that. Let's work together with Ben.
>
> 2009/8/14 John W. Eaton <address@hidden>:
>> On 14-Aug-2009, Jaroslav Hajek wrote:
>>
>> | That's easy - the whole lot of Octave sources is a horrible mess of
>> | ill-designed classes, random hacks, gotchas and incomprehensible
>> | blocks of unreadable code that you just hope are never actually
>> | executed.
>>
>> Thanks.
>
> I consider it a well-established theorem of software development that
> everyone's code sucks. Jaroslav's, mine, yours, everyone's. ;-) Proof:
> either you stick to a rigid design methodology or you adapt loose and
> flexible coding standard. In the former case, you will eventually come
> upon a situation where your original design isn't flexible enough, in
> which case it sucks, and in the latter situation your design is a
> horrible mess of ad-hoc hacks, which also sucks. QED.
>

Well, I was just trying to be funny, I really didn't mean that any
part of Octave sources "sucks". There's a lot of code duplication; but
not trivial to eliminate; there's also much more macro usage than
today's CS theorists could take, but as John explained multiple times;
Octave started 10 years before the C++ standard and template support
in compilers was more like a non-standard feature. Even now, 10yrs
after the C++ standard (and new one coming), templates are still
tricky - I have already discovered 3 compiler bugs when doing template
work. Moreover, when heavy macro usage is replaced by heavy templating
(like oct-inttypes.h, for example), you can't really say that the
result is much more comprehensible. Of course, there are other
advantages (lack of backslashes, debugging), so in general templates
are better, but not always (which is what I thought in the past).
Combining macros and templates cleverly is particularly powerful.

I daresay that studying and contributing to Octave sources has been
one of the most valuable and enjoyable learning experiences in my
life, and I hope I'd be able to carry it on at least a while. I
started contributing to Octave having essentially zero practical C++
experience, and now I feel almost like an expert. Apart from that, I
also learned a lot more about numerical mathematics and programming
techniques in general, as well as to use autoconf, mercurial, etc.


-- 
RNDr. Jaroslav Hajek
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz



reply via email to

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