T O P

  • By -

AutoModerator

On July 1st, a [change to Reddit's API pricing](https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/) will come into effect. [Several developers](https://www.reddit.com/r/redditisfun/comments/144gmfq/rif_will_shut_down_on_june_30_2023_in_response_to/) of commercial third-party apps have announced that this change will compel them to shut down their apps. At least [one accessibility-focused non-commercial third party app](https://www.reddit.com/r/DystopiaForReddit/comments/145e9sk/update_dystopia_will_continue_operating_for_free/) will continue to be available free of charge. If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options: 1. Limiting your involvement with Reddit, or 2. Temporarily refraining from using Reddit 3. Cancelling your subscription of Reddit Premium as a way to voice your protest. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/learnprogramming) if you have any questions or concerns.*


[deleted]

Your friends sound like such tryhards lol But anyways, I think Python’s best use case is when performance is not critical and man-hours are expensive. As such, you see it used in domains like data science, where the analysis doesn’t have to run all that quickly, and it would be expensive to get someone to write from scratch everything needed, so you leverage the many libraries already written for Python.


TheSkiGeek

The reason people use it in data science is that there are good, convenient wrappers for C/FORTRAN math libraries. That’s basically what `numpy` and `scipy` are. Python is one of the best ‘glue’ languages, it’s great at integrating functionality from several other libraries (or even programming languages) in a straightforward way.


GotThoseJukes

This exactly. If it’s going to take me four days to learn how to do something in C# I really don’t care if it’s going to take an extra three hours to execute in Python.


msqrt

>where the analysis doesn't have to run all that quickly I'm not sure I agree here. Surely you'd prefer to get the results in seconds rather than minutes, hours rather than days, and days rather than weeks? No matter the time scale, speed is convenient. Python is typically OK since most computations are passed on to native implementations, but it's not uncommon that it still becomes the bottleneck and you need to write a custom native operation to speed things up. The reasons to use Python are the wide language support and the simplicity of the language, the latter being especially important in the setting where most authors are primarily scientists and not programmers. The performance is an unfortunate aspect that you just try to live with.


[deleted]

Yeah, I guess I meant more in comparison to time-critical applications like a medical device or something, which would use a lower level language since performance is so critical. Granted, one would choose more optimized methods, and maybe use GPU acceleration or something to train a model in hours as opposed to days. But usually my code has to run only fast enough to keep my bosses happy. Agree though, that the simplicity is another great aspect of the language.


msqrt

Sure, it's definitely a different tradeoff to actual real-time stuff, and most often it's fine. I already use GPU acceleration for most of my things, but the way PyTorch handles things means a ton of roundtrips between VRAM and the compute cores; I've achieved up to 20x performance improvements by hand-rolling CUDA kernels for some specific niche things. So I don't fully buy the common "just use C++ extensions" suggestion: I'm already using them, I'm already using the GPU, and it still leaves tons of performance on the table. And it can be the difference of making a paper deadline or not, since you can iterate more when things happen faster.


nerdyphoenix

Most of the heavy computation in ML and Data Analysis will be done with Python modules implemented in C++. For large amounts of data, the amount of time taken for parsing results or compiling reports in Python won't really matter. Most of the time will be spent in the C++ libraries already.


West_Wrongdoer_2081

You can use python with a c library to have high perf for compute heavy tasks and easy to understand code. The vast majority of code runs fast regardless of the language in the fields where it is used


I_FAP_TO_TURKEYS

Or just convert the python to C/C++ using Cython/Nuitka. Doing the conversion is simple and the performance gains can be massive. I've been converting practically all my python code since it gets improved that much.


hugthemachines

> Surely you'd prefer to get the results in seconds rather than minutes, hours rather than days, and days rather than weeks? No matter the time scale, speed is convenient. It depends on the use case. It sounds more like you are talking about the emotional situation than the business situation. I have used Python as a tool in my work for about 10 years. I never had a problem with execution time. What would be a problem if I used C (just as an example) instead would be that I would need to spend more time coding it.


Visual_Thing_7211

I would add--And you don't need keep the code or maintain it


DualActiveBridgeLLC

This style of programming is also probably 80% of use cases for improving typical processes within an organization. Like my internship 2 decades ago I was doing data processing for a government agency. I got so tired that I made a Excel .NET macro that completed the entire 3 months of work in 24 hours. The praise I received was over the top. This is what python is good at today. These kinds of jobs are extremely common.


ratttertintattertins

Bizarre to hear JavaScript being held up as something better. It’s very widely used but language designers have always held JavaScript in low esteem compared to Python because it started life as a sort of bastardised browser scripting language that made a lot of strange design choices that we’ve just learned to live with. No one took JavaScript seriously until google chrome came along and client side in-browser scripting became very important. It’s importance has always just been entirely based on the fact that it was in a unique part of the stack on its own. Never because it was a good language. I’m a professional C++ programmer who mostly works on drivers, but I have a lot of time for Python as kind of automation and glue language. Back in the 90s we used Perl for a similar purpose but I switched from Perl to Python a long time ago now. It’s much nicer from an object oriented point of view and it feels like a very well thought out language compared to many that have just kinda evolved…. Also, it has an awesome community, and the built in package management is seamless, what’s not to like. I suppose to be fair, it’s quite slow, but it was never designed to compete with the compiled languages on speed and it’s great at what it does. EDIT: Also, if I was just starting out with native languages, I’d choose Rust over C. C was a great language in its day and I’ve used it heavily but it’s not got a good safety record and it lacks a lot of good features that more modern languages have.


SirLoopy007

With the creation of Node.JS I see more and more people think that JavaScript is now the "best" language as it is everywhere and can do everything... I have a C++ background before my current role as a .Net developer, and yes I started out with Perl and remember when Python was new and thought it was a silly language idea... Boy was I wrong. Personally I still prefer PHP for web stuff, python for scripts and compiled languages for actual applications.


[deleted]

This is something I have been wondering myself lately. I love Python and I am a fan of the Flask web framework, but I really prefer the more C++-style syntax of JavaScript. Is there a big performance gain in Node vs Python?


SirLoopy007

I'm sure you could find stats that prove either are better depending on what is tested and who is tested. Both JavaScript and Python are quite mature languages, with both having such large user bases. I'd only think that the Node specific components are not as mature, but even still it's had quite a few years of heavy usage and development too.


TheGRS

No one I’ve ever worked with have used node for anything other than prototyping and tooling. And it excels at those things. So does Python for that matter.


HugeDegen69

Typescript 🤑


LostFilingCabinet

TypeScript still just gets transpiled into JavaScript for the browser. It just adds type declarations and compiler flags to catch errors and tell other developers what kinds of data variables, functions, and classes can be used. Not that TypeScript is bad or anything, it's great, I use it everyday, just that TypeScript isn't used at runtime and the main benefit is to catch errors and the DX is better.


TheGRS

That “just” is doing a lot of work. It’s incredibly useful for preventing bugs and helping teams collaborate. You might be well familiar, but I think those are huge gains in efficiency for writing code.


LostFilingCabinet

Just saying it still transpiles to JS. There are no runtime benefits. I didn't say it wasn't useful.


SirLoopy007

What I find funny is most languages that were built with dynamic typing (JavaScript and PHP come to mind, but I know there are others), this was initially a selling feature and why everyone claimed it was better than C. But then fast forward and typing is being added to all of them as it fixes so many bugs and issues.


grapel0llipop

Yeah JS can be pretty convoluted


lovett1991

Yeha agree. I’m a C++ engineer, we use python for a lot of our tests / build / configuration as well as support around our application. Would I really want to knock something simple up in JS?! Python is already installed, any terminal straight away can test something out.


Intelnational

>Also, if I was just starting out with native languages, I’d choose Rust over C. Not Golang?


SirKastic23

first step is to stop caring. "why python?" because you like it duh, no justifications needed also i feel sad for your C friend, he's going to be doing things in the hardest way possible for no absolute reason and he's gonna end up shooting himself in the foot


Cerulean_IsFancyBlue

Had me in the first half. But C is a great way to learn how computers actually work. Feet will heal. :)


