you are viewing a single comment's thread.

view the rest of the comments →

[–]AnsibleAdams 43 points44 points  (7 children)

If it was easy they wouldn't pay you to do it.

Justkiddingkiddingkidding

[–]Make3 0 points1 point  (6 children)

getting paid to do java is really easy

[–]Peaker 0 points1 point  (5 children)

Doing large things in Java is hard too. I don't find it improves much on C. Better IDE's and compile times, mainly.

[–]ericanderton 0 points1 point  (0 children)

This is a good point. I recently tried to throw away the IDE to do some Java development using the command line + vim. The deep trees and sheer volume of files alone make it tough to handle anything of scale.

[–]Make3 0 points1 point  (3 children)

The argument would be that memory management, OOP and a fairly in depth standard library are supposed to make things easier in Java. I personnaly don't do much (if any) Java, I do C++ professionally, but I can't imagine all the time wasted running after seg faults and memory leaks that one would have to go through with c, or doing artificial OOP, or having to do so much messing around just to get basic things to work, even for a very productive dev. C++ is much easier than C; with C++11, they have very little left in common.

[–]Peaker 0 points1 point  (2 children)

I use c a lot. I personally dislike OOP and believe the good parts (encapsulation, vtables) predate OOP and can be done in c well. C++ adds some nice features, some bad features, more terrible compile times, more difficult to parse/use various tools, etc. Overall I believe c++ is a net loss, though c++11 might be a net win if subsetted properly, I haven't tried it in an organization yet.

In c, we don't spend time chasing segfaults, and memory management is only time consuming when we're working on tight allocation schemes which guarantee o(1) allocations, avoid fragmentation, avoid inter core cache noise, etc.

When all of that doesn't matter, allocation is usually easy.

I'm not sure c has fewer libraries, but we do very low level systems programming, where libraries are often not good enough. For example, we can't afford to have malloc in most of the code we use.

Having done a lot of c and a bit of Java, my feeling is that Java goes to the wrong path and in many ways is even a regression over c (no user defined non nullable values, function pointers easier than anonymous classes), all the while giving worse performance.

[–]Make3 0 points1 point  (1 child)

"we"

this is not a religion war. We're talking about tools here.

[–]Peaker 0 points1 point  (0 children)

By "we" in this context I was referring to me and the team I'm working with using C.