4 ms·
For a hack, maybe. Fighting your toolchain is an upfront penalty. Once things start moving smoothly, they tend to continue to work smoothly. And that's a probl
by laconian 15y ago
For a hack, maybe.
Fighting your toolchain is an upfront penalty. Once things start moving smoothly, they tend to continue to work smoothly. And that's a problem that can be solved by further development of the toolchain.
Poor aesthetics/readability? You pay that price every second you work on the code.
- maratd 15y ago> Once things start moving smoothly, they tend to continue to work smoothly. This is flat out wrong. If you're on a language all the cool kids are using, you'll find those cool kids have an obsession with perfection. To the point where they deprecate things instantly and break everything that worked before. See NodeJS and Python for examples. If you have 10K lines of code, not so bad. So you do a rewrite every year. When you have 100K lines of code or more, their obsession with perfection will destroy your business. A rewrite becomes an immense undertaking. You end up running old versions. Those old versions require dependencies which require you to run old operating systems. Eventually the entire ecosystem implodes. But guess what? Code that was written in PHP3 over 10 years ago works just as well today under PHP5. You can even mix and match. Does that make the syntax of the language ugly? Sure. It even encourages bad practices. So what? You're running a business, not an art gallery. Code should be beautiful, but not at the expensive of having a successful business and a working product.
- laconian 15y agoBut, I don't use the languages those cool kids are using. :) I imagine I would have to formulate a very defensive strategy to deal with breaking changes that would gobble up my productivity gains from using said cool language, just like the people that use Mongo have to DIY the checks that RDBMSes get for free. I use Java and C++, and I don't rush update the second new libraries become available. My team has a large regression suite, too, so it's been less painful (can't say painless) to detect breakage when our dependencies need to be updated.
- maratd 15y ago> I use Java and C++ Comparing Java and C++ to PHP is the equivalent of comparing a Ford Mustang to a Mac Truck. Yes, they are both vehicles. However, they are designed to do very different functions. Java and C++ are statically typed, compiled languages. PHP is not. Yes, if you drive a Mac Truck, you can bully and make fun of the guy driving a regular car, but if you're using your Mac Truck to commute to work, you're a lunatic. For every problem, a proper tool.
- dhugiaskmak 15y agoMack Truck
- prewett 15y agoWhen you're trying to ferry boatloads of bits down the information superhighway, the Mack truck starts to look pretty good. Sure, the automatic transmission Mustang is cheap, quick to acquire, and easy to find drivers for, but you have to get 10 of them for every Mack truck's worth. Given that FB's solution to their PHP problem was to discover the static typing, I'd say that PHP is not the proper tool for the current job.
- grncdr 15y ago> But guess what? Code that was written in PHP3 over 10 years ago works just as well today under PHP5. Sorry, but having felt the pain of keeping legacy installs of old PHP versions around to run business-critical processes, I have to call bullshit on that one.
- maratd 15y ago> legacy installs of old PHP versions around to run business-critical processes Why? Your code should work in the latest version. Can you give an example?
- andybak 15y ago"See NodeJS and Python for examples." What's an example of the Python community doing this. Usually Python get's criticised for being overly-conservative if anything.
- maratd 15y agohttp://www.python.org/doc/essays/ppt/euro2008/Py3kEuro08.pdf http://www.python.org/doc/essays/ppt/euro2008/Py3kEuro08.pdf
- wwweston 15y agoFunny, my experience is that learning to read the idioms (and write the most convenient idioms) of the language is an upfront penalty, and once you've made the investment things start moving smoothly. Of course, it's everyone's privilege to decide which penalty they'd prefer to pay, and that doesn't mean there aren't language features that can make put it on a new order of expressiveness. But are we talking about those features? Or are we talking about "aesthetics/readability"? If it's the later, that's probably a different thing, and I have my doubts that it's anything objective. Particularly if it has much to do with which specific tokens indicate the beginning/ending of blocks or enclosing arguments to a function.
- wwweston 15y ago(You know, the funny thing with downvotes is that you never know if you just made someone uncomfortable, or if there's a credible argument against what you just said. Though one tends to assume that if the later were true it would have been employed along with -- perhaps even in stead of -- the downvote.)
- adbge 15y agoThe best way to deal with a downvote is to assume that it was an accident.