C is Manly, Python is for “n00bs”: How False Stereotypes Turn Into Technical “Truths” (2024)

Language-based snobbery litters the software industry. As far back as 1991, the derisive term “toy language” was being applied to the Pascal language despite its substantial industrial use. We’ve heard computer science PhDs explain they were embarrassed to know Python “because it’s a language for idiots.” Linux creator Linus Torvalds once commented, “C++ is a horrible language… made more horrible by the fact that a lot of substandard programmers use it, to the point where it’s much much easier to generate total and utter crap with it.” Languages and tools divide programmers into more cliques than a high school cafeteria.

C is Manly, Python is for “n00bs”: How False Stereotypes Turn Into Technical “Truths” (1)

Google searchers have strong feelings about Python.

More than just popularity is at stake: these language-based cliques determine who calls the shots. Subjective perceptions about languages impact more than just debates between idling programmers, affecting important decisions like hiring and funding. As an intern at companies like Google, Microsoft, and Facebook, Jean has heard industry experts state things like, “I don’t hire people who know .NET.” This comment is laden with the same kind of implicit bias as “I don’t trust a guy who comes to pitch in a suit”–full of assumptions and emphasizing cultural affiliations over talent.

Judgments about language use, despite being far from “objective” or “technical,” set up a hierarchy among programmers that systematically privileges certain groups. Software engineers sometimes deride statistical analysis languages like R or SAS as “not real programming.” R and SAS programmers, in turn, look down at spreadsheet developers. Software engineers also distinguish between front-end (client-facing) and back-end (server) code, perceiving writing server code to be more “real.”

What is considered “real programming” becomes just another bias to overcome for those already marginalized. One Reddit commenter describes her struggle to prove herself as a “real” programmer: “churn out elegant front-end code, submit to the repository, and wait for the ‘wow, you wrote this?’… eventually receive grudging acknowledgement that, ‘hey, you’re pretty good for a girl’; churn out elegant back-end code and submit to demonstrate that the qualifier ‘for a girl’ was unwarranted and insulting, that I was good, period…” While those on the outside are still struggling to prove themselves, the technically privileged have gone ahead to determine what the software that runs our lives should look like.

Life is easy if we can believe that knowing a “good” language signals a strong programmer while knowing a “bad” one warns of incompetence. Many of our notions about who uses what language are not based as much on “objective” or “technical” properties as we would like to believe. In reality, these biases are less about the languages than their communities, and much more social constructs than technical ones.

Our Stereotypes Are Often Wrong

The main reason we should stop having so much faith in our language-based stereotypes is that they’re often wrong.

One assumption people make is about age and languages: older developers are outmoded–and that they know older, outmoded languages. Developers even say that they are embarrassed to know older, outmoded languages for fear that people will think they are old. As one commentator told the New York Times, “Baby Boomers and Gen Xers tend to know C# and SQL,” while “Gen Y knows Python, social media, and Hadoop.” But in a sociological surveys of programmers that Ari and his UC Berkeley colleague Leo Meyerovich conducted in 2011, there was no substantial difference between the languages that older versus younger developers knew.

C is Manly, Python is for “n00bs”: How False Stereotypes Turn Into Technical “Truths” (2)

There is also a gendered perception of language hierarchy with the most “manly” at the top. One Slashdot commenter writes, “Bah, Python is for girls anyways. Everybody knows that PERL is the language of true men.” Someone else responds, “Actually, C is the language of true men…” Such views suggest that women might disproportionately use certain languages, but Ari and Leo found in their programmer surveys that knowledge of programming languages is largely equivalent between genders. Women are slightly more likely to know Excel and men are slightly more likely to know C, C#, and Ruby, but not enough to establish any gendered hierarchy.

A major reason to eradicate these false stereotypes is that they perpetuate biases against women. Evidence shows that a hostile culture contributes to the “leaky pipeline,” the phenomenon of women leaving tech despite having the interest, skills, and education. (Despite higher numbers of women earning technical degrees, women make up 25% of the tech workforce and less than 15% of the technical positions.) In addition to making women feel underappreciated, viewing “feminine” skills as inferior makes people feel justified in rejecting female candidates or passing them up for promotions. Women seem to get a raw deal even though these “feminine” languages are not underappreciated in reality: while programmers using “girly” languages like Ruby and Python are actually among the most highly paid, there is still evidence that the gender wage gap in tech skews against women.

