1

My question is simple.

Is Ubuntu more optimized for text editor-like programs (Libre Office, Sublime Text, etc.) written in Python or not?

Or there is no difference if I use C++, Python or Java in Ubuntu?

I have noticed that Python is somehow favored by Ubuntu developers when creating office-like application, catalogues, custom on-demand apps etc.

Also, Ubuntu website promote Python here:

http://developer.ubuntu.com/get-started

and they don't promote C++ or Java on their website. So, I am curious why they promote Python more than C++ or Java?

Or is it only because the development is faster in Python than in Java or C++?

I am not asking which programming language is the best (I already know that C++ is the best and mostly used when it comes to graphics and hardware optimization), but I am just curious why is Python so popular in Ubunutu community and if it's just because it's easy to program in this language or if it has some other reason e.g. better performenc in Ubuntu than other languages.

What is the history of the Ubuntu team decision to promote Python as the first language of Ubuntu?

8
  • It's all just about what the developer prefer and what suits his needs best. C++ is native (needs compiling), Python is interpreted code, Java is something in between (bytecode). Some developers not skilled in Python but experienced in C++ may be faster in writing an app in C++, but yeah, it does not matter so much. It also depends on what kind of app you're trying to make - an app interfacing with some library requires bindings for the language used. So this makes it primarily opinion based, I think.
    – gertvdijk
    Jul 14, 2013 at 13:00
  • I am not asking which is the best. But why is it the preffered language for Ubuntu. I know the performance difference of these languages in general, but I am asking specifically on this Ubuntu phenomenon. Why Ubuntu developers prefer Python language for simple Ubuntu apps or office-like software.
    – Derfder
    Jul 14, 2013 at 13:09
  • @gertvdijk I am asking this because Ubuntu website propagate Python here: developer.ubuntu.com/get-started and they don't promote C++ or Java on their website. So, I am curious why they promote Python more than C++ or Java?
    – Derfder
    Jul 14, 2013 at 13:13
  • Ah, that makes your question a lot different! I think Python is the easiest to get started with as a new developer. But yeah, that's just an opinion. Maybe Canonical did some research on that?
    – gertvdijk
    Jul 14, 2013 at 13:15
  • 2
    It was promoted in the past since it has a lower barrier to entry, but I think you need to read that link again. The "get started" page doesn't mention python at all these days. They're pushing a QML/JavaScript/C++ stack as it is more suited to running on both mobile and desktop platforms. Jul 14, 2013 at 16:11

1 Answer 1

5

In the early days of Ubuntu there were three major projects that tended to influence it.

  • Debian - the core that Ubuntu is based on.
  • GNOME - the core that the desktop is based on, and even though the latest client things (phone and tablet) are based on Qt there is still a bunch of GNOME technology in Ubuntu.
  • Python - the language that is preferred to tie a bunch of this stuff together.

A large percentage of the early Ubuntu community came from one of these other communities, they were either heavily involved or had partcipated. The GNOME and Debian influence on Ubuntu is well documented, but the stealth fact, the third piece is Python, here is a quote from Mark Shuttleworth:

Python plays an important role at Canonical. You could even go so far as to say that Python is the language of choice for the company. Here is a rough list of the projects that are written with Python at Canonical:

  • Bazaar: A distributed version control system. If you haven't tried Bazaar yet, you should give it a try, it is a very lightweight alternative to centralized version control like Subversion launchpad.net: A free software hosting and development web site that makes it easy to, "collaborate across multiple project".
  • Storm: Storm is an object-relational mapper for Python that was developed at Canonical and is used inside of launchpad.
  • Landscape: A system management service that allows for centralized management of multiple Ubuntu machines. This is a commercial product that Canonical has rolled out.

There has been tremendous buzz about Python's "infection" of systems administration and systems programming. It will be interesting to see where this ultimately leads. Will Canonical start writing run levels in Python next?

To get some idea of how big of a deal Python is becoming in the Linux world we can also take a look at Red Hat. Red Hat has a Research and Development division called Red Hat Emerging Technology Group. The link to that website can be found here.

If you look at the projects listed, Python either plays a role or is the language in which the project is being developed. The future for Linux and Python for both Canonical and Red Hat seems to be bright.

We take a bunch of cultural ideas from Python, one of the most famous is the idea of a BFL and the idea that there's one clear way to do something:

We would rather have one super smooth way to get things done, than 50 rougher ways to get things done. This is a bit like the core design value of Python: have one clear way to get something done. It's why I called the company Canonical: find the cleanest, clearest way to do XYZ. And the project is called Ubuntu because it's about humanity in the mass, and the values which support that, rather than about individuals (who were empowered by Linux long before we came along).

At the time of Ubuntu's launch Python was seeing an immense amount of attention and growth, and given Mark's experience with Python in the past (it was also used at Thawte Consulting) it's not surprising that if you were to build a new Linux distribution that Python was one of the easier choices to make.

That's not to say other languages are not welcome, the phone/tablet and soon the desktop will transition to QML and Qt (C++) and Juju was rewritten from Python to golang. Python just tends to be the default for things in Ubuntu. Authors can make tools in Python knowing that it's included in the default OS, so it makes a nice common watermark for people to get started in. Earlier releases of Ubuntu even included Dive into Python by default!

As far as Canonical itself, there's usually some form of sponsorship of PyCons, and participation from employees in Python conferences around the world.

TLDR; if you start a new project and you're passionate about certain technologies and you surround yourself with people who share those goals and beliefs, you can build awesome things.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .