From: Linus Torvalds <torvalds@linux-foundation.org>
To: Dmitry Kakurin <dmitry.kakurin@gmail.com>
Cc: Matthieu Moy <Matthieu.Moy@imag.fr>, Git <git@vger.kernel.org>
Subject: Re: [RFC] Convert builin-mailinfo.c to use The Better String Library.
Date: Fri, 7 Sep 2007 02:27:46 +0100 (BST) [thread overview]
Message-ID: <alpine.LFD.0.999.0709070212300.5626@evo.linux-foundation.org> (raw)
In-Reply-To: <a1bbc6950709061808q85cf75co75f2331dc2bdbcbe@mail.gmail.com>
On Thu, 6 Sep 2007, Dmitry Kakurin wrote:
>
> As it is right now, it's too hard to see the high-level logic thru
> this endless-busy-work of micro-managing strings and memory.
Total BS. The string/memory management is not at all relevant. Look at the
code (I bet you didn't). This isn't the important, or complex part.
> IMHO Git has a brilliant high-level design (object database, using
> hashes, simple and accessible storage for data and metadata). Kudos to
> you!
> The implementation: a mixture of C and shell scripts, command line
> interface that has evolved bottom-up is so-so.
The only really important part is the *design*. The fact that some of it
is in a "prototyping language" is exactly because it wasn't the core
parts, and it's slowly getting replaced. C++ would in *no* way have been
able to replace the shell scripts or perl parts.
And C++ would in no way have made the truly core parts better.
> > and comparing C to assembler just shows that you don't have a friggin idea
> > about what you're talking about.
>
> I don't see myself comparing assembler to C anywhere.
You made a very clear "assembler -> C -> C++/C#" progression nin your
life, comparing my staying with C as a "dinosaur", as if it was some
inescapable evolution towards a better/more modern language.
With zero basis for it, since in many ways C is much superior to C++ (and
even more so C#) in both its portability and in its availability of
interfaces and low-level support.
> I was pointing out that I've been programming in different languages
> (many more actually) and observed bad developers writing bad code in
> all of them. So this quality "bad developer" is actually
> language-agnostic :-).
You can write bad code in any language. However, some languages, and
especially some *mental* baggages that go with them are bad.
The very fact that you come in as a newbie, point to some absolutely
*trivial* patches, and use that as an argument for a language that the
original author doesn't like, is a sign of you being a person who should
be disabused on any idiotic notions as soon as possible.
The things that actually *matter* for core git code is things like writing
your own object allocator to make the footprint be as small as possible in
order to be able to keep track of object flags for a million objects
efficiently. It's writing a parser for the tree objects that is basically
fairly optimal, because there *is* no abstraction. Absolutely all of it is
at the raw memory byte level.
Can those kinds of things be written in other languages than C? Sure. But
they can *not* be written by people who think the "high-level"
capabilities of C++ string handling somehow matter.
The fact is, that is *exactly* the kinds of things that C excels at. Not
just as a language, but as a required *mentality*. One of the great
strengths of C is that it doesn't make you think of your program as
anything high-level. It's what makes you apparently prefer other
languages, but the thing is, from a git standpoint, "high level" is
exactly the wrong thing.
Linus
next prev parent reply other threads:[~2007-09-07 1:28 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-04 20:50 [RFC] Convert builin-mailinfo.c to use The Better String Library Lukas Sandström
2007-09-04 21:38 ` Alex Riesen
2007-09-04 23:01 ` Pierre Habouzit
2007-09-05 14:54 ` Kristian Høgsberg
2007-09-05 17:29 ` Matthieu Moy
2007-09-06 2:30 ` Miles Bader
2007-09-06 4:48 ` Dmitry Kakurin
2007-09-06 4:59 ` Shawn O. Pearce
2007-09-06 9:12 ` Andreas Ericsson
2007-09-06 9:35 ` Junio C Hamano
2007-09-06 10:21 ` Andreas Ericsson
2007-09-06 9:52 ` David Kastrup
2007-09-06 5:03 ` Miles Bader
2007-09-06 12:08 ` Johannes Schindelin
2007-09-06 17:50 ` Linus Torvalds
2007-09-07 0:21 ` Dmitry Kakurin
2007-09-07 0:38 ` Linus Torvalds
2007-09-07 1:08 ` Dmitry Kakurin
2007-09-07 1:27 ` Linus Torvalds [this message]
2007-09-07 3:09 ` Dmitry Kakurin
2007-09-07 5:48 ` David Symonds
2007-09-07 6:15 ` Theodore Tso
2007-09-20 14:06 ` Steven Burns
2007-09-20 14:56 ` Andreas Ericsson
2007-09-07 6:31 ` Andreas Ericsson
2007-09-07 22:17 ` Dmitry Kakurin
2007-09-07 22:28 ` David Kastrup
2007-09-08 0:37 ` Dmitry Kakurin
2007-09-08 6:25 ` David Kastrup
2007-09-09 0:29 ` Andreas Ericsson
2007-09-07 6:52 ` David Kastrup
2007-09-07 10:28 ` Johannes Schindelin
2007-09-07 10:26 ` Johannes Schindelin
2007-09-07 6:50 ` David Kastrup
2007-09-07 1:12 ` Linus Torvalds
2007-09-07 1:40 ` alan
2007-09-07 5:09 ` Walter Bright
2007-09-07 7:40 ` David Kastrup
2007-09-07 8:15 ` Walter Bright
2007-09-07 8:26 ` David Kastrup
2007-09-07 9:14 ` Walter Bright
2007-09-07 9:31 ` David Kastrup
2007-09-07 20:22 ` Walter Bright
2007-09-07 20:27 ` David Kastrup
2007-09-07 23:16 ` Walter Bright
2007-09-08 23:50 ` Andreas Ericsson
2007-09-09 0:37 ` Pierre Habouzit
2007-09-09 1:36 ` Andreas Ericsson
2007-09-07 11:36 ` Wincent Colaiuta
2007-09-07 9:41 ` Pierre Habouzit
2007-09-07 19:03 ` Walter Bright
2007-09-07 19:31 ` David Kastrup
2007-09-07 20:49 ` Walter Bright
2007-09-07 19:41 ` Pierre Habouzit
2007-09-07 19:51 ` David Kastrup
2007-09-07 19:59 ` Pierre Habouzit
2007-09-07 20:40 ` Walter Bright
2007-09-07 20:56 ` Pierre Habouzit
2007-09-07 22:54 ` Walter Bright
2007-09-08 0:56 ` John 'Z-Bo' Zabroski
2007-09-08 6:36 ` David Kastrup
2007-09-19 19:56 ` Steven Burns
2007-09-07 3:06 ` Wincent Colaiuta
2007-09-07 4:06 ` Paul Wankadia
2007-09-07 4:30 ` Nicolas Pitre
2007-09-07 9:19 ` Wincent Colaiuta
2007-09-07 6:25 ` Andreas Ericsson
2007-09-07 10:56 ` Johannes Schindelin
2007-09-07 11:54 ` Andreas Ericsson
2007-09-07 12:33 ` Wincent Colaiuta
2007-09-07 12:55 ` Karl Hasselström
2007-09-07 13:58 ` Andreas Ericsson
2007-09-07 14:13 ` Wincent Colaiuta
2007-09-09 0:09 ` Andreas Ericsson
2007-09-07 16:09 ` David Kastrup
2007-09-07 11:30 ` Wincent Colaiuta
2007-09-07 8:36 ` Walter Bright
2007-09-07 9:41 ` Andreas Ericsson
2007-09-07 19:23 ` Walter Bright
2007-09-07 19:40 ` David Kastrup
2007-09-09 0:25 ` Andreas Ericsson
2009-09-17 16:23 ` Bernd Jendrissek
2007-09-07 11:52 ` Wincent Colaiuta
2007-09-07 19:25 ` Walter Bright
2007-09-22 16:52 ` Steven Burns
2007-09-07 6:47 ` David Kastrup
2007-09-07 7:41 ` Andy Parkins
2007-09-07 8:08 ` David Kastrup
2007-09-07 10:21 ` Johannes Schindelin
2007-09-08 0:32 ` Dmitry Kakurin
2007-09-08 6:24 ` David Kastrup
2007-09-08 23:25 ` Alex Riesen
2007-09-24 13:41 ` figo
2007-09-24 13:57 ` David Kastrup
2007-09-25 19:19 ` Steven Burns
2007-09-25 19:55 ` David Kastrup
2012-05-22 18:30 ` Syed M Raihan
2010-06-10 19:12 ` Ian Molton
2010-06-11 12:23 ` Jakub Narebski
2010-06-11 13:33 ` Dario Rodriguez
2007-09-05 15:27 ` Kristian Høgsberg
2007-09-07 10:47 ` Lukas Sandström
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LFD.0.999.0709070212300.5626@evo.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=Matthieu.Moy@imag.fr \
--cc=dmitry.kakurin@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).