Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror

Comment Re:Oh the pain... (Score 1) 166 166

Hahaha, that wasn't IDX (AKA GE Healthcare) was it? I interviewed with them back in the early 90's. They were the most arrogant dorks you can possibly imagine, and their product frankly stank. They had a very good grasp of the business side of things, but their actual software engineering practice was execrable and MUMPS couldn't have helped.

Comment Re:leaving aside the potential for abuse... (Score 1) 87 87

Well, maybe we shouldn't allow fire trucks to race down our streets with their sirens blaring! Clearly there are pros and cons to different things, but how often do you actually get bothered by a fire truck? What is any more creepy about a drone flying by than a police cruiser sailing down your street? I think its pretty clear the intent here isn't to carry out constant areal surveillance.

Comment Might make sense (Score 2, Interesting) 87 87

I mean its kinda hard to say if the economics really do make sense or not, but its at least plausible. And frankly, if the location and purpose of use for each drone is available in near-real-time, then its hardly a spying tool, though it could still be used for surveillance in some sense. That would seem to address the bulk of the privacy issues, and its difficult to be too sympathetic with most of the other ones.

Comment Re:Why? (Score 1) 355 355

Yeah, I see it screwed up my Java code too, bleh. Anyway, you shouldn't have issues with Java and generics WRT that sort of type safety. There's never a need to explicitly cast, unless of course for whatever oddball reason you create something like List<? Extends Foo> and I frankly have never found a reason to do that.

Comment Re:Why? (Score 1) 355 355

You've been able to supply a comparator to a sort, or to a collection with a concept of order, forever. I mean if I were to paste in an example it would seem a little clunky by comparison to Ruby, since it would require a bit of extra declaration, but its the same basic thing. I've got an entire order matching engine core class that utilizes this concept to implement multiple different selection criteria for orders. And nobody uses a loop for this sort of thing, you use currying, even in Java. Or at least you simply call a method that returns a list of results that match your criteria in some preferred order.

I don't do a lot of anonymous class boilerplate, but then I don't write a ton of UIs in Java either. Outside of that particular use-case its not all that common. When I do have inner classes they are generally non-trivial, at which point a couple extra lines of boilerplate is a wash really.

There's nothing wrong with Lambdas, but they're overhyped, and they can lead to some very unclear code.

I don't think your example of type erasure is even relevant.


ArrayList myStrings = new ArrayList(); ...
String tmp = (String)myStrings.get(0);

Isn't even good Java, the compiler WILL issue a warning about it. Your IDE should flag it as non-typesafe code too.


List mystrings = new ArrayList();
String tmp = myStrings.get(0);

This would be the proper way to code this. There's no issue with type erasure here, although you CAN devise some dubious uses of a generic collection where C# or C++ would throw an error EARLIER during execution than Java will. Its hardly a huge big issue. If you use unsafe constructs or reflection to invoke generic methods, well, you may get what you deserved!

What cracks me up are Java accessors and mutators that don't do any thing other than store and retrieve a value.

public void setIdiocy(SomeType idiot) {
this.idiot=idiot;
}

Just make the fields public, it is the same thing.

No it isn't, and your failure to understand the difference betrays your lack of experience with maintaining large code bases over time in the face of constant refactoring. A public field exposes the implementation of the class, a public getter/setter does not. Maybe it doesn't matter to you today, but I code with a decade from now in mind, and the trivial overhead of small extra abstractions is worth it. Now, C#'s "it looks like a field but its really an accessor" is OK, but it can confuse the uninitiated. I prefer overall a lack of these sorts of features, it doesn't take being burned twice to eat up all the benefits such a thing will ever produce.

Comment Re:Shawshank Redemption (Score 0) 80 80

People are being imprisoned for essentially 'made up' reasons, yes. For instance you might be one of a certain unfortunate minority who is constantly pulled over by the cops basically for every conceivable excuse. Now if you were me (a WASP) you might get a warning for your tail light being burned out (as I did a while back by a cop who was very polite). If you're not so fortunate you're getting tossed against the fender of your car, beat up side the head, and when you object you're tossed in jail for 'resisting arrest' or some variation thereof. Now, after a couple weeks, when your job is good and set sail, etc. You will come up before a judge, who will not only give you 30 days, but charge you about $1000 for "court system costs" and when you obviously can't pay them, you'll spend literally an unlimited amount of time in prison until you're so lucky as to have someone cough up the money (Oh, and on top of that a prison housing fee, meanwhile you get to do prison labor for $1 a day which some business profits off of).

If you doubt me, do a little research, this is literally the standard operating procedure in most of the US today. Even black children are incarcerated like this and put in debt bondage to the state, though the charges will be school-related (delinquency, assault for talking back to a teacher, etc). Welcome to Prison World!

Comment Re:Desktops vs Mobile (Score 1) 250 250

Eh, no simple correspondence here. I mean, sure there are a couple of forms that correspond pretty closely to some entities in the management UI that we use, but there's a lot of rather complex logic and many of these entities are used in a number of different processes. Its just that Java, and certainly JavaEE, heavily encourages the 'DTO' or 'Bean' model where entities are generally containers and if they have logic its purely related to things like interrelated properties, consistency, etc.

