Hacker News new | past | comments | ask | show | jobs | submit login

In fact if you go back in time and look at some of the first versions of Python it's a very, very ugly language and it does not come as a surprise that not too many people took notice of Python in the early days.

This is why I've always found it difficult to love Python. It just didn't seem to me that Guido was familiar enough with previous language designs or had a sufficiently refined sense of language esthetics to be a world-class PL designer. Over time the community has built Python into an extremely practical and useful tool, but I don't think I'll ever derive the same sense of pleasure from writing Python code that I do from languages with a stronger unifying concept like Ruby or Lisp or even OCaml.




I don't need to go back in time as I remember the 1990s. Even in 1995, Python was one of the top choices for high-level "scripting" or embedded languages. Perl was the hot language, and the other main choice was Tcl.

I used all three non non-trivial projects, and liked Python the best. It was better at handling complex data structures than the other two. Tcl was an easier language for my target audience (scientist/non-professional programmers) and it was easier to embed and extend Tcl, but Python's module and object system made up for it.

By the late 1990s, others in my field were already shipping Python-based applications, using Python bindings to Motif.

IMO, people didn't take notice of Python because of the "strange indentation", because high-level languages are seen as being too slow for real work, and because people coming from a statically compiled language often want the assurance that compile-time type checking gives.


I started using Python in 1997 and found it profoundly mind-expanding since my previous experience with languages was limited to C/C++ and Pascal. But over the years I learned other languages and came to see missed opportunities and outright mistakes in the original design that I don't think a more experienced student of programming language design would have made. Many of the original mistakes have now been corrected but the churn in the language this has required means that it no longer "fits in my head" the way Ruby or C do.


Wasn't it the same with Ruby? It looked much more like Perl[1] in the early days, but with time the language evolved and programmers developed best practices.

[1] http://jimneath.org/2010/01/04/cryptic-ruby-global-variables...


The original concessions Matz made to Perl have mostly fallen out of fashion now but the core ideas of Ruby, both its deep object orientation and ubiquitous use of blocks, have a simple elegance that have stood the test of time.


Right, but Ruby has its own baggage of design problems, like the lack of namespaces, which are a core idea in Python. I don't argue that one is better than the other, I just see a lot of similarities.


Sure. Ruby has its warts too. Conceptually I find it cleaner than Python overall but I don't think it's possible to design a useful language without making some mistakes along the way. There seems to be two kinds of programming languages: the beautiful ones nobody uses and the messy ones people use to get things done.


In the 9 years I've been using Ruby, I've not once missed having namespaces. A lack of namespaces is a valid complaint against C and Objective-C, not against Ruby—since you can use either nested modules or classes to achieve a similar effect, and often with better design results.





The deadline for YC's W25 batch is 8pm PT tonight. Go for it!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: