3 ms·
I remember my freshman year of college in 1994 when I took C++ and asked the professor about how to write a GUI program. She told us about the Motif toolkit.
by lizknope 4y ago
I remember my freshman year of college in 1994 when I took C++ and asked the professor about how to write a GUI program. She told us about the Motif toolkit. I got a book from the library and typed in a hundred lines of boiler plate code just to make "Hello World" in Motif and C.
It then took about 5 minutes to compile on a DECstation 5000 with 32MB RAM running Ultrix.
Someone in the computer lab saw me with the Motif toolkit book and said "Why don't you use Tcl / Tk?" I said "What's that?" and they showed me. I had "Hello World" in 3 lines and could edit and start my new version in a couple of seconds instead of minutes to compile.
After I graduated I got a job in the semiconductor industry which ran on Solaris and HP-UX and now Linux. All our digital tools from Cadence and Synopsys started using Tcl as the built in scripting language. I ended up teaching my older coworkers how to program in Tcl. I was still writing Tcl yesterday. There are a lot of things I hate about it but it has stuck around.
The text before the interview mentions AFS which I did not think Ousterhout had anything to do with. I thought it was from Carnegie Mellon and then IBM Transarc. We used AFS at my school and I still miss it. Going to NFS in the industry seemed like a step backward.
We only had an 8MB quota for our entire Unix account in college. It was great when working on a group project that I could make a dir in my account for that project and then add the 3 other classmates login id's to the group dir ACL list.
These days at work depending on the size of the company we have to send an email to the sysadmin / devops team to say "Add user ABC to project group ID XYZ" and then wait hours or days. At my current job we can request Unix group access through a web site but I still think it is some human running commands to manually add users because it takes about 24 hours.
- bch 4y ago> The text before the interview mentions AFS which I did not think Ousterhout had anything to do with. I thought it was from Carnegie Mellon and then IBM Transarc. Ya - I wonder if the article writer actually meant LFS (log-structured file system)[0] which was part of the Sprite operating system project. [0] https://en.m.wikipedia.org/wiki/Log-structured_file_system https://en.m.wikipedia.org/wiki/Log-structured_file_system
- angrymonks 4y agoGood Catch! Updated here: https://github.com/breck7/pldb/commit/312d5dab32fda3782e8466e3134aa744e527ebfe https://github.com/breck7/pldb/commit/312d5dab32fda3782e8466...
- tails4e 4y agoI use tcl in EDA reguarly also. It's quirky, but useful. I'd not choose it for anything non EDA today, but it works well in that niche. The most horrific thing I discovered about tcl is that curly braces within comments can affect flow control. This is because comments are interpreted as a command that does nothing, not the same as complete ignored. Finding that out the hard way was not fun.
- ThenAsNow 4y ago> The most horrific thing I discovered about tcl is that curly braces within comments can affect flow control. This is not true. Once Tcl sees a valid comment, the rest of the line up to the newline is treated as a comment. An odd number of trailing backslashes suppress the newline for interpretation purposes. Within the comment you can use braces or whatever without affecting control flow. See: https://wiki.tcl-lang.org/page/comment https://wiki.tcl-lang.org/page/comment
- tails4e 4y agoIt is effectively an issue, see https://wiki.tcl-lang.org/page/Why+can+I+not+place+unmatched+braces+in+Tcl+comments https://wiki.tcl-lang.org/page/Why+can+I+not+place+unmatched... If it's a comment in a proc with an unbalanced brace, it parses differently. That's not intuitive or sane IMHO.
- Treblemaker 4y agoYes, 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
- Upvoter33 4y agoYeah the AFS thing is a mistake. Ousterhout graduated from CMU (PhD) in 1980; the Andrew project (from which AFS sprung) began in 1982 or so. Ousterhout did work on Sprite (a distributed OS and file system) in the 1990s at Berkeley, and then, as another mentions, the log-structured FS (LFS).
- Bluecobra 4y ago> We only had an 8MB quota for our entire Unix account in college. This brings backs some memories for me. In high school we only had a 10MB quota. I remember bringing in stacks of floppies to workaround the quota so I could download junk off their T1 and using file splitting programs. One of my friends even blew all his McJob money on an external Zip drive. By the time I started college USB thumb drives came into vogue and made everything so much easier.
- themodelplumber 4y ago> One of my friends even blew all his McJob money on an external Zip drive. Ah...I recall doing this too. Funny to remember so much of that money going to buy the best possible hardware for the least amount of money. Like I thought I won the lottery when I got a deep discount on an OEM AWE32 card that came loose in a cardboard box, literally bare and rubber-banded to a pile of floppy discs. Just so I could have low-latency midi and load soundfonts into the card. The zip drive was frustrating though. I got to college and had all my HS portfolio work on a zip disc but no drive anymore. So I bit the bullet and bought a drive, thinking it would be a while before that format was useless. Functionally I was right but for practical purposes I never used the drive much after copying my files over. Especially after hearing about the... Click of death issue I think it was called? Funny memories.
- incanus77 4y agoBrings back memories for me. Started college in ‘95, system had a 10MB quota on AFS and I also made use of the ACLs for projects with others. Systems ranged from Solaris to IRIX to AIX. My first GUI app was in Perl/Tk since I already knew Perl for scripts; it was a mail watcher utility that showed recent messages in a window.
- neilv 4y agoTk is what made people use Tcl, because it was a rare scripting language for GUI on Unix workstations. The Tcl language is actually really clever and interesting, but the textual evaluation model (a much smarter approach than Bourne and C-shell) still made it poor for representing and manipulating graphs. I was lead for the extension language in a new CASE system, which had rich semantic graphs, including cycles. Tcl ended up being chosen by a cofounder, so I wrote up a doc on language limitations and how to work around them. (I'd also argued in the early/mid-'90s that the high-level extension language should also be the application implementation language. Such that we'd develop much of the application functionality ourselves in this high-level language, atop a C++ or C core API for foundation that needed that. Python eventually went this route, but hadn't yet. At the time, people in these sectors (which were very different from MIS developers) were thinking of extension language as things customers could use for simple reports or crude customizations or integration glue. Python and Tcl were new candidates for extension languages, and some big-ticket CAD/EDA/publishing tools had already been using their own more powerful Lisp variant implementations.)
- pjmlp 4y agoWe used Tcl back in the day, because of AOLServer, and the startup founders I joined went on to create their own version of the idea. We had Rails and Active Record done in Tcl back in 1998.