Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Last Chance - Get 15% off sitewide on Slashdot Deals with coupon code "BLACKFRIDAY" (some exclusions apply)". ×

Comment Re:tEoPS (Score 1) 185

Gee, thanks, I never thought to read the post! Or any of the comments by Go aficionados and promoters.

The topic is not only "Go" but "Programming" too.

The Elements of Programming Style is widely regarded as a classic. However, it's examples are dated and I don't know of another book like it. But I'm pretty sure "The Go Programming Language" is not a replacement.

Comment tEoPS (Score 2) 185

There many books on "how to program" but few on "how to program well". Brian, your book "The Elements of Programming Style" is a wonderful and a classic, but my students have a hard time reading the examples (Fortran 66 and PL/I).

Is there any hope for an update?
Is there any similar modern-language book that you recommend?

Michael Nahas (son of Joe Nahas)

P.S. I totally stole as much as I could from you when writing my tutorial for the language Coq. Sorry/Thanks!

Comment Formal proof, Coq, Thomas Hales (Score 1) 210

Mathematica and Alpha are for calculations and manipulating equations. There is another part of mathematics: Proof. For the most part, that's been written in English or Russian or some other human language. But there are a number of prototype tools for writing proofs on a computer.

Thomas Hales & co. just proved the Kepler Conjecture using HOL Light. Georges Gonthier and his team have proven the Odd Order Theorem in Coq. Vladimir Voevodsky is looking at a new foundation for mathematics based on his exposure to Coq.

What do you see as the future of formal proof? Will we see it as part of the Wolfram packages?

Comment How should science-lovers view the past? (Score 2) 208

For myself, I take a hard interpretation of the scientific method that it only applies to predictions about the future. Predictions that can be tested. If I run an experiment and the prediction fails, the theory is invalidated. To pick an example from physics, if I throw a coconut, I should be able to predict where and how fast it will be at different times in the future during its flight. If the coconut didn't fly (within error) of Netwon's predictions, it would invalidate Netwon's Laws.

This "hard" interpretation prevents me from making predictions about the past. When I see a coconut flying through the air at a certain time and place with a certain velocity, I cannot use the scientific method to tell where the coconut was thrown from. The "hard" interpretation of the scientific method covers any number of events in the future, but cannot be applied to the past, let alone a singular event in the past. To be clear, I _do_ think it's valid to say "Using what we know from science, we can _extrapolate_ that the coconut was thrown from someone standing a place at time in the past". But I accept that any extrapolation could be wrong. This might happen if the coconut was not thrown by a person but dropped by a migrating swallow (African or European).

I'm asking this question because a sizable portion of the United States (roughly 46% in a Gallup poll) believe the universe was created in the last 10,000 years and some of their (our?) leaders want to stop teaching the theory of evolution because they say it contradicts their divine revelations. In my opinion (because of the hard interpretation), the theory of evolution does not contradict their divine revelation. I believe that if we tested the theory - exposed some bacteria to an antibiotic - we'd see it held - the bacteria that survived would become resistant to the substance. It is just the extrapolations we get by applying what we've learned from science - the earth being 4.5 billion years old, human having a common ancestor with apes, etc. - that contradict their divine revelation. I'm okay with someone saying my extrapolations could be wrong as long as they accept the scientific theory (and as long as they don't try to teach their divine revelations in the public schools I help fund!)

As someone in a what Wikipedia calls a "historical science", how should science-lovers view the past? Must someone throw out the theory of evolution if they don't believe in dinosaurs? Obviously Paleontology has had a huge effect by inspiring theories in Biology, just as Astronomy has had in Physics. Do you think we should have a separate name for fields that "extrapolate" the past based on the knowledge gained from science, so that the theory of evolution could be taught without inciting conflict with those who get their past from their divine revelation?

NOTE: I am not a creationist. I believe in dinosaurs and human-ape ancestors. I believe Astronomy, Historical Geography, and Paleontology give us a view of the past that is most consistent with science and that that past should be the one used in the public sphere of a pluralistic society. But I don't want the kids of Kansas to not be taught the theory of evolution for a conflict that, in my mind, isn't the real conflict and the real conflict isn't something a science-lovers would fight over. Well, unless that science-lover happened to be a Paleontologist...

Comment This is horrible! (Score 3, Insightful) 629

My God! How can you advocate unbiased, quantifiable measures of teacher performance! Teachers have magical powers that can't be measured by numbers! Teachers aren't like people in other jobs who can be fired based on their performance! And tests are a horrible way to measure learning! Teachers never use tests themselves! Tests are never used to assign advanced/remedial classes, nor to enter college, and certainly not to get Advanced Placement credits! And, certainly, by God, hide this measure from the parents! You might make them think that something can be done to improve their child's education!!!

Comment Re:Neither! (Score 2, Interesting) 817

The cleanest languages I've used are C, Java, and OCaml. By "clean", I mean the language has a few concepts that can be completely memorized, which results in less "gotchas" and manual reading. For these languages, you'll see small manuals (e.g., K&R's book for C) which cover the complete language and then lots of pages devoted to the libraries that come with the language. I'd definitely recommend Java (or C, or OCaml) over C# for this reason. C# seems to have combined every feature of C++, Java, and VBA into a single language. It is very complex and has a ton of concepts, for which I could never memorize the whole language. I have a feeling that most programmers will use the subset of C# that is closest to the language they understand, whether it is C++, Java or VBA. You might as well learn Java's style of programming, and then, if needed, switch to C# using its Java-like features.

Some programming languages manage to absorb change, but withstand progress. -- Epigrams in Programming, ACM SIGPLAN Sept. 1982