Re: Mega Newbie Questions: Probably FAQs
On 8/15/06, Zeph <[EMAIL PROTECTED]> wrote: > > Framework for what kind of apps? Web, native GUI, client-server, etc? > > MVC is an abstract architecture rather than a specific implementation. > > Even so, many implementations rarely employ a purely MVC design. > > Native GUI with some client-server abilities. Basically, it's a > database-inventory sort of thing with some pretty intense reporting. > Call it a productivity app--no need for intense graphics or massive > computation. Fundamentally, what I want is to be able to distribute a > "regular app", mainly for the Windows market, but I also want to offer > it to the Mac and Linux crowd--on one code base if possible. You should really check out Dabo. It is an application framework designed to create database apps in a really Pythonic way. Probably the best way to start is to check out the screencasts - they really show just how cool Dabo is. I'd start with the one on quickly creating a database app: http://leafe.com/screencasts/appwizard.html The rest of them are listed at http://dabodev.com/documentation. I've been using the UI module from Dabo for over a year, and it's rock-solid. -- # p.d. -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
Zeph wrote: > Python > Pros: Free. Open source. Deep. Flexible. Rich community and third party > stuff. Well documented. > > Cons: Interpreted. > > Unknown: Secure (meaning not easily reverse engineered) code? Performance? Very recent thread on this subject: http://groups.google.ca/group/comp.lang.python/browse_frm/thread/b4e08adec2d835f5/af340f17faec4055 Peace, ~Simon -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
Zeph wrote: >> 3) Can someone recommend a good framework that will enable me to keep >> things well sorted out, and easy to maintain as my apps grow? (I'm >> considering MVC, but have no idea how to apply it until I've gone >> beyond "Hello World"). Yu-Xi Lim wrote: > Framework for what kind of apps? Web, native GUI, client-server, etc? > MVC is an abstract architecture rather than a specific implementation. > Even so, many implementations rarely employ a purely MVC design. Native GUI with some client-server abilities. Basically, it's a database-inventory sort of thing with some pretty intense reporting. Call it a productivity app--no need for intense graphics or massive computation. Fundamentally, what I want is to be able to distribute a "regular app", mainly for the Windows market, but I also want to offer it to the Mac and Linux crowd--on one code base if possible. I have on a number of occasions downloaded apps that required that Visual Basic, or .Net or whatever runtimes be installed. I've never liked or trusted these kinds of apps. Regardless of the quality that the particular thing may have had, I didn't trust it and didn't like all of the extra clutter that went along with it. This is why I'd prefer to deliver some sort of stand alone solution--or at least something that appears as such. Fundamentally, I want to put out a solid, slick and professional product. Is Python still a good choice for me? Back to the question: When I speak of framework, maybe I should have used the term "methodology". I have excellent methods for coding my web-apps (I like Fusebox) but not having created anything significant in another language from scratch for over 10 years, I wouldn't know how to start organizing my stuff so that it's long-term maintainable. > The size of the Python community is huge compared to RealBasic. And > you'll benefit from that alone by better answers to your questions, > better documentation, and better 3rd party libraries. Excellent points. > Side note: You seem like you've researched a bit, but unfortunately been > affected by the swirl of buzzwords. While there are usually valid > reasons for particular technologies to have so much hype behind them, > you should not neglect the alternatives. They may be the answer you seek. Yes. That's the problem with being a newb: you don't know what you don't know, then when you do, it's obvious. I'm still seeing only the surface. One question that does come to my mind is that of the notion of decompiling or reverse engineering. Based on a comment someone made earlier, is this a significant concern that I should have, if I want to ship commercial software? The stage I'm at right now is that I'm on the fence between REALbasic and Python. Here's how I see it, relevant to my situation: REALbasic Pros: A fairly rich system, excellent GUI, spits out a binary executable for Win, Mac and Linux. One code base. Well documented, ever evolving. Relatively reasonably priced for commercial purposes. Cons: Closed source (what if they're bought out?) I'm not sure that I can trust my investment of time to last 10 years. The language and IDE is a tad strange to me. It has the word "Basic" (read: cheap, half-assed, not-a-real-app) in it, which is not a particularly good term to use in a pitch. Unknown: Learning curve? Long-term value? Level of support? Python Pros: Free. Open source. Deep. Flexible. Rich community and third party stuff. Well documented. Cons: Interpreted. Unknown: Secure (meaning not easily reverse engineered) code? Performance? Further thoughts? -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
Zeph wrote: > 1b) Are these executable completely free from the need of the average > user needing to install Python. Basically, I want to write and sell > "compiled" apps. OSX and Linux installations nearly always come with Python pre-installed (usually because they are required by other system software). Your only concern should be the availability of additional Python libraries you may use. > 2) I want a real and native GUI. wxPython or PyQT? My concerns are about > cross-platform and responsiveness of GUI. I suspect that this will be > one of the gravest issues for the long run. Tk is available on all but the most minimalistic of Python distributions. It's also butt-ugly. wxPython is probably a good compromise. > 3) Can someone recommend a good framework that will enable me to keep > things well sorted out, and easy to maintain as my apps grow? (I'm > considering MVC, but have no idea how to apply it until I've gone beyond > "Hello World"). Framework for what kind of apps? Web, native GUI, client-server, etc? MVC is an abstract architecture rather than a specific implementation. Even so, many implementations rarely employ a purely MVC design. > 4) There are a lot of books and tutorials out there, but they are of the > proof-of-concept type. Specifically, a tutorial might teach me Hello > World, but not really care about the framework, because it's a very > simple item, and the point is simply to get me coding. I'd like to start > off with an established, tested and reputable system whose habits I can > ingrain from day one, rather than figure it out later. Can someone > recommend a good book, or your favourite tutorials? Perhaps even one > that assumes MVC as the framework? For GUIs, and wxPython in particular, wxPython in Action would probably be what you have in mind. > 5) Following the above, is there a framework that assumes tcp/ip udp > networking, database connectivity? My first app will be in large part a > networkable database type app where two or more users can share the same > file concurrently. Mix and match. I typically select "best of breed" libraries for the necessary functionality. wxPython for GUI, SQLObject (when it gets too clunky for the regular Python DBAPI), Twisted for networking. > 6) Since I've been a web-developer for a long time (over 10 years), I > never properly learned OOP. Recommended tutorials? OOP is overrated. A multi-paradigm language like Python lets you decide what's best for your particular application. Most Python tutorials would not focus on OOP specifically, unlike Java where you'd have to learn OOP from day 1. OOP may be a suitable model for business logic, but feel free to explore other alternatives for the other parts of your project. But if you insist, try How to Think Like a Computer Scientist (http://www.ibiblio.org/obp/thinkCSpy/). It takes the approach similar to an introductory college-level CS course, which is typically heavy on the OOP and data structures. > 8) Can anyone speak to the point, or point out a useful comparison > between Python and RealBasic? The size of the Python community is huge compared to RealBasic. And you'll benefit from that alone by better answers to your questions, better documentation, and better 3rd party libraries. Side note: You seem like you've researched a bit, but unfortunately been affected by the swirl of buzzwords. While there are usually valid reasons for particular technologies to have so much hype behind them, you should not neglect the alternatives. They may be the answer you seek. -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
Zeph wrote: > ajaksu wrote: > I do intend to start small and build up, but I want to front load my > learning curve, usually makes the other side of the curve more productive. Did you ever play on teeter-totters when you were a kid? I think that's what they're called. Those board like things that are balanced in the middle, one kid on each end, and as one kid goes up, the other kid goes down. Anyway, when I was a kid there was some teeter-totters in the yard at a nearby apartment complex, and there were some teeter-totters in the park behind my house. If you spend much time on these contraptions, you soon realize that simply going up and down is not very much fun. We'd often carry on in our activity as it was supposed to be, but, invariably, one of us would be sitting on the low end and looking up at our playmate. With an almost devilish grin, we'd hop off the teeter totter and send our good buddy crashing to the ground. Such wonderful childhood fun. Another activity that my brother and I took part in was shoplifting. We devised a clever way of hording candy from the checkout aisles at a local grocery store. What we'd do, is climb in under the conveyor belt cabinet and reach out and bring entire boxes of candy bars, etcetera in under the conveyor belt where we'd sit and eat away at our leisure. We never ever got caught, and we went through probably hundreds of dollars worth of candy. But we got greedy! Hope this helps rather than confuses you. -- -- There are several things that I will never be: * I will never be attracted to females. * I will never enjoy the company of others. Exactly how these realities bode for my enemy, is not of my concern. -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
ajaksu wrote: > Zeph wrote: And I'd research a bit about decompiling those executables, > might be easier (or harder, in my case) than you thought :) Are you saying that generally python code is insecure? It hadn't occurred to me, but I want to play in a fairly competitive field, and I'd hate to have a competitor rip my app. > Framework... MVC... not my area, sorry. I think a better word might have been "methodology", for example, as a Coldfusion developer, I enjoy using Fusebox. -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
ajaksu wrote: > Hoping this helps more than confuses, Thanks, these were the sort of answers I was looking for. I've programmed in Basic, AppleScript, Pascal and Usertalk (Userland Frontier), I've got a sense for development, it's just been a very, very long time ago. I do intend to start small and build up, but I want to front load my learning curve, usually makes the other side of the curve more productive. -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
Zeph wrote: > 1) I want to write high-level apps that are db connected, networkable > and cross-platform: Linux, Mac OSX, Windows. I know there are apps that > can convert to Linux or Windows as stand-alone executables, is there > also one that will permit me to convert to MacOSX? Yes, py2app (http://undefined.org/python/py2app.html). > 1b) Are these executable completely free from the need of the average > user needing to install Python. Basically, I want to write and sell > "compiled" apps. Yes. However, you can have downloads of a dozen MBs for something that could be 100KB for someone with the right pre-requisites already installed. And I'd research a bit about decompiling those executables, might be easier (or harder, in my case) than you thought :) > 2) I want a real and native GUI. wxPython or PyQT? My concerns are about > cross-platform and responsiveness of GUI. I suspect that this will be > one of the gravest issues for the long run. wxPython. Even if PyQT is "the best tool for the job", it'll cost you to find that out (if you're planning to sell your software). So try wxPython first. Actually, play with Dabo (http://dabodev.com/ -> wxPython + DBs). > 3) Can someone recommend a good framework that will enable me to keep > things well sorted out, and easy to maintain as my apps grow? (I'm > considering MVC, but have no idea how to apply it until I've gone beyond > "Hello World"). Framework... MVC... not my area, sorry. However, try a look at Envisage (http://code.enthought.com/envisage/, also http://code.enthought.com/traits/ seems relevant) PEAK (http://peak.telecommunity.com/), PlugBoard (http://plugboard.berlios.de/) and Dabo again. All of which pass miles above my head, so if you figure them out please share the wisdom :) > 4) There are a lot of books and tutorials out there, but they are of the > proof-of-concept type. Specifically, a tutorial might teach me Hello > World, but not really care about the framework, because it's a very > simple item, and the point is simply to get me coding. I'd like to start > off with an established, tested and reputable system whose habits I can > ingrain from day one, rather than figure it out later. Can someone > recommend a good book, or your favourite tutorials? Perhaps even one > that assumes MVC as the framework? IMHO, you'd benefit from "wxPython in action" (http://www.manning.com/rappin/). But see below. > 5) Following the above, is there a framework that assumes tcp/ip udp > networking, database connectivity? My first app will be in large part a > networkable database type app where two or more users can share the same > file concurrently. Sure, tons of frameworks somewhat like that. Web-based, mostly. And targeting the sane approach of a DB server talking to clients. Share the same file? What kind of file would that be? :) > 6) Since I've been a web-developer for a long time (over 10 years), I > never properly learned OOP. Recommended tutorials? http://diveintopython.org/object_oriented_framework/index.html -> I love this one http://www.voidspace.org.uk/python/articles/OOP.shtml -> gentle http://www.ibiblio.org/g2swap/byteofpython/read/oops.html -> gentle http://www.brpreiss.com/books/opus7/html/book.html -> not so gentle :) And search this group for "Book" to get much better recommendations ;) > 7) I'm developing on WinXP and for the IDE, I'm considering > theKompany.com's BlackAdder, Komodo or Eclipse. Any very strong > negatives in regards to either of these? Only one: PyScripter is better (http://mmm-experts.com/Products.aspx?ProductId=4). And SPE is very good too (http://stani.be/python/spe). Two negatives, PyScripter and SPE. Also, Eclipse is so heavy and bloated that I wonder what it eclipses :) > 8) Can anyone speak to the point, or point out a useful comparison > between Python and RealBasic? Perhaps http://discuss.joelonsoftware.com/default.asp?design.4.70287.9 And a general recommendation: go for something easier as your very first target. As you're a web-developer, writing simple and useful tools (run tidy on files, simple pre-processors, bare-bones templating, CSS inliner, etc.) first would be IMHO both rewarding and a great learning opportunity. Hoping this helps more than confuses, Daniel -- http://mail.python.org/mailman/listinfo/python-list
Re: Mega Newbie Questions: Probably FAQs
Zeph wrote: > 4) There are a lot of books and tutorials out there, but they are of the > proof-of-concept type. Specifically, a tutorial might teach me Hello > World, but not really care about the framework, because it's a very > simple item, and the point is simply to get me coding. I'd like to start > off with an established, tested and reputable system whose habits I can > ingrain from day one, rather than figure it out later. Can someone > recommend a good book, or your favourite tutorials? Perhaps even one > that assumes MVC as the framework? There is no "tutorial" that will teach you good coding habits. You pretty much have to develop them on your own. Looking at other people's source is a good way to learn "accepted" coding habits. Python, in and of itself, is a good language for learning good programming habits, as the interpreter forces you to use certain conventions that are widely regarded as good coding structure. One of the things that many Python detractors harp about, is that Python forces you to use a considerable amount of whitespace. i.e. consistent indentation of code blocks. However, good and consistent indentation is generally considered to assist in making the source more readable and thus, easier to debug. All in all, these conventions help you to develop some good habits by producing runtime errors when you fail to observe them. -- -- There are several things that I will never be: * I will never be attracted to females. * I will never enjoy the company of others. Exactly how these realities bode for my enemy, is not of my concern. -- http://mail.python.org/mailman/listinfo/python-list
Mega Newbie Questions: Probably FAQs
I'm pretty well of a mind to pick up Python. I like it because it seems to have a fair degree of functionality and is accessible to someone without a PhD in computer sciences. This is my second day of investigation, and I'm astounded by the huge ecosystem that surrounds it. I have a number of questions that probably should be on a FAQ, but I haven't found them. I'll explain my goals and needs, perhaps someone here will have some recommendations 1) I want to write high-level apps that are db connected, networkable and cross-platform: Linux, Mac OSX, Windows. I know there are apps that can convert to Linux or Windows as stand-alone executables, is there also one that will permit me to convert to MacOSX? 1b) Are these executable completely free from the need of the average user needing to install Python. Basically, I want to write and sell "compiled" apps. 2) I want a real and native GUI. wxPython or PyQT? My concerns are about cross-platform and responsiveness of GUI. I suspect that this will be one of the gravest issues for the long run. 3) Can someone recommend a good framework that will enable me to keep things well sorted out, and easy to maintain as my apps grow? (I'm considering MVC, but have no idea how to apply it until I've gone beyond "Hello World"). 4) There are a lot of books and tutorials out there, but they are of the proof-of-concept type. Specifically, a tutorial might teach me Hello World, but not really care about the framework, because it's a very simple item, and the point is simply to get me coding. I'd like to start off with an established, tested and reputable system whose habits I can ingrain from day one, rather than figure it out later. Can someone recommend a good book, or your favourite tutorials? Perhaps even one that assumes MVC as the framework? 5) Following the above, is there a framework that assumes tcp/ip udp networking, database connectivity? My first app will be in large part a networkable database type app where two or more users can share the same file concurrently. 6) Since I've been a web-developer for a long time (over 10 years), I never properly learned OOP. Recommended tutorials? 7) I'm developing on WinXP and for the IDE, I'm considering theKompany.com's BlackAdder, Komodo or Eclipse. Any very strong negatives in regards to either of these? 8) Can anyone speak to the point, or point out a useful comparison between Python and RealBasic? Thanks. -- http://mail.python.org/mailman/listinfo/python-list