Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Achim Domma Newsgroups: de.comp.lang.python Subject: Re: [Python-de] Source code generation is a stupid idea Date: Mon, 16 Oct 2017 11:05:56 +0200 Lines: 37 Message-ID: References: <2c85cd93-5e6e-522d-9159-d16a514be956@thomas-guettler.de> <50254bb7-d59b-c3c8-398b-4d2b92fbc3e2@procoders.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de edCOWTbXlRVi0iyPUk+BFg0zKeADxSWMB4TQyrF8Ta8g== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org Authentication-Results: webhosting01.marketing-thom.de; spf=pass (sender IP is 80.187.100.109) smtp.mailfrom=domma@procoders.net smtp.helo=[192.168.43.129] Received-SPF: pass (webhosting01.marketing-thom.de: connection is authenticated) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 In-Reply-To: Content-Language: en-US X-PPP-Message-ID: <20171016090559.23958.79923@webhosting01.marketing-thom.de> X-PPP-Vhost: procoders.net X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <50254bb7-d59b-c3c8-398b-4d2b92fbc3e2@procoders.net> X-Mailman-Original-References: <2c85cd93-5e6e-522d-9159-d16a514be956@thomas-guettler.de> Xref: csiph.com de.comp.lang.python:4969 On Monday, 16 October, 2017 05:30 AM, Hermann Riemann wrote: > Am 13.10.2017 um 11:50 schrieb Thomas Güttler: > >> ich habe den Abschnitt "Source code generation is a stupid idea" >> überarbeitet: > >> https://github.com/guettli/programming-guidelines/blob/master/README.rst#source-code-generation-is-a-stupid-idea > > Wenn Du > http://www.99-bottles-of-beer.net/language-common-lisp-114.html > automatisch nach Python konvertieren würdest, > könntest Du das Programm anschießend vielleicht > auch verstehen. Ich habe den Abschnitt über Code Generation gelesen, den Rest des Dokuments überflogen und würde in mehr Punkten widersprechen als zustimmen. Bezogen auf Code Generation finde ich obigen Verweis auf Lisp sehr schön, weil dadurch folgende Behauptung widerlegt wird: "Don't confuse data and code. Imagine you have a source code generator which takes DATA as input and creates SOURCE as output." Ausführbarer Code besteht einfach nur aus Daten. Es ist quasi Teil der Idee von Lisp, daß ein Programm "nur" eine Liste von Anweisungen ist. Ergo gibt's die Unterscheidung zwischen Code und Daten in der Form nicht wirklich. Wo man nun die Grenze zwischen "(ausführbarem) Code" und "Sourcecode" zieht, ist 'ne andere Diskussion, was aber nichts an meiner Meinung ändert: Mit Code Generation kann man sich spektakulär selbst ins Knie schießen. Man sollte wissen was man tut. Dadurch wird das Werkzeug als solches nicht schlechter. Würde ich in einem Umfeld programmieren wollen, in dem man mich aller gefährlichen Optionen (und damit Möglichkeiten) beraubt, würde ich Java programmieren. ;-) Grüße, Achim