5 ms·
Programming language design and implementation is a huge and hard problem. What you get is an incomplete frustrating language full of semantic oddities and conf
by duncanawoods 7y ago
Programming language design and implementation is a huge and hard problem. What you get is an incomplete frustrating language full of semantic oddities and confusions without any serious support tooling to help you out.
If you use it in anger, you quickly need all language features e.g. importing libraries, namespaces, functions, data-structures, rich string manipulation etc. But you rarely get these.
At run-time, you don’t have a debugger or anything leading to a maddening bug fix experience because config cycle times are really high.
Because it’s a niche language, only one poor soul in a team ends up the expert of all the plentiful traps.
Eventually... you give up and end up generating the config in a proper language and it feels like a breath of fresh air.
- DonHopkins 7y agoOne of the most ridiculous examples of this was the Smarty templating language for PHP. Somebody got the silly idea in their head of implementing a templating language in PHP, even though PHP is ALREADY a templating language. So they took out all the useful features of PHP, then stuck a few of them back in with even goofier inconsistent hard-to-learn syntax, in a way that required a code generation step, and made templates absolutely impossible to debug. So in the end your template programmers need to know something just as difficult as PHP itself, yet even more esoteric and less well documented, and it doesn't even end up saving PHP programmers any time, either. https://web.archive.org/web/20100226023855/http://lutt.se/blog/2006/08/13/why-template-engines-like-smarty-sucks-in-php.html https://web.archive.org/web/20100226023855/http://lutt.se/bl... >Bad things you accomplish when using Smarty: >Adding a second language to program in, and increasing the complexity. And the language is not well spread at all, allthough it is’nt hard to learn. >Not really making the code more readable for the designer. >You include a lot of code which, in my eyes, is just overkill (more code to parse means slower sites). https://web.archive.org/web/20090227001433/http://www.ranting-wolf.info/2008/03/21/php-truth-about-short-open-tags-and-smarty/ https://web.archive.org/web/20090227001433/http://www.rantin... >Most people would argue, that Smarty is a good solution for templating. I really can’t see any valid reasons, that that is so. Specially since “Templating” and “Language” should never be in the same statement. Let alone one word after another. People are telling me, that Smarty is “better for designers, since they don’t need to learn PHP!”. Wait. What? You’re not learning one programming language, but you’re learning some other? What’s the point in that, anyway? Do us all a favour, and just think the next time you issue that statement, okay? http://www.ianbicking.org/php-ghetto.html http://www.ianbicking.org/php-ghetto.html >I think the Broken Windows theory applies here. PHP is such a load of crap, right down to the standard library, that it creates a culture where it's acceptable to write horrible code. The bugs and security holes are so common, it doesn't seem so important to keep everything in order and audited. Fixes get applied wholesale, with monstrosities like magic quotes. It's like a shoot-first-ask-questions-later policing policy -- sure some apps get messed up, but maybe you catch a few attacks in the process. It's what happened when the language designers gave up. Maybe with PHP 5 they are trying to clean up the neighborhood, but that doesn't change the fact when you program in PHP you are programming in a dump.
- vardump 7y ago> One of the most ridiculous examples of this was the Smarty templating language for PHP. Wow... Yuck! Lua is at least a "standard" and rather sane language. Not ad hoc insanity.
- michaelmrose 7y agoWhy not use an actual language instead? Like Guix uses guile.