Finally, it's about time. I've been working with Rails for several years now and it's an absolute joy to use. It made me wonder whether it's possible to make something similar for desktop apps.
It's good that this is built in Python. I used to use C to write desktop apps, but developing in C is very, very slow. Using Python not only allows quick development, but it also allows you make "binary" packages that run on all Linux variants irregardless of ABI differences.
However, Quickly is doing something wrong compared to Rails: marketing and polish. The Quickly website is just a Launchpad page, and their documentation is just a wiki. They should have a proper website with documentation in an easy-to-read format that doesn't feel messy, maybe a few screencasts too. The current "website" looks to amateurish and doesn't exactly invite me to use it.
And they should be searchable on the web. Somehow I can't stop thinking that this announcement is a misguided followup to the "Think twice before naming your new programming language" article posted a few day ago http://news.ycombinator.com/item?id=779108
Even with namespace collisions, it's usually easy enough to find software if you search for "$NAME project". The first result for "quickly project" is related to quickly, though inadvertently. In a week or two, the Launchpad page will probably be the first result.
That will find the project home page. Now how do I find blogs discussing the project? If every web page mentioning the project would always link to the canonical url of the project page, I could search for these links, acting as if the real project name were https://launchpad.net/quickly, but that doesn't feel natural. And it requires the collaboration of every single author writing about quickly.
All good points, but the article points out that this is in early development stages. Most likely it will receive that much needed polish in short order with Canonical's resources behind it.
Is the description 'Rails-like' used accurately here? Based on this article, it sounds like Quickly generates boilerplate code and a makefile. Rails is playing on a much higher level, allowing you to describe how the actual interface and data behaves.
It is rather misleading IMO even though it is from the article.
It is a template expansion system that also setups SCM for the “expanded” project templates — presently it sounds like there is only the template for Ubuntu projects, but that other templates could be created.
This actually sounds really neat.
I mean some people mind find it not to their taste and all of that, but I think its a step in the right direction for development on Linux(Ubuntu in this case) if similar projects pop up.
Are there many similar projects that aim at a quick deployment scenarios?
There's Glade which allows you to create your interface and callbacks to be saved in a file. Using the library GladeXML, you can essentially generate all the required code at runtime without all the maintainability woes of actual code being written to disk.
While it works well enough for Rails and maybe now also Ubuntu, in general I am wary of generators. Seems to me if there is a need for a generator, it could be a sign that the framework is unnecessarily complex. Since the required configurations and whatnot can apparently be generated automatically, why expose them to the user at all?
I don't know about Quickly or Glade, but Rails doesn't really use generators in the way you're thinking of. What Rails calls generators are more like the new project wizards or new class wizards,etc. most IDE's like Eclipse, etc. They create a couple of files with the skeletal outline of the required structure, etc.
It's not like some of the "enterprise" java tools that generate thousands of lines of incomprehensible code.
I admit my anti-generator attitude came from experiences with Java. But even with Rails I have problems to remember all the parameters for the generators. (OK, an IDE could help - but if I need an IDE to be able to cope, I am treading close to Java territory).
As I said, it seems to work well enough for Rails, but I am also not 100% in love with it. It worked especially well for the initial "write a web app in 5 minutes with Rails" hype, but seems less useful in practice.
In practice people don't use scaffolding. It's good generating an initial skeleton but you're generally recommended to only use that as a starting point for implementing your own interface.
No, what makes Rails so great is not the scaffolding or the generators. It's the philosophy of Don't Repeat Yourself and having a smooth learning curve, and how everything in it reflects that philosophy.
If it generates a lot of code, then yes. But it may also just generate 2-3 lines of boilerplate code that's very annoying to keep typing over and over.
When defining a class you need to:
- Create a new file for the class.
- Type the class keyword
- Type the class name.
- Type the parent class name.
- Type the constructor definition.
- Type a call to the parent class's constructor.
This is all boilerplate and can easily take half a minute. How am I doing things wrong? Are you saying there's an easier way?
Or I can just type something like "./script/generate class Foo Bar" and be done with it and save like 15 seconds.
Yeah, that's actually a pretty odd way of doing things. In perl with moose (or just perl6) you just type 'class Foo Bar' in your file and you're good to go.
It's good that this is built in Python. I used to use C to write desktop apps, but developing in C is very, very slow. Using Python not only allows quick development, but it also allows you make "binary" packages that run on all Linux variants irregardless of ABI differences.
However, Quickly is doing something wrong compared to Rails: marketing and polish. The Quickly website is just a Launchpad page, and their documentation is just a wiki. They should have a proper website with documentation in an easy-to-read format that doesn't feel messy, maybe a few screencasts too. The current "website" looks to amateurish and doesn't exactly invite me to use it.