Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #55813
| Path | csiph.com!eeepc.pasdenom.info!news.pasdenom.info!news.dougwise.org!aioe.org!feeder.news-service.com!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <g.rodola@gmail.com> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.000 |
| X-Spam-Evidence | '*H*': 1.00; '*S*': 0.00; 'folks': 0.03; 'handled': 0.03; 'gui': 0.04; 'idle': 0.05; 'instance': 0.05; 'fashion.': 0.07; 'recipe': 0.07; 'sadly': 0.07; 'tab': 0.07; 'python': 0.08; 'along.': 0.09; 'convention.': 0.09; 'handlers': 0.09; 'manipulate': 0.09; 'sequential': 0.09; 'stolen': 0.09; 'sub': 0.09; 'underlying': 0.09; 'usage.': 0.09; 'read.': 0.13; 'ignore': 0.15; 'url:code': 0.15; '"programming': 0.16; '__init__': 0.16; 'chaos': 0.16; 'combined.': 0.16; 'declaring': 0.16; 'devoid': 0.16; "guido's": 0.16; 'patterns,': 0.16; 'pep8': 0.16; 'posts:': 0.16; 'return.': 0.16; 'row': 0.16; 'sink': 0.16; 'spaghetti': 0.16; 'stdlib.': 0.16; 'styling,': 0.16; 'subclassing': 0.16; 'subject:IDLE': 0.16; 'sucks': 0.16; 'them...': 0.16; 'thrown': 0.16; 'cc:no real name:2**0': 0.17; 'ago': 0.17; 'objects': 0.17; 'seems': 0.17; 'class.': 0.18; 'modules': 0.19; 'code.': 0.19; 'written': 0.20; 'cc:2**0': 0.21; 'johnson': 0.21; 'nobody': 0.21; 'do,': 0.21; '(which': 0.22; 'examples': 0.22; 'doc': 0.23; 'itself,': 0.23; 'long.': 0.23; 'maintains': 0.23; 'mess': 0.23; '\xa0if': 0.23; 'header:In-Reply-To:1': 0.23; 'all.': 0.24; 'cc:addr:python-list': 0.24; 'pointing': 0.24; 'variables': 0.24; 'creating': 0.25; 'tests': 0.25; 'code': 0.25; 'developers': 0.25; 'classes': 0.25; 'looked': 0.25; 'language': 0.26; 'module': 0.27; 'files,': 0.28; "i'm": 0.28; 'exists': 0.28; 'menu': 0.28; 'source.': 0.28; 'class': 0.29; 'least': 0.29; 'example': 0.29; 'message-id:@mail.gmail.com': 0.29; 'called': 0.29; 'thanks': 0.30; 'avoided': 0.30; 'comments.': 0.30; 'disappointed': 0.30; 'mix': 0.30; 'rick': 0.30; 'survive': 0.30; 'programmers': 0.30; 'however': 0.30; 'cc:addr:python.org': 0.30; '---': 0.31; '...': 0.31; "i've": 0.31; 'actually': 0.31; 'url:mailman': 0.31; 'thank': 0.31; 'source': 0.31; "won't": 0.32; 'probably': 0.32; 'from:charset:iso-8859-1': 0.33; 'kids': 0.33; 'does': 0.33; 'community': 0.34; 'worst': 0.34; 'url:google': 0.34; 'someone': 0.34; 'there': 0.34; 'where': 0.35; 'point': 0.35; 'another': 0.35; 'skip:" 10': 0.35; 'sort': 0.35; 'but': 0.36; 'self': 0.36; 'current': 0.36; 'skip:\xa0 30': 0.36; 'strings': 0.36; 'believe': 0.65; 'attention': 0.66; 'arms': 0.67; 'attitude': 0.67; 'show': 0.67; 'due': 0.69; 'order,': 0.72; 'year?': 0.72; 'biggest': 0.74; '"how': 0.76; 'virtually': 0.76; 'gone': 0.77; 'dream': 0.84; '*does*': 0.84; 'because:': 0.84; 'blow': 0.84; 'ease.': 0.84; 'mentality': 0.84; 'mighty': 0.84; 'obfuscation,': 0.84; 'of...': 0.84; 'piss': 0.84; 'sense"': 0.84; 'laid': 0.91; 'outsourced': 0.91; 'virtue': 0.91; 'horror': 0.93 |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Wxkv69O/UEmUqwoRABu9iHxm0phdSOIlL3Hv8LFKWfE=; b=ZP/ejHxVQtN83zmavstbuElUBLc/OXdrEbitbz6KPC4+6MCjuUeBEcUeEKc0pWk5/D 6zTBj7haV9b5D/+fpHeKD8Q0kdbx+uC03kYeLdagVmCsJ1iOVMXLN+ONh1M09c+PacJn kAufL46Ac6NV/BtsjE6OED+dXA52OczFhU0mM= |
| DomainKey-Signature | a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=UaSir5fIbl1H/n/AolD7RgsjruHhpIAWtECsoQbVv6lQz/l1U8IlTMfjO/YMsuithu G7ng1Q81iTUpHzZyzXsgkwK1l0r3v31uh95JHyJFU+Yu77/wMGeDPAj/spAEW3ev7mCW t+WOUgPaAXtYjX1UsYZrNSxDh7DGc0/Q5+KXY= |
| MIME-Version | 1.0 |
| In-Reply-To | <b5d393c7-a8e9-4fc0-9f2d-bc378eca5afc@k7g2000yqj.googlegroups.com> |
| References | <d8040f21-005d-4576-b02e-d151ab117b31@q36g2000yqn.googlegroups.com> <c6e49555-d7fb-4be7-b79f-ce3258233472@e2g2000yqi.googlegroups.com> <b5d393c7-a8e9-4fc0-9f2d-bc378eca5afc@k7g2000yqj.googlegroups.com> |
| Date | Mon, 31 Jan 2011 20:32:12 +0100 |
| Subject | Re: IDLE: A cornicopia of mediocrity and obfuscation. |
| From | Giampaolo Rodolà <g.rodola@gmail.com> |
| To | rantingrick <rantingrick@gmail.com> |
| Content-Type | text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding | quoted-printable |
| Cc | python-list@python.org |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.12 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1506.1296502336.6505.python-list@python.org> (permalink) |
| Lines | 139 |
| NNTP-Posting-Host | 82.94.164.166 |
| X-Trace | 1296502336 news.xs4all.nl 41103 [::ffff:82.94.164.166]:47689 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | csiph.com comp.lang.python:55813 |
Show key headers only | View raw
So what you're actually telling is that Python won't survive another 10 years because: - IDLE is it's default editor - idlelib directory is the first place you should look every time you need an inspiration on how code should be written - code in idlelib directory sucks That's an interesting point and I thank you for pointing that out. Personally I've never looked into idlelib directory for 7 years in a row at all. I was probably doing some other things, I don't know, but now I'm definitively gonna start looking for a new language because it's clear that any language having a directory called "idlelib" within such a horrible source code is not gonna last for long. Thanks again, --- Giampaolo http://code.google.com/p/pyftpdlib/ http://code.google.com/p/psutil/ 2011/1/31 rantingrick <rantingrick@gmail.com>: > PLEASE KINDLY IGNORE MY FIRST TWO POSTS: > Due to some errors i need to repost. > Thank you. > > > > IDLE: A cornicopia of mediocrity and obfuscation. > -- by Rick Johnson > > > IDLE --which is the Python Integrated Development and Learning > Environment-- was once the apple of Guido's eye but has since > degenerated into madness many years ago and remains now as the shining > jewel "show piece" on the proverbial python wall of shame. A once > mighty dream of "programming for everyone" that is now nothing more > than an example of "how NOT to program". > > IDLE contains some of the worst code this community has created. Bad > design patterns, tacked on functionality, blasphemous styling, and > piss poor packaging. There seems to be no guiding goals or game-plan. > And year after year if IDLE *does* get any attention it's just more > haphazard code thrown into the mix by someone who has gone blind from > reading the source. However we cannot blame the current maintainer -- > if any such even exists-- because NOBODY can maintains such a > spaghetti mess that this package has become! > > If we would have had a proper game plan from day one i believe we > could have avoided this catastrophe. Follows is an outline of the > wrongs with some suggestions to right them... > > * First of all the main two modules "PyShell" and "EditorWindow" are > laid out in such a non sequential way that it is virtually impossible > to follow along. We should have had a proper app instance from which > all widgets where combined. The main app should have followed a > "common sense" sequential mentality of... > > * subclassing the tk.Toplevel > * initializing instance variables > * creating the main menu > * creating the sub widgets > * declaring internal methods > * declaring event handlers > * interface/generic methods. > > ... This is the recipe for order AND NOT CHAOS! What we have now is > utter chaos! When we have order we can read source code in a > sequential fashion. When we have order we can comprehend what we read. > And when we have order we can maintain a library/package with ease. > However sadly we DO NOT have order, we have CHAOS, CHAOS, and more > CHAOS! > > * The underlying sub widgets should have started with their own proper > order of "declared" initialization. And all events should be handled > in the widget at hand NOT outsourced to some other class! > > * One of the biggest design flaws is the fact that outside modules > manipulate the main editor/pyshells events. This is a terrible way to > code. For example the AutoCompleteWindow takes over the tab event. > This is a bad design! The main editor window should handle all its own > events AND THEN call outside class methods when needed... > > #-- Puesdo Code --# > # in editor window __init__ > self.autocomplete = AutoComplete(blah) > # in editor window onKeyPress(blah) > if key == 'Tab' and blah: > self.autocomplete.show_tip(blah) > elif key == 'Escape' and acw.is_visibe(): > self.autocomplete.hide() > > ...We don't want "Mommy" classes telling the kids what to do, when to > eat, when to sleep, and when to excrete! We should create our objects > with the virtue of self reliance and responsibility!. The Colorizer, > ParenMatch, CallTips, and many other modules are guilty of "event > stealing" also. Event functionality must be handled in the widget > itself, NOT stolen and handled in an outside class. When we split up > sequential code we get CHAOS! > > * Another bad choice was creating custom reusable widgets > (Tabbedpages, FindDialog, ReplaceDialog, textView, TreeWidget, etc...) > and leaving them in idlelib. These should have been moved into the lib- > tk folder where they would be more visible to python programmers AND > we could reduce the cruft in the idlelib! Remember, when we create > more files, folders, and objects we create CHAOS. And nobody can learn > from CHAOS! > > * Another blasphemy is the fact that every module should include some > sort of test/demo to display its usage. If the module is a GUI widget > then you MUST show how to use the widget in a window. Sadly like all > everything else, idlelib is devoid of examples and testing. And the > very few tests that DO exists just blow chunks! > > * Last but not least idlelib does not follow PEP8 or ANY convention. > So much so that it seems the developers snubbed their nose at such > conventions! We are missing doc strings and comments. We have built- > ins being rebound! Just code horror after code horror. > > These are just the top of the list. The peak of a huge iceberg that > threatens to sink the community in the arms of chaos never to return. > I am beginning to believe that this community is made of amateurs due > to this lackluster code in the stdlib. However it could be that the > folks are really professional and refuse to work on such a horrible > code base (which i understand). I am going with the latter. > > When are we going to demand that these abominations be rectified? How > much longer must we wait? A year? Ten years?... i don't think Python > will survive another ten years with this attitude of obfuscation, and > mentality of mediocrity. > > -- rr: disappointed and annoyed! > -- > http://mail.python.org/mailman/listinfo/python-list >
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: IDLE: A cornicopia of mediocrity and obfuscation. rantingrick <rantingrick@gmail.com> - 2011-01-31 09:49 -0800
Re: IDLE: A cornicopia of mediocrity and obfuscation. rantingrick <rantingrick@gmail.com> - 2011-01-31 21:37 -0800
Re: IDLE: A cornicopia of mediocrity and obfuscation. rantingrick <rantingrick@gmail.com> - 2011-01-31 10:12 -0800
Re: IDLE: A cornicopia of mediocrity and obfuscation. Giampaolo Rodolà <g.rodola@gmail.com> - 2011-01-31 20:32 +0100
Re: IDLE: A cornicopia of mediocrity and obfuscation. rantingrick <rantingrick@gmail.com> - 2011-01-31 12:19 -0800
Re: IDLE: A cornicopia of mediocrity and obfuscation. Stephen Hansen <me+list/python@ixokai.io> - 2011-01-31 16:14 -0800
csiph-web