Every language has its niche

nifty@lemmy.world to Programmer Humor@programming.dev – 893 points –
157

was python ever irrelevant?

Nope. This cartoon is horseshit.

Yeah. Look at any dev job listing and it's all "Python, C++, or Java experience preferred"

Perhaps as the new hotness to web devs, but Python was a mainstay in science way before Django.

For about the first five years of its life, it was eclipsed by Perl. That's about it. I don't think anything will ever unseat Python as too many people's first and last language.

Surely not in the immediate future, but there will surely be a day when Python dies. Remember that BASIC filled that role for far too long.

BASIC was meant as a teaching language. Python is a real language that's simple enough to be a teaching language. It also runs the same dialect on every machine, which BASIC never did.

Being the second best language at everything, it gets used for everything because people don't want to learn the first best in any given niche. Python isn't the best choice for numeric applications, but with NumPy, it's adequate, so why bother learning R? Even if you knew R already, you're going to run into a lot of Python code for that domain from other people. You'll be swimming against the current, and why bother?

Python will die when the sun does.

You have absolutely no idea how much business code has been written in VB.

I do know, but that's off to the side of BASIC in general. In fact, VB syntax is barely recognizable as BASIC.

Python is one of my primary languages (the other one being Rust). But it honestly isn't the easiest language to teach - I'm saying this from experience. There are so many concepts at play - name binding, iterators, generators, exception chains, context managers, decorators, ... . I could go on and on. Teaching becomes hard because any basic question could become a journey into the rabbit hole of python semantics.

Python is, however, a good first language for self learners. (Note: teaching vs learning). Python behaves intuitively. It's designed in such a way that if you guess something about the language, you'll probably be right.

Python is the language of choice for most test automation

Depends entirely what tests you're automating. Java codebase? Probably Java tests too. Anything web? Tests will be JS too, etc.

Web testing is also done in python. Selenium has support in all major Python test frameworks. I've done SE-only tests in Robot, hybrid SE/Python using BDD with Behave, etc.

Unless I'm testing a language-specific API, I'm probably going to use Python...

I'm guessing that's because you're a python developer though. If you're a frontend developer who knows JS then why wouldn't you use that for your tests? (Apart from the fact that JS is horrible, but you've already accepted that suffering by becoming a web dev)

I'm a test automation developer, I'm not necessarily bound by the platform that the application is written in unless I'm writing white-box tests.

Maybe when 3.0 was new and created all sorts of incompatibilities with 2.x

Nah, Python 2.7 got way more support than it ever deserved because people just refused to switch to 3. Hell, people were starting new python projects on 2 after 3 came out.

Yesterday I would have argued that with the rails framework Ruby is a great way to rapidly develop a scalable application. Today I started having an intermittent failure in one of my API instances and when searching about it the only thing I could find was one obscure blogpost that boiled down to “yeah sometimes Ruby Ave active record just screws up the character set off a string” exact same string, different results. Excuse me Ruby? How the fuck can you sometimes screw up a character set? There should be no sometimes to any thing here.

I like Ruby most of the time, but honestly, I'm not surprised at "sometimes" behavior from the language created by someone who, when asked for the formal definition of something in the language, said he's "not really a formal kind of guy."

Haven't Spring Boot in Kotlin with jib and cloud integration caught upto this in terms of development speed?

I mean I've been using ActiveRecord for the last 20 ish years and I've never encountered or even heard of this bug. Sounds like you came across an especially obscure one.

I spent a few years with Ruby, and my experience is that Ruby and Rails couldn't be more different in terms of programming approach, philosophy, and nature. I don't trust Rails fully, but I do trust Ruby.

Mastodon is written in Ruby. Nowhere near as big as Facebook or the ML field, but hey, it's important to a couple of us at least :)

@programming @nifty

and therefore scales terribly ;;

It probably wasn't a big deal when it was a niche project until Twitter imploded. Then all the public instances got overloaded with new users and the limits became obvious.

A better design is Lemmy which is written in Rust so it has far more scalability. It's compiled and because it's tokio / actix based, it can also do a lot more stuff asynchronously so it's not spawning thousands of threads to cope with concurrent requests.

@pkill Yeah seems that way, judging by their scaling up documentation: https://docs.joinmastodon.org/admin/scaling/

Although hey, it all depends on a whole bunch of stuff written in super optimised (and kinda scary) C !

@programmer_humor

Those docs look pretty easy to scale mastodon. What am i missing?

