DragonFly kernel List (threaded) for 2004-12
Education [Re: Description of the Journaling topology]
On Tue, Dec 28, 2004 at 01:03:20PM -0800, Matthew Dillon wrote:
> It's a good question. I think it comes down to how most programmers
> have been educated over the years. Its funny, but whenever I build
It's not a function of education, it's more about a personal desire to do
something with the perspective of really thinking out what a problem is
and how to properly think through it, which reduce or expand on the problem
Generally, you get two categories of programmers from my experience. One
that's conceptually driven but not experience with the details, top-down,
while the other is typically strong on details but has a piecewise
understanding. You need both to be functional in this way. My experience
is that it's not a function necessarily of the education system, but more
about personality and how one aligns align him/herself to understanding a
problem. You're one of the few folks that has both.
Some folks like to unify things into a clean, simple higher order algebra,
which is largely what you're doing with refactoring and reorganizing the
code so that it's expressivity is simple, while others are more comfortable
with preexisting concepts and don't want to rattle things. IMO, you have
to be attracted to that thinking style in the first place, value it and the
develop that over time. I find that I develop some of this when I was in my
early 20s, but it could have been triggered by things in my teen years without
me fully being aware of it. College really changed me and gave me the tools
that allow me to see things more along the lines of this way. But I still
have to say that it's largely about personality more so than college with
college being the raw material for young minds.
Also, you're much more cross disiplinary than most folks, so that's going
to give you a different perspective on this that the typical domain specific
person. The creative aspect is unifying this all so that it makes sense in
in simplified constructs as you're doing/mentioning now.
> something new the first question I usually get is "what paper is your
> work based on?". I get it every time, without fail. And every time,
> without fail, I find myself trying to explain to the questioner that
> I generally do not bother to *READ* research papers... that I build
> systems from scratch based on one or two sentence's worth of concept.
> If I really want to throw someone for a loop I ask him whether he'd
> rather be the guy inventing the algorithm and writing the paper, or
> the guy implementing it from the paper. It's a question that forces
> the questioner to actually think with his noggin.
> I think that is really the crux of the problem... programmers have been
> taught to build things from templates rather then build things from
> concepts... and THAT is primarily why software is still stuck in the
It's really limited to kernel programmers typically, not other folks that are
more aggresive with design in different areas of software development, app folks,
game engine folks, etc...
> dark ages insofar as I am concerned. True innovation requires having
> lightbulbs go off above your head all the time, and you don't get that
> from reading papers. Another amusing anecdote... every time I complained
> about something in FreeBSD-5 or 6 the universal answer I got was that
> 'oh, well, Solaris did it this way' or 'there was a paper about this'
> or a myrid of other 'someone else wrote it down so it must be good'
> excuses. Not once did I ever get any other answer. Pretty sad, I think,
> and also sadly not unique to FreeBSD. It's a problem with mindset, and
> mindset is a problem with our educational system (the entire world's).
You're over reacting the world is not evil. Yes, it's is a FreeBSD specific
problem, really a problem with the cultural aspect of being undereducated
(meaning not valuing a broad education) and aware of these issues. They'll take
anything that is gloriously successful in someway, rub themselves all over
it as if it was theirs and then twist some kind of half truth to fix their
Other communities work quite differently which is why I'm doing Linux now
instead of BSD development. The failure of the FreeBSD community to deal with
large scale software development issues, contention reduction by restructuring
and empirical guidance, has pretty much damn any effort for getting hard RT
pervasive in that kernel which is what I'm primarily interest in now. In
contrast, the current Linux RT work is piggy backing on their excellent SMP
performance and locking structures that were empirically measured and reduced
accordingly. FreeBSD has misidentified the problem, focused on locking
primitives instead of actual contention reduction and abuse priority
inheritance to make up for the lack of proper focus. They are uniquely creating
their own brand of insanity and you shouldn't be jaded by it and think
it's the entire world. It's very specific to them.
Happy New Year :)