It is also important to note that women pioneered many forms of programming now viewed as “masculine” or “manly.” Ada Lovelace wrote the first computer program for the Babbage Analytical Machine. It was six female mathematicians who programmed the ENIAC, the first fully electronic general-purpose computer. Despite perceptions that assembly “hacking” is masculine, it was actually a woman–Kathleen Booth–who created the first assembly language. For decades, the number of women studying computer science was growing faster than the number of men–until 1984, roughly the same time personal computers became popular in US homes.

C is Manly, Python is for “n00bs”: How False Stereotypes Turn Into Technical “Truths” (3)

Photo by Maia Weinstock, published here with permission.

The “Language Wars” Are Not About the Languages

These stereotypes come about because programmers confuse their strong views about languages with their views about the users of the languages. Consider, for instance, this anonymous Reddit comment: “Node.js is not popular because of its non-blocking features. it is popular because now dumb javascript devs can write server code. Earlier they had to learn real languages like Perl/Java/Python etc. to do that.”

Our commenter assumes that using JavaScript, as opposed to a “real” language, is a sign of incapacity. But in technical terms, JavaScript, Perl, and Python are fairly similar (they are all interpreted, dynamically typed, multi-paradigm languages). The only difference is that our commenter has ideas about who uses each language–and about the languages that “real programmers” use.

Despite the extremes that the term “language wars” may suggest, mainstream programming languages are often technically similar. Sure, there are different paradigms and “pure” languages for each, for instance Smalltalk for object-oriented and Haskell for functional programming. There are also theoretical frameworks for comparing languages. Popular mainstream languages, however, are such a mix of features that theory provides little guidance on which is best. For instance, Python and JavaScript both support objects, functional idioms, and imperative styles. Both are usable for a range of programming, from front-end web scripting to backend high-performance computing. The reality is that arguments like “Language X is good/bad because it has paradigm Y” have little technical basis.

These preconceived biases arise because programming languages are as much social constructs as they are technical ones. A programming language, like a spoken language, is defined not just by syntax and semantics, but also by the people who use it and what they have written. Research shows that the community and libraries, rather than the technical features, are most important in determining the languages people choose. Scientists, for instance, use Python for the good libraries for scientific computing.

Languages often spread in disjoint real-world communities, making it easy for false perceptions to arise about a language’s user base. In addition to factions within computer science (machine learning people use Matlab; systems programmers use C; programming language researchers love Haskell), there are also factions across programmers in general. There are specialized astronomer languages (IDL), systems administration languages (Perl), economist languages (Stata), and statistician languages (R). Using an unfamiliar language becomes a proxy for belonging to an unfamiliar community–and becomes associated with all of the relevant stereotypes and biases.

Especially as more languages come about, socioeconomic factors can play a significant role in determining which languages programmers learn. A programmer learns a language not in a vacuum, but through working on substantive projects — typically with the help of more expert programmers of the language. Thus the path to a language also depends on education and employment history rather than on personal choice. Students learn the languages they are taught in school and working programmers learn the languages that their employers specify. Judging a programmer for knowing a “low-status” language is, then, often based on socioeconomic factors rather than technical aptitude. For long-term employment it may be better to look for other signals of competence such as project experience.

Knowledge of certain languages can signal cultural allegiance and socioeconomic affiliation more than technical skills. Strongly statically typed languages such as Haskell and Idris have theoretical advantages in some domains, but many consider them to bemore research languages than ones that are ready for industrial use. Programmers constrained on time or money will tend not choose these first. Knowledge of such languages is often limited to the programmers who learned them in school (often elite institutions or in graduate school) or have sufficient leisure time–and access to a community–for self-teaching. The bias goes both ways: there are people who overvalue knowledge of these languages and also people who dismiss the technical value of these languages simply because they are “academic” or “elite.” To avoid perpetuating social bias, both sides should be more open-minded to the languages of other social groups.

