Programming languages, much like the jackass in the middle, are tools. Different tools are for different things. The right tool for the job can make your day. The wrong tool can make you question your entire career.
post
The programming language promotes a thinking model and the ecosystem defines a modus operandi.
Of course they matter.
That's why we use JavaScript on the front end, JavaScript on the back end, and you can streamline it even more by using JavaScript for the db layer too. After all, if you have too much data to be reasonably parsed in a single .json file, you are probably just architecting wrong.
Every time you get over 200k lines of JSON you gotta split it into another app, so you can webscale.
I like using python just cuz I can quickly get it working. I wish I had the time to undust C and try getting that to do what I want but my work cares more about iteration and speed to implement than speed of the program itself.
But, Haskell..., it's so well thought out, so evolved, the best of all functional programming in one, the ability to handle infinite lists, the lazy evaluation, the strict type checking, the compiler that catches whole classes of bugs, the curt syntax, the ability to breathe it like pure thought, the clarity like maths...
Okay, sorry, I better leave the room too.
Ngl changing paradigms can have the problems do a 180.
I hate leetcode but it's surprisingly fun to code certain questions in prolog when final outcome with error checking is like 15 lines.
i cowode exclusively in pythowo
It's amazing how much the NSA's github page is comprised of Python.
Makes sense that they specialize in python, so many good math/crypto libraries.
i'm not too far from an nsa building (never really looked into what they do there) but i can throw some thigh highs over the fence for y'all if it helps
This is pretty smart for the left guy. He's usually down at the level of "HTML is a programming language" or "What's a programming language?".
That said, the first one of those isn't mutually exclusive with what he says in the meme.
It mostly reflects my own story. From a beginner enthusiast of multiple "cool" languages (Scala was all the rage back then), through considering myself more "mature" and thinking about business priorities, ending at understanding that using a good programing language is a business priority.
If the team works with a language they enjoy, they will be happier (and more productive). Doesn't even matter if the code is written by humans or machines.
I'm only a hobbyist no skin in the game but as an engineer first programmer second I feel like how you design the architecture of your logic and how you choose to prioritize computational optimization or feature implementation have a much bigger impact than language. Obviously theres a time and place like using luajit instead of lua if you really need that speed boost, but in big complex programs I'm willing to bet lazy programmers skip optimization steps and copy paste thousands of lines to ship quickly regardless how performance optimized the underlying language is.
I make a module that does a specific thing for version 1, after initial bug patches and maybe a feature addition theres usually an epithany that the logic can be generalized into an api type registry structure that allows the code to be reused and configured as needed on per item basis. Along the way you do stuff like ask what the not expensive calls are, add accumulator timers to reduce unneeded CPU usage , ensure early returns are up top when it makes sense, choosing to render a cleverly crafted sprite instead of a full 3d entity.
A conditional if then logic loop Is a logic loop no matter what Turing complete language its written in. What really matters is how you use the loop not which syntax its written in.
Any function can be written in any Turing complete programming language. That doesn’t mean a sane person would use malboge or brainfuck for a production system. Language choice can have a huge impact on productivity and maintainability and time is money.
"We have decided that we will use deck screws to build our deck, it's the right pattern and architecture for the job. Now get started with this hammer, the tool you use doesn't matter as long as it's functional as a tool. If it's not working well that's an optimization problem because you're bad at your job."
No one actually copy/pastes thousands of lines of code. We use libraries.
Languages do matter a lot. Yes, they are all technically equivalent, but the craft of software engineering is much, much more about social/cultural/community considerations than it is computational ones. What the community around a programming language values matters, because it informs a great deal about what's idiomatic in a language, what libraries are available, what kind of bugs are possible (or not), how easy code is to read, comprehend, and maintain, and much more.
What makes a language good is not what programs you can write in it, but how it constrains what you can do such that you naturally writing good code. For example, null pointer exceptions (or segfaults in C, etc.) are a classic problem that plagues many mainstream languages like Java, C#, Python, etc. In Haskell (and a handful of other languages, including Rust), null pointer exceptions are not possible, because nulls do not exist in these languages. Taking away this language "feature" actually increases the power of the language, because you can guarantee that a certain class of common bugs are not possible in your program. So languages that restrict known bad programming practices lead to programmers writing better programs and, more generally, a community around the language that resonates with these philosophies.
You make a fair point, programming skill is more important than language but picking a programming language is still important in a lot of cases.
Ecosystem size can reduce "reinvent the wheel" code.
Some languages just have dogshit performance like Ruby, lua is pretty good though and it absolutely matters when you have to crunch a lot of data. Access to developers is big since you ideally want to find someone with experience in the language your project is in.
Some languages like Rust are very good for making safe code but very bad if you want to get out a microservice fast. I could make an equally correct version of some adapter in a fourth of the time in python compared to rust and I know them similarly well.
Then there's low RAM requirements like embedded devices, it's best to run something that compiles to machine code and doesn't need a big runtime. Java and C# become almost useless in very low RAM environments and you'd have to use Zig, C or Rust instead.
So long story short, depending on what you're writing it can just not matter or matter a lot.
It's extremely important, because you're never really picking a programming language, you're picking a stack
You can technically write an android app in Python, but should you? You're now locked into a framework used to run apps in Python, which are going to be much more limiting than other languages and frameworks. But you'll also have access to Python libraries, which gives you options in that direction
Then you examine the context. How good are you at learning other languages? How long/complicated is what I want to do? Does this need to be performant? How long do I need to keep this working?
And most importantly, and you really have to think this one through... Will I need to extend the original goals in the future?
So really, yes, it's very important. A bad decision in the beginning could cause problems for decades
The most important thing is using Rust, be it only to avoid calls for a rewrite in Rust by people like me
Keep your Rust to yourself. I don’t care what language someone else uses for their projects but Rust is an unreadable mess that I don’t want anywhere near my projects.
The available libraries, operating system, and hardware platform pay a bigger role than the programming language. Often the choice of language follows the tool chain and frameworks that fit with the intended program.
all 71 comments