Why are there so many programming languages? And why are there still being so many made? I would think you would try to perfect what you have instead of making new ones all the time. I understand you need new languages sometimes like quantumcomputing or some newer tech like that. But for pc you would think there would be some kind of universal language. I’m learning java btw. I like programming languages. But was just wondering.

  • @MXX53@programming.dev
    link
    fedilink
    132 years ago

    I know a handful of languages and I think of them as tools. For example, a flathead screwdriver will work on a phillips screw head (In most cases with some outliers), but a phillips screwdriver might just be better for the job. Same with a wrench and a socket with a ratchet, etc.

    When it comes to programming or scripting I approach it in the same way. If I am at work, and I need to automate something quick and dirty, no end user will need to use it, and it is just adjusting data or spitting data back at me, I am probably going to write it in Python.

    Or, if I need to make something that an end user is going to interact with, I am probably going to spin up a web server and use the MERN stack to create that.

    If I am working at home on a TUI for my favorite application, I am going to use Rust or Python

    And if I working on a project that requires me to work with embedded systems, I am probably going to reach for C, maybe C++ depending on the support, and I have in a couple of instances needed to use Assembly.

    All this to say, I think that if I had to use Python for all of these, I would be in trouble. Same as if I had to use C++ to accomplish all of the above. Could it be done? Sure. Do I want to do that? Not at all.

    • SuperFola
      link
      fedilink
      English
      12 years ago

      I’ll bite the bullet: I’m making my own scripting language for fun, as a learning experience and a tool for my own projects. If it can help others, great! But that’s not my main goal.

      In nearly 5 years working on it, I’ve made at most 400$ from donations and grants. Open source isn’t a viable source of income, no matter what ; and programming language dev is even less profitable.

    • @bleistift2@feddit.de
      link
      fedilink
      English
      42 years ago

      For which language do you have to pay the language inventor to use it?

      • That sentence may be grammatically … questionable …, but I don’t know how to write that correctly now.
      • @TheCee@programming.dev
        link
        fedilink
        English
        12 years ago

        That sentence seems correct. As for your question, you’d rather have to ask yourself: When would you pay for a programming language?

        Back in the old days before internet and commodity hardware, before easy distribution, before non-trivial software, before basic compiler knowledge was common people were easily impressed, so naturally you could sell your compiler for primitive grug BASIC.

        Today, that situation is different. A language by itself is meaningless, a risk, even, in some ways. A while back some developer of REM Objects was bitching about in the old aggregator on how nobody wanted to spend money on their special proprietary BASIC. Like it was just another product. They don’t know how to use a computer how programming languages work. This extends to even finding users willing to use your stuff for free. I don’t want to knock on REM Objects in particular, you know you could add way more examples like Seed7, every lisper ever etc., but let’s get into why people pay for programming languages.

        • extreme vendor lock-in of platform, hardware, whatever (but you almost always have your language bundled with something else in the first place, because…)
        • the point is a feature beyond the language (think matlab, labview, SAP, Excel or Coldfusion 8bitguy mentioned)
        • dubious support contracts (think Oracle JDK)
        • enthusiasts you can milk for life support and dumbfucks that fall for your next gen graph AI DSL whatever bla
        • extremely great developer experience (but we live in an age where megacorps create languages and infrastructure for improved experience for free, so, good luck with that these days)
      • 8bitguy
        link
        fedilink
        2
        edit-2
        2 years ago

        Coldfusion (Adobe) comes to mind. There is an open source CFML clone or two, but the real deal is a bit pricey. It’s mostly used by government, higher ed., and healthcare. It’s not terrible, but it was cooler when it was younger IMO.

      • @Whirlybird@aussie.zone
        link
        fedilink
        12 years ago

        If you invent a language and it takes off, you’re literally the expert on it and will reap the financial windfall of that.

  • drzoidberg
    link
    fedilink
    22 years ago

    01001010 01110101 01110011 01110100 00100000 01100011 01101111 01100100 01100101 00100000 01101001 01101110 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000

  • Sibbo
    link
    fedilink
    72 years ago

    Technology advances. Both theory of programming languages as well as their practical implementations are large fields of research with many people working on it.

    Software is so much at the core of everything today that making its development cheaper is extremely lucrative.

  • @edinbruh@feddit.it
    link
    fedilink
    English
    11
    edit-2
    2 years ago

    For various reasons.

    Different languages take different approaches and models to do stuff. Thus making each one better or worse for different challenges.

    For example, python is easy and quick to get up and running. Bug it’s slow and unsuited for low level programming (like OSes, drivers, and embedded stuff). On the other hand, C is very fast and very low level, allowing you to make both high performance programs and low level stuff, but it’s a nightmare to use and you will run into all sorts of problems that an easier language, like python would avoid. All of this is mostly due to python being interpreted (instead of compiled) and c having manual memory management.

    But they might also take a different approach at computation, like for functional languages (opposed to imperative languages) which try to solve problems in a more “mathematical” and declarative way, instead of defining a sequence of instructions. Or, even more, logic programming languages, in which you define a series of logical statements and the language tries to find solution and draw conclusions from them.

    And some languages are designed around some particular concept that they think is beneficial and worth exploring, maybe taken from various other languages and put together, like rust which is designed around the RAII design pattern and takes large inspiration from functional languages, while still being and imperative procedural language (like C, so not object oriented). Or java which was designed to be a portanle but performante object oriented language, with support for low powered embedded system, full of features but simpler than c++, etc… all stuff that now is nothing special, but remember that java us very old. Or kotlin which tries to be java (they are interoperable), but modern and better and more “pure” or “consistent”. Or c++ that started as an object oriented superset of c, but then started adding every single feature of every other imperative language, and never giving up on older stuff, to the point of becoming very hard to use correctly while making it very easy to screw yourself in the most intricate ways.

    And of course there are domain specific languages (opposed to general purpose languages). Which aren’t even necessarily Turing complete. They are designed for one purpose only, and they do that better than general purpose languages. For example AWK for text processing, or SQL for databases, or matlab for scientific calculations, or TeX for typesetting, or GLSL for shaders, or coq for theorem proving. And here imagination truly is the limit.

    So, the point is, every language is more suited then other for some kind of work. And when people stumble across some problem that is hard to tackle and come up with some approach to solve it, or when they grow fed up with the issues of some older languages, they often like to make a new language around that. And some times this leads to entirely new paradigms which are worth exploring.

    P.s.: I like languages:)

    • Nyla Smokeyface
      link
      fedilink
      English
      42 years ago

      How do you know which language to use? And how do you know if you should stick to a language that you already know or if you should learn a new one?

      Sorry if this is a dumb question I only just finished my first year of being a comp sci major

      • @edinbruh@feddit.it
        link
        fedilink
        English
        42 years ago

        It’s not a dumb question. The answer is “it depends”, it’s mostly a choice. The general rule is that when yo start a project, you choose the language that you think will help you the most, whether that is because you already know the language, or because you have to work with stuff that already use that language, or because the language is better at doing that.

        Regarding whether to stick to a language or learn a new one, in general your CS teachers will tell you (and they are correct) that you should not “learn to program in a language” but just “learn to program” and then apply that knowledge to whatever language you need. So, you should always learn languages that are different from the ones you already know in order to learn new paradigms, and then when you need a specific language, just learn the details about it. BUT, even if this way you will be able to use most languages, you will not be “good” at most, so you should also have some languages that you know really well and are experienced in. And for that you should choose the ones that are more useful to you (or maybe useful for your job) or the ones that you like.

      • neil
        link
        fedilink
        12 years ago

        Generally the most supported language on the tool/platform you want to target is the best one. Like SQL on databases, JS/ES in browsers, python in data science related stuff, etc. If multiple are heavily supported then just pick the one that’s the most comfortable.

  • darcy
    link
    fedilink
    English
    72 years ago

    they should have stopped after x86 ASM 😔

    • @yogsototh@programming.dev
      link
      fedilink
      162 years ago
      • Real programmers code in C!
      • NO! Real programmers code in Fortran77!
      • NO! Real programmers code in ASM!
      • NO! Real programmers code in binary!
      • NO! Real programmers build their own hardware!
      • NO! Real programmer code using bacteria DNA!
  • stephenc
    link
    fedilink
    English
    162 years ago

    Well I guess I am part of “they” since I have my own programming language pet project. Why did I create it? Because I wanted to, mostly. Sure, there are also some finer language design choices I wanted to choose differently for my preference, but mainly I just wanted to learn how.

  • @mtchristo@lemm.ee
    link
    fedilink
    102 years ago

    let hem keep at it. I haven’t found an easy and verstile language as Python than can compile to byte code and be as fast a C ! I know it is coming anytime now despite having been waiting for over a decade.

    • cacheson
      link
      fedilink
      62 years ago

      I won’t claim it’s as easy as Python, but that’s the rough area that Nim is aiming for. Going from dynamically typed to statically typed is always going to be kind of painful, but I’ve liked the language overall.

      Also, we have a Nim community here, if anyone is interested: https://programming.dev/c/nim

  • @garyyo@lemmy.world
    link
    fedilink
    92 years ago

    A given programming language often has limitations which are largely different than the limitations from others. This means that different languages are often used on different kinds of problems. Want something fast, use C. Want to write something quickly, use python. Want it to run on just about anything, use Java. And so on.

    So why don’t we make one ultimate one or a few that fulfill all needs? Well, partially because we haven’t figured out how to do that, but also it’s really easy to learn yet another language once your understand how they work. I can write in python, js, c, c++, c#, Java, kotlin, rust, perl, ruby, php, forth, lisp, and I could keep on going for quite a while. The underlying concepts are largely the same and so picking up a new language is no big deal (though being good at it is a bigger deal). We have so many because ultimately it just doesn’t really matter that we have so many.

  • @esscew@programming.dev
    link
    fedilink
    72 years ago

    There are a lot of people with a lot of opinions and preferences that are trying to do a lot of different things in a lot different ways. The same reason we have so many of anything.

  • @mspencer712@programming.dev
    link
    fedilink
    English
    232 years ago

    Think of a programming language as a crutch for the human brain. Processors don’t need it: they don’t have to think about the code, they just execute it. Our mushy human brains need a lot of help, however.

    We need to think about things on our own terms. Different programming languages, different APIs that do the same thing, different object models, these all help people tackle new problems, or even just implement solutions in new ways.

    Some new languages have a completely different model of execution you may not be familiar with. Imperative languages are what we traditionally think of, because they work most similarly to how processors execute code: the major pattern used to make progress, do work, is to create variables and assign values to them. C, COBOL, BASIC, Pascal, C# (my personal favorite), Javascript, even Rust, are all imperative languages.

    But there are also functional languages, like ML or F#. (The latter, I keep installing with Visual Studio but never ever use) The main pattern there is function application. Functions themselves are first order data, and not in a hacky implementation-specific way like you’re passing machine code around. (I’ve only ever used this for grad school homework, never professionally, sadly.)

    And declarative languages like Prolog helped give IBM’s Watson its legendary open question answering ability on national TV. When you need a system to be really, actually smart, not just create smart-sounding text convincingly like a generative AI, why not use a language that lets you declare fact tables? (Again, only grad school homework use for me here)

    Programming is all about solving problems, and there are so many kinds of problems and so many ways to think about them. I know my own personal pile of gray mush needs all the help it can get.