Quote:
Originally Posted by SoftwareBug2.0
It's time for me to be the pedantic guy: Java uses pass by value for primitive types and by reference for all others. This is not merely a default: it cannot be changed (The ugly work-around of the caller copying arguments does work, of course).
|
OK, now it's my turn to be pedantic. Java is entirely pass by value in all cases. The thing is, that all objects are really pointers, so it appears to be pass by reference. So, if actually use the equals operator with an object in a function, the whole pass by value-ness will rear its head. Though a lot of these things don't work in C++ either, the syntax of C++ makes it so that these things don't make conceptual sense in the cases that they do not work, whereas a java programer could reasonably expect some of these cases to work since they are conceptually congruent..
BUT THERE ARE NO POINTERS IN JAVA.
And this is why I never grok Java. I don't like drinking kool-aid. Learned enough to get by in class and moved on...
Quote:
|
I hope no one is paying money for either Wind River tools or LabVIEW tools. Teams are given as many copies as can be stuffed on the hard drives. Yes, in industry and in academia, people pay money for those products. That is how I make my house payments. Through the affiliates program, I know Bjarne Stroustrup and the A&M portion of the gcc distro guys and they live in houses too. I guess my point is that I don't see the connection between someone else paying money for something that you get for free and which tool helps your students learn to program a robot.
|
We all like living in houses - I don't blame you or anyone for that. For me the larger concern is portability. Also, even closed source linux tools don't integrate as well 99% of the time for me - they rarely integrate with the package manager (a rare exception being google chrome), for example. I don't like dealing with installer programs or license managers. I like writing code. Anything that gets in my way of writing code in the environment I like to do it in, therefore, I don't like.
I also didn't say that LV didn't work with VC. But it doesn't work *as well* for me. If I'm managing my code on github, it's a lot easier for me to get a pull request, look at the plain text diffs, and automatically merge it in using a grand total of about 3 clicks and a quick mental compile than manually fetching, comparing using one tool, merging using another, and then manually pushing. It really sounds trivial but its the small frustrations in a smooth workflow that annoy me. It does work, though. We used git with LV three years ago and managed to make it work. It didn't erase the fact though that it felt like a suboptimal situation.
On a completely anecdotal note, I've found it harder to convince inexperienced programmers to split their LV code into several subVIs than to split Java/C++ code into several functions. I don't know why this is. Good chance it's just my sample.
I did not mean to turn this post into a diatribe... sorry all. Really, I believe LabVIEW is a good language. It's great for rapid prototyping and throwing together a quick custom dashboard. It's just not the tool I prefer to use, and deep down it's really just because I don't have as much experience with it ;-)
Quote:
|
On a different note, it's interesting to hear that the Java and C++ WPIlib impelemtations are equally buggy. I had assumed that the C++ one must be worse because the code looks like it was written by someone who wanted to be writing Java.
|
I recant my previous statement. Currently on FirstForge Java has 17 open bugs while C++ has 26. This is significant, though it is by no means scientific (are C++ users more likely to find and/or report bugs than Java users?).