Pick a future you like!
May 16, 2019 1:01 AM Subscribe
Rust Creator Graydon Hoare Recounts the History of Compilers - "It starts with the 1940s-era ENIAC, where 'programming'[0,1] actually involved re-wiring until a team lead by Jean Bartik[2] began storing instructions in memory. 1949 saw the arrival of high-level pseudo codes with software interpreters, and soon Grace Hopper[3,4,5] was converting pseudo-code directly into machine language for the UNIVAC with her A-0 System, which was the first compiler." (slides/carousel ;)
Thread: "Recent events have caused me to reflect on the way I teach computational social science, and how this relates to my experiences with the data methods / data science community in political science. 1/n... I'll end this thread with a question I posed earlier: What is the purpose, the goal, the point of teaching methods? Is it to increase the methodological sophistication of the discipline, or to maintain a hierarchy? As a community, we need to wrestle with that question. /END"
Hoare also reminded the students of the pioneering work of Frances E. Allen,[6,7] whose 45-year career at IBM included work on the compiler-optimization team for IBM’s “Harvest” supercomputer, installed at the National Security Agency.also (Julia, Kotlin, Xena, &c.) btw...
In the early 1970s she co-authored “A catalog of optimizing transformations,” with John Cooke, a paper that aimed to “systematize the potpourri of optimizing transformations that a compiler can make to a program,” describing these optimizations in detail:Hoare added that many compilers do just these eight things and get about 80% of a best-case performance.
- Inline
- Unroll (and vectorize)
- CSE (common subexpression elimination)
- DCE (dead code elimination)
- Code Motion
- Constant Fold
- Peephole
Thread: "Recent events have caused me to reflect on the way I teach computational social science, and how this relates to my experiences with the data methods / data science community in political science. 1/n... I'll end this thread with a question I posed earlier: What is the purpose, the goal, the point of teaching methods? Is it to increase the methodological sophistication of the discipline, or to maintain a hierarchy? As a community, we need to wrestle with that question. /END"
I love looking at those names of the early programmers -- Jean, Betty, Grace, Adele, etc.
posted by pracowity at 6:40 AM on May 16, 2019 [8 favorites]
posted by pracowity at 6:40 AM on May 16, 2019 [8 favorites]
> I love looking at those names of the early programmers -- Jean, Betty, Grace, Adele, etc.
There's never a wrong time to point people to Mar Hicks (@histoftech on Twitter) and their book Programmed Inequality which traces in excruciatingly painful detail how women built and then were forced out of the world of computers in midcentury England.
As long as men perceived the work they were doing as essentially secretarial work, in the same way that the work of mostly-female "human computers" was, they left it alone to some extent. Once it became more high-status work, women were unceremoniously kicked out. To the tremendous loss of early progress in computing.
posted by bgribble at 6:56 AM on May 16, 2019 [15 favorites]
There's never a wrong time to point people to Mar Hicks (@histoftech on Twitter) and their book Programmed Inequality which traces in excruciatingly painful detail how women built and then were forced out of the world of computers in midcentury England.
As long as men perceived the work they were doing as essentially secretarial work, in the same way that the work of mostly-female "human computers" was, they left it alone to some extent. Once it became more high-status work, women were unceremoniously kicked out. To the tremendous loss of early progress in computing.
posted by bgribble at 6:56 AM on May 16, 2019 [15 favorites]
As long as men perceived the work they were doing as essentially secretarial work, in the same way that the work of mostly-female "human computers" was, they left it alone to some extent.
Because it was "secretarial work" back then. Computer Science and Computer Programming were two different disciplines (think architect verses framer when it comes to building a house) until the late 70's. Hell, my father went through a computer programming program at Pierce College in Woodland Hills, CA in 1980 that was run by the same group that did the rest of the vocational trade school stuff like welding. "Computer Science" was happening over the Sepulveda Pass at UCLA and consisted of lots of writing on blackboards.
The disinclines are used interchangeably these days because "Computer Programmer" as the actual role just doesn't exist anymore. So when the narrative of "Computer Programmers in the past were mostly women, but now they are mostly men!!" gets pushed these days, it actually diminishes the accomplishments of the great women Computer Scientists of the past. During her lifetime, Rear Admiral Grace Hopper would be incredibly insulted to be considered a mere "programmer".
posted by sideshow at 10:23 AM on May 16, 2019 [2 favorites]
Because it was "secretarial work" back then. Computer Science and Computer Programming were two different disciplines (think architect verses framer when it comes to building a house) until the late 70's. Hell, my father went through a computer programming program at Pierce College in Woodland Hills, CA in 1980 that was run by the same group that did the rest of the vocational trade school stuff like welding. "Computer Science" was happening over the Sepulveda Pass at UCLA and consisted of lots of writing on blackboards.
The disinclines are used interchangeably these days because "Computer Programmer" as the actual role just doesn't exist anymore. So when the narrative of "Computer Programmers in the past were mostly women, but now they are mostly men!!" gets pushed these days, it actually diminishes the accomplishments of the great women Computer Scientists of the past. During her lifetime, Rear Admiral Grace Hopper would be incredibly insulted to be considered a mere "programmer".
posted by sideshow at 10:23 AM on May 16, 2019 [2 favorites]
Computer Science and Computer Programming were two different disciplines (think architect verses framer when it comes to building a house) until the late 70's.
That remains true today. Virtually no undergraduate curriculums in North America feature a course that require a student to perform an empirical analysis of a computational process, and the last time most programmers ran into a graph with error bars was in their mandatory first year physics class.
Greg Wilson's Two Solitudes is a good introduction to this longstanding schism, but in short, the whole idea of evidence-based or empirically-grounded practices, much less rigorous analysis, are just about completely alien to modern software development.
posted by mhoye at 11:54 AM on May 16, 2019
That remains true today. Virtually no undergraduate curriculums in North America feature a course that require a student to perform an empirical analysis of a computational process, and the last time most programmers ran into a graph with error bars was in their mandatory first year physics class.
Greg Wilson's Two Solitudes is a good introduction to this longstanding schism, but in short, the whole idea of evidence-based or empirically-grounded practices, much less rigorous analysis, are just about completely alien to modern software development.
posted by mhoye at 11:54 AM on May 16, 2019
(Having said that: Graydon is an astonishing human being, one of those rare people who manages to be kind, reflective and thoughtful in everything he does while also being off-the-charts beyond smart, one of those lonely data points way out past the far right end of the curve that are impossible to even assess. He'd never say so, but I think of him now and then when I remind myself that I used feel pretty smart until I had a chance to watch that kind of smart work.)
posted by mhoye at 12:21 PM on May 16, 2019 [3 favorites]
posted by mhoye at 12:21 PM on May 16, 2019 [3 favorites]
Tangentially related, I was delighted to see one of the main presenters at Microsoft's big developer conference last week wore this without comment for their most important session. Just big plain text that reads:
posted by bcd at 1:58 AM on May 17, 2019 [2 favorites]
Ada&Jean and Grace being the ones mentioned above, along with Ada Lovelace and Margaret Hamilton. Good to see the recognition here and there both.
Jean&
Grace&
Margaret.
posted by bcd at 1:58 AM on May 17, 2019 [2 favorites]
« Older Underground Photos From New York’s Seediest Years | The complicated gender politics of going zero... Newer »
This thread has been archived and is closed to new comments
I had a class on compiler front ends in college but it was dominated by language parsing (which I suppose is fair).
I never studied the optimization and generation of machine code and I had a naive optimism about it for the first half of my career. Then I worked with a guy who had done them professionally and learned the importance of double checking the compiler’s work on these little ARM drivers we were working on. There’s a whole science — and mythology — to mixing and matching which optimizations to run and which order to run them in. I definitely would have loved some Q&A time on that.
posted by Tell Me No Lies at 6:31 AM on May 16, 2019 [2 favorites]