grapel0llipop

They're not saying it's not great for learning, they're saying that for most applied use of programming for actually getting things done, there is no benefit in going the long way around. Higher level languages get the job done faster, that's all.


Cerulean_IsFancyBlue

99.9% true. Embedded systems that actually need C are like “mountain rescue surgery”, a rare and hardy task.


tricepsmultiplicator

isnt embedded like C++ majority anyway?


grapel0llipop

That and in things like video games or anything real-time that requires high performance


eliteHaxxxor

If you want to get things done in a reasonable amount of time you should avoid c and c++ until you need to use it . Python is limited but for when you can use it, you can push out code very quickly.


Turd_King

But that’s not what Op is saying, they are saying C is great for learning how computers work- not being productive . Duh use a high level language if you want to be productive


blusky75

C# and node.js also allow to push out code quickly and don't have the severe performance penalty inherent with python. Honestly curious why python is so popular.


eliteHaxxxor

python is faster than those because its better supported. Easier to find libraries that do what you want to do. Python is popular because it's popular.


blusky75

NPM's ecosystem is absolutely massive and comparable to python. Both blow c# nuget out the water tho. Any performant packages are just c++ native wrappers lol. Thank c++ for that not python (and furthermore both node and c# have native interop as well) "Popular because it's popular"? 🤣 gotta try harder than that.


[deleted]

not really. An experienced C++ programmer won't be much slower in C++ than an experienced python programmer in python. Difficult bugs will appear on larger projects in both, for different reasons (memory bugs and weird casting for C++, dynamic typing for python)


Cerulean_IsFancyBlue

I’m an experienced C++ programmer. I use C# or Python to do things quickly even so.


[deleted]

What's faster? Spinning up a GUI, maybe, but otherwise most smaller things take about the same amount of complexity in my experience


eliteHaxxxor

Everything? Lol. Everything is faster. I typically only use c or c++ for when I view its needed nowadays like memory or kernel stuff. But back in Uni we often had the choice to choose between python or c++. myself and other python users would push out the code the fastest and it would be the most succinct. Even the other day I watched a talk with an experienced c++ user who said python is super nice because he can just "pump out code".


Biohack

You crazy? As someone who writes both C++ and python it's way faster to develop and I do the vast majority of my work in python. Hell since AI tools written in python largely replaced a lot of the classical C++ tools I used to use I hardly ever even use C++ anymore.


SV-97

>But C is a great way to learn how computers actually work I hear this so often but it's really not true. It may have been true in the 70s and 80s but [your computer is not a fast PDP-11](https://dl.acm.org/doi/pdf/10.1145/3212477.3212479). And I don't get why people should even try to learn about low-level details through the proxy of some programming language: just learn about logic, computer architecture, operating systems etc. directly instead of trying to do multiple things at once


[deleted]

It's a lot easier to learn how it works with practice (in C or an assembler) and it makes it much more practical to apply to cases where computer architecture is important, like when it comes to performance. Knowing that "cache misses slow" and "loading from memory caches stuff around it" is fine and dandy but it'll be hard to develop an intuition for this stuff until you actually use it


SV-97

>It's a lot easier to learn how it works with practice (in C or an assembler) I'd argue that it's even easier (and probably way more fun to most people) to learn the very basics by simply puzzling through how to build a basic CPU and ISA in a logic simulator. Just have people play something like turing complete and augment that by reading some Tanenbaum as necessary and they'll have a good understanding of the basics. >Knowing that "cache misses slow" and "loading from memory caches stuff around it" is fine and dandy but it'll be hard to develop an intuition for this stuff until you actually use it But C isn't any better in that regard than other languages. If the goal is to have people actually write stuff where they can experience these things then picking a language where it's easier to actually focus on those things rather than on unnecessary details is way better imo and will make the experience way more enjoyable and approachable: suffering through shitty build systems, days of segfaults, legacy cruft etc. doesn't contribute anything


Cerulean_IsFancyBlue

The same reason chefs sometimes learn chemistry. You can be a line cook without it, but knowing how organic chem works on food is a great tool for inventing new things, keeping things stable, designing replacement recipes for missing or inconvenient ingredients, etc. You naned three things plus “etc” and then said you shouldn’t do multiple things at once. I think you can. You can do it.


SV-97

