Project Language (was: PHP Framework)

1 view
Skip to first unread message

Alan Smith

unread,
Oct 28, 2010, 2:07:24 PM10/28/10
to zesty...@googlegroups.com
Dinis, Alex, and everyone else,

Le 10/28/2010 06:34 PM, Dinis Lage a écrit :
> Anyhow, the main reason to use PHP is because it just works anywhere, but
> with the resources at hand that's not an issue and so I'd vote for both
> rails or django.

While there are no software restrictions, there are restrictions in experience and willingness. The server admins at AmbitiousLemon don't have lots of experience hosting rails or django apps. However, they have plenty of experience hosting php apps.

> Since we're starting from scratch, we should definitely consider another
> language. I occasionally work with ruby (and rails) and like it very much.
> As for Python (and django) never used it but would be very happy to get my
> hands on it.

I'm a fan of python as a language. It's pretty, it's readable, it's almost edible. Rails, at least last time I looked, is great for building apps quick but when you start doing abnormal things, it gets messy and "hackish".

My reasons for choosing php:

* It's *very* popular and widely known (http://langpop.com/).
* If you know php well, you can write good code (you don't need to know everything about a framework).
* This project will be open source, the more people that can use it, the better.
* Anyone who joins in the future can jump right in, they don't need to learn, possibly, another language, and a framework.
* It's dead-simple to host.
* A lot of the team here already knows php.

If you have logical reasons for choosing another language, I'm here to listen. If you want to use another language because it makes you happy without reason, don't start a flamewar by posting how great it is for your soul.

Alan

Alexis Métaireau

unread,
Oct 28, 2010, 2:21:36 PM10/28/10
to zesty...@googlegroups.com
Le 10/28/2010 07:07 PM, Alan Smith a �crit :

> While there are no software restrictions, there are restrictions in
> experience and willingness. The server admins at AmbitiousLemon don't have
> lots of experience hosting rails or django apps. However, they have plenty
> of experience hosting php apps.

Python, applications are dead simple to host too, and we'll need to
acquire some knowledge on that anyway,if we want to provide a reliable
python hosting service, I guess.

> I'm a fan of python as a language. It's pretty, it's readable, it's almost
> edible. Rails, at least last time I looked, is great for building apps quick
> but when you start doing abnormal things, it gets messy and "hackish".

Python and django propose some really good solutions to develop things
quickly.

Some reasons to choose python:
* There is a huge community, and a lot of interesting projects built on
top of it.
* The existing code is most of the time well documented and tested,
that's not the case with most of the PHP lib for instance
* If you know python well, you can write good code. The learning curve
is really awesome.

But, that's true, Python is not as well known as PHP. It could be a
solution to adopt if the people for the AL team want to try something
else. If those people are doing some php now, they'll probably really
enjoy the possibilities offered by python, as I had done a year ago.

The logical reasons that could be behind the choice of php are: it's
really pleasant to code with, and I'll be in, really more than if the
code is wrote in php, I guess, because I've moved away from it now.

The reasons I've moved away from php are mainly because there is a huge
lack of tests, and of doing things the right way. Lot of people just
hack some code, and doesnt respect the well known patterns that have
proved to be right, and this have lead (again, that's only my own
opinion) to a poor community.

And, Python was a really good learning experience, so if I could make
you discover it too, it could be great.

But I'm not pushing python here. The point is: maybe some people here
want to learn python or django, so it could be a great starting point,
'cause people wanting to discover are more likely to be passionated
about a project, no ?

Alex.

Alan Smith

unread,
Oct 28, 2010, 2:42:48 PM10/28/10
to zesty...@googlegroups.com
Alex, 
 
Python, applications are dead simple to host too, and we'll need to
acquire some knowledge on that anyway,if we want to provide a reliable
python hosting service, I guess.

Yes, true, but the last thing we want is the control panel to go down because we don't know the ins and outs of the server. Duncan, would you be comfortable hosting a python web app?
 
Python and django propose some really good solutions to develop things
quickly.

Some reasons to choose python:
* There is a huge community, and a lot of interesting projects built on
top of it.
* The existing code is most of the time well documented and tested,
that's not the case with most of the PHP lib for instance
* If you know python well, you can write good code. The learning curve
is really awesome.

You are correct but those all apply to python as a language, not django.

The reasons I've moved away from php are mainly because there is a huge
lack of tests, and of doing things the right way. Lot of people just
hack some code, and doesnt respect the well known patterns that have
proved to be right, and this have lead (again, that's only my own
opinion) to a poor community.

It is not surprising that you dislike the way php projects are run. Take a look at the code for Wordpress and you'll probably never give php a second chance. However, any language can create bad code and any project can be executed poorly. It is up to us, mainly me, to see to it that things like unit tests are used where appropriate.
What "well known patterns that have proved to be right" are you referring to? Keep in mind that php was originally developed to go straight into html to make the pages dynamic. There was no plan, originally, to turn it into a full-fledged language.
 
But I'm not pushing python here. The point is: maybe some people here
want to learn python or django, so it could be a great starting point,
'cause people wanting to discover are more likely to be passionated
about a project, no ?

That's possible but this is not the project for people to be discovering a new language/framework with. The original AmbitiousLemon control panel was burned by someone who was using it to learn php, and frankly, that didn't turn out well.
There are a couple volunteers that have signed up to specifically help out with the php code. Changing the language would probably alienate them.

One thing I forgot to mention in my last email was, php was designed for the web. Python is an entire interpreted scripting language. People coming to this project looking to help with the UI are not going to assume they'll need to know python. More people looking to help with web projects will know php better than python, if at all.

Alan

Dinis Lage

unread,
Oct 28, 2010, 2:42:56 PM10/28/10
to zesty...@googlegroups.com
This project is for a control panel so it only makes sense to host it if you have at least some VPS, so, people wanting to use it can install whatever they want. It's probably even easier to setup python than ruby.

Another big argument for other languages and frameworks is the IDE integration. Code auto-completion, "one-click" documentation about functions are things that speed the process of programming. With php I always see myself checking and re-checking the manuals etc. I feel this breaks my productivity and interrupts my line of thought many times.
Dinis
2010/10/28 Alexis Métaireau <ameta...@gmail.com>

Alan Smith

unread,
Oct 28, 2010, 3:25:05 PM10/28/10
to zesty...@googlegroups.com
This project is for a control panel so it only makes sense to host it if you have at least some VPS, so, people wanting to use it can install whatever they want.

I was talking about third-parties who wanted to use/test it privately, not companies. I'm sorry, that wasn't clear.
 
It's probably even easier to setup python than ruby.

That may be true but neither are as easy to setup as php.
 
Another big argument for other languages and frameworks is the IDE integration. Code auto-completion, "one-click" documentation about functions are things that speed the process of programming. With php I always see myself checking and re-checking the manuals etc. I feel this breaks my productivity and interrupts my line of thought many times.

If you use Eclipse there is some support. I don't use an IDE, vim is my best friend, so I don't know how good it is but it does exist. (http://bit.ly/BpBqV) If you're more the NetBeans type, there's support there too. (http://netbeans.org/features/php/) If you're like me and use vim, then there's some great support. (http://www.koch.ro/blog/index.php?/archives/63-VIM-an-a-PHP-IDE.html)

If you use php a lot you memorize the parameter order of the most used functions. This is true for all languages, though php is infamous for not keeping the order consistent. The more you use php, the less your thoughts will be interrupted.

Alan

Dinis Lage

unread,
Oct 28, 2010, 4:26:46 PM10/28/10
to zesty...@googlegroups.com
On Thu, Oct 28, 2010 at 20:25, Alan Smith <skr...@gmail.com> wrote:
This project is for a control panel so it only makes sense to host it if you have at least some VPS, so, people wanting to use it can install whatever they want.

I was talking about third-parties who wanted to use/test it privately, not companies. I'm sorry, that wasn't clear.
 
It's probably even easier to setup python than ruby.

That may be true but neither are as easy to setup as php.
 
Another big argument for other languages and frameworks is the IDE integration. Code auto-completion, "one-click" documentation about functions are things that speed the process of programming. With php I always see myself checking and re-checking the manuals etc. I feel this breaks my productivity and interrupts my line of thought many times.

If you use Eclipse there is some support. I don't use an IDE, vim is my best friend, so I don't know how good it is but it does exist. (http://bit.ly/BpBqV) If you're more the NetBeans type, there's support there too. (http://netbeans.org/features/php/) If you're like me and use vim, then there's some great support. (http://www.koch.ro/blog/index.php?/archives/63-VIM-an-a-PHP-IDE.html)

I've become quite fond of NetBeans and been using it for some time. The difference in the support of java/ruby and php is abysmal. Base php works rather well in NB but from the moment you start using frameworks, most of it is lost, unlike what happens in better structured languages. Vim is great for simple stuff but requires too much tweaking and learning for more complex use cases. But well, what ide each person uses is a personal choice.
 

If you use php a lot you memorize the parameter order of the most used functions. This is true for all languages, though php is infamous for not keeping the order consistent. The more you use php, the less your thoughts will be interrupted.
 
That's true when you are programming in a single language, but when you start using Java, C#, ruby, php, or others in the same time frame you basically need to clear your head from secondary information, like argument order.
 

Alan
 
Dinis

Alan Smith

unread,
Oct 28, 2010, 5:02:53 PM10/28/10
to zesty...@googlegroups.com
Dinis,

Semantics and poor IDE support aren't something I'll base the decision of language on. If you're not as efficient in one language as another, that's okay. The decision of language will be based on which is best for the project, not autocomplete support or anything along those lines.

It is important we don't lose sight of the big picture and get bogged down in arguments over which language is better.

Alan

Alexis Métaireau

unread,
Oct 28, 2010, 5:53:48 PM10/28/10
to zesty...@googlegroups.com
Le 10/28/2010 07:42 PM, Alan Smith a �crit :

> There are a couple volunteers that have signed up to specifically help out
> with the php code. Changing the language would probably alienate them.
Okay, I think that's the main point. If there is some people who want to
volunteer for PHP code, that's great, and I don't want to change that.

BTW, Thanks for pointing all that to me, things are really clearer now.

Alex

Robert

unread,
Oct 28, 2010, 6:27:23 PM10/28/10
to ZestyPanel
I'm python developer (6+ years) and django developer (3+ years) and I
like them very much.
For python I don't have much to complain, everything I want is there
(I developed
in many other programming languages, 12+ years as professional), and I
don't want
to go anywhere else.
For django, since this is the only web application server techology/
framework
I experienced, I'm not good person to make any comparison.
Personally
I don't have any bigger complains (this one is the biggest: harder
deployment compared
to php).

For the project that you're making decisions, language/framework/
technology
choice is important but should be not *so* important :
(Peter Norvig)
"[Programming] language choice is not as important as all the
other
choices: if you have the right overall architecture, the right
team of
programmers, the right development process that allows for
rapid
development with continuous improvement, then many languages
will work
for you; if you don't have those things you're in trouble
regardless of
your language choice."
via http://www.jacobian.org/writing/quotes/norvig-languages/

At the end, I would aggree with the last Alen's post, project goal
should be priority nr. 1 - and nothing else. My proposal is
following:
you could make two estimations for each of proposed solutions:

- short-term: how much time you'll need to get the first working
version
of application(s)
- long-term: how much time you'll need to spend on all new features/
fixes
using this technology in the first production year

Based on this two-column table you could easier make a *right* choice.
At the end, if first options have very close results, personal
preference should
make the final decision.

Mark Steve Samson

unread,
Oct 28, 2010, 8:20:34 PM10/28/10
to zesty...@googlegroups.com
2010/10/29 Alexis Métaireau <ameta...@gmail.com>

Le 10/28/2010 07:07 PM, Alan Smith a écrit :

The reasons I've moved away from php are mainly because there is a huge
lack of tests, and of doing things the right way. Lot of people just
hack some code, and doesnt respect the well known patterns that have
proved to be right, and this have lead (again, that's only my own
opinion) to a poor community.


I believe this is because of the popularity of PHP. Give 'em guns and they will shoot. You can start learning PHP simply after installing an AMP stack. PHP was built for the web. Ruby and Python were built for just about anything. You have to learn them first before you get your hands on Rails and Django. With PHP, you just have to learn PHP. More coders -> More bad coders. And because Rails and Django users have to learn more, they have more grasp of their languages than the PHP crowd.

--
Mark Steve Samson
Freelance Web Developer
http://marksteve.me

Mark Steve Samson

unread,
Oct 28, 2010, 8:30:09 PM10/28/10
to zesty...@googlegroups.com
On Fri, Oct 29, 2010 at 4:26 AM, Dinis Lage <dini...@gmail.com> wrote:
I've become quite fond of NetBeans and been using it for some time. The difference in the support of java/ruby and php is abysmal. Base php works rather well in NB but from the moment you start using frameworks, most of it is lost, unlike what happens in better structured languages. Vim is great for simple stuff but requires too much tweaking and learning for more complex use cases. But well, what ide each person uses is a personal choice.

I think this is because of how PHP frameworks are documented. Not all use PHPDoc. Some provide their own style of documentation. How does language structure affect coding in NB? I haven't personally used it though.

Mark Steve Samson

unread,
Oct 28, 2010, 8:43:02 PM10/28/10
to zesty...@googlegroups.com
Btw, I'm good with either PHP or Python. I've grown up with PHP and have done a couple of projects in GAE. Maybe we should have a little poll to get some perspective.
Reply all
Reply to author
Forward
0 new messages