HN user

Treblemaker

357 karma
Posts14
Comments116
View on HN

The objections to tcl I see most often seem to reflect an outdated or incomplete understanding of the language and its capabilities.

As with many interpreted languages, maybe it's just too easy to iterate interactively with code until it "just works", rather than taking the time to design the code before writing it, leading to perception that it is a "write-only" language.

However, despite its reputation, even Perl can be written in a way that is human-readable. I agree with you that it is more a reflection of the programmer or the work environment than of the language itself.

When "everything is a string" then you have no choice but to literally treat everything as a string.

As someone who has been developing tcl almost daily for more than 30 years, both object oriented and imperative code, I have not found it necessary to think this way.

Can you explain what leads you to this conclusion?

Similar amount of experience with tcl here (since dc_shell-t was released). I love working in tcl. It can be expressive, redable, sufficiently performant, and makes it easy and fast to develop and test new features and functions in even very complex EDA design flows with 100k lines of code.

I find it curious that so many of the criticisms of tcl are that it doesn't have some feature or behavior of some other language. That has never stopped me from accomplishing what is needed with clear, elegant code.

Rule #10 in the Dodekalogue [0] explains why your preferred comment style is not supported: a command is not expected immediately after the last argument of the previous command. Terminate the command per rule #1 and it is perfectly fine:

puts "Hello" ;# A comment

Isn't that the same number of characters one would type to start a javascript comment? //

Almost any programming language can be beautiful in its simplicity if you work with it on its own terms. tcl doesn't deserve the hate.

[0] Dodekalogue is the common name for the twelve rules that define the syntax and semantics of Tcl. https://wiki.tcl-lang.org/page/Dodekalogue

100's of Klines of code in continuous development over the last 10 years, still currently maintained and continually adapted for new use cases in Electronic Design Automation (EDA) for logical and physical chip design and verification.

Of course it's possible to create "write-only" code in tcl. But tcl is hardly unique in that respect. Good code design and coding practices help to avoid most issues just as in many other languages.

"Everything is a string" (EIAS) is not what leads to a complete mess; it's failing to go beyond an initial, superficial understanding of the syntax and language capability and general lack of discipline that lead to un-fixable messes.

