Live data from Hacker News

Tcl the Misunderstood (2006)

antirez.com

71–80 of 81 posts

Re: Tcl the Misunderstood (2006)

#71
post #23

Watching someone learns basics of programming in Python, I realized that Python is actually not that easy to learn for beginners as I thought: 1. Types in Python are implicit. It's really hard to explain that they need to always think about what type something is, especially when they haven't grasped the concept of types yet. 2. Indentation as part of the language. I thought it's a great thing for beginners, but it's…

I think Go is the easiest language , outside of basic, that i've ever had to learn

I'm glad you had that experience, but as a "2nd" language, it was rough for me because it was the uncanny valley of programming languages: things _almost_ worked like in other languages but were not syntatically distinct enough to easily keep them separate in my mind. It'd be like if some new regex decided "{}" was range and "[]" was repetition

And we shall not discuss the horrors of its build and dependency system, which I appreciate isn't the "language" but what good is a programming language if one cannot compile it?

Re: Tcl the Misunderstood (2006)

#72
post #23

Watching someone learns basics of programming in Python, I realized that Python is actually not that easy to learn for beginners as I thought: 1. Types in Python are implicit. It's really hard to explain that they need to always think about what type something is, especially when they haven't grasped the concept of types yet. 2. Indentation as part of the language. I thought it's a great thing for beginners, but it's…

I think Go is the easiest language , outside of basic, that i've ever had to learn

I second that. Go instantly came to mind as a fantastic beginner language.

- Go is also inspired by Pascal, but it has more of a foothold today, it shares the simplicity and the syntax is more natural and convenient than C and similar.

- It's a light language. You can approach it in terms of just functions (procedures) and data, as opposed to say Java (which unfortunately is one of the most used languages in to teach programming).

- The tooling is approachable, it compiles fast, there is no friction when it comes to automated testing, you get a static binary out of it etc.

- The std library is comprehensive and very easy to use. You can teach a ton of concepts with just that without ever having to worry about third party dependencies. A full web server, a CLI etc.

- It's low level enough so you can teach a bunch of important concepts such as pointers and constructs around pointers, allocation etc.

Re: Tcl the Misunderstood (2006)

#73

Earlier quoted context omitted.

> On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity. From the HN Guidelines. Note the lack of the pattern "new" anywhere in there.

>Note the lack of the pattern "new" anywhere in there. Er... it's literally the name of the site, 'Hacker NEWS'. A 16 year old article is not news. No matter how interesting it might be. The custom here is to put the year in brackets after the title, when posting an old article

Nonetheless, the guidelines allow for such things - and I'm grateful they do, as I enjoyed the time I spent reading this article and am smarter now than I was beforehand.

I do agree that it should've originally had the year added when originally posted.

Re: Tcl the Misunderstood (2006)

#74

Earlier quoted context omitted.

The problem is that Python encourages this "it's all cool, man" syntactic mindset. "Just indent your code the natural way, don't worry about all that extra syntax like curly braces." And then it comes back to bite you when your "formatting" causes syntax problems. People are used to the idea of explicit delimiters, at least to some extent, thanks to punctuation. People are not at all used to whitespace having syntact…

The problem is that Python encourages this "it's all cool, man" syntactic mindset. It's not a problem, it's just a tradeoff. Like 97 percent of all the other differences between programming languages. As to whitespace in Python -- it was counterintuitive at first, but once I grokked the rationale behind it, I've never been tripped up by it (to an extent that it would slow my thinking for more than a second or two). E…

> rationale behind whitespace in Python

it doesn't seem simpler, and any argument that it's faster or easier to type seems to fall apart the first time you need to paste code across different indentation levels, right? what's the upside?

Re: Tcl the Misunderstood (2006)

#75

Earlier quoted context omitted.

The problem is that Python encourages this "it's all cool, man" syntactic mindset. "Just indent your code the natural way, don't worry about all that extra syntax like curly braces." And then it comes back to bite you when your "formatting" causes syntax problems. People are used to the idea of explicit delimiters, at least to some extent, thanks to punctuation. People are not at all used to whitespace having syntact…

