Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Re: Doing it wrong? (Score 1) 600

A non-recursive algorithm to walk a tree structure still requires memory space proportional to the maximum depth of the tree,

Not always, no. For example, if the nodes in the tree all have a reference to their "parent" nodes (which they may already have for other reasons), you can traverse the tree in O(1) space. That doesn't help if the nodes don't have parent references (adding them would increase the size of the tree by O(n) which is usually much bigger than O(max depth)), but if the tree is sorted (as it typically is) you can find the parent of a node in O(1) space, albeit in O(max depth) time.

Comment Re: More Theresa May (Score 1) 194

British PMs are never elected, their party is.

I think the PM still has to win their seat. Has a PM ever served where their party won FPTP but they didn't win their seat?

Yes, but not since 1902. (It used to be acceptable for the PM to come from the House of Lords, which is unelected.)

Comment Re:Give the option (Score 1) 348

What Firefox build supports it? Because none that I have seen do.

You've never had to use Windows? You lucky soul :-)

In fact the Linux builds support it too - it's disabled by default, but if you set the "browser.backspace_action" option to 0 (which is the default for Windows installs) it will enable it, if you really want to ;-)

Comment Re:Give the option (Score 1) 348

Since every single browser also supports Backspace to go back, they were hardly being different!

By "every single browser" I assume you mean "Opera stupidly".

No - Firefox supports it; IE and Edge support it; Safari supported it prior to version 6; as you mention, Opera supports it... it's hardly a Chrome innovation :-)

Comment Re:C vs Go (Score 1) 185

Being less verbose isn't necessarily a good thing.

Definitely agree - sometimes being explicit is better. But this is definitely an area where Java and Go take very different approaches.

More sophisticated concurrency model? Perhaps, I'd say it's more abstracted away so you may not have to worry about it, usually, but that must means it's going to be harder if your problem doesn't fit well in their concurrency model. (Need we discuss Open GL?)

Actually the OpenGL thing is solved fairly easily - but in general this is a valid observation; my point is that Java's approach (with explicit threads, synchronisation etc) is much closer to C's than Go's is.

But where "go" and "Java" differ, they are extremely similar looking when you compare them to "C".

And my point is that's clearly not true - apart from garbage collection, the two languages have relatively little in common; they may both do more abstraction than C, but what they choose to abstract, and how they implement it, is very different.

Comment Re:C vs Go (Score 1) 185

How does 'The Go Programming Language' compare to 'The C Programming Language'?

About as well as Java compares with "C" and in almost exactly the same ways.

That's doing Go a massive disservice; Go differs from Java in very significant ways. To name but a few:

  • Go's source code is much less verbose (due to deliberate decisions on the part of the designers)
  • Go produces (by default) native static executables, so no need to bring a JVM before you can run your code
  • Go compiles to native machine code (not bytecode), so there is no JIT warm-up penalty
  • Go's concurrency model is much more sophisticated than Java's - making it much easier to write concurrent programs that behave correctly

In fact, apart from having garbage collection, Java and Go are really not that similar (within the realm of somewhat-compiled imperative languages).

Comment Re:I worry about autonomous language activities (Score 2) 185

Check with Oracle about the terms they use if you want to distribute their Java Virtual Machine in a commercial product. I can assure you it involves you providing them with cash before they will let you even distribute Java, unmodified, as part of your product. I know this from experience. I'll warn you, Java from Oracle does NOT come cheap if you wish to distribute it. Sure they will let you and your customer download it for free, but they want their cut if you download and distribute Java to a customer.

OK, I checked with Oracle, and they said this:

Can I distribute Java with my software?
Yes, you can provide Java with your software provided you abide by the terms and conditions of Java binary code license.

Go is great, and there are definitely advantages to Go's BSD licensing model, but this is not one of them :)

Slashdot Top Deals

We warn the reader in advance that the proof presented here depends on a clever but highly unmotivated trick. -- Howard Anton, "Elementary Linear Algebra"