Learning Python, 4th Edition 163
thatpythonguy writes "Learning Python is a well-written book by an experienced Python trainer that has served the Python community well since the first edition was published in 1999. Now, at its fourth edition, this book by Mark Lutz arguably continues to be Python's bible." Read on for the rest of Ahmed's review.
This book is addressed as an introductory text to programmers new to Python. Although people with no programming experience are not discouraged from reading it, they are warned that time is mostly spent teaching Python, not programming fundamentals. I agree with this picture, though from my own experience and those of others, the book is equally valuable to more experienced Python programmers both as a pseudo-reference and as an introduction to more advanced topics. The critical point here is that the book does not make assumptions about educational or vocational experiences and provides many examples; this renders the book approachable by a large audience.Learning Python, 4th Edition | |
author | Mark Lutz |
pages | 1216 |
publisher | O'Reilly Media |
rating | 9/10 |
reviewer | Ahmed Al-Saadi |
ISBN | 0596158068 |
summary | A hands-on book that will help you be productive with Python 3.0 quickly |
Both Python 2.6 and 3.x are covered in this edition. However, the latest 3.x line is considered the reference from which variations in 2.6 are discussed when appropriate. This approach is logical; the new Python 3.x presents a major change to the language, but is not sufficiently dominant to warrant exclusive treatment.
This book discusses the Python language and excludes the Python standard and non-standard libraries. The latter are discussed in other places including Lutz's own Programming Python which stands at its third edition at the time of writing of this article. I find this division necessary because of size considerations and, in fact, this division did not exist in the first edition of the book! However, there is one topic that does not seem to fit the language/libraries divide, and that topic is packaging and deployment.
I will argue that there are not many (if any) books that discuss packaging and deployment of Python programs well. I will also argue that this topic should be included in the book being reviewed here since it is so essential to real Python programming. Since Lutz discusses the Python runtime environment, I do not think it detracts from the book's coherence to include a chapter on packaging.It is possible that the proliferation of various packaging and deployment options such as distutils, setuptools, pip, buildout, virtualenv, paver, fabric and others, is the reason for this exclusion. Or it could be that these tools are in a state of major flux that any text will become quickly outdated. If size is the reason for this exclusion, maybe Lutz or someone else can publish 'Packaing and Deploying Python' as a separate volume.
The book starts by building a case for the use of Python. Both the features of the language and its prominent users are discussed to build credibility. Then, the runtime environment is discussed: how to run programs in various ways on various operating systems and language interpreters.
Types and statements, which are at the core of any language, are discussed next. Notably, there is an excellent discussion of the topic of iterators and generators (also discussed in a later chapter). Functions, modules and classes are then introduced. The text also includes a discussion of general object-oriented programming (OOP) principles which I find to be invaluable as it brings the topic of classes to life.
Exceptions are introduced and discussed in detail. The placement here is appropriate since exceptions are now objects in Python so classes had to be discussed first. This chapter should prove to be especially useful for people migrating from other languages that do not have simple, yet effective, exception-handling constructs.
Finally, four advanced topics are covered: decorators, Unicode, managed attributes, meta-classes. I find the first two to be absolutely necessary for almost any system nowadays, even small ones! The atter two are not as ubiquitous, but should be useful to more experienced programmers.
I should mention here that the discussion of the topics discussed above does not stop at the basics but provides comprehensive coverage. This is evident in the discussion of concepts such as dynamic typing, inheritance order, iterators, generators, comprehensions, and functional programming, among many others. There is even an interlude on documentation and the pydoc library.
Like many programming texts, the book uses small programming examples (appropriately executed in the Python interactive shell). The small examples hope to capture the essence of the topic at hand, and that, it does well within the limitations of a small-scale context. But this fourth edition adds a new chapter on classes (Chapter 27) that contains a more realistic code example presented in a tutorial format.
In addition to examples, each chapter ends with a summary of the chapter's content as well as a quiz on that content. The quiz is immediately followed by its answers for easy reference. I have to admit that I do not use any of these two features, so I will not be able to comment on their efficacy.
Like many O'Reilly books, this is a well-written, coherent, and beautifully type-set book. I highly recommend it to anyone who wants to, or already does, program using python. It should help the novice in the transition to an excellent programming language or, otherwise, make an already familiar environment more powerful in the hands of veterans.
Ahmed Al-Saadi is a Software Analyst who works for a Montreal Python house. He wrote his first lines of code on a Sinclair ZX Spectrum+, though unfortunately not in Python at the time.
You can purchase Learning Python, 4th Edition from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Aren't we all supposed to be switching to Lua now? (Score:1, Funny)
Y'know. Just trying to keep up with the current trend.
Re: (Score:1, Interesting)
Ruby failed to make a dent in Python popularity, despite the rails fad over the last few years. Lua isn't really a match for either python or ruby.
Javascript may be the black horse here, because it serves an unique niche and is starting to get adoption outside that niche.
Re: (Score:2)
It is very interesting to see the interest and trends based on book sale volume. The state of the computer book contains this interesting chart. [oreilly.com] For more details see O'Reilley Radar. [oreilly.com] This was published mid-year 2009. Maybe this new edition might tip the scale.
Since MS is putting all their eggs in c# (and c,c++) it isn't surprising to see the interest. Of note, the impressive rise in Actionscript likely due to web based animated ads.
Re: (Score:2)
Of course, I forgot to mention the sudden interest in objective-c thanks to Apple.
Re: (Score:2)
You mean the iPhone. Without it there would be no spike in interest in Obj-C.
JavaScript is the language of the day today. (Score:1, Insightful)
Sadly, JavaScript seems to have become the fad language lately.
A lot of people who can only handle front-end web development thought Ruby would let them do something a bit more serious, so it had a pretty large hype wave while they were trying it out. But they've found even it too difficult, so they've abandoned server-side work in favor of client-side coding again. Unfortunately, this has to be done in JavaScript, since that's basically the only language supported by all major browsers.
It's a shame that we
Re: (Score:2)
Well, that depends on whether you consider "requires the user to install one plugin once, for every site" constitutes "in the browser", since I'm pretty sure that's the present state of affairs on Mozilla, at least. Whether there's a browser-side plugin for python on IE, I don't know; I avoid IE whenever possible. Since I'm the IT director, it's *always* possible. :-)
JS vs. Lua (Score:3, Interesting)
JavaScript is such a hack, and such a pathetic excuse for even a scripting language.
What makes JavaScript so much more of a hack than Lua? Both use prototype-based object systems. Perhaps your complaint is with the HTML DOM, but that would be the same whether you used Lua, Python, or JavaScript on top of it.
Re: (Score:2)
Screw that - go with D. Performance *and* syntactical sugar. Two great tastes that taste great together.
Cover art (Score:2, Insightful)
Soooo the language is called PYTHON and O'Reilly put some kind of rodent on the cover? Not, I don't know... a python?
Maybe if the rat was being eaten by a snake it would make sense...
Re:Cover art (Score:5, Funny)
The rat is there because python is still learning.
Re: (Score:3, Funny)
Re:Cover art (Score:4, Funny)
Re: (Score:2)
Okay ill give this a try...
import antigravity
woah!! thanks python!
Re: (Score:3, Informative)
They put a different animal on the cover of each book.
The python is, IIRC, on the cover of Programming Python.
Re: (Score:2)
They put a different animal on the cover of each book.
The python is, IIRC, on the cover of Programming Python.
There are over 20 species of python. Surely this is not the 27th book on Python...
Re:Cover art (Score:4, Informative)
A python appears on a previous O'Reilly book, "Python in a Nutshell" (ISBN 978-0-596-10046-9).
My assumption is that they don't use the same animal on more than one cover, correct me if I'm wrong.
Re: (Score:2)
I was about to mock you by pointing out the O'Reilly Perl libary is camel-centric, but looking at http://oreilly.com/pub/topic/perl [oreilly.com], I am amazed at the zoo of critters in the Perl book list.
What this tells me is that I need a much higher budget for books.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Funny)
This time they should have used a dead parrot. One with beautiful plumage.
Re: (Score:2)
p = parrots.Parrot(parrots.NORWEGIAN|parrots.BLUE)
for fjord in fjords.all():
p.pine(fjord)
Traceback (most recent call last):
File "parrot.py", line 4, in <module>
p.pine(fjord)
AttributeError: 'ParrotType' object has shuffled off this mortal coil
Re: (Score:2)
Dude, you forgot your braces!
Oh, right, Python...nevermind.
Spam, spam, spam, braces and spam. Hold the braces.
Re: (Score:2)
Re: (Score:2)
The first edition of "Programming Python" (which uses the famous python image) was from 1996, and the first edition of "Learning Python" was in 1999. They are both from the same general series, so they couldn't use
Re: (Score:2)
While 1216 pages is both "over 1200" pages and "over 900" pages, its kind of odd to refer to it as the former in one sentence and the latter in the next.
Re: (Score:2)
Re: (Score:2)
Looks like your memory is serving you fine. The copyright page of my 2nd edition of Nutshell shows the first edition printing in March 2003. Amazon has comments dating to 2000 or earlier for "Learning Python".
Re: (Score:2)
And then came the Python that ate the mouse that drank the Cocoa that sweetened Java that dissolved the Perl that replaced the Ruby that my father bought for zuzim.
Re: (Score:2)
And then came the C# of Death, which FUD'd the Python that ate the mouse...
Re: (Score:3, Informative)
IIRC, the python name is a homage to Monty Python and has nothing to do with the snake. Perhaps a knight sans arms would have been more fitting...
Re: (Score:2)
Correct, but there is plenty of snake related imagery with python. I always get a kick out of the IDE named "Boa Constructor".
Re: (Score:2)
He's not dead, he's resting.
Comment removed (Score:5, Funny)
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
What does the sheep on 'Perl Cookbook' have to do with anything?
Maybe mutton for dinner?!?
Re: (Score:2)
What does the sheep on 'Perl Cookbook' have to do with anything?
Maybe mutton for dinner?!
Well, in that case let's hope they don't put a rat on the cover of the Python cookbook...
Re: (Score:2)
Honestly, I puzzled over this very cover at the bookstore yesterday whilst picking up my copy of "Active Directory for Dummies".
There are so many technologies that should lend themselves well to O'Reilly covers, yet don't (I also puzzled why the mySQL books didn't have dolphins on them).
But Python not having a python? Well that's just silly...
Re: (Score:2)
FWIW: the colophons generally (I'm tempted to say always) explain the theory behind which a given animal was picked for a cover.
Re: (Score:2)
It's a bit runny, sir.
I don't care how fucking runny it is!
Oh...the cat's eaten it, sir.
Has he?
She, sir.
---
If ever an alien races comes to Earth and decides to destroy us for being uncivilized and uncultured, all we have to do to save ourselves is send them up the DVD sets of Python Python, Fawlty Towers and BlackAdder. And Manimal.
Both of Alex Martelli's books are better IMHO (Score:1)
Python in a Nutshell and Python Cookbook. Both discuss that deployment stuff, for example. Neither of them is geared towards complete beginners to programming though. They are very good if you're experienced with some other language and have picked up the basics of Python from the online tutorial.
Learning Python is not a terrible book, but (except for the rather inconvenient matter of being about a pathological eclectic rubbish lister instead of being about Python) Learning Perl does a better job of acco
Better Than First Edition? (Score:5, Insightful)
I sincerely hope that this version is better than the first edition, although anything short of a random re-arrangement of pages would serve as an improvement. The first edition actually delayed my initial use of Python by about a year and a half. I had heard wonderful things about the language so I figured, "Ah, an O'Reilly book!" Big mistake.
Endless bits about immutability, without hints as to why I ought to care. I can appreciate the use of the interactive prompt now, but to start with it seems ... strange. I was not transitioning to Python from shell programming, and I doubt many do. Lambda expressions, entirely too early. Not a great deal of attention paid to idiom, which is just about central to learning a new language. Little discussion of how you might have accomplished tasks in other languages and wish to do the Pythonic equivalent. I loathed the first edition and refer to it precisely never. I eventually dropped it in a puddle and felt no urgency towards retrieving it. The now-wrinkly cover suggests that some unhappy deity has attempted to purify it by flood.
I ought to have tried fire.
Re: (Score:2)
If not this book, care to share an alternative recommendation or two?
Re:Better Than First Edition? (Score:4, Informative)
I gave up in the middle of Learning Python 3rd Ed. One of the things I absolutely hated about Learning Python is the author continually telling you about X will be covered later in chapter Y. There is a LOT of that. That and half-way through the book, I still couldn't do anything simple as he hadn't even talked about for loops yet. Too much detail on the finer points of data types and too little "quick start". I got bored with this book.
I don't doubt that there is a lot of great info in that book. It just isn't organized very well at all. My guess is the 4th ed. is changed to reflect Python 3.x. If it were reorganized, it would probably be really good.
Re:Better Than First Edition? (Score:4, Insightful)
If not this book, care to share an alternative recommendation or two?
Well, I can't disagree with the grandparent's very nice flame, but why not start with Guido's tutorial? http://docs.python.org/tutorial/ [python.org] Between that and the library reference, I was up and running making useful scripts in an afternoon at work one day, but I had previous programming experience. But since this book isn't for people like that, who is it for? Only people I can think of are language lawyers, and there's a free source for that as well! http://docs.python.org/reference/index.html [python.org]
Re: (Score:2)
But the best part is the strange looks you get from non-computer people when it's sitting on your shelf!
Re: (Score:2, Informative)
Re: (Score:2)
Re: (Score:2)
Thanks for the tips guys. /wanders off to do some brisk trade with amazon...
Re: (Score:3, Informative)
I have probably the previous edition of this book, and what you're describing sounds like a different book. Lamda expressions came after basic and intermediate functions - I had no problem with it. All he talked about was idiom - the "pythonic" way of doing things - while mentioning that a C programmer would probably have used a loop instead of a map expression, etc.
So I'd say they fixed it up a bit.
Re: (Score:2, Interesting)
Endless bits about immutability, without hints as to why I ought to care. I can appreciate the use of the interactive prompt now, but to start with it seems ... strange.
The thing about mutability in Python is that it can bite you in the neck if you assume the variable passing and assignment work as in some other popular languages. I can appreciate the author's tirades about this, as he brought his point around, even with simple examples. And how do you propose to start with a language that doesn't have one-IDE-to-rule-them-all, like Visual Studio or Eclipse? You know how sparse is IDLE by today's standards.
Little discussion of how you might have accomplished tasks in other languages and wish to do the Pythonic equivalent.
That's why there's this other book, "Programming Python", again by
Re: (Score:2)
The thing about mutability in Python is that it can bite you in the neck if you assume the variable passing and assignment work as in some other popular languages.
As I understand it, variable passing and assignment works in Python like it works in Java, or at least as it would if every variable in Java were of type java.lang.Object (with autoboxing of primitive types).
Re: (Score:2)
I'll chime in as another who found a previous edition of this work to be flawed -- enough so to tarnish the O'Reilly brand for me. While it's possible the newest edition is better it sounds (from the review) more like an update than a re-write.
Re: (Score:3, Interesting)
Well, here's the thing. I spent most of the years of my career living in a university town with excellent booksellers. I now live in a comparatively tiny island community a long way from the nearest tech center and if I want tech books I can't just pop into a store that has them in stock and browse, I have to order them and have them shipped.
I've previously bought quite a few O'Reilly titles and while not every on
The Bible? Bad Analogy... (Score:3, Interesting)
Re: (Score:2)
I sincerely hope that this version is better than the first edition, although anything short of a random re-arrangement of pages would serve as an improvement. The first edition actually delayed my initial use of Python by about a year and a half. I had heard wonderful things about the language so I figured, "Ah, an O'Reilly book!" Big mistake.
That pretty much sums up my feelings towards Lutz' other ORA book Programming Pyhton. However, I have to say I found Learning Python quite serviceable (I learnt py
Re: (Score:2)
Wow, I'm quite surprised actually, I had exactly the opposite experience with the first edition of "Learning Python."
I distinctly remember picking up the book in '
Too wordy (Score:5, Informative)
I bought this book about a month ago. I had my doubts about a book this size, and my doubts were realized.
I learned C from K&R first edition. K&R is about 150 pages (from memory). It covers all of the language succinctly and completely. Actually, it covers most of the language twice - first in tutorial form then in specification form. It is a fine resource.
Why should a book on Python be over 1000 pages? I started reading this book the same way I read K&R - from the beginning. Unlike K&R, after 50 pages I barely got to coding. Within each section the language is quite verbose. I suspect that the authors were paid by the word or the page.
On a positive note, I was able to use this book as a reference book as the index is quite reasonable.
I would recommend this book to those insomniacs who are interested in learning Python.
Re: (Score:2)
The second K&R (with ANSI stuff added) Is close to 300 pages, IIRC.
Re: (Score:2)
The copy on my shelf says 272
Re: (Score:2)
It seems people have a great deal of problems documenting object oriented languages, IMO.
The C book is simple and straightforward because C is simple and straightforward by comparison; you don't get lists and dictionaries and so forth in C.
Re: (Score:2)
Maybe it is because Python has a large standard library (so called batteries included).
Regarding paying per page, as a book author I can confirm that you are paid per page only if you accept to typeset the book (with LaTeX). That is a one time payment appart from royalties. If you don't typeset, you don't get paid by page, just have to follow the contract that says between xxx and xxx pages (where xxx are limits).
Re: (Score:3, Insightful)
It's kind of surprising that Learning python is only 1000 pages, which is not too say that it isn't too wordy.
Re: (Score:2)
believe that book is for ppl learning programming. the book you REALLY want is this one [amazon.com]
Missed out on Python (Score:2)
---
Python Programming [feeddistiller.com] Feed @ Feed Distiller [feeddistiller.com]
Re: (Score:2)
When learning languages i completely missed out on Python, i learn't perl and php
...having skipped right past English.
Re:Missed out on Python (Score:5, Informative)
I found Python to be a useful language for scripting and accessing C libraries.
One of the things I like most about it (and others seem to hate) is that it's sensitive to whitespace. This feature has the side effect of making the language more readable and forcing people to indent their code. After programming in Perl, did you ever go back and try to figure out what you did a year ago? I find that my year-old Python programs to be much more readable than my year-old Perl.
Also, if you're a scientist or engineer, I recommend "Python Scripting for Computational Science". It will get you programming much earlier than Learning Python and is oriented toward mathematical calculation and visualization problems.
Re: (Score:3, Interesting)
Disclaimer: I love Python.
That said, I love Python IN SPITE of its way of enforcing white space. I've had many annoying debugging issues that are the result of whitespace being broken when moving from one editor to another and it makes using blocks inside the interactive shell more annoying than it needs to be.
Most of my coding these days is in Ruby and while it doesn't enforce how you use whitespace, only a complete tool doesn't indent their code. I find that having some keyword or symbol (e.g. end or }) a
Re: (Score:2)
After programming in Perl, did you ever go back and try to figure out what you did a year ago? I find that my year-old Python programs to be much more readable than my year-old Perl.
Perhaps you should have left some useful comments. I comment the living shit out of my perl code, and therefore there is only dead shit in it, that which I wrote into it by accident. But seriously, I've gone back and reused perl code every time I could still find it when I thought I might need it. And really, I am not much of a programmer.
Re: (Score:2)
Except that in Perl (and other languages), it's incredibly easy to write unreadable code. With Python, not so much.
I've seen some code you've written, and I agree it's quite readable. You obviously spent some time keeping it clean and well-structured. One CAN always write readable code, but it is quite easy (and common) to use code kludges and make it hard to read in most languages. I've seen a few horrific Perl kludges, as well as a lot of improperly indented C, and ugly html. Maddening.
The difference
Re: (Score:2)
That is true, but many languages carry with them a lot of housekeeping to get things done, Python tends to keep that sort of stuff out of the domain of the code. Consider a simple example, in C++ say we create a vector and iterate over its elements, we need to make the vector, an iterator, then invoke some pointer arithmetic to actually loop, and then dereference the iterator to extract data. But the important thing here is that we're iterating over items in a list (vector), however you end up with somethin
Re: (Score:2)
Just to be fair, C++0x is adding support for exactly this example.
There is a way to do the foreach but I don't know it. A more obvious thing is the ability to declare an auto variable as "auto a = foo()" and the compiler figures out the return type of foo() and makes a be that type, this gets rid of that ::iterator line which is by far the ugliest part.
Re: (Score:2)
There is a standard for_each, but I think its cumbersome in its own way, and there is a foreach in boost. Heres the boost example code for iterating over a 2d vector:
Concise, but still somewhat obtuse. The python equiv is still much clearer in its intent, imo. You can just iterate over multid
Re: (Score:2)
Maybe, maybe not.
The difference between the two is that many times to do a particular task in perl you will typically use various strings of punctuation characters, while in python you will use .replace() or other similar English names.
The perl version may be shorter and more clever perhaps. But in a year, if you or the next guy don't have those punctuation combinations committed to high speed memory you'll be looking them up in a book or googling for them.
Meanwhile the python script maintainer will recog
Re: (Score:3, Informative)
While I cant speak to php or Occam...
You aren't forced into object orient programming as with Java, although the language does have good implementations (IMHO) of classes if you choose to utilize them. It also doesn't force the 'one class per file' structure of Java upon you. (Granted its been years since I've touched Java, so these critiques may no longer apply).
I started by using Python for a lot of the things for which I initially used Perl. I find Python code immensely more readable than Perl.
Lately
Re: (Score:2)
You forgot the Python alternative to Mathematica [sagemath.org]
Re: (Score:2)
Compared to C and C++, it's a different kettle of fish. If you're using C++ where you would normally use python, then you shouldn't be using C++. I guess the only crossover between the two is that python has some excellent libraries that allow you to get almost dirty with system functions, as well as things like opengl and audio libraries, so if you're tweaking filedescriptors or writing a game and don't need a compiled language, then I guess there is a little grey area. Incidentally, there's "weave" whi
And once your brain is fried from coding... (Score:2)
... you can go here [youtube.com] and start learning the other Python.
"I came in here for an argument!"
"Oh, oh, I'm sorry, this is abuse."
You can see I've been studying. :-)
Best book ever (for CS graduates) (Score:2)
I liked this book (at least first ed., the one I read).
This book made me love Python. But I found it too hard for my colleagues at work (most of them biologists who were never exposed to programming), so I decided to write my own book (tinyurl.com/biopython )
I think "Learning Python" is a must have for the seasoned programmer who wants to learn Python.
Question: Who's making a living coding Python? (Score:2)
I mean, exclusively coding in Python? Who's got a paying job? Just curious.
Re: (Score:2)
Re: (Score:2)
Interesting. Was it ILM? I know they've used Python forever.
Re: (Score:2)
I am not exclusively coding in Python, but I do as much in it as I can. Probably about 80% Python and 20% Visual FoxPro, these days.
Re: (Score:2, Interesting)
Re: (Score:2)
these people for example: http://www.isotoma.com/our-work/expertise/python [isotoma.com]
Re: (Score:2)
My first programming job was 100% Python, writing custom modules for print estimation for clients. My current job I'm doing Python 50% of the time writing plugins for our XML editor. Which is two jobs out of five.
Wear gloves. (Score:4, Funny)
Carpet pythons, like I own, are bitey bastards. I hope whatever python you learn about in this book is a little more friendly.
OT - Re:Wear gloves. (Score:2)
always likes snakes, just out of interest, how much force is there in a bite from one?
Re: (Score:2)
That varies a lot with the snake, and what type of prey they are adapted for. I don't know that there exists any physical measurements of bite pressure, so understand this is my perspective having been bitten by a number of different species:
Common North American constrictors such as black ratsnakes or kingsnakes have a relatively mild bite, but an arboreal python for example (such as my carpet python, or the green tree python) has pretty developed jaw muscles to avoid dropping prey items in the sw
Just wanted to add... (Score:2)
I read the 3rd edition when I first started messing with Python and it's a GREAT book.
In fact, if I was teaching kids to program, this book would be my starting place. It's well written, easy to understand and just a good general introduction to programming in general.
Python Programming: An Introduction to Comp Sci (Score:2)
http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996 [amazon.com]
Python Essential Reference (Score:2)
Re: (Score:3, Funny)
Then how come only Harry can do it?
Re:why? (Score:4, Informative)
I know you are trolling, but here's the answer:
1) Programming in Python is faster than in C, and Python lets you use C libraries where performance is needed. Python will not make C go away, but will let it be used where it's really needed.
2) Python is more secure and much more powerful than PHP. With a programming environment like Django, Turbo Gears, or Zope, Python can easily do anything PHP can, but PHP is not even near to doing everything Python can do.
Re: (Score:2)
"...everything else php does in a much more flexible fashion...."
"...it also allows geniuses to implement procedural processes much more elegantly."
Let me guess, you are 15?
Re: (Score:2)
Computer language wars have existed since COBOL, it's a matter of personal preference as much as anything. For the most part run-time interpreted languages do the job, which allows for a near infinite number of languages to proliferate. It's pretty simple, some people prefer the flexibility of Perl, some want a bit more from that, then we get Ruby. You have C which begat C++ and Obj-C which cross-breeded and spawned Java and C#. Not even to get into functional derivatives, or prototypal languages.
The on
Re: (Score:2)
I was formally trained using assembly language. My first high-level language was Basic Plus (DEC). So Perl is just too sexy for me. I can't help using it. Statements like:
open my $file, "name" or die "Error";
or
print $the_report_line unless $no_space_on_page;
Are great!
It is the only language so far which I'm able to write small scripts with no syntax errors.
Re: (Score:2)
By consistency I mean in terms of naming, and parameter conventions. Having all extensions as top-level functions is BS to begin with. I really don't need to elaborate on this, if you google for: Why PHP Sucks you will get far better worded reasoning than I will give in this ./ comment.
As to bringing libraries into a language's semantics, it is to provide a better developer experience. There are many cases were a given underlying system interface is exposed in a platform/language specific way. PHP's ex
Re: (Score:2)
Exactly how much productive work have you done in Python? Because if you think anyone can output code faster in C than Python, you kind of sound like you've never used python.
"if you think python is the answer, you are kidding yourself."
You'd better tell Google that, maybe they'll start porting all their Python over to PHP?
Re: (Score:2)
There's no issue to address when dealing with a troll.
A good example is the fact that the sentence above is wasted on you.