Deutsch English Français Italiano |
<va2ro9$3gd7v$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: David Brown <david.brown@hesbynett.no> Newsgroups: comp.unix.shell,comp.unix.programmer,comp.lang.misc Subject: Re: Python (was Re: I did not inhale) Date: Tue, 20 Aug 2024 21:45:13 +0200 Organization: A noiseless patient Spider Lines: 96 Message-ID: <va2ro9$3gd7v$1@dont-email.me> References: <uu54la$3su5b$6@dont-email.me> <g52cnWOOwoz_son7nZ2dnZfqnPWdnZ2d@brightview.co.uk> <uvbe3m$2cun7$1@dont-email.me> <uvbfii$3mom0$1@news.xmission.com> <20240412094809.811@kylheku.com> <87il0mm94y.fsf@tudado.org> <way-20240413091747@ram.dialup.fu-berlin.de> <87il0lldf8.fsf@tudado.org> <choices-20240413123957@ram.dialup.fu-berlin.de> <v9lm2k$12qhv$1@dont-email.me> <v9m4gd$14scu$1@dont-email.me> <20240815182717.189@kylheku.com> <v9npls$1fjus$1@dont-email.me> <v9t204$2dofg$1@dont-email.me> <va28pi$3dldm$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 20 Aug 2024 21:45:14 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c216d3b6c994274355603312dc7ad25a"; logging-data="3683583"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18QAbTjSaNOfr5Obg02L29b8j57My8ygfQ=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:dVRr9lsKybsBXB8zQtdeRuXvXA4= In-Reply-To: <va28pi$3dldm$1@dont-email.me> Content-Language: en-GB Bytes: 6592 On 20/08/2024 16:21, Kalevi Kolttonen wrote: > In comp.unix.programmer David Brown <david.brown@hesbynett.no> wrote: >> On 16/08/2024 17:02, Kalevi Kolttonen wrote: >>> In comp.unix.programmer Kaz Kylheku <643-408-1753@kylheku.com> wrote: >>>> On 2024-08-15, Lawrence D'Oliveiro <ldo@nz.invalid> wrote: >>>>> On Thu, 15 Aug 2024 19:48:36 -0000 (UTC), Kalevi Kolttonen wrote: >>>>> >>>>>> The last I checked, the O'Reilly Python book is just absolutely >>>>>> *MASSIVE*. The language has a huge number of features now ... >>>>> >>>>> No, it hasn’t. The core language reference spec is only a small fraction >>>>> of, say, the Java language spec. >>>>> >>>>> It’s just that you can do so many things with Python. And that is down to >>>>> the huge variety of off-the-shelf addon libraries that build on that core >>>>> language spec. It has to be a strong, very solidly founded core in order >>>>> to be such a versatile basis for these addons, and it is. >>>> >>>> That's idiotic; you're saying that the standard library packages of >>>> Python are not part of Python, and do not contribute to its size. >>> >>> You seem to have a point. The core of C language is also small. I >>> guess they even said in the original K & R book that C is a small >>> language best described by a small book. >>> >>> But in order to do anything with C, you need to know the standard >>> libraries. They have grown bigger and bigger during all these >>> years. One could also well argue that to program on UNIX, you also >>> need to know all the POSIX libraries. >>> >> >> Absolute nonsense. >> >> In order to use a programming language for a given task, you need to >> know the basics of the language and libraries appropriate for the task. >> You most certainly do not need to know all about the language, or all >> about all the libraries provided as standard for the language or the >> host OS. > > I would not label it as "absolute nonsense". OK, let's say "pretty much nonsense" instead. > In order to program on UNIX, > you need to be familiar with the facilities that are available. I > know of a very smart man who ended up as a professor of physics who > programmed on Amiga back in the 1980s. Even though his PhD thesis > was something like 100-150 pages of strange-looking formulas, he said > he had problems with C on the Amiga. For some reason, he was unable > to remember what functions where provided as standard libraries, so > he always ended up writing his own functions instead of using libraries. > > To know Linux, you need Michal Kerrisk's book the Linux Programming > Interface. I have this book, but admittedly you are kind of right: > It is large and I do not know every single part of it, but I have > studied it a lot and I am familiar with the most important features. > You need to know what you need to know in order to handle the task in hand. If you are writing a program to convert json files to xml files, you need to know enough about the interface to open, read and write files, and to manipulate strings and other data structures in the language of your choice. If that is C, for example, you need to know about 5% of the standard library, at most. You need to know a /tiny/ fraction of POSIX. The same goes for any other language you choose to use, and any other program you choose to write. Unless you are working with huge pieces of software with connections to large parts of the system - say, a Windowing system - you don't need to know about more than a very small part of the OS interfaces. Unless you are writing a compiler, standard library, or other big development tool, you rarely need to know more than the basics of a programming language along with parts specific to your tasks. And for most modern software written to run on general-purpose OS's, people use languages where you haven't a hope in hell of understanding the entire language and its standard libraries, never mind the common frameworks and libraries that are often used. You have /zero/ chance of knowing all of the system APIs and common library interfaces of your OS - there are not nearly enough hours in the day for that. But you don't need any of that - you learn and use the language features and libraries that are appropriate for getting the job done. (And often that is all cross-platform - little or no POSIX-specific stuff in sight, even if you only run your code on Linux.) No, you do not need your particular favourite out of the thousand and one Linux programming books in order to program for Linux. You do not need /any/ book in order to write useful and successful code for Linux. Of course you need /some/ reference - and in the days before the internet was so easily available and so full of information, I went through a lot of programming books. Some were good, some less so, and some have become famous. But none of them were /necessary/ in any way.