6 ms·
Life After PHP
- ibudiallo 14y agoSo far I'm proficient enough in php to be able to do almost everything I want. Your article is very honest. I never understood the php bashing. If you don't know how to use a type of screw driver use a different kind, at the end of the day the screw will be driven.
- lemcoe9 14y agoPHP is good for what it is. I absolutely love it, and, like I said in the article, owe a majority of my success to it.
- jmcdonald-ut 14y agoI became interested in computer science initially with PHP. It had a low barrier to entry and worked rather well for solving the problems at hand. Now that I've worked with C#, Java, C++, and Ruby I can say that PHP still very much exists in my toolkit (and is used), but has become a tool that I rarely reach for. The bashing that PHP gets, it often deserves. However, I've come to accept that all languages have their pros and cons.
- sluu99 14y agoThe difference is in real life, nobody has to maintain said "screw driver." Your metaphor is not sound sir!
- dscrd 14y agoPHP is an awful language because it has tons upon tons of quirks... pretty much like Javascript. Sometimes, I am able to find it amusing that most of the web is built on them.
- eberfreitas 14y ago> Moreover, the fact that Django makes most of the decisions about how the database will be structured just baffled me – why does Django know better than me what the database should look like? If that is really true (I don't have any Django/Python experience) the simple answer is "It doesn't". In the long run, relying on the ORM to provide high scalability is not a sane choice and I'm pretty sure Django must be able to allow some flexibility on how tables and columns are defined according to your needs. The thing is that lately I'm finding myself unhappy with the idea of ORMs and how they handle things. When I see that a framework has a lot of dependency to some ORM, I get instantly unmotivated to learn more about it.
- sluu99 14y ago"If your app is simple enough, you don't need an ORM. If you think your app is complex enough to use an ORM, it probably doesn't do much good."
- wisesascha 14y agoI don't completely understand the idea that ORM's are not scaleable. All they are is an abstraction layer that makes your life as a dev easier. With Active Record, Rail's ORM, I can do anything I would want to do with it. Just because you are not creating the database in SQL doesn't mean that you can't do complex things.
- nsfmc 14y agoin my experience the general sentiment is that the ORM is a leaky abstraction because it's common to make performance decisions based on the ORM's peculiarities. up to a certain size, most ORMs will behave just fine! the bigger problem is when your mental model of how the ORM should be behaving for a certain data access pattern is thwarted by the actual implementation. This usually only happens when you notice a performance bottleneck around a semi-exotic query that you know to be trivial in sql or whatever. it's also possible to put up performance abstractions between you and that ORM bottleneck, but often the experience and tradeoff sours most people. i don't blame them, but i agree that for most day-to-day cases, orms are pretty handy.
- jasonlotito 14y ago> Django from CodeIgniter Life after CodeIgniter.
- lemcoe9 14y agoWell, I started with PHP, so I felt necessary to say I was moving on from that.
- jasonlotito 14y agoThe point isn't where you started, it's where you are leaving from. Leaving from CodeIgniter says a lot.
- spdy 14y agoInteresting my experience was very different when i switched from PHP to Django 5 years ago. Everything just felt easier, many task where you had to repeat yourself got abstracted away (forms) and the documentation was just awesome one of the main selling points at the time and it still is. The ORM took me a while to get used to it but after the initial hump i learned it was very powerful and easy to use. Overall my efficiency went up a lot i was able to prototype in days instead of weeks for feature rich applications. It made me able to toy around with ideas and the first time in my life i had this experience that i hadn't had to fight the framework to get something i wanted. And you can express yourself so much better in python than php and till today i enjoy the community which is nice and helpful across the board.
- lemcoe9 14y agoWell, in CodeIgniter's defense, its documentation was pretty excellent. The problem, however, was the slow and tedious development cycle, which favored backwards-compatibility over new features with almost no exceptions.
- spdy 14y agoI came from Typo3 just to make it short it´s a big mess and only popular because some aspects are easy to sell (i guess).
- pekk 14y agoWhy is it that half of everyone says that PHP docs are so much better?
- bobx11 14y agoBecause of the comment thread at the bottom of each function page... people paste in a common error and how to solve it. The docs are good not because they're written better (though in some cases they are) but because of the user contributed content which the python docs lack. I wish the python docs all has a disqus thread at the bottom.
- 14y ago
- polemic 14y agoAs someone who also made the jump from primarily using PHP to Python a while back, I have to say that a lot of this is very trivial stuff. Maybe my experience was different because I was already heavily using ORM's (SilverStripe in particular) to build complex apps very rapidly, and moving to Python+Django was a far more natural process. > "the fact that Django makes most of the decisions about how the database will be structured just baffled me" You define your structure with your model, so this is baffling to me. If you're worried about trivialities like column or table names, you're worried about the wrong things. Anyway, I think that a bit of time with Django and you'll never want to go back. I certainly don't.
- dualboot 14y agoI thought I was the only one who used SilverStripe!
- metaphorm 14y agoIf you're going to be doing serious django development it would do a whole world of good to learn about the tool chain to make dependencies and deployments super easy. Use virtualenv, pip, and Python's own built in scripting tools (check out the OS and sys modules of the Python standard library). Try to learn some of the best practices before complaining about dealing with dependencies.
- camus 14y agoyep south , fabric , the django console ,etc ...
- debaserab2 14y agoThis entire article reads more like "my first Django app" then it does any impressionable reason for discarding one particular language or framework for another. The lessons learned from this article don't really apply specifically to Django or Python, but seem to represent an overall learning of how programming languages can work in general.
- camus 14y agogreat thing about NodeJS Ruby and Python is their interactive cli , which is just mandatory imho , for testing language features , framework features ,etc ... The PHP interactive cli is too poor and something really should be done about it. there are a few php-shell out there but they are not up to the task. I hope php core developpers will do something about it.
- coderyeti 14y agoLaravel!
- onemorepassword 14y agoSeems to me that CodeIgniter to Django is a much bigger leap than PHP to Python. Or even in general, unless you're dealing with a language that has a fundamentally different approach, frameworks constitute a much bigger learning curve. Especially if you're coming from a simple, lightweight framework like CodeIgniter to Django. Much of what the author describes would also apply if you go from CodeIgnitor to Symfony, even though it's still PHP.
- daGrevis 14y agoIt seemed like I was reading the story about myself. I started to code very early too! It was PHP and MySQL. First — no frameworks and libraries. Then — CI (later Kohana, Fuel etc.). Then I was bored and I started to learn Python. Time went by and I were a Django developer. So here we are. :) P.S. Python is totally ready for web development. Django was released in 2005 and it's stable. There are other frameworks too. YouTube and, of what I'm heard, half of Google is using it (maybe they are rewriting some things to Go now). Ton of popular sites uses Python and Django too! When it comes to deployment, I stick to Nginx that serves static or sends request to gunicorn. It's stable and fast. :)
- reid 14y agoPHP was my first language and it helped me stay interested enough in programming to stick with it. I commented on this a few years ago, and it's now an ancient thread, but there's some good stuff in the history books: https://news.ycombinator.com/item?id=324578 https://news.ycombinator.com/item?id=324578
- buster 14y agoStrange read. That guy used PHP for years and seemed to have fully ignored modern web development, he was baffled by using an ORM?! To be honest, i would never contract this guy to do some web work for me (he's is some freelancer of some sort? He mentions making tons of money with PHP). Or any work. Really, who developed web stuff for quite some years and finds it strange that not to write pure SQL statements? Or dependencies? He find's it hard to deploy Django or node.js? It reads to me like he has been living under a rock for years. And that's probably the worst thing you can do in the fast paced IT sector. You need to catch up and constantly learn new stuff to be up to date. I strongly believe that to be a good developer/IT guy the most important skill is to be eager to learn new things, to strive to improve yourself and learn, read, learn, learn, learn. I always hate talking to overpaid contractors/freelancers about technical stuff and see how many people don't even know basic stuff. Talking about node.js or NoSQL or puppet or ansible or other "new technology" and be greeted by ignorance. And then i think "And this guy earns 100$ an hour and has a dozen certificates!?".
- Kudos 14y agoHave you ever deployed PHP to shared hosting? Seriously, you drag and drop the site in your FTP client. Deployed. This is how the majority of the PHP world does it. So it's completely unsurprising that someone from a PHP only background finds deploying other technologies harder.
- buster 14y agoSure i have. As most web developers (i imagine) i started writing my first page in PHP, hardcoded passwords in a .php file which did also output HTML, it was "awesome" :P Deploying PHP also means updating database schemas or configuring .htaccess or configuring apache or updating php modules. Deploying a django app can be as easy as upload + restart django. Everyone doing a little bit of development should have no problem automating that tiny bit.
- Kudos 14y agoI don't disagree that everyone doing web development should understand migrations and the server stack. And yet it's completely unsurprising to me that a guy still in high school is unaware or ignorant to it, regardless of when he started out.
- urza 14y agoIn some ways, Python is the new PHP :)
- coolj 14y ago> [Cloud hosting] leaves me helpless in the case of an outage Not if you design your application correctly. HA is really not that hard to do, in the cloud or otherwise, so that single points of failure (e.g., vm or dyno outages) do not result in service unavailability. Also, consider that if you're not building HA into your apps, you are still at the mercy of things beyond your control with local physical servers. What if your upstream network provider accidentally publishes a BGP route that sends all your traffic into the void? Or, in a timely example, what if your authoritative nameservers get DoS'd? Build HA apps, aim to physically separate key redundant infrastructure pieces (built in to most big PAAS services and configurable in most big IAAS services), and you'll have no worries using a cloud service.
- porker 14y agoCan you go into more details? This has always worried me about hosting in general - for sites that can't justify multiple servers, or the complexity of setting up MySQL replication, what's the best approach for HA? There's a lot of businesses that fall into this 'important and profitable but not that profitable' range...
- Dachande663 14y agoBy the time he started praising Tank auth I was looking for the parody button. And praising PHPMyAdmin? Has he ever once looked at the steaming mess that thing calls a codebase?
- xauronx 14y agoI think people are giving the guy a much harder time than he deserves, but the praise of phpMyAdmin made me scoff. I hate that program.
- lucasjans 14y agoWhy does this site look like a knock-off of Svtle.com, more specifically dcurt.is?
- powatom 14y agoIt's using a WP theme called 'wp-svtle', so I imagine that's probably why.