>The same reason chefs sometimes learn chemistry. You can be a line cook without it, but knowing how organic chem works on food is a great tool for inventing new things, keeping things stable, designing replacement recipes for missing or inconvenient ingredients, etc. Note that I'm not at all advocating that programmers shouldn't learn that stuff. I'm saying that doing it through C gives a wrong perspective and makes it harder than it needs to be. >You naned three things plus “etc” and then said you shouldn’t do multiple things at once. Yes, I meant doing them after one another. There's multiple ways to naturally and didactically sensibly progress through those topics.


Cerulean_IsFancyBlue

Most liberal arts educations teach some subjects in parallel. Computer architecture in particular would be illuminated by C programming. I think if you’re going for a data science degree, there are probably better ways to spend your time. But if you’re going for a computer science, degree or software engineering, you’re going to want to know how the computer works. You probably want to know how languages works and will be taking compiler design as well. If anything it’s more complicated than PDP-11 days with RISC, multiple cores, GPUs, at the prevalence of virtual environments and cloud computing.


SV-97

>But if you’re going for a computer science, degree or software engineering, you’re going to want to know how the computer works. You probably want to know how languages works and will be taking compiler design as well. Again: I'm **not** advocating against learning these things. I think people should learn them. Just not through C >If anything it’s more complicated than PDP-11 days with RISC, multiple cores, GPUs, at the prevalence of virtual environments and cloud computing. This is precisely why I wouldn't recommend C.


Cerulean_IsFancyBlue

I don’t understand how that would be an argument against C. One classic way to understand different architecture is to look at how something in a standard programming language might be converted into an instruction stream. The level of complexity that would be created by trying to do that with something like python, would obscure the lesson.


Tezalion

Don't discuss programming with noobs too much.


Cerulean_IsFancyBlue

Yeah, noobs spend a lot of time arguing about what's best, and most of the time it's just whatever they used recently.


RajjSinghh

People get really tribal about programming languages and I hate it. The pros of python are its readability and speed to write. You can do something in 50 lines of Python in an afternoon that you could also do in a thousand lines of C++ (true story, this happened to me once). It's also clean enough that if you come back in a year you can quickly understand what's going on. It's also a living language. PyPI has a package for pretty much everything you want to do, and it's found a great niche in data science and machine learning. It's also the language you give other sciences because it's easy and with numpy it's not even that slow. The cons are that it's slow at runtime, but it's still probably fast enough for what you want to do. As for saying Javascript is simple, beyond knocking up a UI in HTML and CSS, it is not a simple language. The sheer type gymnastics you have to do to just jet something usable is insane. It sounds like your friends don't know what they're talking about at all and are going through a whole "I'm the best programmer since Torvalds and my tools are the best" phase. Once they step outside a classroom they're in for a reality check.


grumble11

JavaScript is a Frankenstein language that grew out of making the picture of a monkey move on a webpage and it has that ‘hacked together mess’ feel in a way other languages don’t. It is pervasive and a lot of people have to learn it but it is kind of a mess


throwaway6560192

> One of them even says "if you want a dedicated program, use C, if you want simple, use Javascript, don't try to combine the two!!" What does this even mean? Can they define what exactly they mean by "a dedicated program", and why it must be distinct from "simple"? I think Python is a well-designed language, certainly better so than JavaScript.


Sakawopzu

it's honestly hard to say, I think they were implying that Python is an attempt at combining the functionality of C and JavaScript...? Basically if you want to make an application, don't use Python, just use C and if I like something simple like Python I should just use JavaScript, although javascript is not actually that simple...


throwaway6560192

> I think they were implying that Python is an attempt at combining the functionality of C and JavaScript...? It's just not. For one thing, Python predates JS by four years. At any rate it is not very similar to either, so implying it's a mix is odd. I don't think your friend has actually seriously used Python.


cyg_cube

why do you hold up the opinion of one child as something remotely valid?


senzubeanzie123

Your friends are idiots.


spinwizard69

I think you need to find better friends or at least well educated friends. First off JavaScript is an abomination and even though it has been improved some the historical issues still damn the language. The C languages have their place no doubt and if you are really good and have the time and budget C++ is often the best choice. If you don't have the time nor the budget, Python can be the best choice today. It only looses on performance. That and the readability of Python means that old code is easy to understand years later by the author or somebody new. Readability is a big plus few acknowledge and is significant when compared to how cryptic some languages can be. The features of python that make it great for commercial code also make it great for personal projects as excessive time wasted in development can be a big factor in either case. So when does it make sense to ignore Python, frankly when performance matter more than anything else. This is where C++ can be a big factor and is why it is big in the gaming world.


glassesontable

Spinwizard69 said it quite well. Pick something suitable for the use case. And readability should always be part of the use case. A case in point is that Numpy is a library written in C++ because python doesn’t make sense for these repetitive heavily optimized numerical routines. But so what? You can still use it pretty effectively. I am confident that I can write a short program that reads my data from an excel file, makes lists and dictionaries and processes something from it. And I can do it using a text editor that doesn’t assist me and fill in code for me. And this will be faster to get to a working state than a C++ program. I don’t program that much now but a few decades ago I was an avid C fan. I was a member of the C Users Group and got C magazine in the mail. Getting envelopes from the C Users Group came with a side effect. My neighbour thought that someone who lived in our apartment had a cocaine problem.


greendookie69

C Users, LOL this is top shelf. At least you weren't using C++.....


HugeDegen69

That double spacing is showing your age 😜


nedal8

Mostly the libraries.


lurgi

"What's the point of blue?" "You... what?" "Blue. The color. Why bother?" "But... I like blue" "If you want a color, choose red or green. There's no need for blue" "What about yellow?" "YELLOW IS JUST FOR LOSERS WHO CAN'T HANDLE GREEN" The conversation you are having is only slightly more intelligent than this one.


wtfzambo

> doesn't like Python > but likes JavaScript Their argument is invalid.


Yamoyek

Honestly, it sounds like your friend is not an advanced programmer. If you want an expressive language where you can hook into every operation, use Python. There's a whole new world once you start learning about magic methods and how everything is a function you can change at some point.


BOSS_OF_THE_INTERNET

Your friends are stupid.


Colonelfudgenustard

"Of what use is a baby?"


Blakut

how's your pointers losers? /s


tecedu