@towerful I mainly program in Go, so when I see all that extra software I notice how much easier it is when I get to just rely on the Go runtime. It does a lot of the heavy lifting done here, but the resulting code is not as clean. Actually just today I read through Mastodon’s code to track down a bug in my in-progress ActivityPub service (in Go) and found the Ruby really easy to navigate!

@programmer_humor

Mastodon is written in Ruby. Nowhere near as big as Facebook or the ML field yet

FTFY ;)

As a Rails engineer with 14 years experience, I can say the place that should be in the 3rd panel is Shopify. They employ so many ruby and rails core committers and directly fund a good many rails gems, and ruby community infrastructure it's insane. They're also directly funding the development of things like the YJIT and speed enhancements to MRI itself.

Then there's all the other places I know or worked at built on Ruby where my other long tenured ruby friends work.

  • Gusto
  • Airbnb
  • Clearbit
  • Stripe
  • Github
  • Gitlab
  • Bold Penguin

Ruby was recommended to me by my comparative programming languages professor. I haven't picked it up, but there were memes that this professor was so good at programming he was secretly built by the university in C++ to teach students how to write better code.

It's worth learning Ruby to understand some of the tricks you can do in programming languages.

Did your prof also recommend others like Lisp?

Aha asks for Ruby on rails experience in their job listings, so they must be using it as well

One of the most known programming tool is built on Ruby, Github.

And it's a pile of shit.

git is great. GitHub blows chunks. The only reason it's still big is that it sucks less than any other single platform.

@SpaceNoodle I’ll always be sad how GitHub helped popularise centralised workflows. Such an amazing opportunity for a big cultural shift, but it didn’t go anyway as far as it could have.

@programmer_humor

Git owes a lot of its popularity to github. Without it, there's a good chance that mercurial would have taken over. In addition, the centralized workflow was what made both git and github popular. It simplified git usage enough to let a lot of novices get started.

I'm in no way a fan of centralization that github represents. But I think a decentralized workflow using git was a lost opportunity. People complain a lot about the git-email workflow. But I see no reason why it couldn't have become as easy as using github if the effort spent on github was spent on git-email tools and user experience.

So I know it's supposed to be an arm, but those language be dummy thicc

Should be wordpress and not Facebook for php. Which still makes up the majority of websites.

And Wordpress is a horrible example of PHP code

Laravel is a completely better PHP project

Couldn't agree more. Wordpress and the damn loop. Horrid example of how to do something. But it still makes up the majority of the internet..

@nifty I have nothing against Ruby and think it’s a nice flexible language. At the peak of RoR though, all the asshats were all over Ruby.

My problem with Ruby wasn’t even RoR, it was with the way the asshats valued creativity “cleverness” which seemed to mean writing code in the most cryptic ways possible. These folks took what should be an expressive language and wrote scripts that rivaled Perl’s worst “read once and never again” scripts.

I never did Rails but I used Ruby for many personal projects in the 2000s.

When showing stuff to my coworkers or friends, I often joked how I tried to make my code look like it was already gzipped.

This wasn't "creativity over code" so much as it was the tail end of y2k and all the greybeards were canned so none could teach the shiny whiz kid how to code like an adult.

Without the linus-like code review sessions, they never learned why and how to improve.

Now their kludge-bro mentality has raised a whole new generation.

And that's why people don't know not to flatpak or npm themselves into a solarwinds sploit.

Hey Ruby debs, lookup Elixir. It's supposedly similar syntax but run on the Erlang VM instead. Lots of cool companies use it, and a great community. 🤗

I've written a non-trivial amount of Elixir. It's nice, but I wouldn't say it's like Ruby. It's more heavily functional, and it wants you to work with data in an immutable way. If you're coming from a language that doesn't force immutability, then you'll be miserable until you get your head around how to work that way.

I really like it, though. Especially now that it's getting optional typing.

Elixir is an awesome language. It takes some getting used to as it's meant to be more functional like Haskell, but it plays really nicely with big parallel workloads and is super clean to write

Crystal lang is also pretty cool looking. It seems to be going for what Nim is doing, making Ruby as fast as C.

Don’t learn Elixir to replace Ruby. Learn it to enjoy OTP and BEAM.

I would love to join a cool company that’s willing to accept a dev that can transition fast. However, most of Elixir job listings I find are gambling or crypto. And I ain’t gonna touch those.

RoR is too much magic for me. Getting started with any new code base is such a pain that I never want to do again. As a manager, I'll avoid any job post that mentions Ruby. I have maintained projects written in Delphi, Centura, Java, C#, PHP and none of them even come close to the pain of RoR. Java and C# are notorious for ceremonial interfaces but that's nothing compared to trying to figure out RoR automagics.

