Hi I've been working with Django for a few months and find it really helpful. Is there a similar framework for other programming languages such as Java or C#?
The problem I have with Django is finding a server to host the project because supporting servers are more expensive and harder to find.
In Django I find the following items useful: the object-relational mapper, admin interface and url management.
Thanks!
If you're only looking for an alternative because of the hosting aspect of it, I suggest you simply find suitable hosting as opposed to throwing away the framework you like.
If you are looking for a good Django host, I HIGHLY recommend Webfaction.
If they're not your cup of tea, check out djangofriendly.com, which has a huge list of good Django hosts.
If you're looking for the cheapest hosting then PHP is probably your choice. The downside is that PHP is a horrible cobbled together language, and a lot of the PHP code out there is equally terrible (par for the course, I suppose).
Actually since django can run on fcgi, its theoretically possible to run it on any shared host. Here's some instructions for site5 http://www.codekoala.com/blog/2008/installing-django-shared-hosting-site5/
Getting hosting for django should be much easier and cheaper than java and asp.net.
Consider deploying on GAE, which is free for small sites.
http://code.google.com/intl/da/appengine/articles/app-engine-patch.html
If you would like to develop with the help of the vast number of modules in CPAN, then Catalyst - Web Framework is a good choice.
You can create the Dynamic Data Site in Visual Studio 2010, which does the same thing like Django-admin site. It requires Entity Framework.
Related
I have googled some time now trying to find a good sample application that is written with the Google Web Toolkit (preferably with Eclipse). I'm looking for a full web application with a database and stuff like the following program on codeplex which is written in ASP.NET and has a login system:
http://mvcmusicstore.codeplex.com/
I found some other sites but they do not contain the exact details that I need:
http://code.google.com/p/gwt-examples/wiki/project_MySQLConn
http://code.google.com/intl/nl/webtoolkit/examples/
I want to learn GWT because I think it has some great advantages.
Generate (good and cross-browser compatible (>IE6, >FF~2.0, >chrome1)) JavaScript at the server-side for the client that will save CPU cycles on the server
Use Java at the server (instead of C# with ASP.NET) which is free to use and deploy, and is a good OO language
Program and test in other OS's than windows (LAMP server, free :) )
Out of the box HTML5 support which can be used as a replacement for flash/silverlight animations to save bandwidth
Eclipse has a visual designer plugin (GPE) where you can put widgets on and works like WPF/Silverlight where I have already some experience with
The widgets are great and I expect them to work like the WPF/Silverlight equivalents (stackpanels, grids etcetera)
Google uses it (so it must be great :P )
Some disadvantages in my opinion:
No good support for VS2010 (super IDE of course)
Not as many users as ASP.NET or PHP (?) so less good code examples to find
Not many I think? Maybe some little debug difficulties because of the generated JavaScript
Please criticize this as much as possible ;)
GWT projects are almost identical to other Java-based web applications. Client side has the major differences (and limitations therefore) of course, but everything else is pure Java. Maybe it would be better to start off by learning Hibernate, servlets and such? Find out the best techniques for You and then dig into GWT.
EDIT: I found a really detailed GWT tutorial http://www.vogella.de/articles/GWT/article.html
I am thinking in starting a personal pet web project to experiment with different things and extend my knowledge.
I use Java a lot at work (for web applications :D) and was thinking in making my own in Python since I kinda like this language but never passed the simple scripts stages.
I want to step up a gear regarding Python (using 2.6.5) and don't know what to expect or what framework to choose from: Django, Pylons, web2py etc.
I also don't know how much these frameworks will offer me and how much will I have to write from scratch.
I could use a comparison with Java if somebody can provide me with. I'm thinking at filter functionalities such as sitemesh, custom tags like JSTL; In Python, can I write clean pages of HTML with tags in them or write a lot of print statements (something like servlets did in Java etc?
I don't know exactly how to phrase this question.
I actually need a presentation of how web development is performed in Python, at what level, and what the web frameworks bring to the table.
Can you share from your experience?
TIA!
hi try bottle python framework (bottle.paws.de / bottlepy.org) its really nice to use blistering fast and gets out of your way + the best thing about it is that its one single file to import, i recently migrated from PHP and i have to tell you am so ... loving it!
Python web frameworks run the full gamut of capabilities/facilities, all the way from shims around WSGI such as Bottle and Flask, all the way to full frameworks such as Django and TurboGears, and even "megaframeworks" such as Zope. Each does things slightly differently, but there will be some familiarity from one to the next.
It may sound strange, but there's no need to know "how web development is performed in Python" to start doing it.
In fact, working with language/framework/etc is a single most reliable way to get understanding of it. You won't gain a lot from one-page summaries.
Also, comparing it with Java isn't likely to help. There's no point in doing "Java-style development in Python". If you want to benefit, you'll need to clear your mind and do everything "Python-way".
As to what Python framework to choose, Django seems like like a good starting point. It's very popular, which means you won't be left without tutorials/documentation/help.
PS Short version: just do it.
Python web frameworks do it in a similar way as some Java-based frameworks. I can speak for Django here.
A good comparison could be Play! vs. Django. Both of them foster using an MVC architecture (or MTV = models, templates, views) and already provide you with a lot of things like CRUD operations in admin pages, ORM, authentication, URL configurations, a template language and much more.
Other Java-based frameworks might differ a lot, and I can't give you a general answer. Depending on the choice, there are only few differences. You can simply choose the language and framework you like the most. I'd recommend to go through some tutorials (Django tutorial, Play! framework tutorial for instance) and look which one works best for your needs.
I observed that generally all good CMS, forums and portals are written in PHP only. Some of them are written with the help of Python, Ruby, etc.
Some of the CMS which were build in Java, were not so flexible as wordpress is. Is Java (Java EE) not good for building a wordpress like CMS?
I think the primary reason is that many CMS's have grown from an initial small implementation instead of being designed from the start to be able to be big.
Small implementations are nice and easy to do in PHP or other scripting languages, and you can grow them pretty big, but if you know up front that you want something big you make it part of the original specification.
These days most people agree that you need a strong, fast, scalable runtime system where the major contenders these days are the JVM and the .NET runtime.
When you have made THAT decision, PHP is not the immediate, intuitive choice for a big scalable system.
Facebook, portals and forums use PHP. Banks and flight ticket reservation systems use Java. I think it pretty much summarizes their difference.
With amusement applications, it's important to get things done quickly and easily, and some dirtiness is acceptable. With real business, robustness, security and clarity are the primary goals, overriding the ease of getting things done quickly.
i observed that generally all good
CMS, forums and portals are written in
PHP only.
That's a broad generalization. Case in point: one of the most widely-used CMS systems in the world is Microsoft SharePoint, written mainly in .Net/SQL Server.
To your specific question, PHP has a great community around it and lends itself to rapid application development. Technically, Java is arguably better structured and more object-oriented, but in my experience there is a higher bar to entry.
Ultimately, it comes down to what you are comfortable with and the specific requirements of your application.
For an example of a fully-featured CMS written in Java, take a look at Alfresco.
As always, it depends :)
An advantage of PHP is that it is available on a lot of web servers and quite "simple" to program. Also, it was designed with the intent of being integrated into web sites.
In principle, you could do this with Java as well, either with JavaScript (which really doesn't have too much to do with Java...) or as an Applet. The important difference is that applets are run on the client side, so when you actually want to manage content it would be on the wrong end, and you'd have to think about how to authenticate etc.
I'm planning to do a little project to expand my knowledge in programming. The application I'm trying to build is an Internet Cafe Manager (I Know there are a lot software out there that is similar to what I'm building.). I had chosen this project since it involves connecting to a network, displaying data and time, and has a client and server version of the application.
Now I wan't to get your opinion on what language and approach do you prefer for me to use. I am thinking I will be using Air or Flex since I have a some experience with flash and I am also a fan of good interfaces of AIR/Flex. Also I am thinking that there maybe some read AIR application I can integrate to rapid my development. Java is also in my list, Two of my programmer friend suggest that I will go for Java, But I don't have any background on java.
What Do you think? Please let me know your opinion.
Thank You!
This is definitely a subjective question but it really depends on what you are most comfortable with. Personally, I feel that the tools for Flex/AIR development are much easier to get started with the those of Java. This is especially true if you are taking about using an IDE for Flex development. Using the Flex framework could definitely allow you to get more done quickly.
Just my opinion.
Java is definitely a useful language but can be a big pill to swallow if you are just starting out.
Hope this helps!
To build a Web Application, what kind of open source web application frameworks / technologies are currently present that would be:
Faster to learn.
Ease of use.
Have widgets for rapid development(From a GUI perspective).
Database integration.
I would want this web app to communicate to a Java client.
I am not bound to Java on the server side and free to try out any good rapid application framework.
To summarize, I haven't done much work for the server side hence am not conversant with the tools and technologies for the same.
What would you suggest?
Any and every input would be welcome!...
There is no single "right" answer to this question. As a Java programmer of some 10+ years when asked this question my usual answer is... PHP. There are several reasons for this:
Low resource usage (Apache, nginx);
Cheaper hosting;
Really low barrier to entry;
It's really Web-oriented rather than being general purpose that can be used for Web (like Java);
The fact that PHP scripts aren't persistent (like Java servlets are) between requests makes them much more forgiving and less likely to cause memory leaks and other problems;
No deployment step (like Python, Perl, etc). I'd say this is about the best thing about dynamic scripted languages. Just save the file and click reload on your browser;
PHP might be inconsistent in syntax and several other things but it's also mature and used by some really large sites on the Web (eg Facebook, Yahoo, Flickr, Wikipedia);
PHP is by far the most popular Web development language.
Widgets can be done by any manner of Javascript frameworks like YUI, ExtJS, SmartClient, jQuery UI, etc;
PHP fits well with MySQL.
That being said, a lot of these apply to other languages too (eg Python/Django).
I don't think you necessarily need a framework for PHP but if you do I'd look at one or more of:
Kohana: it's like a more modern version of the more popular CodeIgniter;
Zend Framework: it's modular so you can use as much or as little of it as you like;
Smarty: it's a powerful templating system.
Django has a few notable 'rapid' items including automatically generated administrative interface, bundled ORM (lowers dev time by not having to write SQL and some other code), and a large community with several re-usable apps.
Where Django (or Ruby on Rails or any other MVC framework for that matter) isn't going to be rapid is the learning curve when you first come to developing on them. Django (and RoR) have quite a bit of seperation-of-concerns and if you're not used to that sort of environment, it takes a while to learn the framework. If you're using an ORM that's something to get used to as well, and then of course for any framework you go with there's the API to learn as well.
PHP on the other hand is a little more intuitive in terms of where you put the code and how pages make up your web app. It'll basically let you slap code wherever you want so in the beginning it will probably be faster. In the end it will be quicker but your final product will be sloppier and probably require re-factoring later on.
This comes down to a question of what's the use of the framework. If it's for a hobby site, just go with what's easy (php), otherwise you might want to consider a well-supported MVC framework.
As others have pointed out, jquery is probably the pick for pre-made GUI widgets.
Edit -- And apparently now Django (as of 1.1) has a very awesome set of unit testing tools it comes bundled with. Things like an extended TestCase specifically for Django, a test client (you can do test page request w/o an actual client or server), a tool to give you a % of test coverage you have of the project, and a bunch of other neat stuff.
You've already tagged your question with "java", "php", "python", and "ruby-on-rails", so researching and learning more about those tools would probably help to answer your question.
However, I believe that rapidly building an application is almost never actually the correct goal. Normally, what you want to do is build an application that can be rapidly maintained -- that is, maintained with the lowest possible overall development cost over time.
I would say part of the learning curve will go into understanding concepts. I have been learning about web-apps for some months now, and with my improved understanding of concepts right now, most frameworks show very much similarities. Here are my results so far:
PHP: Great to learn about concepts for doing forms, http-post-requests, http-get-requests. easy interaction with database layer, and it is possible to obtain a working basic application in couple of hours. Almost no hassle with build-systems and web-server configuration.
Ruby-on-Rails: Great to learn about REST and more complicated CRUD applications. Great to learn about the complexity behind MVC and especially simple and powerful interaction with the database layer by using ActiveRecord. Introduction of meta-programming (code-that-writes-code, code-scaffolding) is great. Nice opportunities for free cloud-deployment, e.g. heroku.com and there is a very active community
Java: Powerful interaction with web-server possible (Tomcat, JBoss, ...) MVC is rather complicated here, and in general many configuration-steps necessary (build systems, ORM layer, ...) Grails is a great simplifaction and introduces meta-programming for Java. Jboss Seam introduces REST for Java (but have not looked into this yet)
There are tons, which ones are "good" depend on what you need.
There's Ruby on Rails, which is pretty handy.
For python there's django.
For PHP (I spend a lot of time dealing with PHP), you can look at:
symfony
cakePHP
Solar
Zend Framework
Which are all good in certain situations, and annoying in others.
Speaking only in terms of speed of development, Ruby on Rails is the fastest one out there.
I would vote for Grails.
You can build an runnable Java Web application within 5 to 10 minutes by using the following online Java web application generator:
http://www.webappexpress.net