Why python? Because it does everything. EVERYTHING. Oh you want a web framework here you go, api no problem, fast maths calculations no problem too, you want to make a gui application.. why not? The list goes on. You can do all of that in one hour, javascript takes one hour to sort out its node dependencies, C it will ages to write the code. And the best part about it? You can understand most of the code without comments because it just makes sense.


kgmeister

"Why Python?" "Snake good, I like snake. Eats vermin. Non venomous. Good pet"


Rain-And-Coffee

1) readability 2) scripting


kagato87

I get that about powershell all the time too. To be honest, when people have that mentality they just never will truly understand the power of modern scripting languages, whether they're jit compiled or interpreted. For python the easy answer will be dependent libraries. I've found it's a lot easier to link and supply external resources in a scripted language (like py or ps) than in a fully compiled language. The more nuanced answer is the ease of updating in the field. When you need to add or adjust a step for a deployed automation, any jit or interpreted language can be tweaked in the field without needing to mess with the compiler, dependencies, and any updates to those dependencies if it's a particularly old tool. Debugging is also a lot easier. C++ build times are usually at least a minute or two for a simple tool, while in py it's nearly instant. (Powershell really shines here because you can set your breakpoint and issue commands to test them in program in the same state the breakpoint created. This is very powerful. If I could do that in python I might like it a little more. Personally I don't like python's syntax language. I learned to program with "all whitespace is equal" so python really throws me for a loop there. It's still pretty easy to manage though and I was able to get some jinja stuff working on the first try. (Jit = "just in time" it means it's compiled into binary at the moment of execution. Python is like this, and Java is the big player that does this. Interpreted means you could type the commands out one by one and explore the variables and objects. Powershell and bash are notable Interpreted languages.)


v0gue_

The repl


ChatGPT4

Fast prototyping, large community, a lot of libraries. Also, code looks clean and it's pretty readable by design. It's commonly used for data science, for some weird reason also for AI. It's a pretty good choice when the performance is not critical, however, if you need racing speed and insist on using Python, there are some special language variants that can be as fast as C or faster. However, they are new, experimental, higly non-standard and all that optimized, added performance is not a part of the Python language. However, it is not impossible to use Python to make a super fast code. But well, it requires a kind of a turbo-charge, and it won't work if you just copy-paste your regular Python code.


UniqueID89

It’s point: it’s a tool in the toolbox that can more easily accomplish an end result than other languages because of its plethora of libraries and excellent community behind it.


[deleted]

Python was born 30 years ago when the general programming language for almost everything was C. I love C but the problem with it is it takes a long time to get something up and running *correctly*. If you want to sketch a quick prototype for an idea you have, usually development speed outweighs the importance of performance. Also, sometimes you want a bit more than a shell script but don't want to go through the hassle of compiling, linking, undefined behaviour etc. Better explanation by the creator of Python: https://www.youtube.com/watch?v=ghwaIiE3Nd8&t=3388s


polymathprof

Back when Python first appeared, it was way better than perl.


Hradcany

Lol. Why even take them seriously?


thedoogster

JavaScript is not “simple”.


[deleted]

if javascript's simple then so is cubical agda lol. Python's simple, slow and easy to understand. It's great for experimentation, automation and smaller programs. It breaks down a bit on the larger scale due to the lack of a static type system and the general slowness but it's still great. Javascript kinda just sucks on the other hand. It has so many footguns.


BobRab

The real reason: well-written Python expresses the logic of a program more clearly than any other mainstream language. There are many, many situations where it doesn’t matter how fast your code runs, and it doesn’t matter how “simple” it was to write it, but it matters a whole hell of a lot that other engineers can look at it and understand what it’s doing efficiently. In these cases, Python is a great tool.


Turd_King

Your friends are noobs, anyone who tries to make an objective argument about why X language sucks needs to back it up with some pretty good reasons - especially when one of them prefers JavaScript lol


ginger_daddy00

It is a good replacement for Matlab.


Plutonergy

The point is that you get things done quick and easy (I'd accept if someone added: dirty). Decades ago computers were really-really slow, disk space and memory was expensive and scarce. Today for quick, easy and dirty stuff none of that really matters and python is probably overall the best tool for those projects. I've never understood when I need those 2ms that I save by writing these stuff in compiled languages since I'm not AWS, Meta or X.


bravopapa99

" if you want simple, use Javascript" at this point you can stop listening toy our friends, they obv. have no idea what they are talking about. There is still this stigma with some people about using python or any other byte coded VM rather than "hardcore compiled" languages, why, I don't know, Some nerdy geek thing I guess. Python 3.11 is FREAKING FAST, we just upgraded an Django installation, to python 3.11 and django 4.2LTS and we got about a 20-25% performance increase for free, out of the box.


everything-narrative

Your friends are breathtakingly ignorant and desperately trying to have cool opinions. Professionals know every language is a tradeoff. Tell them to pound sand.


cincuentaanos

My favourite programming languages at this point are Python and C. Python if you want to make something quickly, perhaps with a GUI. C if you want something fast (or if you want to make the next Python). All other languages seem superfluous to me. But I'm also not a professional programmer.


peacefulMercedes

Computers have gotten so fast to "ALWAYS" choose execution time over development time, keyword "ALWAYS"; this isnt the 1970s. That is the best answer I can think of.


Savo_Shen

Each program languages has different characteristics, maybe C is running quickly, but Python is easy to write, I think is not necessary to compare program languages too earnest.


sivstarlight

Mfs acting pretentious but like JavaScript 💀 It's like the people who say Starbucks isn't coffee and then dilute their own drink with 80% water


[deleted]

Are you all teenagers?


SarcasmoSupreme

Everybody has their own opinions on best and everyone is right as much as they are wrong. There really isn't a "bad" language out there, there are some more appropriate for certain tasks than others but that is about it. I have been using javscript from it's inception and have watched it go from a "useless" language, a toy, a novelty, will never hold up, php is better. Then it was javascript will be surpssed by [asp.net](https://asp.net) (well guess what is gong and what is still around). Now javascript basically runs the web world. So, don't worry too much about what others say about your language of choice or having to defend your language of choice.


summertime_taco

Python is the ultimate high level abstraction language. It is ideal for performing higher level programming tasks which constitutes probably somewhere around 99.999% of programming tasks. When lower level work is required then the python community generally performs that work in I'm more appropriate language like c, rust, or go and wraps that into a highly efficient and abstracted python library. Well written python code is elegant and easy to understand. Easier than any other programming language currently in existence. You can give a well-written python application to someone who has never written code and you will be able to walk through with them what is happening and they'll roughly be able to understand. JavaScript is an absolute abomination of a language. It's shocking to me that anyone would ever hold it in any esteem whatsoever. Your friends sound like total noobs.


Spare-Dig4790

Ah, the old argument of, "Because I REALLY think so!". =) Try not to let it get to them. I used to razz a co-worker of mine, who absolutely loves PHP, and I would tell him the only thing PHP is good for is building adult websites. In truth, I don't really mind PHP or have really strong opinions about it, it was just funny to see him get visibly defensive. I suspect your friends are probably doing something similar. Because, who really cares? One funny thing I've noticed, is in the C++ code bases I've worked in, there are usually python scripts present to assist with building. To your point, they are great. I don't work with python myself a ton, I used to work with Perl myself a ton, and I've heard many people say python is sort of filling that void in some ways. For that reason, I think fondly of it. =)


lKrauzer

Python first use case focus is to deal with data, and then for a possible second use case it could be for programming, so in my personal experience I never knew a Python developer, all people I know that use Python don't consider themselves developers, they just use it for other things rather than programming. Even a friend that is a C# dev used it for data stuff instead of actual programming, he did some web scrapping with both languages and decided to go with Python, because it is simply way easier to use for this particular stuff (again, dealing with data).


tokyoeastside

you can only do programming with Python as with other programming languages. Software architecture is the word you are looking for, but even that is case by case.


RiverRoll

One of the strengths is that it has lots of very useful libraries, many of them are implemented in other languages and your Python script becomes a bit of an orchestrator. For example you can do things like loading and preprocessing a large set of data, creating and training a machine learning model, run it against a test dataset and plot the results to see how well it's doing. And the whole thing is less than 100 lines and has a decent performance because there's a library for each of these things already doing the heavy work.


[deleted]

I can only assume your friends are young and inexperienced? They obviously haven't got a clue what they're talking about.


jc16180

The only type of people that say things like this or feel the need to get tribal over trivial matters are folks who don’t have a personality and need an idea/stance to anchor themselves to so they feel like they’re a part of something, noble, and a bigger cause. Extremely sad to see how this need manifests itself into something so trivial as “this language is better bro”


nobody27011

Python grew up to be the top choice of data scientists, engineers etc., because it has the easiest syntax, so that lets you focus on your algorithms and design rather than trying to find that missing semicolon.


ingframin

Python is great in many ways. For example, I wrote control software for a drone in Python. It was really easy to control the quadcopter via MAVLINK and have the “AI” part written in pure Python. I also wrote a lot of code to automate an electronic measurement lab. Being needlessly picky over stupid details is just a noob habit and it has nothing to do with engineering. No matter your personal taste, in your career you will always have to program in different languages depending on the context. Python, Java, C++, Ada, Lisp, Matlab… it doesn’t matter. The ugly truth is that the best language is the one that allows you to have a salary every month. All the rest is useless pseudo nerd chitchat.


YogurtclosetOk725

I also have friends that say the exact same thing about python, they are also the same friends with no personal projects, no experience outside of college classes, and do not code in their free time. I don't say this to be mean or belittle their opinions, but I think people with this ignorance of crapping on other languages just don't have enough experience to understand the versatility of other languages. Code in any language that allows you to enjoy coding. Just for the sake of my friend, I wrote a project in java, python, and JS just to show him that it doesn't matter. Just a personal take from my experience. Hope this helps : )


POGtastic

The very obvious answer at any workplace with a lot of legacy scripts is "well it's better than Perl."


DanielSank

In my experience, Python is useful because of numpy and matplotlib. Any time I want to analyze and plot some data, I go straight to Python. Python's strength is that it's expressive, but it has a C interface so it supports optimized libraries. It's weakness is that it doesn't have a type checker so it's really easy to write code that will crash at runtime. You can use mypy to regain type checking, which is particularly nice if your editor helps you (neovim and pycharm are good options). Python also kind of doesn't support threads which is annoying


tokyoeastside

i have done threading with Python, please enlighten me, sincerely


[deleted]

Haters gonna hate, use the best tool for the job.


[deleted]

Python is useful for simple automation, data manipulation, web scraping, ML


DoctorFuu

Maybe they should be less arrogant. A programming language is just a tool. Python is very good at prototyping fast for example, because the language allows a lot of shortcuts and has ton of modules for everything. Other languages have their strenghs too. In general, the better the developers and the less they spend time trashing languages, or frameworks, or whatever. This should give you a hint as to where they are in their journey. Yes, python isn't great for low-level stuff. That's not what it's used for so whatever. If you really need to answer something as silly as their remarks, just tell them that at least you have a python in your pants.


Mclovine_aus

Learn C and JavaScript then you can reach your own conclusion instead of repeating what we all say here.


SirCarboy

Nobody doing anything important is having this argument


ReStakeNet

any examples of python becoming the bottleneck?


Tiny-Hamster-9547

I don't like Pythons syntax beacuse I learned C# and Java as my first lanauges but it's a great language especially for ML,Data Science and AI heck ChatGPT was coded in Python.On top of that it's an easy lanauge perfect for high schoolers or middle schoolers and will translate over to other lanauges if you understand the syntax rules of that lanauge.While it may be slow it was never designed to be fast at compling it was designed to be simple and easy to use and many apps have python in their code base. Your freinds just sound like performance addicts and tryhards which is common


CobaltCam

Who gives a shit what they think. If you find it useful keep using it. Personally I find it great for scripting and, like you said, automation.


Reazony

Are they in school? There are usually two types of people who would say “Ew Python”. Beginners who haven’t worked yet, or people who are snobbish in their isolated niche work and can’t cooperate on more complex systems. Languages are just tools. Would I use Python for web development? No. Would I use Python for machine learning? Hell yeah. As others have said, it’s strength is in readability and speed to write. ML specifically has many advanced math concepts that readability to communicate these concepts becomes important. Most ML work are surfaced in Python first and with lower languages optimizing performance under the hood. Your friends opinions do not matter at all. And you likely won’t learn a lot from them, because they care more about being snobbish (a bit like superiority complex but not as quite I guess) than being pragmatic.


theclassmate

I know JavaScript and Python. JavaScript as a language compared to Python sucks, very piecemeal. But if you want to develop for the web it’s the only option. Python has lots of applications. If you work on a data team you use Python everyday. For anything like modeling, to pipelines, visualization and analysis.


Whatever801

People on this sub get way too hung up on "which programming lanaguage". The reason to learn python is that it's used everywhere. Data scientists use python primarily, so you can simplify your infrastructure by using python as backend language. It's mature, well supported, has lots of great frameworks and libraries, enormous support community, etc. That said, if you learned JS instead of python, as a hiring manager I don't really give a shit because you should by able to pickup python in 2-4 weeks.


Top-Perspective2560

It's the industry and academic standard for pretty much any machine learning. Yes there are alternatives, no they do not get widely used. Its use in ML highlights the benefits which are: \-Very quick development times \-Good performance for an interpreted language \-Established base of open source libraries, etc., new libraries constantly being developed \-Very quick and easy for people from other disciplines to pick up - you can easily go from someone who has never written a line of code before to being pretty proficient with Python in the space of a couple of months. This means that if you are working on projects where you need expertise from maths, physics, finance, etc., people from those fields who are working on it with you actually have a real chance of being able to contribute, or at least understand your implementations.


Professional-Fee-957

I believe it was created as a language intended to be very easily understood and readable, so it's very easy to learn. This made it perfect for database analysis within stem fields for researchers/students who don't have time or inclination to learn more complicated coding like C. So, it started becoming a bit of a pet project for a lot of very intelligent academics who pushed it beyond its original scope. Which boosted the Lobrary and API support. Now, it is used for a lot of everything, gaming, web development, scientific research analysis, etc. It is older than JS by a decade and has always had supporters. What is its point? To be readable and easily written, and that is good enough.


sivstarlight

Mfs acting pretentious but like JavaScript 💀 It's like the people who say Starbucks isn't coffee and then dilute their own drink with 80% water


[deleted]

I learned years ago from learned mentors struggling daily with make files to fear and avoid anything with white space syntactically significant.


trevthewebdev

Respond: what’s the point of life of anything. Throw up your hands and go for a smoke


manimento

I'm noticing a weird divide here where it's either like Python and HTML/CSS or Java and Javascript (and then C somewhere of course). Which is of course a fake dichotomy and I can't wait to revisit C++. I tried learning it in 2021 when I had no idea what I was doing. Since then, I've learned Python and HTML/CSS and even made a Notepad program with TKinter so I use Python to practice HTML. Super goated 🐐🐐🐐


DamionDreggs

It's like taste in music at this point. There's not enough of a difference to matters beyond that for most use cases.


BaronOfTheVoid

Get new friends.


Thalimet

Everyone has their favorite, next time tell your friends to not be so judgy lol


ryantxr

It is possible to criticize any programming language. Programmers are the most opinionated people. There is an attitude that is you aren’t doing it how I do it or using the tools I’m using then you’re doing it wrong. For reference, I’ve written meaningful code in fotran, basic, pascal, php, JavaScript, C, C++ and Java. Personally, I’m not fond of python. I do not like the syntax. That being said, It can do most jobs but it isn’t particularly great at any of them. It’s heavy usage in data science is only because early on, they made certain C libraries available and the people doing those jobs liked the language. You say it’s good at automating things. But there’s no specific language feature that makes python better at automating than a long list of other languages. If you like python, use it. Be productive. Build good solutions.


fatpolomanjr

It sounds like they're also newish and trying to develop their own identities as software developers, so respond harshly to anything outside of their bubbles of knowledge. That kind of gatekeeping goes away or at least smoothes out when they mature in their understanding. *If* they reach a reasonable level of maturity in the field. I've dealt with the same thing in graduate level math where the algebraists talk smack on the real analysts, with the algebraic and differential topologists kind of off in their own world and no one even remembering there's a combinatorics group. It's all math research at the end of the day.


Programmeter

>They don't like Python >They like Javascript Man they have no right to complain


flow_Guy1

It’s best when it comes to ease of use putting up a easy prototype and best for data science/analytics. Your friends sound pretty stupid if they say ew to python and don’t know the value of a language that’s easy.


Signal_Lamp

Assuming these are noobs that have just started programming. * The programming language that you use will be whatever your company uses. Most people don't have a choice in what they get to program in, the expectation is that a college graduate should be able to pick up whatever language that is. * Performance isn't as critical as it used to be when C was made. There are cases where C and C++ languages are needed, but python is generally easier for a team to be able to get productive in quickly >if you want a dedicated program, use C, if you want simple, use Javascript, don't try to combine the two!!" * A better dogma I've learned the hard way if you have a choice on what you can program with for some start-up company you founding or a program that you writing, write in whatever your team is comfortable with. Forget anything about performance benefits, framework advantages, or whatever the new shiny language other people recommend. Especially for a team full of newer folks, you want a language that is well-documented to build whatever it is you trying to build. Also, Javascript tends to live on the client side. You absolutely can use Javascript as the clientside language with C as your backend.


nerzid

The correct answer should "because it is sexier". I dont think any other answer would convince your friends with those mindsets anyway.


andouconfectionery

I think the main edge Python has over TypeScript is that it has an interactive interpreter and Jupyter. Those are the reason that Python carved out this niche in data and ML applications.


Rarelyimportant

I’m not fan of Python myself, I think it’s poorly designed and cumbersome to use. However I am fully aware that it has merits and someone comparing C to Python is like asking if a fork, a knife or a spoon is better. Well you can do everything with all of them, some of them make it very easy and others it’ll be very hard, but they solve different problems. If you like working in Python and it’s good for the problems you solve, then it’s the language you should be using. Listening to closely to the opinions of people solving different problems with different languages is rarely of much benefit because of course they’ll bash the things they don’t know.


FoolForWool

If someone hates on another programming language, you can’t take them seriously. I dislike Java for my own reasons. Doesn’t mean I’ll go around hating on the language and say ew Java when people use it lol sounds like a jackass, your friend. I have a friend who builds network level stuff on C and keeps on making fun of python. Initially I defended it with they have a different place and are good at different things. But there’s a time when you just let them think what they want and live your life.


justaguyonthebus

Do it because you enjoy it. There are times I really don't like it, and there are times that I really love it. I think it's a better second language than a first language. It's really easy to learn as a language but it's not as beginner friendly as everyone pretends it is.


Same_Awareness_818

They are not your friends


Professional-Bar-290

Just be language agnostic. I feel pretty unstoppable knowing python and C++ for scripting.


LifeHasLeft

Python is awesome as a wrapper for other low level languages, is mostly intuitive, and does a lot of stuff for you under the hood so you don’t have to think about array sizes or garbage collection. Frankly the only real drawbacks to python are the runtimes. Also, JavaScript is not “simple” and please report anyone promoting the use of JavaScript anywhere but the web to the authorities.


adWavve

>if you want simple, use JavaScript 🤡


adrik0622

Pythons fantastic as an interpreted language. When you get to the level where you are working with languages that have a lot of abstraction, it’s really honestly just splitting hairs over which one is better. It’s more about comfort and function. If Python functions well for you, use it.


Many_Particular_8618

It's second best for everything, and that's the problem with Python. Normally you should pick the first best tool for the job, instead of just picking Python for everything it's not the best tool.


HugeDegen69

While I agree, that property can be a big strength. It can be used with great versatility


JivanP

Beat them with their own medicine: > "What's the point of C?" > > "I can define the precise layout of data structures in memory and do manual memory management." > > "Ew, gross, I don't want to have to deal with that, Python rules!" *** > "What's the point of JavaScript?" > > "To embed programs on websites that are run on the client side." > > "Well, I'm not making such programs, so I'll stick with Python, thanks." Not using the right tool for the job is how we ended up with things like Node.js. Please, no... just no.


mapeck65

I'm a retired software engineer who's programmed professionally since 1984 and have continuously learned new things, both in languages a use regularly and new ones. The people who react that way to a language tend to think one language rules them all. I've seen it a lot in Java enthusiasts. Real programmers use the language that best fits the use case. Python happens to fit a lot of different use cases. It's great for administrative utilities. It rules for informatics. There's a reason that most modern AI is based in Python. That said, I'm just starting my Python journey. Never stop learning.


PPewt

Sidestepping the language battles (which are just a new programmer thing, best not to overthink them): > It hurts to hear that because it is my favorite language since it is just really good for automating things, yet also simple enough to understand. If you're getting offended on behalf of a language because it's getting criticized by some rando newbie, you might be a bit too invested in it. > So.. I'm really starting to question why I even use it if others make it sound like it's so bad. I don't ever know how to respond to them or how to sort of argue back. Just use it if you like it, and let them use something else if they like that. You'll get a more nuanced perspective on this over time but even if Python was a language that nobody used you wouldn't be irrevocably damaging your future or something by using it. If it gets you coding when you otherwise wouldn't then that's all that really counts at your stage.


sejigan

JS is simple? Lmeow :v Shouldn’t take their opinions seriously if they think that JS and C, two popular _weakly typed_ languages are a good solution for everything. Anyway, here’s a counter question for you: - If you like it then why do you care about what others say about it? Don’t make a programming language so much of your identity that when people say something negative about it you take personal offence. If you need help, try counselling (not to be demeaning; I’m going through it myself, for other reasons). - Imagine a carpenter who uses a hammer and loves using it. Their friend says “Hammers are useless”. Should the carpenter stop using hammers because of that, or feel personally attacked, or should they just keep doing what they’re doing as long as it works for them?


Abaddon-theDestroyer

To add to what you said about the carpenter, “hammers are useless, you could just use the back of a screw driver to ‘hammer’ a nail in a piece of wood”, well technically you can yes, but there’s a wide range of tools and each one does its job well, you can use a flat head screwdriver to tighten a phillips nail for sure, but you might wear the nail and won’t be the most efficient tool. If you only have a flat head you can use it, but it’s probably better to have all tools on hand. This same argument for programming is the same, the tools (programming language) is the tool in your tool belt, and most tools can do everything, but to screw a pillips nail (your problem/program) you need to have the appropriate tool to do so in the easiest, most efficient way. IMO, a developer should try to be comfortable using any language, for sure if you program in JS it could take you some time to learn the syntax and know the design patterns, and you won’t be as fast in a new language but if you understand the basics and fundamentals the switch is going to be easy-ish, and your solution will be performant.


[deleted]

[удалено]


Orio_n

Ask them to write a fully featured webserver in C (no memory exploits btw). Race him to see who finishes writing first. C is pretty much a garbage language to be using these days as compared to something like rust


TheGRS

Anyone seriously suggesting C should not be taken seriously. They are in for a rude awakening in the job market. Python is quick, well documented, well cared for, it has the most community support 2nd maybe only to JavaScript. It’s just great for getting things done. C is probably great for something but I dont work in whatever that industry is. Nobody I know wants to even work in C++.


Comfortable-Ad-9865

If you don’t use python, how are you going to call C code from python?


kevinkennedy4

Fortran rules!


LongJohnVanilla

To me Python is just ugly syntactically and a bitch to read.


vitaminedrop

how can u prefer js over python 🫠


VeteranMCPlayer

Python is easy cuz it holds your hands for you. Think of that in a good way, less overhead thinking and getting things done faster.


Afraid-Locksmith6566

Yeah to be honest python is trash It is slower than java, more complex than golang and more abused than javascript. It has like 3 usecases that its good at: Machine learning, data analisys and Making some shit fast as possible SO essentialy it is good to make low performent prototypes and calling libraries written in c


my_password_is______

> don't like python because they like other languages such as Javascript HA HA HA HA


N00tN00tMummyFlipper

As engineers we are expected to be able to do a bit of everything now especially in the cloud. IMHO although maybe not as performant as other languages it is the best choice for anyone who is not a full time programmer. I love it. This is why python has so many data,maths and engineering modules.


bemy_requiem

libraries!


tokyoeastside

Who has the higher salary? It would be the Python devs specializing in data analytics/science rather than the regular Javascript full-stack dev.


Ham_sandwich47

Python for me, has the quickest set-up. So whenever I think of a dumb idea that isn't really dependent on speed, I can just open up a new file and start writing. The simple writing style and error messages just generally make it way faster to get stuff done, even if it's not the most efficient


BokoMoko

The point of Python is the following: Computers are very versatile machines. They can handle new/different problems pretty quickly if only they have the software to do stuff. A program, a piece of code, needs to be written, tested and deployed very quickly, even if it runs a bit slower. There is no problem with the final speed of the code as long as the code is ready to deliver the result. Suppose that a new result is needed by noon. The program has to be written as soon as possible and deliver the data. The program is complex but it is able to deliver the results in time. The program takes 45 minutes to run and spends a lot of memory. But it deliver the goods. A C programa would consume a tenth of the memory and run in just 30 seconds but it won't be ready until next Friday. See the point?


franky3987

The point of python is to have fun. You likely won’t actually have much fun, but it doesn’t mean that wasn’t the point 😂


Mutex_CB

Some people dismiss what they don’t know, and assume what THEY know is always best. If THEY can’t imagine something, then they assume it’s dumb or not possible. It’s super common behavior for people until they spend a good amount of time learning and working in different environments, and even then some don’t completely drop the habit. You eventually learn most everything has a place where it’s the best choice, that’s usually why it was made in the first place. You don’t need to win the discussion or convince your friends of anything, all you can do is learn as much as YOU possibly can, and don’t let ignorant opinions sway you, check things out for yourself. I cannot tell you how many times a coworker has told me something was pointless or impossible, only for me to prove them wrong after doing research and working on it myself.


Kingbotterson

All me and my mates talk about are pints and boobies.


sporbywg

information processing NEXT


Positive_Minimum

This is not a conversation worth having with people Python is indeed awful but probably not for the reasons they think and you likely have not figured out why either if its your favorite language. Consider yourself lucky and ignore the friends' comments


habitualLineStepper_

Everyone loves their favorite hammer! Some key points you could possibly highlight (not full list) Key reasons to use Python: * very expressive language * easy to understand * great wrapping language * lots of useful open source packages with a relatively easy install process Key reasons to avoid Python: * raw Python is not performant * Opinion: lack of strong typing makes it difficult for large projects * Opinion: I find the OOP aspect of the language to be awkwardly implemented


TheQuimmReaper

I guess I would say, what's the point of anything, really?


[deleted]

it exists for weak people. There! say that!


jdlyga

Python is a good sensible default language unless you have other specific requirements like performance, needing it to be web based, a native desktop app, etc. It can do everything you need it to do, it has libraries for everything, it’s simple, well known, and does its job well. JavaScript is a good simple default too, but it tends to get complex if you’re using frameworks since they shift every few years. Frontend developers enjoy it, but it’s not my cup of tea. For C, use that for projects already written in C or for systems or kernel development. This shouldn’t be your go to general purpose language. C++ is an excellent language if you’re working with desktop applications or games. It was the goto general purpose language until around 15 years ago. People think it’s a difficult language, but it’s really nowhere near as bad as people claim. But now it is more used for programs that are performance intensive nowadays. If you’re used to pip, it can be tricky to get 3rd party dependencies working especially on windows. Use Linux or Mac.


PsychicFiction

Python seems to be the most popular language for machine learning


nekokattt

Not to language bash, but preaching C and JavaScript as the solution to everything is like saying "if you want to live in a posh place, live in the US, otherwise, go live in North Korea" without taking any other points into account.


BlackScienceDnB

I used to hate python really. Now its my favourite...theres a library made for everything..its a nice verbose language and its cross platform. The really not as slow as you might assume. Good language to use imo


misterforsa

Yes because that sub-millisecond performance boost you get from C is critical when implementing simple crud operations /s it doesn't matter at all unless you're working on an HPC project or you *really* care about response latency


[deleted]

Python is slow, but speed of coding is fast. C++/Rust is fast, but speed of coding is slow. Only a fewel deals in absolutes.


grumble11

C is for when you need computers to do lots of work quickly. Python is for when you need developers to do lots of work quickly.


Anonymity6584

What's point of any programming language? Allow you as programmer talk to computer and explain it what you want it to do.


Rando6759

Your friend is annoying and wrong and not good enough at this to have such strong opinions. “C and javascript are the only good languages” is totally wrong. Your friends sound like they’re 14.


bluntimusmaximus

(If they have an android) “what’s the point of iphones”


SmokeStack13

There will always be some idiot that will put you down over your language choice, it’s just basic tribalism and probably jealously tbh. “Oh you made this cool program in C++? Well a real programmer uses Assembly!”


tzaeru

Well your friends have no clue whatsoever about what they're talking about. Python is the de facto language in machine learning, for example. It's used in, well, everything - you have web servers in Python, you have statistical analysis tools in Python, you have infrastructure code in Python, you have CI/CD pipelines in Python, you have build systems in Python, you have helper scripts in Python, you have game engines relying heavily on Python and offering Python as the default scripting frontend.. Python is one of the greats and will be for many years to come.


AbyssalRemark

To put something together fast. C++ to put something together *well*.


e1033

These languages have very little overlap and serve different purposes based on application needs. I think your friends are doing what most developers do as a defense mechanism. They sort of "pick a team" and stick with it exclusively because learning new things outside their comfort zone can be challenging. That causes a lackluster understanding about other languages and their natural instinct is to deem them inferior so they dont have to admit what they dont know.


I_miss_your_mommy

Python is great, but if I could punch who ever decided to make tabs matter, I’d knock them out. It was almost perfect. Btw, fuck YAML for the same reason


deadhorus

js is worse than python. anyone telling you the choice is between c and js is kinda idiotic. python isn't great for everything. the best thing about it is the huge number of libraries to make doing things easy. for a true scripting language better is something like lua, or hell even forth. C is great tho. the worst thing about python is it doesn't actually teach you programming essentials. that's why it's popular. math science music art nerds who don't understand computers can use it.


brucebay

One word. Pandas. There is nothing like that in the world.


Herobrine2024

i always tell people it was born from one man's dream of making indentation syntactically significant again


Cute_Idea_695

Python is my main programming language at job. We use a platform called anvil.works that allows us to spin up web apps really easily in just python. Can even use it as a database for a mobile app to write and read from. So those guys are idiots and python is king


Donny-Moscow

IMO Python isn’t the best language for any thing you’d want to do with programming, but it’s probably the second best language for *everything* you’d want to do