I am a programmer. I have dealt in many languages, but I have ended up with Java. Java is the best language for implementing general programs.
Java is fast. It's no C/C++, but it's head and shoulders above comparable high-level languages.
Java is memory-managed.
Java supports just the right level of features. It doesn't have C++'s feature fetish.
Java has an expansive, (mostly) cross-platform API. It's not perfect, but it sure beats writing everything yourself.
Java and its API are constantly being improved.
In any program of significant size, the problem isn't writing your Bloom filters or splay trees with elegant syntax. It's a problem of communication with other programmers (including library-writers). Java's strict typing, rigid structure, documentation system, and excellent developer tools (aka Eclipse) all help you out.
It's not perfect. Sure, first-class functions would be nice, but you never use them except on your homework assignment where you pass the comparator to a sort function. If you're building a little toy program, it's a pain to put everything in an object, but you'll be thankful you did once that program gets big enough. The syntax sucks, but it's familiar. Sure, Eclipse is slow, but suck it up big balls.
Java isn't perfect, but it's the best in practice.
Java is fast. It's no C/C++, but it's head and shoulders above comparable high-level languages.
No, Java is slow. Java is memory-managed.
words with no meaning. Java supports just the right level of features. It doesn't have C++'s feature fetish.
Just because language A sucks doesn't mean it's meaningful to use B. Java has an expansive, (mostly) cross-platform API. It's not perfect, but it sure beats writing everything yourself.
Since when did anyone had to write everything himself? Java and its API are constantly being improved.
Same for anything computer related. and excellent developer tools (aka Eclipse) all help you out.
Eclipse sucks. If you don't use vim, emacs or a variant you're a fucking moron. It's not perfect.
Indeed, it is not. Java isn't perfect, but it's the best in practice.
Says the, what, stupid brainwashed 2 years experience code monkey?
Thanks, very insightful post. not.
Name:
Java Programmer!5Yn0PMIwXM2008-05-13 22:51
Eclipse sucks. If you don't use vim, emacs or a variant you're a fucking moron.
Java supports just the right level of features. It doesn't have C++'s feature fetish.
Sort of. The language designers have fucked up several times by not including things that should have existed from the outset (enums, generics, foreach). And the Java Class Libraries are always growing with no end in sight.
And J2EE is a PIG DISGUSTING abomination that should be stricken from the face of the earth.
>>8
I concur. Nevertheless, Microsoft is running that show, which I can't help but find disquieting.
Name:
Anonymous2008-05-14 0:03
Well the concept behind .NET is great. The new shit they added in 3.5 is pretty cool. The idea behind linq is great too. Some problems with deterministic destruction etc are the only problems.
Name:
Anonymous2008-05-14 3:55
Java is great for small to medium sized programs, or when the organization of what you're doing slots perfectly into OO (most large-scale projects definitely develop requirements that stray from OO, or have multi-language or build/run-time dependencies that Java doesn't work well with).
Anything else, and I use Lisp or Erlang, or C++ for doing fast batch number crunching.
Name:
Anonymous2008-05-14 8:28
>>10
I hateIDisposable, especially how it must be implemented in C#.
I also hate how generics were introduced after most of the framework was designed, and so most of the framework (e.g. System.Windows.Forms) uses no generics at all, making it a pain in the arse to use (can't really use Linq or type inference, for one).
What the fuck happened to my /prog/? Why are you talking about java, C#, and >>14,15 without feeling that you are doing it wrong?
Name:
Anonymous2008-05-14 22:24
>>16
This is/prog/, not /ComputerScienceGradStudent/.
Name:
Anonymous2008-05-14 22:29
>>1 Your argument is unscientific and ultimately destructive.
Name:
Anonymous2008-05-14 23:04
yes we all realize that java and C# and the ilk are like the honda civics of programming. Basically you can express yourself much more elegantly in languages with some Functional programming or heavy functional programming. The this is that state programming is much simpler on the brain (and most programmers are stupid)
Name:
Anonymous2008-05-14 23:24
most programmers are stupid
I am one of these programmers and I concur. LISP hurts my head
I can understand basic lambda-expressions but this shit about call/cc is just impossible. And don't get me started on Haskell, the biggest fag factory of all time
Name:
Anonymous2008-05-15 2:11
>>20
Lisp (why do you capitalize, faggot?) is many times less complicated than Java.
Name:
Anonymous2008-05-15 2:17
>>19
Java and C♯ being retarded languages has nothing to do with state programming vs. functional programming. They're just retarded languages.
>>21
Inferior to (max 5 10 2 8 1).
Why? Try your method with [-1, -2]
foldr (max) 0 [-1, -2] doesn't work, does it?
Name:
Anonymous2008-05-15 4:09
>>26 >>21 is stupid. You use maximum [5, 10, 2, 8, 1]. And if you absolutely want to define your own version, you do foldl1' max [5, 10, 2, 8, 1]. Both will work perfectly fine with negative numbers as well. And why the fuck did >>21 put parentheses around max?
Name:
272008-05-15 4:19
Also, while (max 5 10 2 8 1) might look a bit nicer, and you could probably emulate it in Haskell with some typeclass hackery, in real situations you'll be taking the maximum of some given list anyway. If we assume xs is your list, the Haskell version is maximum xs while Lisp would require you to do something like (apply max xs) or (correct me if there's a better way, I'm no Lisp expert).
>>27-29
I also like haskell. I know >>21 is stupid, my post wasn't trying to imply that lisp is somehow superior to haskell because of that.
Yes; (apply max xs) is correct. If you don't like it, (defun maximum (xs) (apply #'max xs)) is one thing you can (obviously) do in common lisp.
Name:
Anonymous2008-05-15 7:59
Java is actually pretty good. Why exactly do you not like it in non-flame words, please.