What do you think about Java as an academic language? (WARNING: rant)
GeneralThis forum is for non-technical general discussion which can include both Linux and non-Linux topics. Have fun!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
They thought me Java at Uni with BlueJ too (before moving to Eclipse). While not a bad program, I thought BlueJ to be a big waste of time. I can see how it "helps" to understand the classes structure through some nice UML-like diagrams. However, I think UML should be thought separately in any OOP courses.
Still, most Java courses start with BlueJ. Give me Eclipse any day
Eclipse? BlueJ? Kids today, I tells ye. Don't know how good they've got it. We had to make the ultimate choice early on.
They thought me Java at Uni with BlueJ too (before moving to Eclipse). While not a bad program, I thought BlueJ to be a big waste of time. I can see how it "helps" to understand the classes structure through some nice UML-like diagrams. However, I think UML should be thought separately in any OOP courses.
Still, most Java courses start with BlueJ. Give me Eclipse any day
Actually I'm trying to do this project that I'm supposed to do in BlueJ using eclipse, see if that helps my understanding any better. Using BlueJ, IMHO, you have to learn java and blueJ at the same time, at least that's my understanding of it for now, and that's really messing up my head, I'm used to the old fashioned way of learning using an editor and a compiler, sort of like mkhan919 and ilikejam.
I understand the point that mkhan919, vxc69 and ilikejam are trying to make and you are all right (kinda). Learning to use an IDE early on can be a pain, because you need to learn the IDE at the same time. It sure will get on the way.
However, I can't possibly think to program in Java without an IDE. The language is far too big and complex and auto-completion is a must for larger projects. When you start adding more frameworks with it, it will turn into a nightmare. If you work in a team, using Eclipse with SVN or CVS is very useful. You sure will be much more productive using an IDE then using an text editor, try to compile, fail because you typed one letter wrong in a method at the line 2034, fix it and try to compile again.
Eclipse will check for syntax all the times and complete things for you. I really can't see how (and even more so "why") one would program without an IDE.
Quote:
Eclipse? BlueJ? Kids today, I tells ye
Well, I just wanted to say that I am 28 yo. Even though I believe you were joking when calling me (apparently) a kid, I believe you are very old and have been coding since the mid 70's when vi was invented right? Well mate, surprise for you: Programs today are far more complex, has a huge amount of lines of code and also have not only to be good at communicating with the machine itself, but also with the user, with a nice, fancy gui. You can't do that in VI. If you can, it sure isn't practical. And you will rarely see only one programmer maintaining/developing the program behind his desk alone.
Dads today, I tells ye. You've to get with the times...
Last edited by Mega Man X; 10-23-2007 at 03:42 PM.
Ive just started studying engeneering at uni (cambridge UK w00000t)
and we are learning to program in C++
as it can be used to teach the fundimentalls of any programming but dousent let you become sloppy like most "easier" languages can do.
Ive just started studying engeneering at uni (cambridge UK w00000t)
and we are learning to program in C++
as it can be used to teach the fundimentalls of any programming but dousent let you become sloppy like most "easier" languages can do.
Define sloppy please. From all the code I've seen on the net, C programmers tend to be far disorganized. C++ programmers have the same problem as the C programmers (often) and when trying to do something in an OOP manner, it is either a hit or miss.
I'd really like to know what you mean about a sloppy programmer in this case. Also, a sloppy programmer is not(only) relative to the language itself, but by the programmer and in some cases, his/her teacher. I've seen nicely done code written in Perl(which I dislike by the way) and ugly code written in C#...
Sloppiness is largely defined by the point at which your sloppiness is found out.
In c(++) you get found out at runtime. In Java you get found out at compile-time.
If my time was worth a lot of money (as I would contest that it is, both when employed and in Uni (but for different reasons)), I would prefer to be found out earlier, rather than later. Your mileage may, of course, vary.
dasy2k1, you mentioned that you're doing an engineering degree - is that engineering(physical) or engineering(software)?
Another point i would like to make is that there is fundamental problem with using an IDE early on. I have seen a number of good programmer (student level mind you) who are totally clueless about how to go on if they dont have their favorite IDE avaiable. Thats why i said (hinted more likely) that sticking to just the JDK and a simple editor might be preferrable for educational purposes. For commercial developement Or major projects ...yes you need a good IDE. But in my opinion for beginners IDE tend to make them slopy ... in the sense that they dont actually understand how things can be done from command line , how to set classpaths etc since all is being taken care of by the IDE.
on the issue of sloppiness, any programmer using any language can be as sloppy as possible. it depends on the programmer not the language.
I agree that using command line forces the student to learn some aspects that they may not otherwise. But there are times when using a command line can be quite restricting. Here's an example, if you're working on a large scale software project an ide often gives you the ability to build and uses some intelligence the determine what needs to be rebuilt and what doesn't. On very large scale projects builds can take hours so build times can be reduced. Depending on the language there may be tools that allow you to do the same thing but i haven't used them.
I agree that using command line forces the student to learn some aspects that they may not otherwise. But there are times when using a command line can be quite restricting. Here's an example, if you're working on a large scale software project an ide often gives you the ability to build and uses some intelligence the determine what needs to be rebuilt and what doesn't. On very large scale projects builds can take hours so build times can be reduced. Depending on the language there may be tools that allow you to do the same thing but i haven't used them.
If you work in the same environment or on a long project then time and effort invested in mastering any particular IDE might be worthwhile. If projects are short and diverse then there is no much sense studding IDE, old good 'make' would do the job as good as any of the most advanced IDE's. And by knowing your way around 'make' you could start another project in no time.
I don't think that anyone in the business for the last ten years would deny that IDE might be a powerful and helpful tool. And on another hand, it might be limiting and obscuring.
So my take on it: anyone should understand 'command line' options, and that would give a better perspective on what is going on under the hood of IDE. And for the beginner, I discourage using IDE if you really want to understand programming and how things click together.
I agree w/ most of what the OP said. A school should be teaching a low level assembly language. If they're not, the school is doing a disservice and students should avoid that school. It's an essential part of studying computer organization. In particular, Pep/5 is a good language choice. It's an assembler language that has no real world application, but it was invented by a professor as a language to ensure all low-level concepts can be presented.
And as terrible as C is, it should be taught to the extent needed to be able to read the language, because so many algorithms are published in C.
A high level language is certainly more important, and this is where I disagree w/ the OP. You can learn the syntax of a high level language at home, sure, just like any other language, but profs will need to express high level concepts (OOP) using a high level language, so it's a good idea for a university to standardize on one.
But there are much better choices than Java. Most academic programs are not structured intelligently enough to choose Ada, but if you find a school that uses Ada for high-level teaching, you can't beat it. Ada was heavily influence by Pascal (a true learning language), but also includes safety concepts not available in other languages. Plus it has the added benefit of having real world application. It's the language most projects would be using if most schools were competent enough to teach it.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.