PHP-GTK based IDE for Midgard and PHP
bergie writes: "The new IDE for Midgard and PHP developers is entirely written in PHP using the PHP-GTK toolkit. PHPmole aims to provide the free software world with a web development environment comparable to DreamWeaver and MS Visual Studio, with additional content management functionalities. PHP is not only for web developers any more ..."
PS, FP?
Greetings, for free software!
Dreamweaver is one thing why people have difficulties migrating from Windows to Linux/ I miss Dreamweaver a lot, but hopefully PhpMole will help us out of that lack. Of course there are a few great HTML editors for Linux, like bluefish, but these can't replace a good web-dev program like Dreamweaver!
Life sucks.
I always saw PHP as a nice tool for exactly one job - quickly hacking toghether dynamic web sites. It's great at that, but I never felt it suitable for bigger projects (not even bigger websites, but GUI apps - I guess typing <?php in every file gets boring really fast...)
For example, it's OO is rather weak - and it totally lacked any support for modularization, except the dirty include_once hack.
Programming can be fun again. Film at 11.
After reading some fo the previous posts, I though it would be nice to explain why I chose to write phpmole in php.. however it's a bit dificult to avoid the 'one language is better than the other ' issue, anyway this is roughly some of the reasoning.. - very much my opinion having done a bit too much PHP (or was that LSD :)
.Net's hidden adgenda appears to make all these language imposilbe to integrate into the .NET CLR by design (as it has design critera that alienates non declared variable languages)!
:)
......
These where some of the options (That are vaguely cross platform).
A compiled language C or C++ - the history of programs like evolution, which suffered extensive delays and has been the driving force of miguel (from what I've read/heard) moving toward C# is evidence that the concept of developing all of a large scale application in only a high level language is fraught with problems - generally thought to be problems with memory management, (Im not actually sure that C# will prove a much better alternative).
Java and C# , bytecode compiled languages, object orientated languages with strict variable definitions, again, these offer a few benifits over the high level languages, where the reduction of memory management consideration in coding improves productivity. It's just since C# is not ready on linux yet, and Java is a pain to install on debian (thanks to suns licencing), And from a long experience of getting Java going on different platforms it was obvious that trusting MS to keep java running correctly on windows was a recipe for disaster!.
Scripted, loose typed (non decleared variabled), runtime bytecode compiled languages like Python, Pike, Perl, and Ruby - These are extremely good as prototyping languages where the slower bits can be speeded up by writing extenstions in C etc. Almost all of these languages have similar advantages, Perl and PHP have strong variable identifiers, ruby and pike have strong object orientation. - noteable in
Others like delphi - which is not open souce, or particualy stable on linux....
lisp and it's friends - which after having spent 3 years writing scripts/applications in, I never would want to touch again.
Having developed in Pike,Python and Perl
(they do have their good points, but these are the ones that are -for me - significant downsides)
Perl - write once, never touch again - it is near impossible to write clear readable perl = even a 20 line shell script is a pain to work with later.
Pike - nice language, but it has a very small following and limited documenation (not critical mass)
Python - unclear object instantation referencing - difficult to read if you are using a static or dynamic class reference. (I believe that has improved, but it was increadibly fustrating to deal with) - probably the only other serious competition to PHP....
Ruby - again looks like another very nice language, similar to pike, but the big issue is that critical mass is important as it affects the quality and quantity of both documentation, extensions and sample code that are made available.
So in chosing a language for phpmole, these where the factors that where important.
1. Speed of development - no double compile/execute process
2. Documentation - online (well at least for the main language)!
3. Clarity of reading pure code - following most of PEAR rules tends to make PHP that reads like a book.
4. Object orientation - just the basics!
5. Source code! - the language source was written and organized in a clear enough way that it could be fixed if necessary. = no unexpected problems.
6. Speed - since there only a small load up 'compile' penalty on the language start up, after that it behaves like any other bytecode language.
7. Similarity to C - the extension language - making it easy in theory to build accelerate a section by rewriting it in C.
8. Sample code and libraries already written that can be extended. - Although most people think of PHP as a few prints in a web page, it has a much better written set of libraries in PEAR.php.net and a big black hole of libraries from phpclasses.upperdesign.com.
9. large existing userbase - which contributes to 2 & 8 and may even contribute to the mole
10. cross platform - other than Ada (which I've never tried), the only other option would be java which has the same downsides as delphi in stability on the desktop.
Things that where not available that are not important in 98% of development - and make life confusing anyway..
1. Weird and wonderfull Object orientation and functional features - polymorphism and all those other much banded catchphrases but totally useless for rapid applicatoin development and tend to cause more problems than they solve.
The only downside that I have found so far in PHP GTK is the lack of thread support , for the most part this can be worked around (using gtk::events_pending() calls, or forking(pcntl), sockets and a bit of intelligence...), - adding threading obviously has significant downsides is that it is a large black hole of introducing bugs from poor variable locking as well.... = give yourself enough rope
Obviously with PHP5 , the multiple interitance (using aggregation), exceptions - catch throw, and yet more extensions available, It will make developing applications like phpmole will become even easier.
As far as design, from my impressions - PHP is designed to be similar to C/C++, but with variable identifiers and a simplified 'user friendly' object orientation.
anyway a discussion like this could go on for ever....
Taking PHP to the next level: phpmole, php codedoc, php-gtk pear installer, DataObjects for php, ldap schema viewer and
Can you supply more detail on your experience with "lisp and its friends"? What implementation were you using? What kind of apps? I've been quite happy using Scheme in web apps for the past few years.
Heh. A little offended PHP people get? So I'm modded down, but no one has any defense of it? Good work, my slashkiddiez. :)
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
phpmole is a start, and check this out, it was on freshmeat yesterday : a php webserver
:)
php is becoming the next great scripting language, after all perl and python had their time
fuck you, idiot.
Heh. Further proving my point! Not only have you any real defense, you post as an AC. When it comes down to it though, I'm the one who's a schmuck- because I haven't learn to expect less from you people.
It is funny how often on slashdot you have situations where someone has had problems with some technology, yet others attack them for that, because they personally have not had those problems. Instead of trying to legitimately help those people through their problems and maybe, just maybe, considering that the problems stemmed from issues in which those who did not have problems never tried, so therefore are unqualified to argue. Actually, the fact is you are NEVER qualified to argue with someone that has problems. Either they made a mistake in which you can help them solve, or they had a legitimate problem... arguing and throwing a fit on a forum (or in real life) will NOT change that. Intelligent people solve problems, monkeys rage and cover them up (yes that includes denial and hypocricy).
With that 'logic' I guess I could reason that since I have driven drunk so much and never had an accident, that it is not possible. All those others that kill innocents are just 'wrong', because there IS NO problem with drunk driving! And if you disagree with me, I will merely shout it LOUDER!
With that in mind, what is then the best solution for maintenance. Key desires are abstracted design elements to encourage reuse between all components, along with a framework for future projects/elements that you do not want to limit to one particular language or implementation. Would PHP be a good solution for a quick fix? Can PHP create data formats for storage and interfacing that will easily (hahaha) be usable by other languages like Java? Perhaps first creating a more Java friendly system that PHP can also access with little overhead? (rumoured desire is RMI, so I am leaning for Jini right now just because I want to learn it :) Then once operational the optimization can happen for different sections, converting to Java if needed (if only for the API and consistent calls), or writing C++ wrappers (apparently that is desired by some talking heads)... what to do, oh what to do? oh yeah... there are also a TON of datastores of various types that need to be normalized and made to play nicely together.
Perhaps simply coding under the influence will make all those problems solve themselves, believe I shall try that later!
I seek not only to follow in the footsteps of the men of old, I seek the things they sought.
I seek not only to follow in the footsteps of the men of old, I seek the things they sought.
Here is PHP in action pulling quotes from Yahoo?? http://pennypros.com/picks.html