Letters
Multiple people have asked me about Python and my review of Learning Python. To answer their questions and those from people who didn't write, I drafted this response.
First, about the book. It is clearly put together by someone who has been teaching Python to people. I would say the audience has been experienced programmers, which at least for me, is good.
Now, why Python? Is it the “language of the future”? I think so. It makes a lot of sense in a lot of areas. Let me try to address them.
Ease of learning: Python is a small language. That is, the syntax is simple and the number of commands is fairly low.
Powerful: the power in Python (much like C) comes from its library. While the language and its syntax aren't complicated, calling the right function to do a task is what makes it powerful. There are a lot of functions available, but you can acquire knowledge of them as they are needed. For example, if you want to do CGI programming, the functions available are powerful and grouped so you can find them.
Being interpreted, you can quickly try things.
Python is extensible: if you have something you need to add or something that must execute quickly, you can easily add code to do it. Using C for things that need to be fast makes sense.
Python won't teach you any bad habits. There are virtually no “gotchas” in the syntax, and I have yet to find a case where you need to write a cute workaround to deal with a language limitation.
Python is object-oriented, but in a nice way. I have dabbled with C++ but have never actually done object-oriented programming. Python encourages modular and object-oriented programming, but doesn't require it. Thus, you can write a quick-and-dirty solution to a one-time problem, but you can also write solutions to big problems in an easy-to-read, easy-to-debut, easy-to-maintain way. I contrast this with Perl, where you are encouraged to use the quick-and-dirty solution and must go out of your way to create an object-oriented solution.
Perl is a logical outgrowth of an assortment of UNIX tools including tr, sed and awk, as well as shell scripting. While Perl seems familiar to anyone who has used these tools, it makes no sense for someone not familiar with these tools to consider Perl. You can't even define the syntax of Perl, because it doesn't really have any. Python, on the other hand, is well-designed from a formal language sense as well as a programming sense.
I hope this helps explain where Python fits or could fit in your life.
—Phil Hughes phil@ssc.com
I have been reading your interview with Linus whilst waiting for our Internet connection to the outside world to be restored—very, very fun read. I have no idea whether the world of Linuxers is interested in this kind of “human interest” stuff or not, but I know that it's great to hear this regular person talk about himself, how he grew up, his ordinary life, etc. and not just the usual Linux advocacy stuff, which Linus seems to avoid, thankfully. This may be because he's less awed by it than everyone else, since he put it together—wonderful modesty on his part. Truly enjoyable journalism on yours.
—David Penn dvdpenn@yahoo.com
Thanks very much for the great short article, “Stupid Programming Tricks” by Jason Kroll in October's Linux Journal. It introduced me to the world of SVGAlib. I enjoyed his shapes.c program and even had fun changing it on my own.
For the last month, I've been muddling through trying other stuff, but had been eagerly awaiting the more impressive-looking stuff you alluded to in last month's article. Alas, as I'm drooling through my hot-off-the-presses edition of this month's LJ, I can't find any mention of console graphics.
Do you plan on continuing the article in the future?
—Patrick A. Kirchner kirchner@csd.uwm.edu
Tricks was inadvertently dropped from layout in the November issue. It resumed in December and will continue to be a regular feature in upFRONT —Editor
Upon reading the interview with Linus in the November 1999 issue, we've noticed that Microsoft has produced a new class of computational analysis problems.
NP Completeness: all non-deterministic polynomial problems are equivalent, we know we can solve them all, but not how long it will take.
NT Completeness: all Windows NT boxes are essentially alike, we know they will all crash eventually; the question is, how soon and what data will they take with them when they go?
Thanks for a world-class magazine about a world-class phenomenon.
—Phil Salkie, pvs@howman.com Jennifer Hamilton, jhamilto@umdnj.edu
Ahhh, typos can sometimes be fun. Sorry for the error but not for the laugh. Thanks for writing —Editor
Today’s modular x86 servers are compute-centric, designed as a least common denominator to support a wide range of IT workloads. Those generic, virtualized IT workloads have much different resource optimization requirements than hyperscale and cloud applications. They have resulted in a “one size fits all” enterprise IT architecture that is not optimized for a specific set of IT workloads, and especially not emerging hyperscale workloads, such as web applications, big data, and object storage. In this report, you will learn how shifting the focus from traditional compute-centric IT architectures to an innovative disaggregated fabric-based architecture can optimize and scale your data center.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
| Non-Linux FOSS: Seashore | May 10, 2013 |
| Trying to Tame the Tablet | May 08, 2013 |
| Dart: a New Web Programming Experience | May 07, 2013 |
- New Products
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- One Hand Slapping
- Home, My Backup Data Center
- RSS Feeds
- What's the tweeting protocol?
- Readers' Choice Awards 2011
- Trying to Tame the Tablet
Enter to Win an Adafruit Prototyping Pi Plate Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Prototyping Pi Plate Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- Next winner announced on 5-21-13!
Free Webinar: Linux Backup and Recovery
Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.
In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.




4 hours 37 min ago
7 hours 10 min ago
8 hours 27 min ago
9 hours 2 min ago
9 hours 25 min ago
14 hours 13 min ago
15 hours 24 sec ago
16 hours 34 min ago
18 hours 10 min ago
20 hours 8 min ago