473,387 Members | 3,787 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Standards not standard

Hi,
Multiple threads running currently about reinventing the wheel,
Multiple GUI's etc.
Being able to write a usable GUI is key task for all programmers today
- read. ESR's http://www.catb.org/~esr/writings/cups-horror.html

And look at ESR's reason to come over to Python - he wanted to write a GUI !!!

I love the Delphi Environment and the Python language.

So I would like to share here why I find the Delphi environment so productive.

They have taken key concepts and defined standards for them and
shipped a default implementation.

To illustrate -
They have the concept of a TDataset which is sort of like a cursor in
the DBAPI. They have their default implementations but ANYBODY can
write their own class which is TDataset compatible.

Then they define how widgets should interact with TDataset. Now
anybody can write a widget which interacts with any TDataset.

So this means that anybody can write a widget and know that it will
work with any Dataset.

There are literally hundreds of open source projects using Delphi -
You can take any open source widget that you like and hook it up with
any open source TDataset that you like. It will work first time
without any problem.

And a sort of MVP is inbuilt.

You can for example tie a dataset with a chart and grid on the same
screen. Type in the grid and see the chart change. All this with zero
code. Made my eyes bug out the first time I saw this.

Wishful thinking here about Python.
Suppose I like templating system from framework A. but prefer
framework B. What if I could drop the existing templating in Framework
B and use the templating from A.

Somebody pointed out Java is just as "bad' with lots of Web frameworks
but the key here as mentioned in
http://www.python.org/peps/pep-0333.html is interoperability.
I think the Python community did a great job with DBAPI 2.0 Rather
than more code projects the community should work towards putting
interface standards in such a way that for e.g. I could use Zope's
templating and twisted as framework and kinterbas for data access and
it should all work together because all of them are writing to the
same standards.

The language is so elegant with introspection and mixins and so many
other things. And nowdays the pattern community has helped us all
focus so much on designing for interoperability. I really think that
the community needs a lot more of STANDARDS not a STANDARD GUI

Just my thoughts.
--
DarkCowherd
Aug 1 '05 #1
3 1293
Dark Cowherd <da*********@gmail.com> writes:
Being able to write a usable GUI is key task for all programmers today
No, it isn't. I'm a programmer. I never get paid to write usable
GUIs. Most of my programs don't have a GUI at all. For those that do,
I get paid to write a functional GUI. Clients that want a usable GUI
are told up front they'll have to pay someone else - who may not be a
programmer - to provide that. If you said "most" - well, I still
don't think I'd agree with you, but at I wouldn't have so directly
disagreed. The team I'm currently working on has about a half dozen
programmers, only one of whom needs to be able to write a usable GUI.

Now, when it comes to writing tools for me, I've written some things
that have what I consider to be *very* usable GUIs - much more usable
than anything I've ever seen on a Mac or Windows box. But gods forbid
end users should ever have to deal with them.
You can for example tie a dataset with a chart and grid on the same
screen. Type in the grid and see the chart change. All this with zero
code. Made my eyes bug out the first time I saw this.
PyQt has this kind of functionality. I first saw it in boopsie, back
in the late 80s. It is pretty cool.
I really think that the community needs a lot more of STANDARDS not
a STANDARD GUI


Standards happen in one of two ways. Either an 800-lb gorrilla
establishes them by fiat, or a group of people interested in having
their code play well together hashes out something after they've all
taken a crack at implementing it. The latter is slowly happening in
the Python community. But it's a slow process.

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Aug 2 '05 #2
> > I really think that the community needs a lot more of STANDARDS not
a STANDARD GUI


Standards happen in one of two ways. Either an 800-lb gorrilla
establishes them by fiat, or a group of people interested in having
their code play well together hashes out something after they've all
taken a crack at implementing it. The latter is slowly happening in
the Python community. But it's a slow process.

<mike
--

OK let me talk in specifics instead of abstractions.

Lets take a GUI. Consider something like wxGlade or XRCed which
generates a XML resource file and then wxPython works from it.

Suppose the python community works on defining a standard XML resource file..

Then all wrappers for GUI libraries in Python can optionally support
this XML resource file.