Also: You can put as many spaces as you want between words, or sentences, or paragraphs, and it might look weird but it still means the same thing. No -- whitespace definitely has meaning in natural languages. It doesn't usually change the meaning much -- but it does affect it (where meaning of course includes tone and consideration for the reader's experience). Especially when it comes to the use of space between se…

Even indentation has a meaning, usually quotation.

Re: Tcl the Misunderstood (2006)

#76

Earlier quoted context omitted.

This is also perfectly valid c: main() { printf("Hello world"); } Some details are hidden by the compiler, but Python isn’t exactly pure machine language either. Semicolons and bracket are conceptually equivalent to significant white space (but more obviously explicit) and main is also a concept in Python (that is much more syntactically brutal than even its verbose c equivalent) that is hidden by the interpreter — w…

Your modern compiler is unlikely to accept this code.

Only because the default these days is to treat warnings as errors. That code compiles fine with even modern gcc and clang with the -w flag which ignores warnings.

Re: Tcl the Misunderstood (2006)

#77

Earlier quoted context omitted.

The problem is that Python encourages this "it's all cool, man" syntactic mindset. It's not a problem, it's just a tradeoff. Like 97 percent of all the other differences between programming languages. As to whitespace in Python -- it was counterintuitive at first, but once I grokked the rationale behind it, I've never been tripped up by it (to an extent that it would slow my thinking for more than a second or two). E…

> rationale behind whitespace in Python it doesn't seem simpler, and any argument that it's faster or easier to type seems to fall apart the first time you need to paste code across different indentation levels, right? what's the upside?

Which, given the universal consensus to use 4-space indentation in mature projects, basically never happens.

What's the upside?

Readability. And freedom from silly debates about which indentation style is best.

Re: Tcl the Misunderstood (2006)

#78
post #36
post #23

Watching someone learns basics of programming in Python, I realized that Python is actually not that easy to learn for beginners as I thought: 1. Types in Python are implicit. It's really hard to explain that they need to always think about what type something is, especially when they haven't grasped the concept of types yet. 2. Indentation as part of the language. I thought it's a great thing for beginners, but it's…

The traditional answer was to use a BASIC dialect. Minimal syntax, minimal structure, simple imperative commands. A lot simpler than Pascal. I don’t know TCL very well, but its scope semantics may be confusing. I’d take a look at LOGO also.

Having learned Basic (Commodore as well as Qbasic), Pascal (not Delphi) and TCL in my youth, TCL is the only one I used in production. TCL is fairly simple to learn, it only takes a few concepts really, and it is quite a joy, if memory serves right. Of those I mentioned, it is the only one that I would touch again, for any reason, whether for fun or profit.

Re: Tcl the Misunderstood (2006)

#79
post #54
post #44

Earlier quoted context omitted.

Yes. I've been kind of wondering about the apparent promotion of Tcl here recently - is someone pushing it for some reason, or is it just a passing fad in a slow (tech) news time?

Years back, for a lot of us, tcl and tk was the bees knees. It was what we use Qt for now, but much easier in some regards. I think sometimes that as we reach peak saturation in other languages people branch back out into areas we enjoyed in the past

2 decades later, I do not remember what I did with TCL, but I remember that I enjoyed it... This may explain things...

Re: Tcl the Misunderstood (2006)

#80
post #23

Watching someone learns basics of programming in Python, I realized that Python is actually not that easy to learn for beginners as I thought: 1. Types in Python are implicit. It's really hard to explain that they need to always think about what type something is, especially when they haven't grasped the concept of types yet. 2. Indentation as part of the language. I thought it's a great thing for beginners, but it's…

I had the pleasure to actually learn Pascal (Delphi actually) at school. I think it is a awesome teaching language. Though it also showed the problem with teaching languages: The students were not that eager on it. They would have preferred a languages with better job prospects. As motivation is the key for success to learning, yeah sometimes the language that offers the quickest benefits is a good choice. The streng…

Same thing, I'm looking for a good explanation why it's not that important what language you learn first.

E.g. if they learn carpentry, and the classes teach them how to do dining chairs (proper tools, wood characteristics, drilling and gluing techniques). But in real world they'll have to make tables. Does it really matter if they learned to make chairs not tables?

Post reply on HN