I don't find your characterization of Java to be that accurate, but what you find 'irritating' may be far different from what bothers me. I want simple regular syntax that doesn't offer a ton of alternatives. That leads to consistent maintainable code. Making things explicit also leads to more thorough and comprehensive testing and documentation. I have LOADS of 500 line class files that implement complex business logic. I need them to be intelligible to anyone that looks at them, not models of clever syntax that manage to get trimmed down to 425 lines, but are less clear. I am happy with conciseness, its good, but its not always the primary goal.

Comment Re:Desktops vs Mobile (Score 1) 250 250

Well, at any rate, I think the notion that .NET is 'in decline' is probably dubious at best. I don't know where its going, but it hardly seems likely that MS is about to abandon the whole technology. I WOULD say however that MS's hold on the 'back room' is pretty tenuous these days. They never really won the argument as to overall value proposition of Windows in the server room over *nix. They have virtually no penetration in the OSS server space, and Mono really went no place there either. Its a pretty hard sell to suggest a .NET/IIS based line-of-business solution to larger IT organizations these days. The more sophisticated shops just stick with Java and the smaller ones tend to either utilize some tool specific to their vertical or built PHP apps or something.

I think that pretty well explains MS's push with open sourcing a lot of stuff, and getting behind .NET both on every client device and on every server platform. The dream of the total end-to-end dominance of Windows was a LONG time dying, but its finally dead. Its an interesting situation. Java hasn't exactly penetrated the client side space in a consistent way either, so there's plenty of room for each toolset to try to differentiate itself.

The bigger question might be whether Oracle really cares enough about Java to keep playing this game. They've done a lot, but OTOH they're basically selling database server licenses, with OAS as a sideline that supports the consulting side of the company. Even if they stopped supporting Java it wouldn't really impact their core business that much, at least in the near-term. MS OTOH is in a more ambiguous position. Its not even clear what their core business is going forward. MS Office? SQL Server? MSVS/dev tools? I don't think they know...

Comment beats me! (Score 1) 355 355

I wouldn't say Java is utterly consistent. Its pretty generic though, and I like that. If you know C you can pretty well understand the flow of code in a Java method, and if you have a general understanding of OOP then you will pretty much understand Java. I think the same can be said for C#.

Frankly I was considering using a scripting language to write some test driver code. I figured it would be a little less tedious and easier, but what I found was that with a modern IDE it just wasn't worth the bother. Yeah, I could make my test harness a little simpler, and in theory I could even edit it without recompiling, but it was just plain easier to write the stuff in Java, its just not that hard to code in.

I mean there are very definite use cases for scripting, but its not like the old days where it was much easier than coding in a compiled language.

Comment Interesting (Score 2) 250 250

I think the problem is that you can make a higher quality product using Qt, but it IS more expensive. Writing C# code, or Java line-of-business stuff is just more cost-effective when the use cases are very specific. I mean I wouldn't write some one-off program to manage some tiddly business process somewhere in C++/Qt because nobody cares if it has to run on a Windows box, and nobody cares if it is fast, small, or even all that reliable. So a vast array of stuff exists in these environments.

Then there's super high-reliability stuff, like most of the code I write. It has to handle 400 million transactions in a week and never crash, never miss one, etc. It certainly COULD be written in C++, but the hunt for stupid programming errors you can't make in Java just makes it more costly. Its also easier to train a Java/C# guy to a level where he can do decent work.

Comment Re:Desktops vs Mobile (Score 1) 250 250

Removing getters and setters matters? pfff, right. If you have logic in your value entities in general its a bad thing, so why do you even look at these files? Mine were all generated automagically 10+ years ago by some Hibernate tool. Once in a while I add a constructor, tweak an .equals() method, etc. A few have get/set methods that include some logic (caching some expensive to calculate value or somesuch) but I could care less. I mean, really, if you want to avoid getters and setters in Java, just declare your fields to be public, it works fine, except of course for the lack of information hiding, which is of course ALSO the problem with C#'s set/get notation. If I make something a calculated value, it changes the consumer's syntax, potentially. Its also a bit unclear to people when you start mixing pure value fields with calculated ones and using the same syntax that they expect to be reserved for one of those.

I don't think C# is BAD, I just think its much vaunted 'advances' over Java are at best minor tweaks, and Java does some things better than C# too. It would be great if we had the best of both in one, but it isn't happening, so really its 6 of one and half-dozen of the other.

Comment Re:Desktops vs Mobile (Score 1) 250 250

Personally I think QT beats the pants off any other UI toolkit on any platform, but that's just me. I'd kill to have something that good in Java (IBM reputedly built QT bindings for SWT, but they were never released for whatever reason, assuming they really even existed).

IBM Advanced Systems Group -- a bunch of mindless jerks, who'll be first against the wall when the revolution comes... -- with regrets to D. Adams

Working...