There is a lot of magic in Java. Try Spring Boot for example, and things magically connect together with annotations, or somehow methods get injected onto interface on the fly, or an http interface maps onto a function with parameters because the runtime is doing it. This is most evident when you set a break point in some class and there might be 4 or 5 mystery functions it passed through between it and where you thought it was calling from. Sl4j, Lombok, Hibernate are doing the same kind of thing.

Maybe in enterprises settings what you say makes sense, but for the small to medium startups I usually work for, RoR is great. It's super easy to prototype and switch lanes. If I had to do what I do in Java I'd go insane. As for Delphi....

The RoR "magic" being obtuse is extremely exaggerated most of the time and more meme than reality. If you think PHP is better, by which I guess you mean Laravel, how on earth is that less "magical"? React? Next? I'll take Ruby any day.

React can go fuck itself with a pineapple, fuck that piece of shit. Every project I've had to deal with that used React was an absurdly bloated mess because it imported fuckloads of React plugins and addons.

Oh. I didn't know react had its own supply-chain sploit risk. T-I-L

I had to learn Fortran for my thesis because it's the industry standard in particle physics

Physics changes with retirements. FORTRAN should received it's gold watch and shown the door about 20 years ago now.

There's no distinct generations of either physicists or codes that all retire at the same time

How long ago? ROOT (and other frameworks like GEANT) using C++ has been the standard for over 15 years, but probably longer. I think my advisor was of the last generation that had to write in Fortran.

Currently lmao. I'm using those tools as well but some specific event generators I'm using are in Fortran still

the last generation to write FORTRAN

runs to look out window

My God is the sun turning into a red giant?!

Oh no, whew, that's a relief! Guess the FORTRAN programmers will be relevant for a little longer too then.

(As a .NET dev, I wish some languages (or versions of languages) would die but i really think once code has been written it never goes away!)

[COBOL has entered the chat.]

Capitalism will never let a programming language die, if it's still less expensive than an alternative.

1 more...

I would say wordpress over Facebook for php

Yeah...

Facebook hasn't used PHP for a long time. They use Hack which started as a language similar to PHP, but it's very different now - it's strongly-typed and has a bunch of advanced features, like the ability to annotate functions as pure (no side effects), which gets enforced by the type checker.

Enterprise will keep the withered husk of Java EE crawling for eternity

Medicine too.

An instrument in my lab is running jdk 1_8_131....and this is a recent/newish piece of equipment.

Rails: “No. Don’t worry Ruby.”
Ruby: “Huh?”
Rails: *Hugs Ruby
Rails: “We’re becoming irrelevant.”

Together forever!

Goddammit, I'm feeling for an anthropomorphic programming language that I don't even know.

Ruby -> Rails.

It just hasn't had a second revival.

Those hentai games and visual novel games still keeping ruby lang relevant tho, rpgmaker game engine is one of examples

I think the two newest, MV and MZ, have switched to Javascript. Also, Ren'py is the only visual novel engine I can think of, which is based on Python.

Is PHP becoming irrelevant? It still comprises the vast majority of web pages out there. Maybe that has been going down but with he amount of competing languages and systems out there, that is to be expected.

Either way, it's an awesome language, happily been using it for decades now

PHP is horrible, I hate it, and I will not elaborate. Good day, sir.

Either way, it’s an awesome language, happily been using it for decades now

Mind taking a moment to share why you like it? I am not very familiar with it.

I'm not the one you asked, but what I like isn't really about PHP itself, but the fact that I can get dirt cheap hosting with PHP and MySQL. Every time I want to create a small "app" that makes some manual task easier it's very useful to create something I can access from the internet.

Python is really useful for stuff like that too, but (in my experience) not as easy and cheap to use as an web app.

For example I go to dinner with some friends every month and we always forget who's turn it is to choose and book a restaurant. So I just made this PHP page that shows the current and next 2 months with a name. So we always use that to see who's turn it is.

What makes hosting with PHP cheaper than with python?

I don't know, maybe it's because PHP used to be the default web based language? I just buy hosting, I don't sell it...

What do you use for hosting? I'm looking for a good host and highly budget conscious.

I'm Dutch and use a local Dutch company, I also wanted a .nl tld

Though I like that you use PHP, I don't think there is such a thing as PHP hosting, or python hosting? Maybe I'm not understanding what you're saying here?

When you pay a company and they provide you with a domain (you choose) and give you a webserver, some disk space, a database etc.

I pay about 30 euros a year for 5 websites. They are all very basic (either some php stuff I made, or WordPress). These websites have very few visitors so the hosting specs don't really matter. All these websites have a specific domain name, some disk space, and a database.