So if you are unfortunate enough to have to develop GUI applications
:-) you use the standard XML resource file and pick the wrapper and
the toolkit that you like.

Then for some reason - you have to switch wrapper or toolkit - you
dont have a major crisis, you only have a minor crisis. ;-)

Of course the wrappers and toolkits are free to provide additional
functionality which the developers using those toolkits may or may not
choose to use.

I think this is what has happened with the DBAPI 2.0 for e.g.
kinterbasdb provides DBAPI 2.0 compliant methods for access to
firebird and also other non-standard methods. This is a GOOD THING and
my suggestion is that this GOOD THING must propogate into other areas
like GUI and the Web Toolkits.

--
DarkCowherd
Aug 3 '05 #3
Dark Cowherd <da*********@gmail.com> writes:
> I really think that the community needs a lot more of STANDARDS not
> a STANDARD GUI


Standards happen in one of two ways. Either an 800-lb gorrilla
establishes them by fiat, or a group of people interested in having
their code play well together hashes out something after they've all
taken a crack at implementing it. The latter is slowly happening in
the Python community. But it's a slow process.

<mike
--

OK let me talk in specifics instead of abstractions.

Lets take a GUI. Consider something like wxGlade or XRCed which
generates a XML resource file and then wxPython works from it.

Suppose the python community works on defining a standard XML resource file.

Then all wrappers for GUI libraries in Python can optionally support
this XML resource file.

So if you are unfortunate enough to have to develop GUI applications
:-) you use the standard XML resource file and pick the wrapper and
the toolkit that you like.

Then for some reason - you have to switch wrapper or toolkit - you
dont have a major crisis, you only have a minor crisis. ;-)

Of course the wrappers and toolkits are free to provide additional
functionality which the developers using those toolkits may or may not
choose to use.

I think this is what has happened with the DBAPI 2.0 for e.g.
kinterbasdb provides DBAPI 2.0 compliant methods for access to
firebird and also other non-standard methods. This is a GOOD THING and
my suggestion is that this GOOD THING must propogate into other areas
like GUI and the Web Toolkits.


Good idea. Are you willing to write the standard, and at least one GUI
toolkit implementation to show that it's workable?

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Aug 4 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

162
by: Isaac Grover | last post by:
Hi everyone, Just out of curiosity I recently pointed one of my hand-typed pages at the W3 Validator, and my hand-typed code was just ripped to shreds. Then I pointed some major sites...
65
by: Pmb | last post by:
I'm confused as to what the compiler error message I'm getting is refering to. Can someone take a gander and let me know what I did wrong? The program is below. When I compile it I get the...
17
by: Ian | last post by:
Hi there, Can anybody tell me where I can find a standards documents like you have in c#. I am trying to write javascript and would like to know what standards are i.e. Where to put the...
13
by: Ian Tuomi | last post by:
Hello. I have been reading about all the different standards in C and I am quite confused, and have a few questions. () How is C99 "better" than older versions of C? (or is it?) What is the...
115
by: junky_fellow | last post by:
What is a C object ? If i have some function "func()" in my C program, then can i say that "func()" is a C object ? or if i have some function pointer (ptr) which contains the address of...
144
by: Natt Serrasalmus | last post by:
After years of operating without any coding standards whatsoever, the company that I recently started working for has decided that it might be a good idea to have some. I'm involved in this...
28
by: Kobu | last post by:
Hello, I really admire how the experts that roam clc quickly come up with specific references to parts of C standard documentation. It beats textbooks anyday because it leaves everyone with...
9
by: Jason Gogela | last post by:
Does anyone out there know why I should care whether a <span> is nested in a <p> or vice versa? What is the bennafit of adhering to this standard? It seems to me that regardless of which way you...
0
by: pat | last post by:
CodeCheck Coding Standard's Support As a free service to our customers we offer support in developing "rule-files" for automating corporate coding standards. If you have a coding standard that...
53
by: Jim Cook | last post by:
I previously had asked if there was an online standards file so I could read that and answer my own questions without posting here and getting flamed for not having done my homework. I was...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.