Now though, any other editor that's not Vim or Emacs feels like that...
245 karma · joined December 26, 2010
http://www.keithalexanderisreadingyouremail.com
http://www.mobilemagicdevelopers.com
Email: My gmail username is the same as my HN one.
Now though, any other editor that's not Vim or Emacs feels like that...
(nice work by the way)
I put the word in quotes to try to express a much wider than usual connotation for the word (air quotes, if you will..). It's a shame that language is all we have to communicate on the internet.... :)
I also agree that we shouldn't precisely define tradeoffs before continuing on a single, specific, problem.
I just think that, in the macro sense, we can and should get better at defining the factors that would inform such a precise weighing of the tradeoffs for clarify, efficiency, expediency, etc... Doing so would give us better instincts for single instances where doing a precise comparison would be absurd.
I think the problem is that too many people disagree on what is 'too much time'. Not trying to nit-pick but obviously it is a mistake to spend 'too much time' doing anything. That's implied in the too much. That may come off as being pedantic, but I don't mean it to be so. I think defining 'too much time' is right at the heart of the problem. And it's a hard problem to be sure.
I'd also disagree that the possibility of something being incorrect is a reason to spend less time clarifying it...I'd say just the opposite.
By clarifying code you're making it easier to comprehend and thus change in the future. I'd say you should write code with change in mind.
Regarding 'incorrectness' itself...that's the only reason code is ever changed. Whether the code is fundamentally incorrect (the type I believe you were referring to) or temporally incorrect, the incorrectness of the code is always the reason for the change.
I imagine we're more the source of the 'so disorganized they never even get back to you' part, right? If so, I apologize for that. If you really did just get dropped by recruiting then shoot me an email and I can rouse the right people.
Overall the situation has gotten much better thanks to the awesome guys working on the IntelliJ Scala plugin (details: http://blog.jetbrains.com/scala/).
However, how do you propose content creators become incented to create content?
J is just an abstract concept. The concrete demands come from individual Jerfs which could contradict each other.
I must be missing something.
Perhaps a concrete example would be helpful?
Also, if you're interested in using Robolectric with Scala then this helps (warning, shameless plug) https://github.com/jbrechtel/robospecs
In general though, if the situation is truly exceptional (wrong type being passed) then counting the ticks used throwing the exception should be compared against the ongoing cost of the increased complexity to the codebase to handle the exception in another fashion (e.g. an if/else block).
Also, if you're just comparing the ticks of as+is VS invalid cast wouldn't you want to multiply each by the # of times they'll be executed? The as/is would be executed EVERY time the function in question was called. The invalid cast would, in this case, likely be executed once or twice ever and then the bug that is causing an InvalidCastException would be fixed.
In your else block you can't report anymore information than the NullPointerException in the author's original example reported.
If you still use an 'as' operator at the callsite then you've lost all useful information. If you do a cast then you'll at least get an exception with WHAT it was you were trying to cast.
Obviously, some of the things you mentioned with in-person pairing can be alleviated. At my current client, our setup includes multiple keyboards and mice. A friend of mine uses his own keyboard with a hardware switch to go between dvorak and qwerty.
You mention not being able to share a browser which makes me think of the times where it would have been convenient to look something up for a moment while my pair experimented (two pronged problem solving approach... :).
Also, what kind of pairing patterns do you use in this setup? Ping Pong TDD, driver/navigator, etc... ?
Specifically, are you sharing a screen session with VIM in a terminal or what?
Do you rotate pairs or is it always the same person? How would you compare your remote pairing setup with live, in-person pairing?
To lay the blame of crappy news solely at the feet of the audience is about as short sighted as the conspiracy notion IMHO.
http://www.amazon.com/Mind-Mnemonist-Little-about-Memory/dp/...