Hacker News new | comments | ask | show | jobs | submit login

I started programming (mainly web development) about 20 years ago.

I think the lack of current day productivity is due to there being so much more input available. 15-20 years ago you were forced to get into the mix of things and try things out because there weren't 800 blog posts and 227 youtube videos on the topic you're trying to learn.

Nowadays it's too easy to research yourself to death without trying anything because you're making decisions based on no experience, but instead experiences of others.

In attempts to find the perfect solution, you often do nothing. Always remember that you can get a lot done without it being perfect.

I look back at some old PHP projects I did in the early 2000s. Projects that have 7,500 line PHP files with mixed in HTML, JS, PHP, SQL, etc., but the funny thing is, some of those projects are still running today, unmaintained for 10+ years but work flawlessly on some old crappy shared host. Drag / drop FTP deploys with no version control of course.

On the other hand: remember cutting out images for rounded borders, using spacer images to align everything, using Javascript for roll over image swaps, GIF for 'transparency'?

But I agree for most part. I also have +15jr old PHP sites running. It was like upload and forget.

But I'm so glad we now have version control and better IDEs.

Haha yes. Using images for rounded borders was classic. I remember many sleepless nights of trying to do pixel perfect Photoshop to HTML layouts too. Or using many chained   characters to fix spacing issues.

Yeah version control is definitely a win.

I mean, back in the day my idea of testing was to take something like a blog.php file, copy it to blog2.php. Make my changes and upload it to the live production server. Since this new "2" version of the page wasn't linked anywhere I was free to manually test it in privacy.

Then if it worked as expected, I would delete the old blog.php file, rename the blog2.php to blog.php and upload it. That was a "release".

Zero downtime deploys without Kubernetes or load balancers, circa 2003.

> Zero downtime deploys without Kubernetes or load balancers, circa 2003.

it always irks me when i read a sentence like that.

* if something went wrong, your site would've been down. completely. irrelevent and easy to recover from as a small hobby page, but incredibly expensive if you need to honor a high uptime SLA.

* stateless services that don't need schema migrations are still very easy to upgrade without kubernetes -- or load balancers for that matter.

There have been version control and great IDEs for about 40 years.

Thats great and all, but a lot of those things had their problems and subsequent tools were created to fix them.

- FTP - deploys where one or two files would silently “not deploy” and since there are no automated testing, or error logging, it would sit like that for days until someone finds the issue

- Version control - its great when you’re a solo dev on a project, but once you have more people editting the same project, things begin to break very fast. And god help us if we’ve been editing the same file at the same time.

- SQL - sql injections anyone? Back then the auto exploit tools might have been in their infancy, and you could get away with security vuls sitting in production for years, but not any longer. The script kiddies are real and would find that _one_ place were you forgot to escape the string

- PHP - yeah 2018 php is actually awsome, but back then? If you had to do _anything_ different from just displaying a document site in english, you were in trouble, memory leaks, charecter encodings, image manipulation ... And someone else’s code was so hard to use that if it was not your main framework, or a single class function, it simply wasn’t worth the bother.

And yes I do have projects that were developed back then with those technologies, and are used successfully to this day (deployed by burning on a CD, and travelling to the next town to install it on a solaris box no less :))

I wouldn’t call dev “easier”, it had different problems, which were mostly solved by new tech. If you tried to do it the old way, you’ll run into the same old issues, _on top of_ the new requirements that you’d be very hard pressed to fullfill.

This description of analysis paralysis is spot on.

On the consumer front, you can be paperless now, and travel across the county carrying nothing but your phone. That feels like progress as far as efficiency.

Better tools and resources like Stack overflow etc.. have made us more productive.

But this has been partially offset by endless feature adding and abstraction upon abstration in software construction.

Its very difficult/impossible for people to stop development on something and say, this is all it can and should be.

The feature creep at every level of abstraction is a significantly bigger problem than just the existence of each layer of abstraction imo

That was part of Slack's reason for choosing PHP for their backend. Use a fancy language like Java or Node if you want to do "modern" development. PHP is for getting shit done.


That's a silly blogpost, to be honest. Any language provides what he descirbes under "State" if you run a script through some sort of CGI interface (I'm not very well informed on all the variations like FastCGI or httpd mod_<lang> stuff), which is roughly what PHP is doing too. Many languages (among which PHP too) have some web frameworks written in them which do complicate the applications, but for good: it's easier to write secure applications (at least against the most common attacks out there) with them. And then if you're gonna use PHP with some framework, then why bother the stupid language and not use a more proper one with a nice framework/library?

I think it is just the immediate mode, do a thing in a familiar environment and start making a web app. No dealing with tooling. No `pip install flask`. Nothing. Just write PHP and you have a web app. I was probably memeing a bit much there, but I think there were several solid points in the article. I would not reduce PHP to "run a script through some sort of CGI interface". I don't use PHP any more. Only Python so I pretty much agree on using a nice framework/library, but I still see this kind of casual dismissal of PHP. I think it has progressed enough to not be a toy language. It is no worse than JavaScript in terms of idiosyncrasies. It (PHP) has plenty of decent features these days and runs fast thanks to things like HHVM.

Not just "State." Any language with a mod_whatever or CGI interface provides all of the listed advantages, but without the horrible drawbacks.

I dont agree with the evangalism of tech companies like this. PHP has pitfalls like everything does and you need to include the context properly. What works for some does not work for many others due to differing constraints.


If you want to stop my productivity cold, use PHP. If you want me to just "get shit done", give me Python. Does this, by itself, make Python superior to PHP? No. It's what I'm used to using.

IOW, they are mistaking familiarity with tooling with the superiority of tooling.

Heh. Maybe I was just memeing a bit myself. I pretty much only use Python and Flask/Pyramid/Django for building web apps these days and can't imagine using anything else honestly.

Not your post, but I saw someone else calling the blog post out as silly. I used to write a lot of PHP for customers when I freelanced, and I use Python a lot now. PHP is very productive for many of the reasons stated and when you are doing very CRUDy apps PHP frameworks seem quite legit now at doing things like MVC.

Feels so true... unfortunately

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact