• Kinda annoying that “top” always means “most popular” for these things :-\ I guess I don’t really have a specific idea of what other meaning would be best but it still seems kinda ridiculous to rank programming languages by popularity. I guess it’s an engineer-brained thing to think of them as having different uses and purposes rather than being interchangeable business tools 🤮 but to me it’s kinda like looking at spoken languages by popularity but you still wanna go on vacation or go live somewhere with an unpopular native language. Like, oh look, Spanish is popular so I’ma learn that but also never go anywhere I’d expect people to speak it, so I’ll be in Finland or something (in my dreams, where I actually can visit places v.v ) all “Habla español? Perkele!” over and over until they throw me out 😅

    Edit: Just thought to check, a cursory glance suggests “español” doesn’t get capitalized in Spanish, which I don’t actually know 😅 My Finnish is much better, as I know most of the common curses and a few of the words that go between them.

    • The ranking is perfectly fine, since some of these languages in practice are interchangeable.

      You’ll find business software in Java, C#, Python (and VBA, but we’re not talking about that), and you’ll find more system oriented software in C, C++, Rust.

      Now, you’re right insofar that it’s misleading to lump all languages together, C and JS rarely compete, but it’s a useful tool to gauge developer/employer pools. If you decide, which language to learn because you want to dip into a new niche, you might not want to learn Steve’s obscure cross-paradigm language (SOCL), but e.g. Rust or whatever is popular.

      Same is true for businesses. Yes, your software may be written in really good C, but it’s probably a good idea to go the Java route for the next project, since it’s hard to find 20 new C devs for web apps.

      I’m not saying that this specific ranking here is good, its metrics are dubious at best, but the idea isn’t inherently stupid.

    • It’s a markup language(ish) but it’s not a programming language. XML would be closer to programming, IMHO, since you could have simple things like recursion. That example is even pushing what I would consider “programming”, but anyone can feel free to disagree.

      SQL is in the same category for me. It’s a query language and can get super complex, perform some basic logic, but you can’t exactly write “snake” in it. Sure, you could use cmdshell or something else to do something more complex, but that would no longer be SQL.

      My simplistic expectation of an actual programming language would be that you can automate an entire platform at the OS level (or lower) instead of automating functions contained within a service or application. (JVMs and other languages that are “containerized” are weird outliers, by my definition.)

      I am not trying to step on anyone’s toes here. I just never have really thought about what I personally consider a programming language to be.

      • It’s a markup language(ish) but it’s not a programming language. XML would be closer to programming, IMHO, since you could have simple things like recursion.

        One could also view it a different way:

        XML merely provides abstract structure. It doesn’t direct that anything be done. By itself, it doesn’t program anything.

        HTML, on the other hand, directs web layout engines to produce outputs. It programs them.

        SQL is in the same category for me.

        SQL directs databases to manipulate data and relations, and to produce results. It programs them.

        Imperative and functional programming are often what come to mind first, at least for many of us, but declarative programming is nevertheless programming.

        •  TehPers   ( @TehPers@beehaw.org ) 
          link
          fedilink
          English
          4
          edit-2
          26 days ago

          Pushing HTML even further, one could say it’s a declarative programming language that programs a UI in a mostly-stateless manner (inputs aren’t really stateless but you can argue the state is provided by the UI rather than managed by HTML).

          I’m not sure I’d make this leap myself though, I have a hard time classifying it (or any other markup language) as a PL. As far as I am aware, you can’t really program a state machine with pure HTML, though you can accept inputs and return outputs at least.

  • If starting out: on web, Python and Typescript will take you far. On mobile, Swift and Kotlin. On Windows/Mac, C# and Swift. You’re on your own for Linux desktop.

    • C#/.NET supports Linux quite well and there is Avalonia for UI. Also there is a cross platform trend amongst modern languages such as Kotlin/Jetpack - not that I’m too keen on this approach.

    • On the web I would stick entirely with Typescript. There are plenty of server side Typescript systems; you don’t need to resort to Python.

      Most recently I’ve been using Deno’s Fresh framework which is fantastic. Very easy to use and suitable for beginners IMO since you can start with traditional request per page & static templated responses - no complex state management.