For this price they offer PHP and MySQL. So it's not a dedicated server where I'm root and can Install other stuff.

... And it's one of the languages everybody craps on. Like, I've seen people compare JavaScript favourably to it.

Yeah they do, with no real reason, really. Oohh, "some functions use underscore and others don't!" And? It's not a problem, really. Every language has baggage from the past and PHP kept it for stability, I'm happy with that.

Quite early on the eyes, powerful, fast to build and rolk out projects, about. A billion libraries with all the functions you'll ever need. People both about it because it has some language quirks from way back in the beginning, I see it as stability. I don't know how node is now but I remember a few years back where every bug fix came accompanied not only by 10 new bugs but also a bunch of interface changes that immediately broke everything. Every. Single. Damn. Time.

Having said that, it under very active development and has been majorly improved over the years. Dumb design choices are no long available and right now it's quite easy to work securely with it.

Beyond the "but these two functions should have similar naming but they don't!" argument, that with a good editor doesn't matter anyway, there isn't really a good argument out there not to use it.

Depends on how you're judging relevance.

93% of webpages could be PHP because of Wordpress, but that doesn't necessarily mean there's a lot of PHP developers.

If that hypothetical 93% is WordPress, there's still a huge demand for PHP developers to maintain that and the plugins and so

I really like ruby :(

Even in 2024, I say that Ruby is one of the best common languages available. While there are some weird syntax choices, and a lot of rope to hang yourself with when it comes to subjects like metaprogramming, it is a better Python than Python, in that it has a clean way to approach problems, and a simple structure to make coding clean and easy. The best part of Ruby is that its tooling is great at pushing best practices, like concise methods, good naming conventions, tests with single/aligned assertions, etc. I've taken many lessons from Ruby into other languages I use.

Rails, on the other hand, is totally different. Today, Zed Shaw's essay on Rails is as accurate as ever, in that many Rails shops have just ignored years of best practices on the web, and opt to do things their way because it's "better".

Shopify is built on Ruby on Rails

Yeah but Shopify also runs on GraphQL and Remix which are way more modern. This is like saying Twitter is RoR

edit: no it's not

I worked at Shopify up until a year ago. github.com/shopify/shopify repo powers almost every inch of Shopify's infrastructure and is entirely a rails monolith. It is not the same as saying Twitter is still rails.

The only place I've seen ruby used extensively is in environments with a lot of regular expressions and string manipulation. Still not entirely sure why I've only seen it used there. The regex tools in ruby are nice but they aren't nice enough to justify a language switch in my opinion...

It's the part of ruby that replaced perl. For whatever eldritch horror perl was it was very, very good at doing text manipulation, and IME the only language to really match that experience was ruby.

I have never been a fan of Perl, it seems like a patchwork of different styles, and the same with Ruby.

I have gotten the sales pitch for ruby and RoR so I know it has some strengths especially in web development.

I wrote extensively in Ruby but for Rake - using Ruby as a build system. Can't say I liked the language although it was okay for how we used it. We have 20 sub projects with some very complex build targets and dependency scanning going on and the Rake syntax was okay. Personally I think its biggest shortcoming was the documentation was very poor and stuff like gems felt primitive compared to other package management systems. One thing I liked from the language was blocks could evaluate to a value which I really use a lot in Rust too.

I think if I were doing an acyclic dependency build system these days I'd use Gradle probably.

As for Rails I expect failed to catch on because even compared to Python, Ruby is a slow language. And Python isn't fast by any stretch. Projects that started with Rails hit the performance brick wall and moved to something else.

Why Gradle?

We had tens of thousands of lines in our rake files to build a bunch of targets, none of which were even Ruby. I think if I needed to build another complex build system that was a directed acyclic graph I think I'd use Gradle, for a several reasons - we had some Java targets so we save on an additional developer runtime, it would run faster & Gradle is more mainstream and easy to get various plugins & documentation for.

Off to the Island of Misfit Toys then.

I use ruby whenever I need a script, it's super easy to work with other commands in ruby IMO.

I don't use Ruby anymore, but I still use irb everyday as a command line calculator.

Metasploit and Gitlab are both my main uses of ruby, hasn't made me think any better of it tho.

But Cinc and its sell-out dad Chef are really great uses of ruby, keeping us from YAML hell and the kludgey socket-machine-gun that is Ansible. That piece of shit has more lithium-lick than I've ever seen.

If we can't have mgmtConfig (ohai go), at least let us keep Cinc, but it needs ruby.

I really wish I knew what all these words meant. Then again that might ruin the childlike delight I get from my ignorance.