As a social construct, programming languages are yet another channel for social bias to masquerade as “objective” and “technical” facts–and thus perpetuate existing social hierarchies. The community seems to have closed the loop on the recursive arguments “X and Y are the best languages because the smartest people use them” and “These are the smartest people because they use languages X and Y”–where “smartest” seems to have replaced “highest-status” without our noticing. It may be inevitable for the “in-group” to perpetuate the existing social hierarchies that benefit them. And based on the diversity numbers as well as as evidence of a wage gap, it seems that these hierarchies are indeed keeping people out. Fortunately, programming languages give us a technical framework for challenging the dominance hierarchies associated with them. With a little work, we should be able to prevent technical hierarchies from copying the biases in existing social hierarchies.

What Now?

C is Manly, Python is for “n00bs”: How False Stereotypes Turn Into Technical “Truths” (4)

Photo by Maia Weinstock, published here with permission.

More people are learning to program than ever before–and have access to more languages. This is exciting, because in this new technological world we have the chance to avoid reproducing the injustices of existing social hierarchies. We need to be careful about how we are using these to let some people in while we keep others out. We should not beckon people into our field only to then ostracize them for the sin of learning PHP. It is important to look beyond what the self-appointed guardians of “real programming” have decreed.

Change begins with small steps, such as giving a programmer a second look even if they don’t know a language you deem “real” or fashionable. We should remember that “knowing” a language is a poor proxy for being able to think rigorously. It is one thing to have learned the syntax of a language and another to have grasped the underlying paradigms. As Ed Post observed decades ago, “the determined Real Programmer can write FORTRAN programs in any language.” Especially given that it takes only a few months for a professional software engineer to learn most mainstream languages, we encourage employers to make hiring decisions based on better metrics than the languages that a candidate knows.

As programmers, we should be more thoughtful about our language choices. As we’ve discussed, technical features are but one reason to use a language–libraries and community are other major factors. Given this knowledge, we should question our “objective” and “technical” opinions about programming languages. We should make a point of being open to languages off the beaten path, or that are less prestigious, especially if the relevant libraries and community are well-suited to the task at hand. Through making more rational language choices we can remove stereotypes in our own minds–and change the perceptions of those around us.

As a community, we need to do a more thorough analysis of the social aspects of programming. Ari’s work is one of the first to gather large-scale survey data to reveal hidden and surprising beliefs about programmers. Such work has pushed the social nature of programming to the forefront and gained acceptance of the accompanying empirical techniques.

Many of us like to think of the software industry as a meritocracy, rewarding those with the best skills who work the hardest. To truly achieve this, we need to remove the hidden biases that can cause us to exclude great programmers. And it is only through looking at technology as a social construct that we can make it a socially inclusive one.

We thank Kelly Buchanan, Cliff Chang, Tim Chevalier, Madeleine Corbett, Will Knight, Adam Marcus, Leo Meyerovich, and Frank Wang for their comments.

C is Manly, Python is for “n00bs”: How False Stereotypes Turn Into Technical “Truths” (2024)

FAQs

What are the six main reasons that people choose to use Python? ›

Below are a few Python features that will help you understand why Python is a suitable pick for your business requirements.
  • Versatile Programming Paradigms. ...
  • Simple Code Readability. ...
  • Multiple Frameworks for Project Development. ...
  • Compatibility with Major Platforms. ...
  • Simplifies Complex Software Development. ...
  • Favours Big Data.
Feb 19, 2022

Why C is not considered as high-level language? ›

C and C++ are now considered low-level languages because they have no automatic memory management.

What is the theory of Python? ›

Python is an interpreted high-level general-purpose programming language. Its design philosophy emphasizes code readability with its use of significant indentation. Its language constructs as well as its object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.

What does it mean that Python is an interpreted high-level language? ›

Python is an interpreted language, which means the source code of a Python program is converted into bytecode that is then executed by the Python virtual machine. Python is different from major compiled languages, such as C and C + +, as Python code is not required to be built and linked like code for these languages.

How can Python be used in real life? ›

12 Real-world Applications of Python
  • Web Development. ...
  • Game Development. ...
  • Scientific and Numeric Applications. ...
  • Artificial Intelligence and Machine Learning. ...
  • Software Development. ...
  • Enterprise-level/Business Applications. ...
  • Education programs and training courses. ...
  • Language Development.
