8 ms·
For no specific reason other than life random offers I've gone through a few of those "dead and bad" reputational language in my career (VB6, Delphi, PHP), most
by nolok 2y ago
For no specific reason other than life random offers I've gone through a few of those "dead and bad" reputational language in my career (VB6, Delphi, PHP), mostly as a case of "there is a lot of money being a decent programmer who can use these correctly".
And there are three things I learned about it
1. There is a lot more money in it than you would think. The good part of "there is a lot of newbie using it" is that there is a lot of newbie using it and tons of software in it out there, and once you prove you know what you're doing you drown in high paid work, and with a bit of job selection it's not the bad horrible maintenance kind but decent fun too.
2. There is no need trying to argue with people about it online or whatever. You're not going to convince anyone they're better language than they think. PHP 8 is a top notch language and people are still dumping on it using php 4 things.
3. Ultimately there are people who spend their time talking about what language is right and people who get things done, build something great and it doesn't matter if it's cpp or Javascript or whatever. So at the end of day I've made a fair bit of money improving or building stuff used by lots of people to generate tons of revenue, and everyone involved is happy about it.
- IshKebab 2y ago> PHP 8 is a top notch language Maybe the things they've added lately have been well designed, but did they ever actually fix the WTFs from PHP 4? JavaScript has the same problem. They added `let` and `const` but never removed `var` or `==`. If you take a look at ESLint rules there are dozens of footguns that could have been fixed in the language. Not as bad as PHP's footguns, but still...
- stefanfisk 2y agoI spend all of my working hours with modern PHP. IMHO, although its improved A LOT it’s still a mess. But with the right tooling you can kinda-sorta make it behave like a sane language if you squint a bit.
- dalemhurley 2y agoEvery single language is a mess. Just look at time and floating point numbers in Java (not having a go at Java).
- IshKebab 2y agoEvery single language has parts that are a mess, or at least not perfectly designed. But that doesn't mean that languages all have an equal amount of mess. Python clearly has less mess than Perl. Rust clearly has less mess than C++. Zig clearly has less mess than C. There should be a name for the "nothing is perfect so everything is equally bad" fallacy. It's surprisingly common.
- networked 2y agoThe fallacy of gray? https://www.greaterwrong.com/posts/dLJv2CoRCgeC2mPgj/the-fallacy-of-gray https://www.greaterwrong.com/posts/dLJv2CoRCgeC2mPgj/the-fal... > The Sophisticate: “The world isn’t black and white. No one does pure good or pure bad. It’s all gray. Therefore, no one is better than anyone else.” > The Zetet: “Knowing only gray, you conclude that all grays are the same shade. You mock the simplicity of the two-color view, yet you replace it with a one-color view . . .” > —Marc Stiegler, David’s Sling
- IshKebab 2y agoAh nice, thanks!
- guenthert 2y ago> There should be a name for the "nothing is perfect so everything is equally bad" fallacy. It's surprisingly common. I think this falls under splitting (black-and-white thinking), a form of defense mechanism or (I suspect) mere rhetorical tool. https://en.wikipedia.org/wiki/Black_and_white_thinking https://en.wikipedia.org/wiki/Black_and_white_thinking
- IshKebab 2y ago
- tonyedgecombe 2y ago>I spend all of my working hours with modern PHP. I'd love to see a PHP without the warts. Something that is trivial to embed in a web page just the way PHP is but without the foot guns.
- mschuster91 2y ago> but did they ever actually fix the WTFs from PHP 4? If you have a background in C programming, most of the "wtf" is completely reasonable - the only thing "modern" and novice PHP programmers will still raise the WTF flag about is the standard library, mostly the string manipulation functions, their names and argument order. Old dogs know that this comes from early PHP being not much more than a thin wrapper around libc and various other C libraries. Other than that, if you write modern PHP it's almost like Java, just without threads/concurrency in general, and without extremely braindead tooling required to get something built. PHP Composer is a breeze compared to Gradle, Maven and messing around with Tomcat, Glassfish and classpaths to get your application deployed...
- dalemhurley 2y agoThen add in Laravel and chefs kiss. Honestly 90% of web apps could be easily built with PHP, Laravel, Inertia and React/Vue in half the time.
- odie5533 2y agoHow is that any better than React + <insert any backend here>?
- AdrianB1 2y agoPHP is extremely simple to use. That makes it extremely simple to onboard new people and also to support. Complexity brings associated costs, sometimes bigger than the development itself.
- odie5533 2y agoLast time I created a Laravel app it created dozens of default files and folders for me. How is that simpler than Go/Gin or Python/Fastapi? When does the extremely simple part come in?
- 2y ago
- AlienRobot 2y agoIt's not possible to remove anything without potentially breaking backwards compatibility. Removing ANYTHING in Javascript would be a tremendously bad idea. If webpages from 30 years ago stopped working because 2025 developers favor aesthetics and disrespect legacy, I'd be pretty angry.
- IshKebab 2y ago> It's not possible to remove anything without potentially breaking backwards compatibility https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
- AlienRobot 2y ago>In sloppy mode, a number beginning with a 0, such as 0644, is interpreted as an octal number (0644 === 420) How does something like this even happens. Anyway, if you "use" strict mode, but the browser doesn't support it, you're effectively not running in strict mode, so you can't actually assume the Javascript will execute differently.
- tonyedgecombe 2y agoI do like the way Rust has language editions which let you work around this, at least partially. Mostly though I don't care if we break old stuff. It happened all the time when developing for the desktop. People just dealt with it. The ones most impacted are lazy enterprises and I have no sympathy for them. Clinging on to the past stifles innovation.
- deergomoo 2y ago> but did they ever actually fix the WTFs from PHP 4 Depends what you class as a WTF. The older parts of the standard library are still wildly inconsistent in function naming and argument order, but that’s never going to change because it’s simply not worth the BC break. But they’ve done a good job cleaning up the actually problematic bits of the language. Previous horribly insecure defaults like register_globals and magic quotes are long gone. And in recent years they’ve worked on tightening things up: many obviously incorrect behaviours have been promoted from notices or warnings to outright errors.
- andai 2y ago>depends on what you class as a WTF It might take a while to enumerate them all ;) https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
- deergomoo 2y agoThere’s some fair points in there, some unfair ones, and some outdated ones (unsurprisingly given it’s nearly 13 years old).
- p_ing 2y agoWhat is PHP good for these days? What does it do better as a metric than any other language? It's easy to use, easy to get into for beginners, and is a requirement for WordPress. But performance? Flexibility? Some other random metric-word?
- kgeist 2y agoFor me, 2 main advantages PHP has, for real production code, are: 1) Easy hotfixing/debugging on production servers. Just edit a file and save. Our teams which program in PHP solve blockers way faster than the Go teams. 2) "Shared nothing" architecture, which has two advantages: a) it's scalable without additional effort, because PHP processes are stateless b) better security, especially if you're doing multitenant SaaS, because all requests are isolated from each other (there was a bug in ChatGPT when you could view chats of other users because requests from different users were served by the same OS process in Python and they had a race condition bug when switching between users inside the same OS process - such bugs are very rare in PHP) Not saying it's unique to PHP, but these 2 advantages for real production code are often overlooked; people instead focus on non-essential minutiae like "inconsistent function name, I'd name it differently tbh"
- IshKebab 2y agoYou can trivially do 2. in any language, although it is true that people rarely do that in other languages because of the downsides. As for live editing production... I dunno if that is a good thing!
- AdrianB1 2y agoFor me: I can quickly build a small thing and run it directly. It is interpreted, no build/CI/CD/whatever. It's not just a more powerful PowerShell, but also something that I can use to build a web page with a data source, Datatables.js and ... 30 minutes later it's good to go. For my company: minor apps with laxe requirements, hotfixes usually involve editing a single file, in place, then push to Git. We don't have "serious" apps in PHP, but we have a few low tier apps using it, it's simple and convenient.
- lordgroff 2y agoPHP never did do a py2->3, but instead took the js route of adding things while being very cautious indeed if breaking compatibility. I really have very little annoyance with PHP despite retaining some WTFs. In fact, with a modern language server and psalm I find it downright comfortable.
- mschuster91 2y ago> I've gone through a few of those "dead and bad" reputational language in my career (VB6, Delphi, PHP) It's been ages since I've last seen Delphi in real life - must be over 20 years ago by now. But I'd not put PHP in the same league of "dead and bad" with it... yes, it's not the "hipster" language these days, that's been taken over by <insert JS framework of the day> in frontend, NodeJS in the backend and Go for "need to quickly cobble something together"... but it still powers dominant parts of the web. Obviously Wordpress, Typo3 and Drupal in the CMS area which power a large amount of individual websites, and then the large behemoths Facebook, Wikipedia and Fandom/Wikia.
- dalemhurley 2y agoHipster JS frameworks are making the mistakes PHP and VBScript discovered 20 years ago.
- tonyedgecombe 2y ago>But I'd not put PHP in the same league of "dead and bad" with it. It's dead to the extent that you are unlikely to start a new project in it but I wouldn't classify it as bad. It's just of it's time.
- deergomoo 2y agoThere’s still tons of new projects being started in PHP. Frameworks like Laravel and Symfony are massive and actively popular.
- tonyedgecombe 2y agoOops, I meant to refer to Delphi rather than PHP.
- kijin 2y agoThe great thing about working with a non-hipster language or framework is that everything is incredibly stable. There's no need to worry about the latest update breaking something, or argue about which design pattern is more correct. All the tooling has been battle-tested for 10 years and will be supported for another 10 years. You just follow established best practices, build things, ship them, and focus on business.
- jeroenhd 2y agoDelphi is a funny one. Delphi applications certainly have a certain feel (and often instability) with them, but thanks to everything being a website now, they're incredibly fast and responsive compared to what we have now. Sure, they don't do fancy transitions and they look like someone wrote a Windows 8 theme for Windows 95, but when they work, they work.
- neverartful 2y ago"incredibly fast and responsive compared to what we have now" Agreed! Also, typically far lower memory usage.
- odie5533 2y agoEverything now is just a website in a bloated Chrome wrapper.
- AlienRobot 2y agoI toyed with Lazarus a bit and I honestly think it's insane it's not more popular. Instant build times for GUI. You want to add a plugin? Press one button to recompile the entire IDE. You can recompile the IDE from GTK to Qt. With one button. I think I'd prefer it over Qt Creator, for example, for building GUIs on Linux. The catch? I don't know Pascal, and there is no way to learn it. There are so many versions of Pascal that every tutorial you find will be about a different version. The GUI tutorials are for Borland Delphi, not Lazarus. There is no documentation or recipes for doing basic things, e.g. if you want to make a simple to do list CRUD that adds items to a list, you have no idea which widget is the correct list widget. Normally in this case you have a model-view list and a string list. Doing anything with lists that have columns is often a confusing nightmare, but and it becomes even more confusing with no documentation about it. On the forums, the recommendation is to just press F1 in the source code editor to read the documentation for a function, but that doesn't help you when you have no idea what function you need to call, and you won't know it often. How do you append an item to an array, for example. How do you REMOVE an item. Is there a splice function? A remove function? Where are the dynamic arrays. Is there something like classes, and if not, how are you supposed to organize objects that you want to instantiate. How the lifetime of things work. Every time you ask "is this the correct way to do it using this tool?" you'll have no answers. How do you structure your project? It's completely different from how modern languages work and from how even C works.
- graemep 2y agoI am in exactly the same position. It looks interesting but it seems very much oriented towards people who already know pascal and/or are maintaining legacy systems.
- odie5533 2y agoNever heard of Lazarus before. I used Delphi back in the day. Now I want to again!
- bigtunacan 2y agoLazarus is an open source implementation of object Pascal. Basically an attempt to recreate Delphi as open source. Not bad honestly.
- mvdwoord 2y agoI have had plenty fun and made good money writing KiXtart, VBScript, a variety of outdated shells and niche product specific DSLs etc etc. Also had great fun reversing VB6, and remember there was a wonderful VB6 decompiler from Russia with which I spent more hours than I care to admit. Beauty in languages or tool chains is one thing, but the satisfaction of solving an issue for someone within some weird constraints for whatever reasons is real.
- YeGoblynQueenne 2y agoI'll add a number 4: 5. Poor coding practices can produce unmaintainable code in any language. The pain of the maintenance programmer is caused by the implementation programmer, not the implementation language.
- VB6-Programming 2y agoVery true!
- bvan 2y agoAbsolutely agree. Software development is, in real-life, a means to an end. A tool first and foremost. VB6 and its excellent tooling allowed many to develop high quality tools and solutions which got the job done. VB6 was accessible, and well supported. Too bad it’s no longer around.
- ucirello 2y agoI will disagree with this list, in part. And I am thinking specifically of PHP. I am an emigrate from PHP ecosystem, I departed from PHP 11 years ago and never looked back. The number one reason that I left PHP is that #1 in your list was plainly false. There were _not_ high paying jobs in PHP, no matter how good you were or not. The whole point of using PHP is to pay as little as possible; and make developers as fungible as possible. And if a certain demographic yielded good quality developers for an even lower price point, I would certainly see whole teams being replaced to fit it. I was actually recruited, more than once, exactly for this reason. Languages don't die, they ride into the sunset. There is enough inertia in PHP-ecosystem that you can still find jobs, but they are very often just legacy work jobs (at least in my area). No serious technical leader would pick PHP to execute on new work, except of course, if their main driver is to pay as little as possible and the language choice doesn't bubble up to investors' keyword-driven investment thesis. VB6 and PHP are nice. I am skeptical of the affirmation that there is a lot of money in these ecosystems. The pie may be currently large, but I do not see it growing.