Many of the big EDA (Electronic Design Automation) tools continue to use tcl for the command line interface. Some users have created quite complex, customizable design flows spanning multiple tools and even development infrastructure (much, much more than just "stitching tools together) using tcl.

It fakes having numbers, which works, but has to be slow.

This hasn't been the case for 25 years, since the 8.0 release. Tcl will store data internally in whatever format it was last used, and only convert if needed. Good coding practice pays attention to this to avoid "shimmering" a value back and forth between different internal representations unnecessesarily.

It lacks arrays;

It does have associative arrays; and lists when used appropriately can fulfil many roles that would otherwise have been implemented in an array in another language

And tcllib[0], a collection of utilities commonly used with tcl, provides support for a number of different and complex data structions [1], many of which are written in C, not just more tcl scripts.

It's worth noting that Stallman's criticism linked above is more than three decades out of date. As with any programming tool, once you go beyond a superficial understanding of basic syntax, it can serve as a a very expressive and sufficient language.

[0] <https://www.tcl-lang.org/software/tcllib>

[1] <https://core.tcl-lang.org/tcllib/doc/trunk/embedded/md/toc.m...> (see: Data structures)

The perception that ADHD is nothing more than the inability to "sit still and pay attention" is very wrong and very out of date. Before you comment further I would strongly recommend you watch a series presented by one of the leading researchers in neurological basis of ADHD, Dr. Russell Barkley, called "ADHD: "The 30 Essential Ideas Every Parent Needs to Know" [1].

I struggled with many of these things -- primarily time blindness, executive function and impulsiveness -- for most of my almost six decade life, and finally understanding what was happening -- and getting help for it -- has been life-changing.

As one friend put it, he would cut off his left testicle if it meant having working executive function. The idea that I -- and friends and acquaintances who share similar experiences -- are faking it is ignorant and insulting. That you do not suffer is a gift; be grateful. Maybe don't be so dismissive of the struggles and suffering of others.

[1] https://www.youtube.com/playlist?list=PLh4RKnr7ygXsO1ImoyB0K...

Yes, according to the documentation, braces in comments should be ignored.

However, the parser is confused by unbalanced braces in comments.

Here's a classic case that turns up occasionally during development:

  proc asdf { args } {
    # if { first draft complex condition } {
    if { final simplified condition } {
      do something
    } else {
      do something else
    }
  }
Sourcing a file with the above comment inside the proc will produce:
  missing close-brace: possible unbalanced brace in comment

Update on the prediction:

(Feb. 26, 2022) "“We have finalized our forecast of SC25’s amplitude,” says McIntosh. “It will be just above the historical average with a monthly smoothed sunspot number of 190 ± 20.”

"“Above average” may not sound exciting, but this is in fact a sharp departure from NOAA’s official forecast of a weak solar cycle"

[0] https://spaceweatherarchive.com/2022/02/25/the-termination-e...

(December 19, 2020) "The consensus view of an international panel of 12 scientists calls for the new cycle, Solar Cycle 25, to be small to average, much like its predecessor, Solar Cycle 24.

But a prominent astrophysicist at the National Center for Atmospheric Research, Scott McIntosh, foresees the sun going gangbusters. The cycle is already off to a fast start, coinciding with the recent publication of McIntosh’s paper in Solar Physics. The study, with contributions from several of his colleagues, forecasts the nascent sunspot cycle to become one of the strongest ever recorded."

[0] https://www.washingtonpost.com/weather/2020/12/19/solar-cycl...

We do. Example from Oregon:

ORS 811.275

(1) A person commits the offense of failure to yield the right of way at an uncontrolled intersection if the person is operating a motor vehicle that is approaching an uncontrolled highway intersection and the person does not look out for and give right of way to any driver on the right simultaneously approaching a given point, regardless of which driver first reaches and enters the intersection.

https://oregon.public.law/statutes/ors_811.275

Joe is the expert on feature X. When we have a problem in X we ask Joe for help and he invariably provides the insight needed to solve the problem.

When Joe has a problem with X, he should go ask for help, even though he's the one best able to deal with it? Should he ask himself for help?

Can you see the problem with blanket statements like this?

How many times do I need to go down this path:

  ...
  - ask for help
  - try to explain how it's supposed to work
  - try to explain how it's not working
  - Listen to them come up with all the ideas that I've already ruled out
  - Try to explain why their preferred idea has already been
    ruled out or is not actually relevant to the problem
  - conclude they still don't understand the problem or even
    how this part of the system works
  - go ahead and just solve the problem myself
  ...
  
before it's OK to stop "asking for help", and just fix the damn thing?
Don’t be spooky 5 years ago

Every layoff I've been subject to (four of them) involved a large number of people, and were related to declining business or transfer of business activity to another division. And my last layoff resulted in a significant severance package. Not sure the claim of "usually" can be substantiated.

Thank you for the other references.

Down voted because this is misinformation

I would hope you might agree that term is better reserved for bullshit conspiracy theories and not peer reviewed research published in one of the most cited journals in the world.

the citation you provided does not support your claim

Upon re-reading the paper I still find that my claim is supported.

"Although antiviral T and B cell memory certainly contribute some degree of protection, strong evidence of a protective role for neutralizing serum antibodies exists. For example, passive transfer of neutralizing antibodies can prevent severe SARS-CoV-2 infection in multiple animal models,12,13 and Regeneron has recently reported similar data in humans14. We therefore focus our studies on in vitro virus neutralization titers reported in studies of vaccinated and convalescent cohorts"

"To compare neutralization titers across studies, we determined the mean and standard deviation (on a log scale) of the neutralization titer in published data from seven vaccine studies (mRNA-1273, NVX-CoV2373, BNT162b2, rAd26-S+rAd5-S, ChAdOx1 nCoV-19, Ad26.COV2.S and CoronaVac) and one convalescent study3,16,17,18,19,20,21,22"

" This model assumes that there is a protective neutralization level, T, above which individuals will be protected from infection and below which individuals will be susceptible. The protective efficacies observed in phase 3 clinical trials of vaccinated individuals (and another large cohort study of convalescent individuals1; "

[data shows higher level of neutralizing antibodies from four of the vaccines compared with convalescent studies]

It is possible -- even likely -- that I have misunderstood the paper. And both you and the paper I cited agree that more research is needed to establish the correlation between levels of neutralizing antibodies and protection from infection and disease. But my claim was _about_ the levels of neutralizing antibodies and as I understand it that claim is supported by the paper.