Sep 28, 2022

What is the main goal of Python? ›

Python is a computer programming language often used to build websites and software, automate tasks, and conduct data analysis. Python is a general-purpose language, meaning it can be used to create a variety of different programs and isn't specialized for any specific problems.

Is C the hardest programming language? ›

C++ is considered to be one of the most powerful, fastest, and toughest programming languages.

Is C++ more low-level than C? ›

C++ is object-oriented, bottom-up, and includes many high-level features. C is low-level, procedural, and top-down. C is still in use because it is slightly faster and smaller than C++. For most people, C++ is the better choice.

Is C harder than other languages? ›

No, C is not the most difficult language. Coding is not hard to learn in general. However, the programming language is relatively challenging to learn. If you are a beginner in programming, you can start by building a solid foundation in computer science before progressing to C.

What are the golden rules of Python? ›

Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense.

Is Python self taught? ›

Can You Teach Yourself Python? Yes, it's very possible to learn Python on your own. There are many learning resources available on the web to help you learn Python for everything from web development to artificial intelligence.

What is code that follows the Python philosophy? ›

To say that code is pythonic is to say that it uses Python idioms well, that it is natural or shows fluency in the language, that it conforms with Python's minimalistic philosophy and emphasis on readability.

Is Python a high-level language True False? ›

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.

How can you justify that Python is a high-level language? ›

When compiled, other languages turn into Assembly and run directly in the processor. Hence, being an interpreted language, which is not subject to the processor, makes Python a high-level programming language. Also, Python is a high-level programming language that is known for its ease of readability.

Is Python high-level or low level language? ›

Java, C, C++, Python, etc., are a few examples of high-level languages.

Why is Python important in today's world? ›

Python's ease of use, support, and flexibility have made it an essential tool for those who work with machine learning, cloud computing, and big data. Python is particularly effective for analyzing and organizing data sets.

Who uses Python today and why? ›

Python is used heavily in academic research, particularly in bioinformatics, biology, and mathematics. It is the standard introductory language for many university computer science programs.

What are the five benefits of using Python? ›

Advantages:
  • Presence of third-party modules.
  • Extensive support libraries(NumPy for numerical calculations, Pandas for data analytics, etc.)
  • Open source and large active community base.
  • Versatile, Easy to read, learn and write.
  • User-friendly data structures.
  • High-level language.
Apr 24, 2023

What is Python in simple words? ›

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics developed by Guido van Rossum. It was originally released in 1991. Designed to be easy as well as fun, the name "Python" is a nod to the British comedy group Monty Python.

What makes a Python special? ›

Due to its ease of learning and usage, Python codes can easily be written and executed much faster than other programming languages. One of the main reasons why Python's popularity has exponentially grown is due to its simplicity in syntax so that it could be easy to read and developed by amateur professionals as well.

What is the hottest programming language right now? ›

As per the latest statistics, Python is the main coding language for around 80% of developers. The presence of extensive libraries in Python facilitates artificial intelligence, data science, and machine learning processes. Currently, Python is trending and can be regarded as the king of programming languages.

What is the easiest code to learn? ›

The 5 Easiest Programming Languages
  • HTML and CSS. HTML, which stands for HyperText Markup Language, is one of the most common programming languages for beginners, as it's often seen as the most straightforward programming language to learn. ...
  • JavaScript. ...
  • Python. ...
  • C, C++, and C# ...
  • Java.

What is the most confusing programming language? ›

Malbolge (named after the 8th circle of Hell) was designed to be the most difficult and esoteric programming language. Among other features, code is self-modifying by design and the effect of an instruction depends on its address in memory.

Are C programmers in demand? ›

Job demand: Python and C are two of the most in-demand programming languages, and many tech companies are looking for developers who are fluent in these languages.

Why is C so much harder than C++? ›

C++ is a more object-oriented high-level programming language which requires fixed construction and principles. However, it is easier to code. C programming language does not adhere to the encapsulation concept and allows easy data manipulation from outside code.

Why is C still used instead of C++? ›

