LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   General (https://www.linuxquestions.org/questions/general-10/)
-   -   What do you think about Java as an academic language? (WARNING: rant) (https://www.linuxquestions.org/questions/general-10/what-do-you-think-about-java-as-an-academic-language-warning-rant-593125/)

ilikejam 10-23-2007 11:42 AM

Quote:

Originally Posted by Mega Man X (Post 2933814)
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.

Emacs or vi.

vxc69 10-23-2007 11:57 AM

Quote:

Originally Posted by Mega Man X (Post 2933814)
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.


vxc

Mega Man X 10-23-2007 03:39 PM

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...

ilikejam 10-23-2007 03:49 PM

Heh heh heh.

I'm 26. New-old-skool, baby.

Dave

Mega Man X 10-23-2007 03:56 PM

LOL, cool. Well, I just hope you didn't take my "dad" part seriously, I was kidding. I can't deny I thought you were (much) older though, hehe.

dasy2k1 10-23-2007 06:35 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.

Mega Man X 10-23-2007 07:25 PM

Quote:

Originally Posted by dasy2k1 (Post 2934266)
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#...

ilikejam 10-23-2007 07:38 PM

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)?

Dave

mkhan919 10-24-2007 07:20 AM

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.

But again its only my opinion ..

lamar_air 10-24-2007 09:56 AM

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.

ilikejam 10-24-2007 11:25 AM

Quote:

Originally Posted by lamar_air (Post 2935068)
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.

Code:

man make
Dave

lamar_air 10-24-2007 11:41 AM

Yeah.. disregard that ide intelligence post..! :)

rsashok 10-24-2007 11:51 AM

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.

lamar_air 10-25-2007 09:04 AM

Ya i agree with that!

jgombos 02-10-2008 04:50 PM

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.


All times are GMT -5. The time now is 09:48 PM.