I'm an existing C# (ASP.NET MVC 3 years +), C++, Javascript developer, and have done a bit of Python development in my time.
I'm looking to take on a Google App Engine Python project and essentially I feel a bit lost without a decent integrated IDE experience + Data Management tool with GUI. Is GAE just for hardcore developers that can code right first time, in vim? I feel like I'm wasting time on things that could honestly code in 5 mins in a more Established framework.
I'm currently using the Eclipse plugin, and trying to view all the elements in an array while paused. I'm drilling into objects, but can't seem to find the list.
Is this just something that can't be done with App Engine at the moment, if so please do help me!
I also assume there is no amazing data management tool yet?
I have used both Wing IDE Pro and PyCharm. Both are great lightweight IDEs but for me Pycharm is the winner for Google App Engine development. It has built in support for GAE.
Get the python plugin for google app engine from http://pydev.org/. It supportS direct deployment to appengine from eclipse. It's one of the best environment for the ones from C#,.NET. It even has autocomplete and lot more........
please refer to this http://code.google.com/appengine/articles/eclipse.html
I use Wing IDE Pro and it's the best python ide I've ever used by far. I use VS 2010 Ultimate for C#, so for me to feel comfortable and efficient in Wing says a lot concerning its quality for writing python. For GAE specifically, Wing supports debugging locally.
Related
I'm developing on GAE-Python 2.7 using Eclipse+PyDev as IDE. Since GAE SDK 1.7.6 (March 2013), where Google "broke" support for breakpoints*, I've been using the old dev server to continue debugging the application I'm working on.
However, Google will drop support of the old dev server as of July 2013 and, since I do not expect a prompt solution for this on PyDev (I've seen no activity so far about this), I would like to look for an alternative IDE to still being able to do debugging.
I know that one of the possible options is to go for PyCharm (initial license of 89€+VAT and 59€+VAT each year to continue receiving upgrades), but I would like to know how other people is (will be) addressing this problem and what are the current alternatives to PyCharm
*I would like to clarify the sentence "Google broke support for breakpoints": In SDK 1.7.6+, Google started using stdin/stdout in the new dev server for doing IPC and this leaves no chances to even do debugging with pdb. Google claims that they have created the hooks for tool vendors to support debugging (as PyCharm did) but, in my opinion, they "broke" debugging by forcing people to move away from the IDE they were initially recommending due to an architectural decision (I'm not an expert, but they could have used the native IPC mechanisms included in Python instead of using stdin/stdout).
EDIT:
I forgot to mention that I'm running Eclipse+Pydev for MacOSX, so please, also mention your OS compatibility in your alternatives/solutions.
I posted this in google groups a while back. I can run debugging in Boa Constructor using remote debugging. https://groups.google.com/forum/#!topicsearchin/google-appengine/Boa/google-appengine/-m00Qz4Vc7U
I am pretty sure it would be trivial to make winpdb work with remote debugging as well, though I haven't tried it (I don't use winpdb ;-)
If any other debug environments support similiar remote debugging facilities it shouldn't be too hard to get them going.
There a screen shot of Boa debugging in action here https://groups.google.com/forum/#!searchin/google-appengine/debugging$20Boa/google-appengine/ZHHkwr3ok8c/btDno8oPYyAJ
T
The latest version of PyDev (2.8.1) supports GAE debugging. However, "Edit and Continue Debugging or Interactive Debugging" feature seems to have stopped working.
There is a wonderful video on youtube where it is explained how to debug Django applications with Python Tools for Visual Studio.
I wonder if the same thing is possible with the Pyramid applications? Moreover I would love to use VS' IntelliSense (hinting system) while writing for the Pyramid framework.
Or may be there are another ways to achieve the same debug+IntelliSense effect. I'd be glad to hear any suggestions.
To my mind there's two viable option out there.
I use both actually.
Eclipse + Aptana Studio + Pydev or Aptana Studio
Pros
Free
Decent auto completion (IntelliSense like system)
More plug-ins (since it's based on eclipse)
Support django template
Cons
relatively poor html editor
no mako or jinja2 support (as far as I know)
Pycharm
Pros
better auto completion
Support mako,jinja2 and django template
Good HTML edtitor
Cons
Not Free
Both support debug without too many problems.
I am trying to make a web application to perform scientific and engineering calculations. I am new to web developing and I've been looking for a free framework (with free hosting), that's why I came to Google App Engine, but there is no way to get scipy working, so I decided to switch to Java instead of python (although I found PythonAnywhere and it has numpy, scipy, etcetera, it has no GUI-building support like PyQt, wx, Tkinter...).
I would like to know if there is a way to use COLT or so for Java in the Google App Engine, or if there is some other option. I would rather free options since I'm at college, but cheap-customizable-options are totally welcome :D (even if it means to use another language)
PD: I hope this was understandable since english is not my language.
EDIT:
I TRIED to use apache commons math, and it seems like it's not going to work. The short answer to my question is: NO.
I believe GAE is severely limiting in what it will allow you to run.
I doubt you will find a completely free Java hosting solution.
To clarify the statements in other posts, GAE is incredibly limiting with respect to Python packages with C extensions. Anything pure Python will work fine. Scipy makes heavy use of C extensions, so it falls into this category.
Google recently introduced Python2.7 support, and with it, the ability to use NumPy on App Engine. I'm not sure if this covers your need, but it might be worth checking out.
I only develop with Python for Google App Engine, so I'm afraid I can't comment on the state of Java external dependencies.
GAE will limit lot of things if not all in your case. You might want to try out Heroku, Amazon Web Services within their free quota.
I see no reason not to do this. You can run front-end instances which can use 800MHz of processor and 128MB of RAM - you can run one all the time for free but you need to be able to split your tasks into 10min sections (if you use tasks, or 30 second sections otherwise). A backend is going to be chargeable and you'd probably find it cheaper to run on another system.
I am wondering how to go about implementing a web application with Python.
For example, the html pages would link to python code that would give it increased functionality and allow it to write to a database.
Kind of like how Reddit does it.
If you're looking for server side programming with databases and html templates etc, I think Django is great, along with Pyramid. However, I use Flask ( http://flask.pocoo.org/ ) for this since it is easy to use, learn and deploy even though it may not have as much support as the before mentioned 2 framework since it's just a microframework, using the Jinja2 templating engine, including a development test server with it's own debugger.
On the other hand, if you're going for client-side programming (i.e. in browser implementation ) You can look up .NET Ironpython or even Brython which uses python like javascript.
You might want to check out mod_wsgi or mod_python.
What Is mod_wsgi?
The aim of mod_wsgi is to implement a simple to use
Apache module which can host any Python application which supports the
Python WSGI interface. The module would be suitable for use in hosting
high performance production web sites, as well as your average self
managed personal sites running on web hosting services.
-
Current State of Mod_Python
Currently mod_python is not under active development. This does not
mean that it is "dead" as some people have claimed. It smiply means
that the code and the project are mature enough when very little is
required to maintain it.
This is a good article from the Python website:
http://docs.python.org/howto/webservers.html
Plain CGI is a good starting point to learn about server side scripting, but it is an outdated technology and gets difficult to maintain after certain level of complexity. I would think it is no longer used in industrial-grade web server anymore. Plus you have to setup a web server and then install some module to interpret python script (like Apache with mod_python) just to get started.
I had some experience with Django (https://www.djangoproject.com/) and found it fairly easy to get started with since they come with development test server. All you need to have is a Python interpreter + Django and you can get up-and-running quickly and worry about the deployment setup later. They have pretty good documentation for beginner as well.
We have never used Python for a web site without a framework. In our case that is Django. In other words, we do not use Python for our web sites the way Perl can be used, just having Apache run a Perl script.
The recommendations you have received about Django are sound. If you go the Django route, Graham Dumpleton and the modwsgi Google group were very helpful to me. I could
not have gotten mod_wsgi deployed on Red Hat Enterprise 5 64-bit without Graham's help.
Whether you choose Django or "straight" Python, you will need to become familiar with mod_wsgi.
Good luck in quantum time, which means by now, I hope this all worked out for you.
Being a web developer (php, symfony, doctrine) for 2 years now, I was recently asked by a friend to come up with a desktop solution. So I developed a project, installed a LAMP on his machine and he is mostly happy using it now. But I'm not. It just doesn't seem right to wait for a server response from a localhost. Obviously php isn't suited for desktop development. So, my question is: what language \ framework would you advice a php programmer if he was going to develop a desktop application (something that you can install, that has it's own gui, but utilizes the similar concepts of web apps: css, javascript, orm).
I would like to bring up Python as a possible answer to my question. Does anyone have an experience of developing a desktop app with Python, utilizing an ORM and(or) HTML-based GUI?
You should definitely use Python. It's great and really easy to get up and running and extremely powerful.
utilizing an ORM and(or) HTML-based GUI
Please don't do this. HTML has its purposes, and it's not in desktop apps. Please don't force your experience into new technologies.
You should look at the various python GUI frameworks. Tkinter, PyQt ( my preference), or GTK
It just doesn't seem right to wait for a server response from a localhost
Exactly! Did you profile your app, both on server side and in browser? There's no reason for a local web app to be slow, except if it is designed or implemented suboptimally. Same applies to a desktop app, which is generally harder to create.
So, fire up your Firebug, do explain plan to every database query your app issues, add whatever profiling your PHP settings allow, and see where the problem lies. Most probably, it's not in the choice of language.
Maybe Adobe AIR is something to take a look at? Check out their sample applications. If you don't like using a "proprietary" technology, check out HTML5 technologies like Web Storage and Web SQL (not in the HTML5) spec.) These technologies are completely client side (but can be extended to work over a network), so no need to wait for a server.
I've no clue how capable/easy to work with the Web SQL route is, but there are some decent AIR applications out there.
I've recently come across a project called Titanium. It's a platform for developing native desktop (and mobile) applications using web technology (html/css, javascript and server-side languages like python, ruby and PHP! That's exactly what I was looking for. However, I haven't found no decent documentation or examples, community is small, so it seems to be underdeveloped right now. It mostly aims at mobile development rather that desktop.
Apart from Titanium, I currently don't see a better way for a web developer to go.
Is the target platform windows? If so, consider C# with WPF. The UI is constructed using XAML which is very similar to HTML/CSS. C# uses the .NET framework, so while it is a much different programming language than PHP, the transition should not be too difficult.