Is Python the Apple of Programming Languages?

Is Python the Apple of Programming Languages? I don’t know who to credit for the expression, but I first heard it mentioned by JJ. It certainly rings a bell in me. Python code looks somewhat polished compared to many other languages, mostly due to whitespace rules and the lack of curly brackets. Python is trendy, generally just works, is pretty consistent, opinionated (there is generally one obvious way to do it) and is governed by a dictator. When you think about those adjectives in the computer hardware sector you can’t help but think about Apple. Many of those points are not unique about Python, nor can Python claim the top spot in trendiness etc. but the combination seems to define Python uniquely in my mind at least.

There is at least one obvious difference when I am comparing the Python programming language to Apple. If your needs or opinions differ from Apple’s, you are out of luck. But since Python is open source you can take it and make it fit your needs better with enough determination. Python is also easy to extend.

The reason why I have been thinking about the aesthetics of Python is because when I am faced with a task that requires me to use another programming language, I immediately become disgusted by the thought because the other language does not feel as elegant as Python. I’ve also been meaning to learn Ruby, and even started to read an online book about Ruby, but my interest waved after I realized Ruby code did not look as nice as Python (to me at least). Some of the resistance against other languages is no doubt because of the natural resistance to change, something which I try to combat consciously by doing something out of my immediate comfort zone every once in a while. Maybe an interesting project where Ruby clearly was the best option would help…

JJ and I have also discussed how you can look at a piece of Python code on someone’s monitor from across the room, and make a pretty good guess about the quality of the code in general just by seeing how the structure looks from far away. I guess that is true to some extent with other programming languages, but I have never experienced that as strongly with anything but Python.

Don’t get me wrong, though. I do know many other languages, and I am actively coding in other languages as well, but it is a constant battle to force myself to do so. I do get occasional surprises of joy with other languages, like when I discover I can do something even easier than with Python. Of course releasing something is always a high, regardless of the language used.

I have heard that people who have used Apple products have a hard time migrating, because they tend to experience the lack of polish in other products more severely compared with people who have not used Apple products. I wonder if Apple products are more popular with Pythonistas than with Rubyists and others.

I guess the question of the day is, if you have tasted Python, will you ever be able to enjoy any other programming language?

Similar Posts:

    None Found

9 Comments

  1. Paddy3118:

    As analogies go, I wouldn’t want to go too far with this one πŸ™‚

    # Pythons batteries do not explode!

    # Pythons installer doesn’t constantly nag you to install an upgrade; and when you do elect to upgrade, it doesn’t try and get you to install something else at the same time.

    # Python license tries to empower the user.

    # Pythons power doesn’t cost the user more.

    # Pythons dictator is benevolent.

    – Paddy.

  2. Sykora:

    I simply had to comment on this post, because for me, this analogy is totally incongruous. While I love python, and use it for almost everything I do, I’m heavily prejudiced against apple, for various reasons, usually business practices but also technical decisions.

    In this regard, I have to agree with Paddy3118.

  3. Jayne:

    I have to say I agree with your post. I love Apple, I have both a mac and PC at home and have to say that the PC is rarely used, mainly to retrieve old photos or when my husband is hogging the mac!

  4. Daniel:

    I agree with the “feel disgusted with other languages” part. In my 17 years of professional coding, I had to use a lot of languages, and since I started using Python 4 years ago, no other language brings me the same satisfaction.

    I am porting some code I wrote 5 years ago (C++ with Lua embedded), and my guess is the total project size will be 5% of the original (no typo, really 95% less). The efficiency will be severely hit, but after it’s working, it’ll only be a matter of making a simple ctypes binding to some C optimized functions to get back to the original speed.

    In summary, I just love Python.

  5. j_king:

    I used to think that way after a few months of working with Python.

    But its been a few years now and I’ve found most of the warts. At first I just turned a blind eye, but now I just find it ugly.

    Syntactically, of all the dynamic procedural OO languages, Python is the most aesthetically pleasing. But that means really little in the end.

    Where Python gets frustrating is when you reach its limitations or are limited by its biases. Usually by then you have to reach for C or work around it with some pretty clever code. And that’s just annoying.

    I’m starting to move to Lisp more these days. Its syntax is even cleaner and rigorously structured. The underlying structure of the program isn’t hidden behind clever syntax. I’m not limited by arbitrary implementations of types: I can invent true types rather than just giving new names and behaviours to old ones. I can easily extend the language to naturally encompass the language of my problem domain. It’s dynamic and it compiles to machine code!

    The only thing I miss in Lisp is a library as comprehensive as ‘os.’

    So in answer to your question: yes, one can use another language after working with Python. It just takes a few years for the euphoria to rub off. πŸ˜‰

  6. Heikki Toivonen:

    @Paddy3118 & Sykora: I guess I should have concentrated more on the look and feel of the products Apple produces vs Python the language, rather than confuse it with the company etc. I also don’t like Apple-the-company practices, and for various reasons don’t currently own any Apple products (I have in the past, and may still in the future).

    @j_king: I’ve been programming full time in Python for 6 years, so I guess it is taking me a long time to find Python ugly πŸ˜‰ I also don’t mind reaching for C to do some specific thing Python itself is not good at, but I need to do that rarely. I guess a big part in this is what you are using Python for. For what it is worth, I can’t stand Lisp’s syntax – the parenthesis drive me crazy. Sure it is superficial, but when the syntax makes your eyes bleed every time try to look at a piece of code it is hard to get past that. It is good to hear you’ve been able to move on from Python, though. I don’t necessarily want to move away from Python, but I would like to find languages that I enjoy working with as much I enjoy Python.

  7. j_king:

    @Heikki: Don’t get me wrong, Python is certainly my language of choice for 90% of what I do in the day at work. When I need to do some common-place task or get some system working, it’s right there and I can generally go from prototype to production with a few extra imports and some logging. It’s nice.

    There’s cases like http://en.wikipedia.org/wiki/Multiple_dispatch where the Python solution is workable, but it’s not pretty by any means.

    I just meant to illustrate that it’s possible not to gag on the visual differences between languages. Python can get pretty ugly too.

  8. lorg:

    I’ve read your post and the comments here and on reddit, and to tell you the truth, I’m not sure.
    As I currently see things:
    1. Apple successfully branded itself as young, polished, fashionable
    2. Apple delivers on these fronts: It is indeed very polished and in fashion.
    3. Many people buy Apple today for these things.

    With Python, it’s different, although lately it’s getting a bit more similar. It seems to me that Python is becoming more fashionable (especially with django! :). Still, without data to back any claims, I really can’t say “why people adopt Python”.

  9. PLC programming:

    It’s not just high school students anymore. A lot of older people, myself included are having to make the decision of trying to find work in our current field or go back to school and try something different. Cost is a big deal, especially since scholarships are few and far between for older people starting or trying to finish their degree program.