Pretty much this. Even though C# fanboys like to bash Eclipse and Java, they just don't suck badly enough. Yeah, Eclipse needs a GUI designer and it would nice to have delegates/events ala C#, but the workarounds are not that bad to tie yourself to MS. Java gained most momentum in the years when you needed a serial number even to install (!!!) the MSDN documentation from a CD. If it weren't for Java we wouldn't have stuff like Visual $language Express for free.
"unless you represent a major corporation" So we'll have RedHat, Ubuntu, and Oracle Enterprise Linux and Suse. And I guess the Ubuntu folks get a key for debian as well. Of course it would negatively affact minor distributions, and I'm totally against it, but don't pretend that Linux would just suddenly disappear.
Just put your foes among your friends, and use the foes group for idiots:) Although the system can't compute lower karma than -1. So you're still fucked.
You can set other people friends/foes and apply a karma modifier. I think it's better than completely removing them from your view, as someone else might write an insighful reply for that, and the you would lose context.
"as does anything that says good things about Microsoft."
They usually don't, at least lately:) On the other hand I agree, that anything counter-culture gets too easily upvoted. The opposing point of view might get upvoted as well, but they have to put much more thought into their comment to get the upvote.
"Swing is very easy to code for and its integration with Java2D allows for a flexibility I've never seen in other toolkits (e.g. you can draw a button rotated by 27 degrees, a text label mirrored,"
WPF can do that, but it has a much steeper learning curve, and is bound to MS. Mono doesn't have a WPF library and isn't planning to do one either.
Re:haskell for the masses? sure, but only...
on
OCaml For the Masses
·
· Score: 1
Now just imagine having a complex expression involving several function calls, where the functions have side effects...
"No, functions and procedures were treated differently by Pascal compilers. Procedure calls, since they did not return a value, could not be used where a value was expected, and function calls, which did return a value, could only be used where a value (specifically, an rvalue) was expected."
That's just nitpicking.
Re:haskell for the masses? sure, but only...
on
OCaml For the Masses
·
· Score: 1
I guess you meant DCG (Definite Clause Grammar). DCG is not a distinct conept in Prolog, just a syntactic sugar for foo1(In1,Out1),foo2(Out1,Out2),foo3(Out2,Out3)...
Re:haskell for the masses? sure, but only...
on
OCaml For the Masses
·
· Score: 1
"C, even doing ordinary IO in Haskell (or possibly it was OCaML) required dropping into C. (Monads have no state, or some such.)" I'm not a Haskell programmer, but I'm sure you can do IO in Haskell, but the idea is that Haskell maintains information which function does IO and which doesn't, and does all kind of optimizations/rearranging/paralellization on non-IO functions. So if your function calls an IO function, your function becomes an IO function as well, so this property spreads to the caller. Remember Pascal? You had "procedure" and "function", both of which map to functions in C. The idea was in Pascal to use "function" for computations which doesn't change state, and use "procedure" for things that alter state. But the compiler doesn't actually enforced that statelessness for "function", it trusted you, and handled both the practically the same way. In Haskell if you say your function is stateless, the compiler will enforce that; that's why you have a bunch of operators to denote state change.
Re:haskell for the masses? sure, but only...
on
OCaml For the Masses
·
· Score: 1
"Also, I get how Haskell handles IO "
"get what's inside the arrow operator" or is it "DO" operator? I don't really remember.
Re:haskell for the masses? sure, but only...
on
OCaml For the Masses
·
· Score: 1
Also, I get how Lisp handles IO as a separate type that indicates that those operation is "dirty" and order matters, what I don't get what's inside the arrow operator, as it's syntactic sugar for a series of primitive operations. Honestly, I have spent a weekend figureing it out, and all I got was headache. I just don't like when there's too much magic happening behind the scenes. Also, Oz seemed much easier to understand, and I just thought I know enough exotic languages to warrant my geek card, so I just passed on Haskell.
Re:haskell for the masses? sure, but only...
on
OCaml For the Masses
·
· Score: 1
Well, Prolog is like Lisp with syntax and backtracking, so if a problem is suitable for Lisp, then it's suitable for Prolog as well. So it's good for domain specific languages (and you get additional goodies custom operator precedence, custom prefix, postfix, infix operators etc.) Also, all Prolog implementations come with a few Constraint Logic Programming libraries, so if you have logistics/scheduling problems it's pretty good for that too. Also CLP(R) libraries also feature various optimization algortihms like simplex, but you can make it to solve harder problems too, and it'll intelligently prune the problem space. So if you're into mathematical optimizations/operations research then you'll find it useful.
My only problem with non-determinism and Prolog was that it was really hard to find where unnecessary choicepoints are. (e.g. you get the same results multiple times) Prolog could definitely use better debugging tools.
Re:haskell for the masses? sure, but only...
on
OCaml For the Masses
·
· Score: 1
I've been programming Prolog quite a lot (a bit CLP too), but still don't get monads, so I just shrug off your snobbish nonsense.
Or just put tax on socially irresponsible things. Every optimization problem has a fitness value, that you must maximize. In capitalism we call it money. We have to create the constraints where maximizing money leads to socially desirable things. Otherwise we will just reinvent the centrally planned economy that was practiced in the Soviet Union.
There's nothing wrong with Swing. If you don't like the defualt* look and feel just download for free/buy a nicer one.
http://geeknizer.com/best-java-swing-look-and-feel-themes-professional-casual-top-10/
http://dlemmermann.wordpress.com/2011/05/10/the-best-swing-look-feel-bizlaf/
*I think the default Swing LaF is pretty nice since 1.5.
Pretty much this.
Even though C# fanboys like to bash Eclipse and Java, they just don't suck badly enough. Yeah, Eclipse needs a GUI designer and it would nice to have delegates/events ala C#, but the workarounds are not that bad to tie yourself to MS. Java gained most momentum in the years when you needed a serial number even to install (!!!) the MSDN documentation from a CD. If it weren't for Java we wouldn't have stuff like Visual $language Express for free.
"unless you represent a major corporation"
So we'll have RedHat, Ubuntu, and Oracle Enterprise Linux and Suse. And I guess the Ubuntu folks get a key for debian as well.
Of course it would negatively affact minor distributions, and I'm totally against it, but don't pretend that Linux would just suddenly disappear.
Just put your foes among your friends, and use the foes group for idiots :) Although the system can't compute lower karma than -1. So you're still fucked.
Which is the perfect setup to keep out small businesses ...
It's the dumbing down of the smartphone! What the world has come to!?
You can set other people friends/foes and apply a karma modifier. I think it's better than completely removing them from your view, as someone else might write an insighful reply for that, and the you would lose context.
Honestly, I don't think Reddit is bad. I actually find refreshing to read about other things than Android and iGadgets and Drupal books.
"as does anything that says good things about Microsoft."
They usually don't, at least lately :)
On the other hand I agree, that anything counter-culture gets too easily upvoted. The opposing point of view might get upvoted as well, but they have to put much more thought into their comment to get the upvote.
"Swing is very easy to code for and its integration with Java2D allows for a flexibility I've never seen in other toolkits (e.g. you can draw a button rotated by 27 degrees, a text label mirrored,"
WPF can do that, but it has a much steeper learning curve, and is bound to MS. Mono doesn't have a WPF library and isn't planning to do one either.
Well, you could say that about perl/python/ruby either.
On the other hand, Java applets run in a sandbox defined by security policies.
http://download.oracle.com/javase/tutorial/essential/environment/security.html
Dalvik is the runtime. Java is the language.
Yeah, just like the iPad is 7inch iPhone.
Now just imagine having a complex expression involving several function calls, where the functions have side effects ...
"No, functions and procedures were treated differently by Pascal compilers. Procedure calls, since they did not return a value, could not be used where a value was expected, and function calls, which did return a value, could only be used where a value (specifically, an rvalue) was expected."
That's just nitpicking.
I guess you meant DCG (Definite Clause Grammar). ...
DCG is not a distinct conept in Prolog, just a syntactic sugar for
foo1(In1,Out1),foo2(Out1,Out2),foo3(Out2,Out3)
"C, even doing ordinary IO in Haskell (or possibly it was OCaML) required dropping into C. (Monads have no state, or some such.)"
I'm not a Haskell programmer, but I'm sure you can do IO in Haskell, but the idea is that Haskell maintains information which function does IO and which doesn't, and does all kind of optimizations/rearranging/paralellization on non-IO functions. So if your function calls an IO function, your function becomes an IO function as well, so this property spreads to the caller.
Remember Pascal? You had "procedure" and "function", both of which map to functions in C. The idea was in Pascal to use "function" for computations which doesn't change state, and use "procedure" for things that alter state. But the compiler doesn't actually enforced that statelessness for "function", it trusted you, and handled both the practically the same way.
In Haskell if you say your function is stateless, the compiler will enforce that; that's why you have a bunch of operators to denote state change.
"Also, I get how Haskell handles IO "
"get what's inside the arrow operator" or is it "DO" operator? I don't really remember.
Also, I get how Lisp handles IO as a separate type that indicates that those operation is "dirty" and order matters, what I don't get what's inside the arrow operator, as it's syntactic sugar for a series of primitive operations. Honestly, I have spent a weekend figureing it out, and all I got was headache. I just don't like when there's too much magic happening behind the scenes. Also, Oz seemed much easier to understand, and I just thought I know enough exotic languages to warrant my geek card, so I just passed on Haskell.
Well, Prolog is like Lisp with syntax and backtracking, so if a problem is suitable for Lisp, then it's suitable for Prolog as well. So it's good for domain specific languages (and you get additional goodies custom operator precedence, custom prefix, postfix, infix operators etc.)
Also, all Prolog implementations come with a few Constraint Logic Programming libraries, so if you have logistics/scheduling problems it's pretty good for that too. Also CLP(R) libraries also feature various optimization algortihms like simplex, but you can make it to solve harder problems too, and it'll intelligently prune the problem space. So if you're into mathematical optimizations/operations research then you'll find it useful.
My only problem with non-determinism and Prolog was that it was really hard to find where unnecessary choicepoints are. (e.g. you get the same results multiple times) Prolog could definitely use better debugging tools.
I've been programming Prolog quite a lot (a bit CLP too), but still don't get monads, so I just shrug off your snobbish nonsense.
Like playing WoW and posting on Slashdot. Oh no, the foreigners play WoW too, and post on Slashdot as well! They're taking our jerbs!
If a phone manufacturer does it, it obviously won't void the warranty :P
Or just put tax on socially irresponsible things.
Every optimization problem has a fitness value, that you must maximize. In capitalism we call it money. We have to create the constraints where maximizing money leads to socially desirable things. Otherwise we will just reinvent the centrally planned economy that was practiced in the Soviet Union.
Woosh for not getting fractional reserve banking!