16 ms·
PHP Addiction
- papsosouid 14y ago>the first question that comes up is what to use instead, and they’re met with a barrage of difficult choices and wildly different opinions and recommendations. The real answer is "it doesn't matter". Of course python people will try to convince you to use python, and ruby people will try to convince you to use ruby. But both groups will agree that either language is far better than PHP. And as someone who likes neither of those languages, I would agree with both of them, just pick one. There's no "wrong choice" to worry about.
- irishcoffee 14y agoVery much this. The comparison he tried to draw with Linux distros, same deal. Who cares? Try one. You're a hacker, go grab a language and hack some code. No, you won't be as good with Python when you start as you may currently be with PHP, big deal. A weekend project is the PERFECT time to learn a new language/framework. Sure the weekend may become 2-6 weekends, who cares? If I am not mistaken, Twitter and Reddit have both changed very large parts of their codebase from one language to another, so I don't really know if I buy that argument either. Finally, I think programming languages should work for the guy writing the program. I made a point of learning everything I could (and continue to do so) about every language I come across. So when I need to do something, I have 6-7 toolboxes at my disposal, as opposed to 1 or 2. I write in 5-6 different languages every day at my current job, and have become a very valuable employee because of this. This is coming from someone who has only the most basic experience with PHP, take it with a grain of salt.
- devgutt 14y agoThere's no "wrong choice" to worry about. Famous last words ;)
- tedunangst 14y agoThe choice does matter. A lot. When I started with ruby, I had to decide between 1.8, or 1.9, or jruby, or several other choices. Then I had to pick sinatra or rails or merb or whatever. mongrel or passenger or thin or unicorn. It didn't really seem like the choice would matter, but then you run into some tiny annoyance, do a bit of research and find out that some other framework doesn't have that problem. So you switch, only to find a new problem. This goes on for a little while until you realize that you could write the whole damn thing from the ground up in lua. The time spent just researching whether it's a bug in my code or their code starts to eclipse the total project time if done in another language.
- jabwork 14y ago"... run into some tiny annoyance, do a bit of research ... So you switch ..." If you pick a solution and run into a tiny annoyance learn to work around it in some way. It is a tiny annoyance. Best case scenario, learn why it's happening, how you can fix it, and (in a dreamland) submit a patch that fixes this for everyone else in the future. Worst-case scenario just find a workaround.
- tedunangst 14y agoIf it's early in the life of a project and you don't have much experience with the framework, tiny annoyances are a warning sign. If the easy things don't work the way I like, what happens when I try to do something hard? The cost of switching is low. I used merb for all of about 10 minutes before giving up on it. I fooled around, created a couple very basic crud pages, and it worked for a bit, then I got nothing but error pages. root cause: I had created a new class called 'fish'. That opened my eyes to the fact that were was so much automagic fairy dust sprinkled about, if anything serious ever went wrong I would never figure it out.
- papsosouid 14y agoYou have to choose between all the same kind of stuff with PHP too. The position was "I'm using PHP, and I can't switch to another language because I am afraid I'll pick the wrong one". That position is silly, because anything you pick is guaranteed to be better than PHP. There's no "wrong" between python and ruby, they are for all intents and purposes the same. As for your specific case, writing your own framework in lua doesn't make ruby a wrong choice. You could have written your own framework in ruby too. Or perl, or python, or even one of those dreaded compiled languages.
- krob 14y agoVery funny :)
- playhard 14y agoi have been a PHP programmer from college. Switching to python was the best decision i made.i'm just in love with python.
- semerda 14y agox3 - it's far simpler to learn due to consistency, more powerful to do both low & high level programming and a pleasure to work with. Just as simple to setup for web as php. Not real reason to be in knee deep php mess.
- RegEx 14y ago> "Just as simple to setup for web as php" That's simply not true. I love Python (I'm using Flask for projects at this moment), but saying that setting up a python web service is as easy as php is disingenuous.
- Killswitch 14y agoAs easy as PHP in what sense? That Python is basically part of all OS' now or as easy as putting in <?php echo "Hello World"; ?> in a .php file and uploading it to your server? I severely doubt it's as easy as the latter. I'd like to see an article that explains in less than 140 chars how to deploy a simple app as Hello World to the web in Python without the use of a framework like Django or Flask. Edit: In the amount of chars Twitter accepts, here's how to get Hello World going in PHP. sudo apt-get install php5 && echo '<?php echo "hello world"; ?>' > /var/www/index.php 85 characters. I'm done. Now let's see this done in Python... Ruby... Any other popular language this quickly.
- hythloday 14y agoecho "hello world" > index.html && python -m SimpleHTTPServer :)
- evanmoran 14y agoThis just made me laugh. It reminded me of http://projecteuler.net/ http://projecteuler.net/ where you are feeling proud because your solution works and then you realize it can be done in one line of one line of Haskel/Python/Perl/Ruby =).
- davidw 14y agoSee, once again: http://www.welton.it/articles/programming_language_economics http://www.welton.it/articles/programming_language_economics It's not exactly mind-shattering stuff, but it's nice to have some common terms to describe the properties programming languages have that make them the kinds of products they are.
- jmduke 14y agoI'll sound like a broken record, but I'm convinced Flask is the perfect transition. It's built for smaller web apps, and rapid prototyping. The system of mapping endpoints to functions is incredibly intuitive -- if you've used Python before, learning Flask is incredibly easy.
- RegEx 14y agoI love Flask: You just do things the way you want, written in Python. You're free to make your own (potentially stupid :P) decisions.
- leeoniya 14y agoi'm on PHP now as well. I would probably choose Bottle simply because it runs on Python 3 while Flask does not. I would go with Flask otherwise.
- eric_bullington 14y agoBottle is very cool, but Flask has far more plug-ins ("extensions") than Bottle does. Flask has nearly all the features that Django does, only they are in the form of dozens of separate extensions. In my opinion, this is a good thing. It's easier to understand the framework when you start with the basics and learn more as you add on extensions. I believe that Flask will move to Python 3 eventually, but at the moment I agree with the decision of Flask's creator (Armin Ronacher) to stick with Python 2.7. In the end, Python 2.7 is probably better for someone new to the language. There's more documentation, and it's still the default Python on most systems(although a few are starting to pre-bundle Python 3).
- AnIrishDuck 14y agoI just did a comparison of bottle and flask for my job. My recommendation: go with flask. Flask has a bigger community, more built-in functionality, some really cool tools (the debugging functionality is far better than bottle), and is essentially the same as bottle in all other respects that matter. As far as python 3 support is concerned: this is a minor annoyance, but it will probably be rectified by the time python 3 is relevant in production environments.
- Timothee 14y agoI've been having a similar problem with the added difficulty* that I don't do development as my full-time job (yet) and have been coding mostly for developer contests and hackathons. So when I start something that has a deadline in 24 hours or just a few days, I can either fall back to PHP to get something going fast or spend most of my time just learning a new language. So, I have been typically going with PHP… I've found that the important thing is to take the time to set yourself up with the minimum environment that can get something, anything going in a different language: that means whatever is needed to print something on a page and get some logic working with GET and POST parameters. Because the nice thing with PHP is that it's so easy to write a single file that displays text on a page, or that responds to POST and GET parameters with some logic behind it. If I started with Ruby for example, I wouldn't know how to do this basic thing. (granted, with Rails and Heroku, this is easy) My plan is to make Python my generalist programming language and I started to look at Flask (http://flask.pocoo.org/ http://flask.pocoo.org/) for that reason: it's a mini-framework that doesn't take long to learn how to do these simple things. I can then play with it for simple things. *though it can make things easier since I can just work on whatever I want in whatever language I want :)
- karlshea 14y agoThe problem is pretty much what the article he discusses mentions: I can copy up a PHP file to any old random web host, and it will Just Work. I would love to be able to not write PHP. But the language that replaces it has to be that easy to deploy.
- ecocentrik 14y agoThe importance of mod_php, it's robustness, stability and speed is completely underappreciated. It's not just the language with all it's quirks that people should be focusing on. The php stack is easier to use and configure than any of the other language/framework stacks making the time to publish faster. Passenger (mod_rack/mod_rails) looks like an attempt to imitate that stack to some degree but so far the results are far from perfect.
- derpmeister 14y agoRobustness and stability are not properties of mod_php.
- ecocentrik 14y agorobustness and stability would both be properties of the language interpreter (mod_php, cgi, fastcgi...) mod_php is stable enough for what it is... robustness is arguable... mod_php might not scale but it's a key component in php's popularity because it's a zero configuration plugin for apache that works perfectly for the needs of 90% of people writing php or running php applications.
- drivebyacct2 14y agoI guess I still am lost as to what frame of reference people are discussing here. What real host [1] doesn't let you run WSGI processes, or arbitrary processes? What happens if you need to make TCP connections, or run a websocket server? [1] This does not include Dreamhost, Bluehost or any of the other oversold shared hosting (please, feel free to search G+ and see complaint after complaint about them, especially recently). I guess I don't see any "real" sites being deployed in environments where only PHP is available. A random script that you want to let someone else use for a few minutes, sure, upload that to randomphphost.com, but a real life public webapp?? If you take the time to learn it, deploying C#, python, ruby apps can be insanely easy. And to be my usual self, deploying Golang apps are beyond insanely simple. (I cross compile from my Mac to my Linux 64bit target, upload and run `sudo ./server -host=:80` and I'm deployed).
- moron 14y agoIts benefits are vastly outweighed by its negatives for me. I've made things in PHP before but if I ever do it again, it will be too soon. Sounds like a nasty addiction.
- sho_hn 14y agoThat's one of the problems with the now-famous Fractal blog, I think: It was a joy to read in the sense that being a Python programmer, it only heightened my appreciation of the achievement that languages like Python and Ruby represent. It's what conscious, determined design gets you and what mistakes they managed to avoid. But it's preaching to the choir. If you've never seen anything other than PHP, you won't understand two thirds of the list or why they're problems. (<- Not looking down on PHP coders there, rather I'm thinking back to when I started out on PHP and am speculating on how I would have received the document.) How do we communicate effectively what makes other languages better to someone with no reference frame other than PHP itself?
- alxp 14y agoMost PHP developers don't start their first programming project from scratch using PHP to write their first web app. It's far more common to start because you are running a blog on WordPress and you want to make some small change. Then you make another and another, then you're writing plugins and suddenly you're a programmer and PHP is your language. So to encourage developers to start with something other than PHP you'll need to lower the barrier to entry to modifying existing software, and also make something as popular and widely useful as WordPress and MediaWiki. This is going to take a while.
- sho_hn 14y agoVery true, that's how I started out as well (though neither WordPress or MediaWiki existed back then).
- AncientPC 14y agoI did a lot of PHP over the years, trying to migrate over to a Python web stack. A big hurdle is ops dev. All hosting services support PHP out of the box. Now I'm faced with the "distro choice". Which server do I use (lighthttpd / nginx / tornado)? Which framework (django / flask / web2py / cherrypy / pylons / pyramid)? Like the original author, I've had a VPS sitting unused for 2 months paralyzed by choices. I eventually decided on nginx / flask, but haven't had the time to set it up. Maybe I should have just used Heroku. shrugs
- xyzzyb 14y agoDisclaimer: I'm a Rails programmer for work and hobby. Interested in learning something that isn't PHP to code your web applications in? Ok. You have a ton of options and this is a very exciting time to be a web developer. Do you want to lean towards stability and proven concepts and work within a full application structure? Look at Django and Rails. Do you want to serve up responses from a simple script without a lot of extra pieces? Look at Sinatra and Flask. Do you want to get in on the cutting edge and don't mind forging some of the path yourself? Look at Node.js and Meteor. Got a high level decision made? Sweet. Now compare the primary languages between your choices (forget the framework for now). After a few minutes looking at each, which reads better to you? Feel free to go on gut instinct here: there are no wrong choices. You've now made a choice for your next learning target. Now: don't spend years. Don't worry about knowing everything about the framework and the language. Google for "X tutorial" and follow the first link that looks reasonable and current. Do that tutorial. Now you have some bearings within the framework and have some idea of how it thinks. Now. Pick something you want to build (a todo list is popular now, it used to be a blog or a wiki). Build it. You will make mistakes. You will be confused. Google for answers (if you're in Node.js or Meteor you will have trouble here) or hack until you get something working. Throw what you built up on github and ask others to check it out. Build something else. Repeat. If you are already a decent programmer with a good grasp of the web and how HTTP works: you will pick up any of these frameworks well enough to work in it in a month or so. In six months you'll be well advanced: especially if there are good books available for the framework/language you are working in. Have fun!
- benguild 14y agoWow, this is EXACTLY the same problem I have... word for word.
- wvenable 14y agoDitto.
- raintrees 14y agoAh, but that's the whole joy of it! Although I have a large enterprise-type code base in Visual Basic/Access Basic, I am still trying to nudge my next project into Python because I love learning new things! Same with my distro - I am currently using Mint, but that may change, when my next boot hard drive fails. Even with VBA, where I had done much of the work using DAO (started in 2005 with what I already knew) I am now trying to make the next changes using ADODB. The benefit being it will be easier to shift the back end to MySQL (or any other ODBC-compliant flavor) and have more then one language used in different front ends. Ah, the learning! My joy in life.... And these days, thankfully little tuition required.
- danso 14y agoI hadn't heard of his Second Crack project until reading this post...it's a static blogging engine similar to Ruby's Jekyll https://github.com/marcoarment/secondcrack https://github.com/marcoarment/secondcrack I know it's difficult to compare or find an observer who could adequately judge between the two, but I wonder if Ruby made Jekyll easier to write and maintain? Of course, there's not any easy way to make that judgment without knowing how much effort Marco put into Second Crack versus what was put into Jekyll.
- baq 14y agomy advice? stop writing blogs and start writing python.
- ojr 14y agoTumblr, Wordpress, Facebook, Instapaper, Wikipedia... PHP has a stronghold, an opensource equivalent implementation for each platform would take forever
- brlewis 14y agoEvery once-dominant technology had a stronghold in its time.
- adventureful 14y agoYeah, I wrote Tumblr in PHP, but I'm eager to abandon it. You know, it's just an easy to use, broken language that you can scale a site to 15 billion page views per month with. I'm sure my next project will need a better language, because it's going to scale to 400 billion page views per month, and PHP just isn't going to cut it. Hilarious suggestions contained throughout his post.
- bkorte 14y agoWhere did he say anything about scaling in the article?
- ch0wn 14y agoI was actually pleasantly surprised by not reading about the usual "webscale" BS in these two articles. Both authors made it very clear that this is not about being able or unable to build something with a given language, but the quality of how you do it.
- nathan_long 14y ago>> "you can scale a site to 15 billion page views per month" You know what does that even better? C. Oh, that's too painful? You want tools that make development easier and less error-prone? Exactly.
- runjake 14y agoHow do PHP people handle templating simply? Edit: Perhaps I worded my question wrong. How do PHP programmers try and keep to DRY (ala layouts and view templates)?
- tlack 14y agoSmarty is the default choice, but of course you can simply require("tmpl/$LANG/index.php") - PHP's short tags like <?=$name;?> are almost as simple as Handlebar's.
- Ezku 14y agoSince PHP is a template language at heart, they go ahead and use PHP. For PHP folk, I guess the question is: how do people handle templating simply in other languages, since they can't use the host language itself for that? EDIT: Disclaimer: I'm a PHP guy trying to make a break for it, and the question was both rethorical and tongue-in-cheek.
- derpmeister 14y agoI prefer Mustache, but there are plenty of alternatives. http://mustache.github.com/ http://mustache.github.com/
- jackalope 14y agoIn Python, I've always used string substitution. I've never understood the need for a special templating system when it's already built into the language: template = """<boilerplate html>%(greeting)s</boilerplate html>""" parts = {'greeting': "Hello, World!"} page = template % parts I create my site-wide template in a module and never have to look at it again, so my application code is mostly logic. When I have to work on PHP or Coldfusion, I don't understand how people can bear to have the logic hidden in a markup language that's mixed up with another markup language. Many can't, and that's why there are templating engines for what are essentially template-based languages.
- dave007 14y agoSmarty, dwoo, moustache, some frameworks have their own engine (codeigniter for one). It's pretty much the same as other languages unless you're still one of the people who embed piles of php code in the templates.
- myearwood 14y agoHey Marco, Thank you for writing this . This is exactly the situation I am in right now. I love this post because it does not look down on PHP programmers, it beautifully illustrates the situation we find ourselves in . PHP is quick easy , and convenient . We are so comfortable in our current state that we don't want to adapt to a better alternative . You have built successful and high profile applications in PHP, thus invalidating the argument that PHP is useless . There may be better alternatives , but we must step out of our comfort zone to embrace them . This post helped me understand the situation so much better. It does not insult or degrade PHP programmers for their language choice , but it gently suggests that better alternatives exist ,and it is worth the short term pain to explore them . Thanks again , Marco. You've given me a lot to think about .
- mjackson 14y agoThe reason you describe your relationship with PHP as an "addiction" instead of using a word that described a more healthy relationship is probably because there is something about it that doesn't resonate well with your core values. At least that's the problem that I had with it. If you want a nice introduction into the world of developing web apps with Python, I suggest you read the Flask user manual (see http://flask.pocoo.org/docs/ http://flask.pocoo.org/docs/). It not only covers the basics of the framework, but also seems to assume that you're a first-time Python user as well. It covers topics such as using virtualenv and pip to setup your environment which I found very helpful when getting started with the language.
- z92 14y agoHere is another point that highlights the problem: If I want to write a hello world application in PHP, it's neither as long as <?php print("hello world");?> nor as short as <?="hello world"?> Rather it's simply: hello world. Just type in those 11 characters in a text file and save it as hello.php. Now load it on your browser [or run it from command line] and it will print hello world. I don't think it can get any more simpler than that in other languages. PHP was developed from the ground up as a templateting language for serving HTML pages. These other languages are more of a general type. Therefore the replacement for PHP should come through a new language targeted as a replacement for PHP as Jeff said. Otherwise there always be extra web/template stacks for the developers to take care of. And that will be the first hurdle to learn and overcome for novice developers looking for switching to something easier.
- andreasvc 14y agoAre you seriously basing a whole argument on what the hello world program looks like? That has nothing to do with actual real world programs. Mixing logic & presentation might make it easier to get something running quickly, but it's one of the downsides of PHP that these things get mixed up when they probably shouldn't for a project of reasonable size. The whole idea that it's an advantage of PHP that you can get something up and running so quickly is wrongheaded. Actually, it's much better if it requires some amount of thought and planning to code something up because that increases the likelihood that you'll do it right the first time and build on a solid foundation.
- maratd 14y ago> Actually, it's much better if it requires some amount of thought and planning to code something up because that increases the likelihood that you'll do it right the first time and build on a solid foundation. This is solid advice for an engineer. And absolutely moronic for a businessman. Choosing what platform to use is a business decision. If you take too long to get it right, you will never get the chance to make a dime off of your work. We are all working on limited time frames. It is far better to throw something together that works and rewrite later, when you're actually making money. PHP is amazing at letting you write something fast and rewrite it into something more manageable later.
- cjoh 14y agoI don't understand why someone does not just fork PHP and create something that's syntactically similar but fixes a lot of the problems people complain about.
- birken 14y agoPHP is an incredibly complex project which is being actively developed [1] and improved. If there were very simple ways to update PHP that were universally agreed upon, they probably would be added (Like short array syntax, built-in HTTP server or many other new features added in PHP 5.4). It just isn't a syntax issue, there are underlying principles about the way features are considered in PHP that are just different from other "similar" scripting languages like Python or Ruby. If somebody had profound disagreements with the way PHP was being developed, they would be much better off switching or contributing to another language then they would be trying to re-invent PHP. [1]: https://github.com/php/php-src/graphs/code-frequency https://github.com/php/php-src/graphs/code-frequency
- derpmeister 14y agohttp://i.imgur.com/5lg7k.jpg http://i.imgur.com/5lg7k.jpg
- jenius 14y ago"...next language choice was clear: Python, which seems to fit my style better than Ruby" Just out of curiosity, why would someone believe this? The syntax of python and ruby are nearly identical, but ruby has more tools and support for web-based projects. For someone looking to develop for the web, ruby is pretty clearly a better choice. And this is not knocking python at all, I really enjoy them both and there are many other things python has more community support for - don't get me wrong. To support what I'm saying about the syntax, check out this comparison: http://hyperpolyglot.org/scripting http://hyperpolyglot.org/scripting - they are super similar, if anything ruby is a tiiiny bit more elegant.
- seanl 14y agoHaving done substantive work in both, the most significant difference that for me favours Python is that every module explicitly imports the names that are accessible within its namespace (barring use of 'from X import *' which is generally discouraged). In comparison I found it a real pain to track down definitions of specific names in a complex chain of 'require'd Ruby code.
- j_baker 14y agoFor someone looking to develop for the web, ruby is pretty clearly a better choice. For someone looking to troll while looking smart and insightful, this comment is pretty clearly a better choice. Python has a ton of web tools and lots of companies build web services in Python. Ruby is simply another choice, not a better or worse one.
- jerf 14y agoRuby and Python are nearly identical in syntax and basic functionality. But I like Python's community and philosophy better. If you agree there is a difference, then for some set of people, those differences will be the determining factor. Also, while fairly comparing the amount of "web stuff" that Ruby and Python have would be an effectively impossible task, the simple truth is that both ecosystems are abundantly full of stuff, to the point that which has "more" doesn't matter. You're not going to miss out on anything by going with Python, unless you drill down to a hyper-specific particular package you may need which only exists on one.
- larrys 14y ago"Whichever language I choose to replace PHP will have its own problems that will take me years to master, but by the time I know whether I chose the “right” language, I’ll have invested far too much time in it to practically switch any meaningfully sized project to another language: exactly the situation I’m in now with PHP." Something that I'm not seeing people take into account generally when they decide to develop in a "new" language or complain about any established language additionally is how far along that new language is and how many people know it well. Choosing the best thing also involves how easy it is to get the help of others. An analogy might be an automobile purchase. If you are located in the middle of nowhere it might be a better idea to buy the Honda where there are multiple local dealers rather than the NewGreatAuto (pick any car with less market share that is better price and feature wise) where you have to travel 50 miles each way for warranty service. I went through this with hardware back in the 90's choosing SGI servers that were better price and performance wise than Sun, only to find that many open source software ready to run was not available for SGI. And that there were less people that knew IRIX than Solaris.
- qixxiq 14y agoI've had a similar issue and have even come up with some suggestions myself[1], but really I think there is only one company in the right place to produce a serious PHP competitor. Facebook. They have the man-power required to displace it, as well as the serious need... although the only potential solution they have come up with HipHop / HPHPi is really lacking in community support. Its open source but rather undocumented, and took an entire day to get set up. If they could produce a viable alternative to PHP... something that fixes the clear fuckups but doesn't try to fix everything I think it would have a real shot. [1] http://davelang.github.com/ http://davelang.github.com/
- adventureful 14y agoThe only thing actually wrong with PHP, is that it's popular but not cool. And that's a terrible place to sit for any product. It runs half the Internet quite well, but if you went by the posting on HN, you'd think it was Windows Vista. I've probably read every article critical of PHP that has hit the front page of HN in the last few years, and the one thing they all have in common is the vague refrain that PHP is a broken language. And yet the gap between tangible proof of that being the case in real world use and the gossip of it supposedly being true, couldn't be wider.
- maratd 14y ago> The only thing actually wrong with PHP, is that it's popular but not cool. Hey now, we're all human. Even engineers. As soon as something becomes popular, it is no longer cool. Cool is the next popular. Cool is being different. That's just how things work. Apache is slooooow (NGINX is cool!). MySQL is retarded (Postgres is cool!). PHP sucks (Python is cool!). Red Hat is lame (Ubuntu is cool!). See a trend? The tech that sucks is the most popular and well established. The tech that's cool isn't popular. It has nothing to do with any objective qualities of platforms. It's all about being a part of the cool croud! Remind you of high school much? Now, if this is just a hobby, who gives a shit? Roll with the cool kids. If you're starting a business, be aware that the future welfare of your family is relying on your decisions. Think real hard about that.
- denysonique 14y agoUbuntu is more popular than RedHat Linux
- maratd 14y agoNot for servers. Which is what we're talking about.
- calinet6 14y agoI was a bit doubtful, so I looked it up... turns out you're only somewhat right: CentOS + RHEL are about 40% together (28.7% + 11.6% = 40.3), but Debian + Ubuntu are over 50% at (30.8% + 19.8% = 50.6). Arguably Debian is not Ubuntu (which is why I say you're somewhat right), but it is just what Ubuntu sysadmins grow up to, and has even more of a cool underground factor, despite being the most popular server distro. Of course RHEL and CentOS are the same thing as well. Source: http://w3techs.com/technologies/details/os-linux/all/all http://w3techs.com/technologies/details/os-linux/all/all (accuracy not entirely trusted, but it appears roughly accurate)
- drivebyacct2 14y ago>"Whichever language I choose to replace PHP will have its own problems that will take me years to master" What? Really?
- nathan_long 14y agoThere is some truth to this. However, if you define a "better language" as one which is more consistent and predictable and less buggy, that implies less time to master. One thing I love about Ruby is how many methods suggest one another. For example, Enumerable collections, like arrays, have an `any?` method. It takes a test function and returns true if any of the items pass that test. [1, 2, 3, 4, 5].any? {|i| i > 4 } # true Ok, you just learned `any?`. Now, you can replace `any?` in the above with 1) `all?` - do all elements pass? 2) `one?` - does exactly one pass? 3) `none?` - do none pass? If you can remember one of those, chances are you can remember others. And if not, `myarray.methods` will remind you. That same array has a `max` method and a `min`, a `max_by` and a `min_by`. It has a `select` to get all matching items and a `reject` to get all non-matching items. Knowing one helps you remember another.[1] The key is consistency. It speeds up the learning process and makes you refer to the documentation less often. That's the advantage of choosing a good language. It reduces the very pain that the OP is worried about. ========== [1] (But wait, there's more! Any class you create, if you define `each` and `include Enumerable`, gets all these methods for free!)
- drivebyacct2 14y agoIf all someone knew was PHP, maybe they would struggle to learn something else, but in my case, if I immerse myself in something and learn it and use it, it's not going to take me years to get productive with it. Especially given the limited things that PHP can do, learning to do those in python/ruby/C#/Go took... trivial amounts of time. With the benefit of more functionality and a sane API. (and in two cases, static typing) Alternatively, if all I knew was PHP, I would understand why someone would be scared of learning something new. I mean, look up and down this thread. Everyone thinks a one-liner hello world is the pinnacle of the ultimate web dev language. Because real web frameworks require an http handler, they assume it's more work or harder. To me, it seems that many in the "PHP is easier!" crowd are too scared or lazy to take the time to learn something else and realize that better separation of concerns and tooling actually allows for faster and safer development.
- zaptheimpaler 14y agoReally, I wouldn't worry about making the "wrong choice". I can identify with this, and I think its a reflection of perfectionism, which is not a good trait to have especially when you want to make something new. It takes years to master a language/web dev framework, and considering the pace at which web dev is moving these days, your mastery will be incomplete and slightly outdated by that time anyways. The point is, thats not the goal you should have in mind anyways. You can start from scratch with a new web framework and start being productive in a week, two weeks tops. After that, just use it for your projects and allow the experience of those projects to help you learn more about the framework/language.
- restlessmike 14y agoIf you're a really good PHP developer and are considering using another language, you should ask yourself one question: Why do I need to switch? You've already gone through the pain of learning how to work around all of its warts, and you will lose a ton of productivity immediately after switching to a new language. This may seem trivial if you are just programming as a hobby (and fun, even, to learn something new) but if you are a professional programmer, the productivity loss can be a problem. If you are a freelancer billing at a good rate, can you charge the same thing to your new client knowing things will take you twice as long and be less optimal, with bugs happening in new surprising places? Taking on a new language needs to happen for a better reason than "the language I'm an expert in is kind of ugly." Are there libraries that are only available in the new language? Is there a different server architecture that lets you write applications with several times the performance in certain important use cases? These are valid reasons. "Too many functions in the global namespace" is not, especially if you already have them all memorized.
- ch0wn 14y agoThere's a fantastic reason: Having fun. Programming should be fun. If you find the language you're working with being ugly and terribly designed, it's hard to believe you're having fun.
- bluesnowmonkey 14y agoThere's a bit of a false dichotomy there. You don't just have to immediately switch or not. It's worthwhile to learn new languages regularly, whether you use them professionally or not. Keep working in PHP and do a small project in something else. Easy transition if you keep going deeper into this new language, or easy to change your mind and go back to PHP.
- pragone 14y agoI was in the exact situation a year or so ago. Everything I wanted to build, I always went straight to PHP. I stopped myself from, unfortunately, not building things. I've spent the last year learning Ruby, Python, Rails, Django, and a half dozen javascript frameworks to get myself acquainted with it all. Only recently I took a position where I'll be working with Rails full-time. It's a tough addiction to break, but it's so liberating once you learn what else is out there and what you can do with it!
- Kilimanjaro 14y agoI propose this as a blueprint for a solution: {% name = request.get('name','world') list = ['this','language','rocks'] %} <h1>Hello {{ name.upper }}</h1> <ul> {% for item in list %} <li>{{ item }}</li> {% endfor %} </ul> Save it as 'index.nxt' and run it in any future language you are going to design. Create a mod_next and try it on any web server like apache, nginx, etc. It should work without any extra fiddling with config files or installing frameworks or template engines. It should just work! That's the kind of platform that would leave php behind once and for all.
- banana_bread 14y agoYou have just mixed HTML and server code. You fail.
- Kilimanjaro 14y agoThat's php, just cleaner. If we don't recognize that as one of php's strength we're doomed to fail. Of course once you master it, you separate the code from the html and call it from the view like this: hello.nxt name = request.get('name','world') list = ['this','language','rocks'] response.render('hello.html',name,list) hello.html <h1>Hello {{ name.upper }}</h1> <ul> {% for item in list %} <li>{{ item }}</li> {% endfor %} </ul> But what do I know about language design or human behavior?
- drivebyacct2 14y agoFunny mixing PHP into HTML is one of the things I hate the very most. And is one of the first problems usually solved by PHP web frameworks. Well, templating is actually generally a primary component of "all pieces included" web frameworks in any language.
- Kilimanjaro 14y agoExactly, but that's the easiest way to start learning. That's how everybody got their feet wet in web development. Then you jump to MVC and best practices. My point is, the language has to be designed as a web framework from the get go, routers, templates, models, everything should be right there so noobs feel confident from day one. That's the only way to conquer the world.
- figital 14y agoI've just been rewriting much of the stuff I can't stand (or adding the stuff I can't find) like this ... http://tetraboy.com/lolcode/ http://tetraboy.com/lolcode/ and various easy helper libraries for more intuitive/flexible functions .... listcontains("1|2|3", "|", 3). Most problems solved.
- tom_m 14y agoThe only thing flawed with PHP is your outlook on it. People with money (investors, clients, etc.) don't care about ANY of the nuances mentioned here or by Jeff Atwood. At the end of the day, we use PHP and are rewarded for doing so. If you want to use another language or make a new one...Great. Do it. But I'm not sure why some people just want to try to change an entire industry and move people off of PHP... It makes no sense. No one is holding a gun to your head to use PHP. You have alternatives and if you're not happy, make something yourself. You can't have everyone hold your hand your entire life and do things for you. PHP is good. I'm living proof of that. I'm a very successful developer and PHP does just about everything I ask of it. I also find it enjoyable (when you don't use crap frameworks or CMS' like Drupal). For those of you that do struggle with PHP, then what on God's green Earth makes you think you'll do any better with the next language? There comes a point when you've rifled through everything saying they are all junk that you gotta look in the mirror and ask yourself what's really the problem?
- banana_bread 14y agoIn a few years most NEW projects will probably not be made in PHP. You are suffering from Cognitive Dissonance, PHP is not good.
- ChikkaChiChi 14y agoAnd you are suffering from cognitive bias?
- tom_m 14y agoUh... You're quite wrong about that statement. If I could find you in real life I'd love to make $1,000 bet with you.
- tom_m 14y agoYou also missed my point entirely. Good job.
- valeh 14y agoI have the same problem nowadays and think about migrating to Java for web development. I heard about Play! framework very much. Do you think Java is a good idea for web over Python and Ruby?
- lucian1900 14y agoMany people (myself included) find Java too limiting. Many others like it. But even Java is so much better than PHP. If you like it, go for it.
- valeh 14y agoActually, I find Python and Ruby much more interesting than Java (actually, Java seems as a boring language :) ) . But since Java is general purpose language and it's known as market skill, I want go for it.
- lucian1900 14y agoPython and Ruby are both general purpose languages, and both also run on the JVM. Knowledge of Java can be useful though, as terrible as the language is.
- anuraj 14y agoPython and ruby are just scripting languages - Java is a structured type safe language which is battle hard. No comparison!
- lucian1900 14y agoDon't be silly. All three languages are of similar maturity (in fact Python is even older than Java) and all three have been "battle tested". The only thing you might argue is that the JVM is a better runtime than CPython or CRuby, and for that there's JRuby and Jython.
- poundy 14y ago"There are only two kinds of languages: the ones people complain about and the ones nobody uses." -Bjarne Stroustrup
- pjscott 14y agoSure, but the pain-to-usefulness ratio is important, and does vary from language to language.
- zaptheimpaler 14y agoI think the simple problem with PHP is that its dated. Regardless of whether the language has serious flaws or not, the fact is that it takes a lot more effort and code to do the same things that new web frameworks let you do with a few lines of code. PHP is a great way to learn the basics because it doesn't have quite as many abstractions but that leads to slower development times, and plain bad code (insecure) if the dev doesn't know what hes doing. By the way, I'm referring to slower development times for decent size projects, not quite "hello world" (Honestly, even "hello world" would just be an HTML page and a route in django or RoR - 2 lines vs 1). So if I was operating in the capacity of a recruiter for a project/company/startup, I'd definitely pick a skilled RoR dev over a skilled PHP dev, because the frameworks and the language themselves are handicaps for the PHP dev. Even if PHP is faster for a very small project, as soon as you move into a decent sized project, the frameworks start paying handsome returns for using them. Note: I don't particularly love RoR/Django. Substitute with your favorite framework. It's just to illustrate a point.
- temp1337 14y agoThis happened to be the first comment on the first article I wrote. I think it is a great example of what is wrong with the human race in general. Facebook still uses PHP, and I think there is a distinct possibility that "zaptheimpaler" wishes he were Mark Zuckerberg. Money and ego make people do weird things. The constant background of ego makes Hacker News relatively useless to me recently. Feel free to downvote or ignore this--I think going to church or hugging my dog is a better use of time than checking for replies or posting here (or Wikipedia, or lots of other endeavors we humans do).
- tom_m 14y agoUh, it's actively being worked on and it grows at a very rapid pace. What you read about or use with PHP is dated. Most PHP applications are 5 years behind where PHP is currently. THAT is the real problem. You obviously have not seen any modern PHP code. RoR is dead dude. Have you been hibernating for a few years?
- temp1337 14y ago
- deleted 14y ago[deleted]
- RyantheLou 14y agoSo, I wouldn't really call myself a "programmer," because I'm a front-end web designer. I'm learning more and more web programming and I'm obviously using PHP. The main issue I see with languages like Ruby or Python for novices like me is that when you ask a novice (running on Windows) to go into the command line, that's like asking a cook to go milk cows. The cook will figure it out, but fuck you. Sure, there's a learning curve to any new language, and I would love to learn a "better" language, but, if you can't explain to a novice why a certain language is better, the novice is going to go for the smallest learning curve and the language with the best/most ubiquitous documentation. What do Python or Ruby do that PHP can't? Are they "faster?" I've heard that they are more secure, but does that mean that PHP can't be as secure if a skilled developer is coding for security? People say things like "rapid development," but I've been using CodeIgniter and it seems pretty rapid to me. What it all comes down to is this: are Ruby and Python "practical" for novice programmers like me? Truly? If not, then doesn't it make sense to start with a language like PHP and then, when you have figured shit out, make the jump to Python or Ruby? I wish this was more clear.
- lucian1900 14y agoEither Python or Ruby, or any number of other languages, are so much better than PHP that it doesn't matter if you make the slightly less ideal choice. Go with Python if you already find it appealing.
- pkulak 14y agoIs learning another procedural/OO language really that tough? I've put off learning Haskell/Erlang/etc because it's such a shift in thinking, but PHP/Ruby/Python/Java/JS/C-whatever seem to all be about the same. There's some new syntax, and entire new libraries, but it just means you have have the docs open a bunch at first. I find I have to actively _keep_ myself from starting new projects in the new flavor of the month and force myself to use something that I know much better and that is much more proven. I think I'd be rather proud of myself if I got a whole project done in PHP rather than Node or Scala or JRuby or something like that.
- cletus 14y agoIs it my imagination or is Marco the king of writing blog posts that are quick reactions to whatever is trending on HN? The message you should get from this post is that familiarity with one's tools easily trumps any aesthetic flaws (consistency in parameter ordering, naming conventions, etc are really nothing more than aesthetic flaws and not "deep" [1] as the author suggests. After all, human language is inconsistent. After awhile you just get used to it and don't think about it anymore. Programming languages are no different. I agree with Marco that it will take "years to master" whatever he chooses next. I always scratch my head at these "I learnt Python in a day" claims you often see around here. No, you didn't learn Python in a day. You learnt the syntax for a for loop in a day. Idiomatic Python takes much longer. I don't agree that choice is the reason people don't use Linux on the desktop. Desktop Linux is the reason people don't use Linux on the desktop. I'm sorry but it's truly awful and probably won't ever get better. In the absence of product direction you have us geeks making everything configurable because, you never know, you may want to write your own window manager (and knowing us geeks, no two will agree on what's right) so you have no consistency, no grand UI/UX design and it's just terrible. I use Linux/Ubuntu at work basically because I have to. There are advantages on having your dev environment mirror your production environment and Linux (over OSX) does actually have a package system (it's a messy hack on OSX) but I certainly don't like it. The only computers I use that I truly enjoy using are my iPad and my Macbook Air. Fear of the wrong choice isn't I believe what motivates most people. Fear of looking like an idiot? Sure. But that's different and will probably be the case with anything new. People don't tend to weight up two or more options, decide which is best and go with it. They tend to use the first thing they come across until its flaws (perceived or actual) outweigh the "cost" of transition and appearing like an idiot for awhile. [1]: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-de...
- smokeyj 14y ago> Linux (over OSX) does actually have a package system I found running a VM on my mac to be the best of both worlds. Plus you can backup and distribute your VM so the entire team develops on the same setup.
- 14y ago
- CoffeeDregs 14y agoOn PHP: This discussion seems to be missing a key factor: context. I seriously dislike PHP and its inconsistent, unpredictable features and libraries. I avoid PHP whenever reasonable/possible. I also avoid talking to mean, verbose or dumb people whenever reasonable/possible. But sometimes I just gotta do it... So I use PHP, Python, [Java|Coffee]script, Ruby, Django, Pyramid, Express, Wordpress, Joomla, or whatever else is the right tool for the context/job. In the context of building a 100M request/month API server, I used Python + Django. I would never have used PHP and I consider it a serious mistake to build large scale systems in PHP. Of course, others would choose Ruby, Clojure, Java, Scala, etc and those are all reasonable answers. I happened to be able to get the thing up and running fastest and most effectively in Python + Django. In the context of currently re-building a client site that needs social features, a small CMS, etc, we're using PHP and Wordpress. I would never have used Python + Django because the client would not know how to host it and whomever is called on to fix a template is going to have to set up a Python stack, learn git and SSH, log into a VPS, etc in order to tweak anything. Blends are good, too. We recently worked with a client where the website and application were built in PHP/Wordpress, but their API was Python. The "application" was basically a handful of Wordpress templates that pulled API data. They got the nice little CMS interface of Wordpress which made the website admins happy, but the developers got to do the heavy lifting in Python. Their anti-PHP developers were quite happy with the arrangement. On Marco's post: If you can get PHP programmers to agree that they need to stop using it, the first question that comes up is what to use instead, and they’re met with a barrage of difficult choices and wildly different opinions and recommendations. Yep and that's true of everyone who's ever behind a curve when the curve is shifting. The ice cutters knew about refrigeration, but couldn't adapt. And the curve doesn't always just shift up or down; sometimes it branches crazily and the only way to adapt is to jump into the fray. Even then bad things can happen: Kodak predicted digital cameras, jumped into the fray and basically invented everything and they still got crushed by the digital camera transition. I think the tension for PHP developers is in understanding on a personal-level how and when to make the transition to newer languages. Unfortunately, many seem to ignore the possibility that a transition is underway.
- brlewis 14y agoYep and that's true of everyone who's ever behind a curve when the curve is shifting. The ice cutters knew about refrigeration, but couldn't adapt. Everyone should be skeptical of claims that include the word "everyone". Here's some history of ice cutters who did adapt; their business established in 1848 is still operating today: http://www.capepondice.com/company_history.htm http://www.capepondice.com/company_history.htm
- ChikkaChiChi 14y agoWhatever language you are fluent in, its going to be difficult to switch to another language. Sure, I get the syntactical sexiness of Python, but learning its proclivities really would take years. The fact is that my comfort with PHP stems from knowing what I know, knowing there are things I don't know, knowing there are unknowns I don't know, and knowing there are unknowns that are unknown. (Thanks, Rumsfeld) Its this grasp on the language that gives me comfort. Mix that in with the universality of PHP and I'm more than willing to take my lumps for being told I solve problems using a shitty language. There are shitty guns and shitty marksman. A good marksman can kill you with a shitty gun, but a shitty marksman will always be a shitty marksman.
- espeed 14y agoThe fear of making the "wrong" choice actually makes the familiar, mastered PHP more attractive. The multi-core reality means that the long-term languages will have a strong concurrency model. Clojure and Go are two languages with strong concurrency models that are building momentum and have potential to go mainstream. But for your first foray out of PHP, I would pick a language that has a large, well-established community with mounds of documentation, books, and resources. My path out of PHP would be: 1. Python 2. Clojure 3. Go Learn Python first because it's easy to learn, easy to read, and it's taught at major universities so it's easy to find smart people to help. It has a large community behind it, which is still building momentum, and it has a huge library so it's generally more useful than Ruby. Then once you're comfortable with Python, I would venture into Clojure. It's different, but in a good way. And you get access to all of Java's libraries so it's practical now, even though it's relatively new. And then look at Go. Go is building momentum fast, but right now it doesn't have the massive libraries that Python and Clojure have. However, in a few years, this will change.
- pcwalton 14y agoI think that multicore support is unlikely to be the crucial feature that cements the success of the language of the future for simple CRUD web apps. Such apps are invariably not CPU-bound. Wide support on hosting providers, tooling, ease for novices, database access, etc. are far more important--which explains the success of PHP in the first place.
- espeed 14y agoMulticore will drive the development of languages in general, and this will bring with it the libraries and ecosystem. So if you're stuck in limbo trying to "make the right choice," concurrency is the feature that you should pay attention to because it will bring the dominant language in years to come, even if the CRUD devs don't use it directly. And who knows what the basic Web app of the future will be, it may not be CRUD forever.
- Detrus 14y agoYou're assuming that simple CRUD apps will still be interesting in the future. It's possible that future apps will be CPU-bound. It would be nice to have a language that lets you prototype quickly but also build the real deal efficiently. Actually, not having such a language should be embarrassing for the software industry. Maybe Clojure fits the bill, difficult to say.
- anuraj 14y agoAt two extremes 1) You want to develop something fast and dirty - Go for scripting language. Out of them PHP is the dirtiest and fastest out of gate and thus the best choice. 2) Want someting battle hard with lots of extendability - Go for a stuctured language - Java or C# will work best here. Between these two extremes run all others with their fair share of incongruencies and imperfections. They are just not popular and probably never will be. So I don't care. Let me know when there is a language that slaps me on the wrist for bad design and coding!
- alainbryden 14y agoLooks like PHP is the VBA of web design.
- njharman 14y agoA victim must want help. Make small incremental steps. The investment you think you have in X (PHP) is less than you think. It's much more in how to code, how web works, etc. the PHP parts are cruft you won't miss anyway.
- tfb 14y agoI switched from PHP to node.js and haven't looked back since. And I know node has its shortcomings, but in time I have no doubt that they will be sorted out. Right now it does absolutely everything I need it to do and more. A huge part of node's appeal to me (and many others, I'm sure) was the fact that I already knew javascript. Making the switch couldn't have been easier. I used to defend PHP; but now when I look at PHP code, even well-written code, it just makes me go "ugh".
- hyuuu 14y agoI was in the same boat, until I do complex node.js projects, do you use fibers etc? To get around the boomerang code?
- gojomo 14y agoPerhaps someone should make 'PYP', a Python that's easy for PHP programmers. Like PHP, .PYP files would be templates with no limits on mixing presentation and logic. The filesystem hierarchy provides the default URL-routing. But, you get the regularity/power/compactness of Python wherever you want it. (Perhaps, every line in a .PYP file beginning with '\' is meaningfully-indented Python.) If you ever want to hijack a part of the URL-space from the filesystem, there are routing utilities to do that. Would such a glide-path from PHP to Python be a good thing? Or bad? ("The barbarians are at the gates!")
- voyou 14y agoSuch a thing exists: http://www.modpython.org/live/current/doc-html/pyapi-psp.html http://www.modpython.org/live/current/doc-html/pyapi-psp.htm... I don't think it's widely used, though, probably because the possibility of using PHP in this template-like way isn't actually a big advantage (serious PHP devs almost certainly don't use PHP that way); PHP's big advantage is that it's installed everywhere.
- gojomo 14y agoBut why is PHP installed everywhere? At least partially, it's because it offers such a low barrier to initial sloppy usage. Should a PYP offer that too? (And if there are other factors that make PHP easy to use everywhere, could a PYP mimic those as well?)
- wvenable 14y agoI think it missed the point. I seriously doubt Marco is mixing presentation and logic, using the file system for routing, etc.
- lukifer 14y agoBeing addicted to PHP is like being addicted to coffee; for some of us, it works, and we're just fine with that. Code quality comes from the programmer, not the language.
- podperson 14y agoI'd suggest switching to JavaScript (or CoffeeScript) instead of Python or some other trendy language. a) You need to know it anyway. b) Node.js is awesome and works the way web servers ought to work. c) JavaScript, if you avoid the obvious warts, is a really nice language. Every other language I've learned either has as many warts as JavaScript or isn't practical. Having picked JavaScript, it turns out to be amazingly powerful. Need to automate content production? Adobe's stuff is all scriptable via JavaScript. Want to write a 3d game? Unity uses a dialect of JavaScript.
- crazygringo 14y agoQuestion: is there a Node.js package out there that lets me write in PHP style, without having to configure anything? I mean, I install node, I install the node package, I start the server... And then it just looks for an "index.node" file or something in a directory? URL's would map to node files? It would use some kind of templating syntax like <? ?> or whatever, but the point is, it would be as easy to use as PHP. (Each template could get the URL parameters, and read session variables, just like PHP.) I've used Express, of course, but that's overkill for throwing together a little website. People love the PHP model of files. It's clearly not theoretically ideal, or particularly scalable, but it works and is easy. Anything out there? Maybe I should throw it together myself...
- tikhonj 14y agoI don't think that model would fit all that well with node in particular. I'm not sure how would make a templating system like that play well with asynchronous calls. And using synchronous function everywhere won't work. (For example, I couldn't figure out how to read from STDIN synchronously, at all!) But even if you do decide to use the synchronous functions everywhere, having all your function names end in Sync would just add unnecessary confusion. So, while you idea certainly doesn't lack merit, it would make more sense for something other than node.
- crazygringo 14y agoHmm... you're quite right about that. At the minimum, there would have to be a per-page set of "code", which could contain async functions and result in a final callback, and then a separate per-page "template", which could not. And then that would kind of defeat the whole simplicity of the model, so you might as well use a proper framework. I guess that's why nobody's done it yet. :) Thanks!
- torrenegra 14y agoI am always surprised with the level of argumentation in reference to programming languages. From my perspective, good development paterns and arquitecture are WAY more important than the language. It's similar to writing poetry or novels: picking one language over another won't make you a great writer automatically. Can you imagine Cervantes and Shakespeare arguing whether Spanish or English was better? What's most important is what you do with the words of the language, and not the language itself.
- tikhonj 14y agoThat really isn't a good analogy. Different programming languages are more like different types of prose or poetry: novels, novellas, plays, epic poems and so on. They have a practical impact on how you get your point across. I imagine authors do have very strong opinions on whether it is better to write a poem or a short story or a novel.
- capitao 14y agoi'm so bored of these arguments and how people get so religious. its honestly nuts.
- juddlyon 14y agoWhat's with the 'PHP sucks' fixation? Enough already. It doesn't help educate others, it makes you look like a know-it-all.
- jacqueschirac 14y agoasp rulez
- gcb 14y ago"[php solves problems etc] but it's deeply flawed. [...] I promised my next project i would code in something else [...] but i went right back to PHP" This really struck a cord here... Is that the first signal that tomorrow I will be the Cobol guys of yesterday today? Or is it just a signal that PHP is indeed damn practical for web prototypes that tend to overgrow? i'm pretty comfortable dumping C and assembly to microcontrolers (kidding, nobody is. damn datasheets full of mistakes) and automating every bit of what i do in bash and python. but i can't get away from PHP for web crap!
- mappu 14y agoI have a lowendbox for personal PHP projects. I'd love something with a little more static typing, but there's really no alternative (maybe Perl in strict mode?) that isn't going to blow out my 128M ram (no chance of Tomcat). Perhaps C++, but i'd need to first sort out a good templating system, and FastCGI wrapper / spawner.
- bootload 14y ago"... The fear of making the “wrong” choice actually makes the familiar, mastered FOO more attractive. ..." An excuse for not learning something new.
- leke 14y agoThe PHP problem for me least is always available of existing projects I can modify. The last thing I did was an availability calendar and I soon found a perfect opensource one already written in PHP. A few customer specific modifications later, and I had finished my task. I did look for one in python, but didn't find anything. If I had to write one from scratch, it would be in python, but why reinvent the wheel?
- hk_kh 14y agoWell, there's a solution. Do not write every part of a project in only one language. Following the UNIX "Small is beautiful", most projects can and are cut to small things that work together. I often find myself writing a library in Python and publishing it's API in web.py, building services that rely on this API in Node.js, and making the final website in PHP.