• @[email protected]
    link
    fedilink
    2
    edit-2
    2 years ago

    Honestly, despite my experience in standalone programming and algorithms, my experience in web development is limited. I’ve had experience with ASP dot NET, Actix (Rust framework Lemmy is powered by) with Diesel ORM, and PHP. ASP is limited in .NET ecosystem, and the primary IDE to develop ASP dot NET apps is proprietary, not something I want to work with. Actix is doing pretty good, it uses Tokio internally, one of the fastest and most robust async frameworks in the wild. I’ve been using Rust for more than 2 years, and I’d be honest: it was designed for medium- and large-scale application development. For making prototypes, you probably want another programming language. And I see PHP as one of the easiest ways to prototype.

    For Django, I’ve never used it, maybe I’ll have to use someday. Nevertheless, I see Python as a rather bloated (in terms of overlapping language features) language which suffers from similar problems as PHP, like no type checking (by default). Also, Python packages are tied to some exact version of Python, which causes a large dependency mess when using multiple packages (Rust also has this problem, but at much smaller scale, and developers of packages often use conditional compiling of language features). Meanwhile, I think that some Python problems could be resolved using a package manifest file, like Rust does.

    If you have something to add, go on, because I’m always thinking what server language/framework I should use for my Next Big ProjectTM.

  • @[email protected]
    link
    fedilink
    45
    edit-2
    2 years ago

    This was nearly a decade ago. I worked at a small app company (5-10 developers) for a bit that used Ruby on Rails for our product. The product was in active development, but was available to customers so it was “done”. We were hiring a senior level dev to oversee the team and we interviewed this guy (maybe in his 40s?, a but older than most people in tech) and he said his first order of business if hired would be to refactor the entire code base to php. I don’t think he was joking. I’m not sure why he interviewed.

      • @[email protected]
        link
        fedilink
        81 year ago
        • GitHub
        • Gitlab
        • Airbnb
        • Shopify
        • Hulu
        • Zendesk
        • Basecamp, obviously

        I know of a bunch of less famous ones, but those are a few of the bigger ones that I’m aware of.

        • Samuel C
          link
          fedilink
          52 years ago

          Github too or a least when you look at the github enterprises source code

          • @[email protected]
            link
            fedilink
            English
            21 year ago

            What can they do tho?

            Since the beginning, GitHub.com has been a Ruby on Rails monolith. Today, the application is nearly two million lines of code and more than 1,000 engineers collaborate on it daily

      • @[email protected]
        link
        fedilink
        English
        42 years ago

        Only people supporting legacy regret.

        Ruby was never good. It just got memed enough to make it way into some medium business

  • @[email protected]
    link
    fedilink
    41 year ago

    Not sure if it was the first, but PHP still beats a lot of other “platforms/framework” because thats what some of these items on the list are in terms of ease of embedding code directly into what you see what you get frontend code (HTML). It inserts backend code into HTML like javascript and that was very convenient and easy to learn, still easier than figuring out some of these platforms different templating shortcodes, that and its constant development and community support. I used to live on the PHP docs comments… it was a great community.

    • I Cast Fist
      link
      fedilink
      11 year ago

      That’s possible with some java frameworks, no? The “insert code into the html file”? I remember doing that in college (~2010), but I don’t remember the framework we used

        • I Cast Fist
          link
          fedilink
          English
          31 year ago

          No, it was something that used JSP (java server pages), you didn’t use a single line of javascript. Maybe it was pure JSP, I don’t remember, really.

  • @[email protected]
    link
    fedilink
    14
    edit-2
    1 year ago

    django and flask are python btw and people wanted to learn python or perl from like 15 years ago, the popularity of python 2 and its “Issues” led to robust dev on python 3, not to mention it being a default for many linux distros since a long time ago

  • @[email protected]
    link
    fedilink
    72 years ago

    PHP is a shit language, but far from dead. There are too many legacy killer apps that are used A LOT and won’t be rewritten in a different language anytime soon. E.g. Wordpress, Mediawiki (The engine behind wikipedia and other wikis), Nextcloud, Typo3, …

  • Tarte
    link
    fedilink
    29
    edit-2
    2 years ago

    https://w3techs.com/technologies/overview/programming_language

    On the server-side PHP is used by 76.8% of all websites (a large chunk of that being WordPress). It is not going anywhere, soon. Looking at this statistics, nothing else seems to be even in the same league from a pure usage point of view.

    I have yet to see a reason why it should change. Serious question: What is the disadvantage of using the tried and tested PHP8 compared to the alternatives, if you already know PHP?

    • @[email protected]
      link
      fedilink
      English
      132 years ago

      Serious Answer: PHP in itself is not that bad, despite some discussable decisions in function naming and arguments order to name a few. The biggest problem, is that it has a settings file describing how it works (php.ini) and that sh*t will bite you in the rear when you move apps from server to server, where all the libs are different etc… PHP never works out of the box when moving something on a new server, that is the worst part of the language.

      • @[email protected]
        link
        fedilink
        English
        12 years ago

        Maybe the issue in your example isn’t related to “how bad PHP is” but is to “how bad the code you’re referring to is”. Never had those kind of issues and yes obviously you’ve to know what extensions an application is using, but once again, modern PHP applications usually use composer as dependency manager and will gave those specified inside the project.

        • @[email protected]
          link
          fedilink
          English
          11 year ago

          Good on you to not have to maintain legacy code (15years+). Also, as a comparison, with JAVA, I have a legacy JAVA 1.5 to maintain, as far as you have the runtime, that stuff works, and that’s it. This is how it should be.

          • @[email protected]
            link
            fedilink
            English
            21 year ago

            I do, the difference is that, unlike Ruby code bases, it happens to be supported languages that evolved and perform better today.

    • @[email protected]
      link
      fedilink
      42 years ago

      Easy example. Have they fixed file upload behavior yet? Do they store the entire file in memory by default instead of chunking it and storing it as it comes in?

      If not it’s like the worst memory usage of any language possible.

      If you have to go change the php.ini to adjust file upload sizes, it’s not really moving forward and is decades behind other languages.

      • @[email protected]
        link
        fedilink
        English
        22 years ago

        Easy example. Have they fixed file upload behavior yet? Do they store the entire file in memory by default instead of chunking it and storing it as it comes in?

        Are you in 1995? PHP dynamically decides how to manage uploaded files, it will generally store a few MB on RAM and move it to disk after that point. It also support streams so the backend can take the incoming data live and do stuff with it without storing it first as usual in the classical model. There are also plenty of higher level solutions to deal with chunked uploads, mobile clients disconnecting such as https://tus.io/ that are used by large companies like Vimeo.

      • @[email protected]
        link
        fedilink
        72 years ago

        File upload behavior is actually determined by your web server (unless you’re launching PHP in listening mode) so apache is probably who you want to blame here.

        • @[email protected]
          link
          fedilink
          4
          edit-2
          2 years ago

          Other languages behind reverse proxies from apache httpd or nginx do not have the same memory hit. You can still blame php. Not my fault they tied their language to the webserver in a way that uses tons of extra memory.

    • @[email protected]
      link
      fedilink
      92 years ago

      Poor performance, execution model limitations, lack of static typing (although they seem to be working on that), and general legacy cruft.

      Don’t compare PHP to Node, Ruby or Python, they also have problems. I think Go is currently the best choice for a web backend; an objective evaluation of PHP and Go would certainly put Go ahead. If you know PHP, you can pick up Go in a day or two, so I don’t think that’s a great reason to keep using PHP either.

      Usage statistics are a highly misleading, software projects take several years to develop and a majority will fail. Looking at current usage tells you the most popular choice from 5 years ago, not today. Over 90% of video games published in the last 5-10 years use Unity or UE4, but these probably aren’t the best choices today.

      • @[email protected]
        link
        fedilink
        English
        12 years ago

        I think Go is currently the best choice for a web backend; an objective evaluation of PHP and Go would certainly put Go ahead. If

        Yes for performance running code, for performance as in “developer time” PHP is way faster. Go is solid but developer take more time implementing stuff with it. Use PHP for everything business related except for that one or two cases where you really need the performance that Go provides and where it is worth the extra dev time.

  • @[email protected]
    link
    fedilink
    652 years ago

    It’s hard to justify using anything other than JS or if you wanna be fancy, Web Assbly, for the FE.

    Any other front end language involves generating Javascript from your language, which inevitably ends up with you making a weird Frankenstein project that mixes the two.

    I’d rather just use stuff like Webpack or Vite to compile my JS front-end out of JS (or TS) from the start. It always ends up being a cleaner result.

    My backend though can be whatever the fuck I want it to be.

    But if you ever think dynamically compiling/transpiling a JS front end on the fly on demand is a good idea, instead of simply just delivering static pre-compiled/transpiled pages, you’re part of the problem for why the web is so slow and bloated.

    It’s wild how crazy of projects people will build that take 3 entire seconds to just deliver a 500kb static form that doesn’t even need angular to do anything. They turn a couple hundred kb into several mb for no useful reason, it’s wild.

    • Tekhne
      link
      fedilink
      92 years ago

      To my understanding, you can’t really use WebAssembly for the frontend - it doesn’t support manipulating the DOM, so you still need to offload a lot of the work to JS. It’s an uncontested language when it comes to web frontend.

      • @[email protected]
        link
        fedilink
        112 years ago

        It does support it, it’s just slower than JS. WA is faster in other aspects though, so frameworks that compile to WA (like the Rust framework Leptos) still end up being faster than a lot of JS ones.

    • @[email protected]
      link
      fedilink
      172 years ago

      On that last bit. I agree with you, but people are getting paid to produce, and since they probably just know angular, they use angular everywhere.

      • @[email protected]
        link
        fedilink
        182 years ago

        I prefer html personally :x

        But yeah, I mostly blame the project managers that encourage this behavior, it’s wild how much overengineering goes into basic stuff like making mostly static websites.

        • @[email protected]
          link
          fedilink
          72 years ago

          Same, plain old HTML, and if I need some reactivity then Stimulus. And if need even more reactivity, then VueJS / Alpine. If the form can’t be submitted via a regular submit button, it infuriates me.

    • @[email protected]
      link
      fedilink
      32 years ago

      I find that the only reason for SSR existence is to be able to just move a JS frontend to the backend for SEO/client performonce reasons with almost no effort. If the frontend really needs to be highly interactive then yeah, a FE framework makes things easier. But then you are locking yourself to using JS in the backend. Voluntarily locking yourself to use an objectively bad language.

      Then there are the react/angular/other people, who build everything in these frontends.

      I really hope tools like htmx gain traction, since it looks like a model able to solve the current JS madness.

      • @[email protected]
        link
        fedilink
        22 years ago

        I’m not liking htmx, I checked it out, it seemed promising, but it has giant gaping security holes in it so I can’t endorse it.

        I have been sticking to using Ejs with html-bundler-webpack

        The combo is lightning fast and gives me a solid usability of html partials so I can modularize my front end in re-useable chunks.

        It compiles to the static site fast for iterative development, it has everything I need baked in for common needs (minification, bundling, transpiling, cache busting, integrity, crossorigin, tree shaking, etc etx)

        I like how it let’s me just focus on actually writing the html + js + css and not have to muck around with thirty boilerplate steps to just make the app run.

        If I need a lot of reactivity I’ll use vue or angular but I so so rarely need that.

        And now with the template element, half the time reactivity can just be done with those.

        Only time I actually need react/vue is when I have to frequently mutate/delete in the DOM.

        But if I purely am additive, adding things to the DOM, template elements are plenty.

        • @[email protected]
          link
          fedilink
          22 years ago

          Could you elaborate on the htmx security holes? I only know about xss attacks, and for those it’s trivial to sanitize in the backend.

          I too gravitate towards just templating for static or simple interactivity, but for pages that need SEO and interactivity I’m still wondering what’s a good solution that doesn’t involve SSR and a js framework. For a recent project I had I generated the html in php and sent a lot of pure js for dom manipulation

          • @[email protected]
            link
            fedilink
            82 years ago

            Htmx has a bunch of logic that basically completely bypasses Content Security Policy stuff, as it has its own pseudo baked in “execute inline js” logic that executes arbitrary javascript via attributes on html elements.

            Since this gets executed by the HTMX logic you load in from their library, it effectively allows an attacker to arbitrarily execute js via manipulating the DOM, and Content Security Policy won’t pick it up because HTMX parses the attribute and executes on behalf of it (and you have already whitelisted HTMX in your CSP for it to function)

            Result: It punctures a giant hole in your CSP, rendering it useless.

            There’s technically a flag you can flip to disable this functionality, but its via the dom so… not reliable imo. If I could pre-compile HTMX ahead of time with that functionality completely disabled to the degree it doesnt even get compiled into the output .js at all, then I would trust it.

            But the fact all the logic is still technically there in the library I have loaded and I am purely relying on “this flag in the dom should block this from working, probably”, I don’t see that as very secure.

            So until that gets fixed and I can compile htmx with webpack or vite in order to completely treeshake that functionality right the hell out of my output, I aint gonna recommend anyone use it if they want an iota of security on their site. It’s got literally baked in security bypasses, don’t use it.

            Hell Id even just be happy if they released a “htmx-lite” package I could use, that just doesnt have that functionality baked in, thatd be enough to make me consider it.

  • @[email protected]
    link
    fedilink
    1492 years ago

    Isn’t Wordpress powering like 40% of the internet? PHP isn’t going anywhere anytime soon.

    For me the weirder part of that meme is Python in 2022?

    • Raltoid
      link
      fedilink
      11 year ago

      In 2020 it was used at least in part on over 80% of websites according to w3techs.

    • Zeppo
      link
      fedilink
      English
      58
      edit-2
      2 years ago

      12 years after we learned Flask. 19 years after Django, which also was apparently hot 2 years before it was released.

    • @[email protected]
      link
      fedilink
      22 years ago

      Can you elaborate on the python part? I’m not a programmer ( I don’t work in the field but I studied programming in high school) but I see python mentioned everywhere, is the language obsolete?

      • @[email protected]
        link
        fedilink
        62 years ago

        It’s not obsolete, it’s very good, still is. Just that Flask and Django both built on top of Python. So if it’s like late 90s or early 00s. Definitely before either Django / Flask. Python isn’t the new and thing of 2022.

      • 520
        link
        fedilink
        6
        edit-2
        2 years ago

        Python based web frameworks like Flask are a lot newer

    • @[email protected]
      link
      fedilink
      62 years ago

      Python seems pretty de facto these days for web backend. Maybe just a reference to standard rather than “what’s new”.

    • @[email protected]
      link
      fedilink
      15
      edit-2
      2 years ago

      IMO, Ruby is a better Python than Python. It’s simpler, has a cleaner syntax, and if you want to do funky stuff metaprogramming can allow you to do cool, and sometimes unspeakable things. Python has great library support, and slowness and Rails did make Ruby unpopular for a bit, but I would love to see a Ruby resurgence that wasn’t to do with Rails, because it is truly a lovely language to use.

      Hell, I would say that in 2023, it’s easier/faster to get something set up and working in Rails than it is with frameworks like Symfony, Express, ASP.NET, etc.

        • @[email protected]
          link
          fedilink
          32 years ago

          Optional parens on function calls, implicit returns, curly brace procs with args in vertical bars 🙃

        • @[email protected]
          link
          fedilink
          21 year ago

          I’d wager that most people haven’t used Ruby in anger, so don’t really have the comparison. Those that have used it have probably only used it in a Rails context, which IMO is a fairly limited environment to really play with Ruby.

          I definitely love the language, but the ecosystem, library support, and some of the companies that jumped on the initial Rails bandwagon can be extremely backwards and resistant to change in tech.

        • @[email protected]
          link
          fedilink
          English
          82 years ago

          There are literally dozens of us.

          Ruby feels a lot like writing poetry. Especially with microframeworks like Sinatra.

          Python feels more like writing JS/ECMAScript without any punctuation.

          Then again I cut my teeth on Actionscript (1 ugh, 2 ooo, and 3 nice—oh the iPhone doesn’t support it…), so my opinion is probably pretty worthless.

          • folkrav
            link
            fedilink
            42 years ago

            Python feels more like writing JS/ECMAScript without any punctuation.

            I don’t know Ruby enough to judge, but I’ll have to say, hard disagree on this particular statement for me. JS to me feels like a bastardized C with some functional-inspired syntax tacked on top, while Python feels like writing English.

    • @[email protected]
      link
      fedilink
      English
      42 years ago

      Yeah, and node was skipped for some reason.

      Django (python framework) is almost 20 years old.

  • @[email protected]
    link
    fedilink
    362 years ago

    I’m sure there are a lot of reasons why PHP is better than Python for the backend, but I created an app wirh Symfony 5 and then an app with Django 4.

    Symfony is so weird compared to Django. With Django I can just sit down and get things done. Symfony always seems to have some quirks which are mostly due to PHP (and me not knowing how to program in PHP).

    That said, PHP hosting is so much easier and cheaper, this probably is important for smaller projects.

    • @[email protected]
      link
      fedilink
      102 years ago

      Django is pretty nice, yeah. We also have good compiled webapps, with go and rust. Gitea for example uses go.

    • SokathHisEyesOpen
      link
      fedilink
      English
      162 years ago

      You don’t need a framework for PHP. That’s the beauty of it, you don’t need anything. You cannot build a website with Python without a framework.

    • @[email protected]
      link
      fedilink
      English
      22 years ago

      For the backend? Why? I could see PHP being better for the front end considering it’s basically a templating language already, and setting up Python on a webserver is much more complex, last I tried.

      • SokathHisEyesOpen
        link
        fedilink
        English
        172 years ago

        PHP is a server-side language, how do you plan to use it for the front-end? Good luck with that!

        • @[email protected]
          link
          fedilink
          English
          1
          edit-2
          2 years ago

          Oh, I see what you mean. I thought you meant output HTML and templating vs server side logic, but yes, obviously I know the difference as the only front-end language is JavaScript and derivatives.

          I’m more used to the terms ‘server-side’ and ‘client-side’ btw. Obviously PHP is server-side. But not all server-side is backend in my view. I consider backend to be application logic and things like database access. Templating can be done on the server or the client, and that’s front-end.

    • @[email protected]
      link
      fedilink
      English
      72 years ago

      Isn’t all hosting containerized at this point? Is hosted, language specific servers still a thing?

      I’ve been out of the market for a while now and just run everything as containers on aws and gcp

      • @[email protected]
        link
        fedilink
        12 years ago

        Many older projects don’t get migrated to containerized infrastructure and smaller businesses don’t want the overhead it creates to run a single app/webpage. Plain LAMP with FTP access is still the most common way to host I think (and thus the cheapest if you consider the amount of work that would need to be invested to containerize).

        • @[email protected]
          link
          fedilink
          English
          12 years ago

          Interesting. I never really realized how it was more my path changing than the entire industry.

          • @[email protected]
            link
            fedilink
            21 year ago

            The industry is surely changing, but “the industry” is mostly geared towards enterprise, because it’s where the money is. But the large amount of webpages are not enterprise pages but personal blogs, small businesses etc.

    • @[email protected]
      link
      fedilink
      English
      22 years ago

      Lets just say that Python was a language that was never supposed to be used for anything production related. PHP’s memory management and multi threading capabilities are WAY more solid and less prone to leaks than Python 's.

      • @[email protected]
        link
        fedilink
        English
        32 years ago

        As someone that used PHP professionally for literal decades, the PHP hate is so meme-y.

        Its biggest problem is that it allows you to do some truly cursed things. The same can be said about other languages, but PHP really doesn’t do much to set you up for success, especially as a new-intermediate coder.

        With opcache, it became fast enough for basically most web backends, and as a language overall it does seem to be evolving and shedding off some of the crap that used to make it truly horrible in the hands of a new person. At least the type-juggling stupiderrors

        Now I mainly use go and python (only because I have to on this one), and I would put Python and PHP on a similar level of “fuck this language” moments

  • Haus
    link
    fedilink
    82 years ago

    Yowch, Django was 20 years ago? That hurts.

    • @[email protected]
      link
      fedilink
      1
      edit-2
      2 years ago

      It shouldn’t hurt at all IMO

      It’s still a very mature framework, works with client side apps via DRF if that’s your thing, and has only gotten more quality of life improvements.

      There’s things to be desired especially with async but IMO old != bad

      Also the last one is “learn python” which… Django is python…