I don’t get your analogy, but (neo)vim is a full featured IDE if you configure it to be one
I do stuff
- 2 Posts
- 241 Comments
Hexarei@programming.devto Science Memes@mander.xyz•[Partially incorrect, see comments.] Pens in SpaceEnglish4·1 month agoSo then it is a word
Hexarei@programming.devto Selfhosted@lemmy.world•How do you host your DNS sinkhole/resolver?English4·2 months agoI run my pi-hole on a dedicated Pi, and I pull the updated image first without any trouble. Then after the updated image is pulled, recreating the container only takes a few seconds.
Dunno what’s broken about your setup, but it definitely sounds like something unusual to me.
I tend to write anything for distribution in Rust or something that compiles to a standalone binary. Python does not an easily redistributable application make lol
As someone who has written a lot of PHP professionally over the last ~13 years (and a fair bit of other languages - JS, Rust, C++, Python … I try to reach for whatever solution fits the problem) I feel your frustration with some things but wanted to point out that some of those things that have changed heavily in just the last 4-5 years. Apologies in advance for the wall of text, lol:
The PHP debugger has been one of the most frustrating debuggers I’ve ever had the displeasure of trying to setup…
That’s still pretty valid. XDebug is still utter garbage to work with in my opinion. I wish it were better. That said, I haven’t tried actually using it in several years so it could be better and I just don’t know about it.
Also, to use PHP sensibly, you have to learn about zend
Zend hasn’t really been industry-relevant in some 12-13 years, and yeah … it was super rough. I basically hated every line of Zend code I ever wrote.
That said… the same kind of thing is true for a lot of languages. To use Python sensibly (for web, anyway…) you have to learn Flask or Django. To use Rust sensibly you have to learn Actix, Warp, Axum, or Tide. To use JS sensibly, you have to learn React or Vue or Svelte or Alpine or any of the thousand frameworks that come out for it daily.
For PHP the big ones are Laravel, Symfony (Laravel uses a fair bit of it under the hood), CodeIgniter, and CakePHP.
or whatever the name of that big framework is.
The most popular framework over the last decade or so is Laravel, and it’s also my favorite. So I’m assuming that’s the one you mean. And… yeah, even modern PHP wouldn’t really be worth writing without it in my opinion. It focuses hugely on developer experience, greasing the wheels in huge ways and eliminating loads of boilerplate both in-app and in its tooling. It is SO SO SO SO SO MUCH BETTER than the others in my personal opinion. Genuinely transformative to the PHP experience, tries to make things as frustration-free as it can.
There are of course many rather valid criticisms of it - Mostly around how being “batteries included” means it’s rather opinionated. Using Laravel means you either do things the Laravel way or you struggle… but with how much it simplifies, it winds up being worth learning to do things the Laravel way in my experience.
But that can break in the most mysterious ways and for PHP beginners it can be a nightmare to understand what went wrong.
For raw PHP in general … yeah. again, I agree. Yet again though, that’s also true for lots of other languages (explain a segfault to a C++ beginner), and thankfully Laravel includes a very detailed and helpful stack trace and debugging page - Any thrown exception will result in a page like this with an interactive stack trace:
I think Symfony, CodeIgniter, and CakePHP all include something similar these days.
Add in that its favorite pattern is dependency injection
Patterns are a preference thing, I realize it’s not for everyone. I don’t generally use dependency injection
and the language isn’t typed
Modern PHP is actually typed! It doesn’t require that you use types, but you can absolutely specify types for variables, class attributes, function parameters, return values… And an exception will be thrown if something tries to use an incorrect type. It is still dynamically typed, so it’s done at runtime. Which kinda bites sometimes. However, there are static analysis tools like PHPStan that do a great job of helping avoid typing-related issues.
It’s not a perfect typing system but since sometime around PHP ~7.2 it became fairly nice to typehint basically everywhere and it’s only continued to mature and get better over time - It’s missing some things of course (I want generics!), but it’s way better than the nightmare that was PHP 5 and older.
One of my bigger gripes is that many projects do not use containers whatsoever…
Yeah this is another thing that is a “vanilla PHP issue” that Laravel solves quite will imho - Through a very batteries-included package called
sail
. For most Laravel projects, it’s a one-time 10-minute setup/configuration process for the developer, which should become a single command for other devs. And even then all it does is setup a bunch of sane defaults for runningdocker compose up
, along with a bunch of shortcuts for running commands within the containers. Just today, I lent a coworker a hand with a project they had already set up to run via sail, and it wasgit clone [project] cd [project] sail up
and I had a working setup as soon as the containers were ready.
Sorry, I didn’t initially set out to write this as a love letter to Laravel, but I noticed your frustration appeared to be (largely) related to older versions of PHP and thought I’d mention that things have changed loads in the past few years. And then basically any time I’m doing something in PHP I use Laravel because I like it; And I work in PHP a lot because I work for a mostly-PHP shop. That said, even when I’m working in other languages, I often find myself wishing I had features from Laravel. Stuff like collections, Eloquent, storage disks, pipelines… It’s a long list.
Well that looks neat.
Hexarei@programming.devto Technology@beehaw.org•Automation Should Be Like Iron Man, Not Ultron1·4 months agoFlip it twice and it starts an automation!
Hexarei@programming.devto Linux@lemmy.ml•More game devs should be like the devs of Marvel Rivals when it comes to emulation3·5 months agoNot even technically, actually. Wine and proton are translation layers that basically provide a dictionary of system calls so that Windows-specific ones can be translated to Linux calls instead
Hexarei@programming.devto Linux@lemmy.ml•Fedora Moves Towards Forgejo - Fedora Magazine3·6 months agoYeah, even with my relatively limited Esperanto familiarity (mi estas ankoraŭ komencanto, sed mi povas legi kaj skribi iomete), I was originally confused by it as well when I started using it a few months ago. Then when I saw the explanation on the faq, I just found myself wondering why the heck they used g instead of ĝ.
A concept of a source
Hexarei@programming.devto Open Source@lemmy.ml•Bitwarden Desktop version 2024.10.0 is no longer free software1·7 months agoI keep mine in a self hosted Nextcloud instance, DAV sync is built into the app
Hexarei@programming.devto Programmer Humor@programming.dev•Censorship is getting out of hand8·7 months agoTruly in a clbottom of its own
Hexarei@programming.devto Open Source@lemmy.ml•Bitwarden Desktop version 2024.10.0 is no longer free software1·7 months agoConflicts haven’t been an issue for years, all modern iterations of KeePass (XC, kp2a, DX) support automatically merging in the latest before saving.
I’ve been using it for years this way across several devices, it’s incredibly solid
Hexarei@programming.devto Open Source@lemmy.ml•Bitwarden Desktop version 2024.10.0 is no longer free software1·7 months agoStore your database in a nextcloud instance and it’s that too
Could also have air bags for hauling
Hexarei@programming.devto Programmer Humor@lemmy.ml•Principal Skinner on Immutable Distros2·10 months agoI’m not familiar with ports, does it provide an easy way to install packages of a particular version? Is it OpenBSD only, or just a system of installing things?
I’ve got no dog in the race as of yet, I’ve bounced off of nixos a few times because of the general lack of consistency from one package to the next in terms of configuration options made available in the Nix language.
Genuinely curious about how it compares. The nix package manager seems fairly promising, even on non-Nix systems, if I could ever convince myself I needed it
Hexarei@programming.devto Open Source@lemmy.ml•Flameshot, an Open Source screenshot software2·10 months agoThere’s also an app called Shutter that works quite well
Yeah that’s a fair way to look at it