Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3635700
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T00:56:14+00:00 2026-05-19T00:56:14+00:00

I have been using Python for about a year now, coming from a mostly

  • 0

I have been using Python for about a year now, coming from a mostly Java background. I found Python quite easy to learn because of its focus on readability and simple design. The thing I don’t understand about python is why for a language that focuses so heavily on readability, it often uses very non-descriptive names for modules, functions, constants etc.. One thing I like about Java is its very descriptive class/attribute/method names (I like objective-C even more for this reason). It seems python programmers in general seem to have taken a C type approach to naming where they use as short names as possible for everything. I know everyone wants to do as little typing as possible but I like a lot of programmers spend the majority of my time reading code rather that writing it so I find the choice between short non-descriptive names and long descriptive names, an easy one to make. (I like longer descriptive names xD)

A few examples, just looking at some modules in the standard library,

  • sched — Event scheduler, Could this have been EventScheduler?
  • asyncore — Asynchronous socket handler, AsynchronousSocketHandler?
  • imghdr — Determine the type of an image, DetermineImageType?
  • Pickle?

I know this isn’t a huge issue but I find myself more often than not having to look up the meaning of any new (or forgotten) module I come across when in other languages like Objective-C or Java I can get this meaning straight away from the modules/functions/attributes definition.
On another note, people tend to write code similar to the way the standard library is written so you can be sure that if the standard library uses non-descriptive names the average developer will use even more non-descriptive names.

I was just wondering does anyone know why this is?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T00:56:14+00:00Added an answer on May 19, 2026 at 12:56 am

    I guess there’s a balance to be struck between being descriptive and concise, and Python’s scripting background makes it somewhat more concise than Java (because us hobbyists are too lazy for all that typing 😉 ). At the risk of sounding like a fanboy, Python tries to walk the line between the descriptive-but-long (Java), and the short-but-tricky (*cough*Perl).

    Things that are used often and easily understood can be short, so we have a str type rather than an AsciiString or UnicodeString (Python2/3 respectively). More specialised functions, like urllib.urlencode or random.normalvariate get longer names.

    The core language is generally kept simple (e.g. there is no character type, only one-character strings). The idea that there’s only “one right way to do it”, along with duck typing, mean that there’s no need for names like do_something_with_type_a. And, while it’s just an excuse, there is clear documentation for anything that’s not obvious.

    As for itertools? The module name doesn’t really matter, it’s just a grouping of functions. Some of the functions are clearer (chain, cycle, repeat), some less so (islice, izip). I suppose we assume that concepts like “zipping” and “slicing” are straightforward once you’re familiar with Python.

    sched/asyncore/imghdr: All admittedly brief and undescriptive, but I’ve never seen any of them used. They probably date back to the days of 8-character filenames, and updating them has never been a priority.

    pickle: Quirky, but you really only have to look it up once, then it’s obvious. You couldn’t really call it “serializer”, because it’s for a specific serialisation, not a generic framework.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

No related questions found

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.