|
![](/i/fill.gif) |
On 13/03/2012 19:27, nemesis wrote:
> Invisible escreveu:
>> On 13/03/2012 10:11 AM, Invisible wrote:
>> I eventually gave up with NetBeans. It's just too cripplingly slow. (I
>> did not have this problem with VS.) If I type something and have to
>> wait /4 seconds/ for anything to appear on the screen, that's too
>> slow, IMHO.
>
> ah, children from the 90's...
I wish. :-P
Seriously. Visual Studio manages to be responsive enough, and not eat
half my RAM. NetBeans can't. IMHO, that makes NetBeans inferior.
>> Seriously. Once I got to a handful of files, amounting to a grand
>> total of 6KB of Java source, performance became unacceptably poor.
>
> That's not my (ackowledged little) experience. And surely not of most
> people working on some hairy shared projects.
I can only say what I saw, not what other people see.
>> In all, I was spending /far/ too much time fighting the IDE and not
>> enough time actually coding stuff.
>
> cool, now you'll be just fighting a wholesomely stupid language.
That's the one. ;-)
>> Some of you may remember that logic simulator I built in Haskell a
>> while back. If I recall, I challenged Warp to implement it in C++, and
>> he couldn't even figure out how the heck it works.
>
> Perhaps you should have told him what the code is supposed to do rather
> than expect someone to figure out what some haskell code is doing.
Well, I did try to explain it in words, but sometimes source code is
more exact.
> Here's a challenge for you. What do these haskell snippets are supposed
> to do?
>
> snippet 1:
>
> ((.)$(.))
ASCII art? ;-)
In fact, the "$" is necessary. Either way, this takes a 3-argument
function, the first argument to the function, a function that transforms
some type into the type of the second argument, and a suitable argument
to transform. Or, in symbols,
(x -> y -> z) -> x -> (j -> y) -> y -> z
> snippet 2:
>
> f >>= a . b . c =<< g
Without knowing what the variables are bound to, this cannot be
answered. It would be like saying "what does Foo(Bar(5)) do?"
> and for a bonus, guess what this one does:
>
> import System.Environment
>
> foo n = 0 % (0 # (1,0,1)) where
> i%ds
> | i >= n = []
> | True = (concat h ++ "\t:" ++ show j ++ "\n") ++ j%t
> where k = i+10; j = min n k
> (h,t) | k > n = (take (n`mod`10) ds ++ replicate (k-n) " ",[])
> | True = splitAt 10 ds
> j # s | n>a || r+n>=d = k # t
> | True = show q : k # (n*10,(a-(q*d))*10,d)
> where k = j+1; t@(n,a,d)=k&s; (q,r)=(n*3+a)`divMod`d
> j&(n,a,d) = (n*j,(a+n*2)*y,d*y) where y=(j*2+1)
>
> main = putStr.foo.read.head =<< getArgs
That's not even parsable. (Indentation is significant, remember?)
> no googling, huh? ;)
All I need is Hoogle. :-P
>> Yes, Java /still/ sucks. :-P
>
> Yes and that is a feature by design.
O RLY?
> What doesn't suck is the JVM and the tens of thousands of useful libs
> that run atop it. It's the only truly cross-platform performant VM out
> there. Think about it, libs you don't actually need to recompile on your
> machine.
Ha! If only... They don't say "write once, test everywhere" for nothing. ;-)
> And if you don't like java, you can just choose from many languages
> running atop it and leveraging from said libs: Scala, Jython, JRuby,
> even quite a few Scheme implementations... any haskell work on this front?
Darren claims they committed to a feature freeze too soon. I don't know
about the low-level details of the JVM. But I gather that, say, adding
Java generics required lots of ugly hacks so it didn't break compatibility.
I hear there are other languages that target the JVM. Presumably you
still can't use any of the existing libraries though. (Not that any of
them are much good.)
Oh, Haskell? Yeah, I gather a few people have tried to target the JVM
with it. Nothing production-grade currently exists, however.
> BTW, Ant is yet another example of XML-madness: it's basically a verbose
> XML makefile for java.
Oh well. At least you don't need tab characters. :-P
Post a reply to this message
|
![](/i/fill.gif) |