As with C++, the larger feature set means more power, but also more complexity. C is a smaller language, but that much easier to model mentally, so perhaps better suited to projects where Rust would be too much.

What's harder C or Java? ›

It's a general consensus that Java is easier to learn because its syntax is closer to natural language than C. What's more, Java already has many built-in features to use, including graphics and sound. The Java language is the third most popular and used language in the world in Jul 2022, according to the Tiobe index.

Is C tougher than Python? ›

The syntax of C is harder than Python. Easy syntax. Python makes it easier to develop code because the number of lines is less. In Python, memory management is handled automatically by the Garbage Collector.

What is the motto of Python? ›

Simple is better than complex. Complex is better than complicated.

What is not allowed in Python? ›

Illegal Variable Names in Python

Variable names cannot start with a number. The example below generates a syntax error because we are trying to start a variable name with a number. 4. We cannot use Python reserved keywords as variable names.

What not to do in Python? ›

Few Things To Avoid In Python
  1. 1) Use Class Variables Carefully. Before we discuss, check out the below example, ...
  2. 2) Case sensitiveness. Python is Case sensitive! ...
  3. 3) Incorrect Indentation. ...
  4. 4) Variable Binding. ...
  5. 5) Misusing __init__ ...
  6. 6) Copy Carefully. ...
  7. 7) Function calls with default arguments. ...
  8. 8) Not using Comments and Doc Strings.
Aug 25, 2020

How many hours a day to learn Python? ›

How Many Hours Does it Take to Learn Python? If you're a beginner and you want to learn Python in two months or less, you would need to devote a full-time schedule to learning Python. If you spend 40 hours a week learning Python, it could ultimately take around 250 hours to fully develop your Python skills.

What is the average age to learn Python? ›

If you know Python in and out, and can explain it in simple terms, the limit is likely reading and typing. That is around age 6. Once a kid is around 14, if you find a good online system they have a good chance of learning it on their own.

What is the salary of a Python developer? ›

Average salary for a Python Developer in India is 4 Lakhs per year (₹33.3k per month). Salary estimates are based on 13214 latest salaries received from various Python Developers across industries.

What is the first line of code for Python? ›

The first line of all your Python programs should be a shebang line, which tells your computer that you want Python to execute this program. The shebang line begins with #! , but the rest depends on your operating system. On Windows, the shebang line is #!

What are the ethics of Python? ›

Members of the community are considerate of their peers -- other Python users. Being respectful. We're respectful of others, their positions, their skills, their commitments, and their efforts. Gracefully accepting constructive criticism.

What is the first code of Python? ›

To create your first Python file, navigate to the folder that you would like to create your file in and create a file called test.py. Next, open this file up in a text editor and type in the following code: print("Hello, World!")

How powerful is Python language? ›

Python is no different from other general-purpose programming languages in terms of its computational constraints, i.e., it is similar to the computational paradigm of the Turing machine. In languages such as C#, C++, C, Java, etc., you can write anything that you can.

Which language can overtake Python? ›

Performance. Performance is a major reason why Rust is overtaken Python. There is no virtual machine or interpreter between your code and the computer since Rust is compiled directly into machine code. Another significant advantage of Rust over Python is its thread and memory management.

Is Python a dying programming language? ›

In conclusion, Python is not a dying programming language. It is still popular and widely used by programmers worldwide.

Why Python is best for deep learning? ›

Benefits that make Python the best fit for machine learning and AI-based projects include simplicity and consistency, access to great libraries and frameworks for AI and machine learning (ML), flexibility, platform independence, and a wide community.

Why Python is preferred for deep learning? ›

Python-based AI and ML projects get access to the finest libraries, independent platforms, wider community, flexibility, and others. Python code is highly relatable and very concise, even for rookie developers. Thus, deep learning and ML projects benefit from this concept.

What is the best way to learn Python deeply? ›

How to Learn Python Step by Step
  1. Step 1: Think About Why You Want to Learn Python. Before you start something, figure out why you want to do it in the first place. ...
  2. Step 2: Understand the Basics. ...
  3. Step 3: Apply the Knowledge on Projects. ...
  4. Step 4: Collaborate With Others. ...
  5. Step 5: Keep Practicing.
