• 0 Posts
  • 13 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle


  • I have to resolve them way more than I should. We have internal devs and external devs and there is a lot of treading on toes. For any conflict that isn’t super obvious (90% are) * I just ask the two devs involved to resolve it together, in a sensible way that keeps the unit tests working.

    * Usually the non-obviously conflicts are the ones where it’s not just a matter of choosing A or B, but splicing A code with B code.





  • That’s a very good question. Java and OOP really were new and exciting things when I first entered the workforce. But, I first started programming long before Uni and joining the workforce. I first started programming on one of these: https://en.wikipedia.org/wiki/Intellivision using an ‘Intelliputer’. Then I learnt Logo on an Apple IIe. Then GW-BASIC on MSDOS, then PASCAL, then C. Then I stuck with C for a long time, including most of Uni.

    So, by the time Java and OOP came along, I already had 10+ years of procedural programming behind me. That actually made it really difficult for me to to learn OOP. It was some weird paradigm that didn’t align with anything I knew. So I gave Java a mostly wide berth for as long as I could and focused instead on Perl, then PHP.

    Both of those ended up getting OOP abstractions crammed into them, so eventually I did end up learning OOP, but it was more through osmosis. By then Java had largely come and gone. As much as it saddens me, Perl too largely died. That left me with PHP which, to be fair, was becoming quite a nice language by then.

    By now I was a devout OOP developer and really enjoyed the OOP changes to PHP. Python, being object based, was the next logical choice. Javascript was still a pile of poo. Then Javascript got OOP abstractions too and suddenly was all the rage. Then they started putting the frontend on the backend (Node) and I was truly lost at sea. To me it it was twice as much work to build something (API + frontend) compared to the old server side rendering. It seemed way to much effort just to avoid a page load.

    Nevertheless, I tried React and I hated it, it made no sense - though Javascript was looking a lot nicer by then. So I held off a little longer on adding ‘frontend dev’ to my resume, then NuxtJS came along and here we are.

    So, long story short, I’ve been doing this forever. I technically review team code all day, every day. I know good code, I know bad code and have seen shit that still gives me nightmares.

    The funny thing is, I have written dozens of cool tools that I think are pretty damn clever, yet I have never open sourced anything. My reason is the same as yours: Because I still don’t think any of it is good enough.



  • I’m a programmer of 25+ years. Everything written above is spot on. I too started with C and I still love that thing like my first born. It is so immensely satisfying writing something in C that a) works b) doesn’t leak memory and c) passes all your unit tests. Nothing else compares.

    I too looked at React and hated it with a passion. Then I saw VueJS and kind of liked it. Then I saw Nuxt and now I’ve gone all in on NuxtJS. It is so simple and well-thought out compared to the shambles that is React. It’s very satisfying to use. Rust is next for me.

    I’ve learnt well over 10 languages over the years. Some well, some well enough. Learning a language is bit like reading a book. If you’re a third of the way in and it’s doing nothing for you, don’t waste your time. Grab another one off the shelf and try that. Don’t put pressure on yourself - it should be enjoyable, not stressful. Just chip away at it bit by bit and enjoy the little discoveries.

    Don’t worry so much about your coding style. From the examples you gave, yours is much easier to follow than the second one. And, you know what? Most ‘senior programmers’ I’ve worked with have been bad coders. The bar is not as high as it may appear.

    Sounds like you’re currently a systems guy with a bit of programming skills. That’s an awesome combination to have, and mirrors my own all those years ago. The best bit is your have the freedom to learn programming as a hobby, without the pressure. Enjoy the process. Watch some videos by Sebastian Lague on Youtube, they’re magical.

    Best of luck with your programming journey. It is an immensely enjoyable hobby, and ridiculously useful skill to have.



  • I was fortunate enough to meet Rasmus Lerdorf (PHP founder) long before I became a PHP programmer. At the height of the PHP hate back in the early 00’s Rasumus was bravely giving a talk to a group of us stuck up Perl programmers.

    To be fair, we had good reason. PHP had borrowed lots of functions from C for familiarity (all those str* functions) and done stupid things that made life unnecessarily difficult, like naming some of them with underscores and others without, and making parameter order inconsistent across similar functions. So it did all these C like things but, it did them way, way slower.

    Not only that, PHP also wanted to be like Perl because perl was also a bit like C but, unlike PHP, did things quickly and could parse just about anything you could throw at it. So, PHP also shoe-horned in a bunch of regex functions to give perl-like capabilities to their pile of poo. So now it also had perl capabilities, but was performing way, way slower than perl.

    PHP was like that try-hard kid at school that wanted to please everyone, but everyone pretended not to know.

    But, most impressively, Rasmus was very apologetic for what PHP had become. He said to us that PHP was never designed to be a programming language. It was designed to be a “Personal Home Page” templating tool. But soon people wanted to conditionally include bits of templates. Then they wanted to iteratively include bits of template.

    And then he learned about lex and yacc, rewrote the whole thing. And finally, one stormy day, there it was. Hideously ugly and Turing complete.

    And, when he said this, suddenly it all made sense and we had a whole lot of sympathy for where it and he was at.

    He went on to say that they were putting a lot of working into looking at the worst bits of PHP and making things better. And, credit where credit’s due, that’s exactly what he’s done. PHP today really is a nice language to work with.


  • Well, this is true. It’s all about the right tool for the job. The PHP hammer is good at some things and bad at others. It is good for web development, it is bad for parsing [thanks to its truly awful regex functions], and it is way too bloated to be any kind of scripting language. Python is much better for parsing and transforming data, but its regex implementations are still pretty awful when compared to something like Perl. In fact, I still reach for Perl when I have to parse complex and unstructured text. Haven’t yet reached for Perl 6 though.


  • I’m a web developer of 25+ years. These days python, php, react, vue stack. Formerly, C, C++, perl and assorted other oddities.

    Forget what you once heard about PHP. Modern php is nothing like its early days. Modern php has some great constructs that give language expressiveness and fluidity, and that really lends itself to concise and beautiful code.
    PHP also has some brilliant web frameworks (eg: Symfony) that make build web apps (be it REST APIs or frontend backends) just a pleasant experience all around. It’s dead simple yet extremely powerful. This makes makes development and maintenance using PHP cheap. PHP’s testing suite is also ridiculously powerful.

    By comparison, I find python web frameworks (Django, flask etc), fiddly and finnicky to use. I also find Python a much less expressive language. By that I mean it will often take me several lines of code to do something that is otherwise a 1 liner in php. It just feels clunky and awkward.

    Don’t get me wrong. I once hated and laughed at PHP with the rest of them. But PHP has really evolved over the past 10 years, much more so than python has. I look forward to the day Python has a good hard look at itself.

    In the meantime, if I need a backend for a website and I’m given the choice between PHP or Python, I’ll choose PHP (symfony) every time.

    Besides, PHP devs are cheaper.