Jun 30, 2023

Is C++ higher level than Python? ›

Developed from the C language, C++ is considered the better option for large system development, but it is also the harder language of the two to master and write in, which is something that limits its usage. On the other hand, Python is a high-level programming language.

Is C++ lower level than Python? ›

C++ has gained a lot of popularity and is still one of the most important programming languages, especially for embedding systems. C++ is a lower-level programming language compared to Python. This means that the language is closer to the machine and it can manipulate the hardware directly.

Is Java higher level than Python? ›

Type of Programming Language

Both programming languages are high-level. Python is an interpreted programming language, which means it can convert human-readable code into machine-readable code. In comparison, Java is what's known as a compiled programming language.

What are 3 benefits of using Python? ›

Those reasons include:
  • Earning Potential. Python is the second-highest paid computer language, according to Indeed. ...
  • Ease of Comprehension. One of the top benefits of Python is that it is easy to learn and fun to use. ...
  • Flexibility. Not only is Python easy to learn, but also, it's flexible. ...
  • Used in Many Industries.
Jun 8, 2023

Why do people choose Python as their first language? ›

Python is a programming language that has relatively simple syntax. This makes it an ideal choice for beginners who are just starting out in the field of programming. Python is also a very versatile language, which means that you can use i for a wide variety of tasks and in different industries.

What are the 3 main characteristics of Python? ›

What are the characteristics of Python?
  • Object oriented. One of the main characteristics of Python is that it is an object-oriented programming language. ...
  • Open Source. ...
  • Easy to learn. ...
  • Integration and adaptation. ...
  • GUI support. ...
  • High level programming. ...
  • Portable.
Mar 3, 2023

What are the strengths and weaknesses of Python? ›

A Summary of the Pros and Cons of Python

Other Python advantages are its portability, versatility, large user base, and free & open source license. Some of the disadvantages of Python include its slow speed and heavy memory usage. It also lacks support for mobile environments, database access, and multi-threading.

What is unique about Python? ›

Python is a dynamic, high-level, free open source, and interpreted programming language. It supports object-oriented programming as well as procedural-oriented programming. In Python, we don't need to declare the type of variable because it is a dynamically typed language.

What skills does Python give you? ›

Python can be used to work with data science, neural networks, data visualization, data analysis, and data collection, providing a rich overview of your web application's information.

What are the two most important benefits of the Python language? ›

High-level programming languages like Python are easier to understand, automate tasks such as memory management and other low-level computer processes, and generally have a lot of abstraction from the computer system.

What are the limitations of Python? ›

Python's main limitations include its performance and speed, memory management, support for concurrency and parallelism, static typing, and web support. Python is an interpreted language executed at runtime by a virtual machine or interpreter.

What is Python better for? ›

You can use Python for a variety of tasks, including data analysis, data visualization, task automation or scripting, machine learning, artificial intelligence applications, web and software development, etc. Since it's a general-purpose language, Python can be used throughout your entire work pipeline.

Who should learn Python? ›

Python is one of the most loved programming languages by developers, data scientists, software engineers, and even hackers because of its versatility, flexibility, and object-oriented features.

Is Python user friendly? ›

Python is a general-use and object-oriented programming language designed to be simple and easy. 2. Python's syntax is human-friendly and easy to understand, making it very user-friendly for any project.

Is it difficult to learn Python? ›

Python is widely considered among the easiest programming languages for beginners to learn. If you're interested in learning a programming language, Python is a good place to start.

Top Articles
Latest Posts
Article information

Author: The Hon. Margery Christiansen

Last Updated:

Views: 5761

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: The Hon. Margery Christiansen

Birthday: 2000-07-07

Address: 5050 Breitenberg Knoll, New Robert, MI 45409

Phone: +2556892639372

Job: Investor Mining Engineer

Hobby: Sketching, Cosplaying, Glassblowing, Genealogy, Crocheting, Archery, Skateboarding

Introduction: My name is The Hon. Margery Christiansen, I am a bright, adorable, precious, inexpensive, gorgeous, comfortable, happy person who loves writing and wants to share my knowledge and understanding with you.