News for hackers. Stuff that matters.
Re:BlueJ – A Lightweight Java IDE by kypro on Thursday September 15, 2022 @07:33AM (#32850187)
Oh wow, that's an IDE I haven't heard about for a while! We used to use this in school for learning Java. If I recall correctly BlueJ used to generate some nifty class diagrams to understand how your code fits together. That's about the feature I remember though.

I'd argue the fact an IDE like BlueJ is needed suggests Java isn't an appropriate language for beginners though. And it seems in recent years schools have been preferring Python as a first language which I think is far more appropriate. My teacher used to argue Java is good for beginners because it's a strict OOP language and teaches good habits, but I question how true that is. For one, it falsely assumes OOP is a good approach for an application that asks you to enter your name then prints, "Hello [name]".

Re:BlueJ – A Lightweight Java IDE by Timpy on Thursday September 15, 2022 @09:58AM (#32852058)
I learned on Java and I really feel like it slowed me down in some fundamentals of programming logic. Books were raving about garbage collection, JVM, "everything is an object"; I had no idea what any of that meant or why it would make Java "superior". Boilerplate like `public static void main(String[] args)` got me into the habit of ignoring things I didn't understand. The netbeans IDE was doing a lot of great quality-of-life stuff like handling imports for me and as a consequence I had a very poor understanding of how any of that worked. When you don't know how to write a for-loop yet things like accessor methods, pointers, or encapsulation are going to go way over your head.
Re:BlueJ – A Lightweight Java IDE by jjice on Thursday September 15, 2022 @11:35AM (#32853650)
My highschool "Intro to Programming" class teacher (she is a wonderful woman) would say out loud "string box args" to have us memorize the boiler plate. Needless to say, we never even got to loops in that class.
Re:BlueJ – A Lightweight Java IDE by Aperocky on Thursday September 15, 2022 @10:19AM (#32852433)
Java is great for learning OOP and certain design patterns, but eludes all other programming knowledge. They are 'encapsulated'.
Re:BlueJ – A Lightweight Java IDE by ithrow on Thursday September 15, 2022 @02:12PM (#32856129)
You could say the same for Python/Ruby/Javascript or most high-level languages that rely on a VM.
Re:BlueJ – A Lightweight Java IDE by the_doctah on Thursday September 15, 2022 @10:22AM (#32852480)
It took me forever to understand what the heck the Java classpath was.
Re:BlueJ – A Lightweight Java IDE by Gibbon1 on Thursday September 15, 2022 @03:42PM (#32857502)
One of my heresy's is I think things like classpaths are an antipattern. In that determining the location of files and other resources should be a separate process. One that's explicit and debuggable.
Re:BlueJ – A Lightweight Java IDE by the-alchemist on Thursday September 15, 2022 @07:10PM (#32859659)
Funny enough, that's exactly why the Clojure community created deps.edn [0]. - optional dependencies - use JARs on disk, local projects that build JARs, or Maven Central - pull in code from git repo via url and git hash or tag ("git dependencies") - different variations for the above for different targets (run, test, integration-test, etc.)

[0]: https://clojure.org/guides/deps_and_cli

Re:BlueJ – A Lightweight Java IDE by StevePerkins on Thursday September 15, 2022 @09:25AM (#32851569)
The problem with selecting programming languages, application frameworks, or anything else based on their "Hello World" example is that before you know it, you find yourself writing something more complex than "Hello World".

Most Internet discussion forums are absolutely insufferable, because the population is disproportionately students who haven't gotten past that stage yet. Or junior professionals who find that their jobs are more messy and boring than they expected, and want to spend their hobby time dabbling in one-person side projects that never get past that stage.

Among this audience, in that space, sure... static type checks are "cumbersome", testability is "overkill", refactoring never happens, etc etc etc.

Re:BlueJ – A Lightweight Java IDE by BeFlatXIII on Thursday September 15, 2022 @11:02AM (#32853070)
Selecting languages based on their "Hello, world" complexity _is_ a useful metric when selecting a first programming language for the classroom. Both C and Java are inappropriate for that task: C has bookkeeping that's too easy to get wrong; Java is full of "you'll learn it when you're older" magic incantations.
Re:BlueJ – A Lightweight Java IDE by crabmusket on Thursday September 15, 2022 @09:09AM (#32851329)
I learned Java in high school with BlueJ! That takes me back.

> it falsely assumes OOP is a good approach

I'd say the bigger unspoken assumption there is that Java is good at OOP!

Re:BlueJ – A Lightweight Java IDE by andrekandre on Thursday September 15, 2022 @10:03AM (#32852169)
i can't remember who said it, but its been claimed java isn't even an oop: its more class oriented programming...

i.e your not really dealing with objects all the time like in smalltalk but just "blueprints" that are a far shadow of what things should be (if i remember the claim correctly)

Re:BlueJ – A Lightweight Java IDE by the_doctah on Thursday September 15, 2022 @10:23AM (#32852498)
Everything is literally a descendant of Object...
Re:BlueJ – A Lightweight Java IDE by chao- on Thursday September 15, 2022 @11:37AM (#32853676)
Yes, and in Java, capital-O Object is primarily used as a class, not as an object that you work with directly!

Alan Kay himself said he regrets coining the term as "object" oriented, and wishes he had emphasized "messages":

https://wiki.c2.com/?AlanKayOnMessaging

Re:BlueJ – A Lightweight Java IDE by cies on Thursday September 15, 2022 @11:53AM (#32853915)
And Object, in this case (big O), is the name of a class.

Not everything is an object, as someone said, there are also primitives.

There are many other "things" in Java that are not objects (operators, statements, etc.).

Kotlin does set some of this straight. Everything inherits (indirectly) from the Any class. And primitives do not exist in Kotlin (as in Ruby or Smalltalk).

Re:BlueJ – A Lightweight Java IDE by ghosty141 on Thursday September 15, 2022 @11:18AM (#32853354)
Havent used Java for ages but are ints amd double for example really objects? Iirc they are primitives
Re:BlueJ – A Lightweight Java IDE by mindcrime on Thursday September 15, 2022 @11:51AM (#32853875)
Those types exist as both classes and primitive types. Eg, "double" (primitive) vs "Double" (class which inherits from Object).
Re:BlueJ – A Lightweight Java IDE by 0x445442 on Thursday September 15, 2022 @03:14PM (#32857123)
James Coplien
Re:BlueJ – A Lightweight Java IDE by andrekandre on Friday September 16, 2022 @07:13PM (#32873235)
yes, that was it thanks!
Re:BlueJ – A Lightweight Java IDE by RockingGoodNite on Thursday September 15, 2022 @09:11AM (#32851369)
> ...schools have been preferring Python as a first language which I think is far more appropriate. My teacher used to argue Java is good for beginners because it's a strict OOP language and teaches good habits, but I question how true that is. For one, it falsely assumes OOP is a good approach for an application that asks you to enter your name then prints, "Hello [name]".

I weep for the world of programming.

Re:BlueJ – A Lightweight Java IDE by cies on Thursday September 15, 2022 @11:54AM (#32853935)
Here Dijkstra weep with you:

https://chrisdone.com/posts/dijkstra-haskell-java/

But for going to Java from Haskell :)

Re:BlueJ – A Lightweight Java IDE by gourabmi on Thursday September 15, 2022 @01:43PM (#32855725)
BlueJ was part of the recommended curriculum for Std 8th and 9th (I think) in some Indian schools circa 2005. My school wasn't in the same system. I had to learn PASCAL for the time my friends in other school systems had BlueJ in their curriculum. I used to be lowkey jealous of them back then. lol
Re:BlueJ – A Lightweight Java IDE by _fat_santa on Thursday September 15, 2022 @09:25AM (#32851566)
I remember being told to use BlueJ in a CS class back in college. I realize it's an IDE made for learning but when I booted it up I was profoundly confused. I think I spent the first class playing around with it and downloaded Eclipse when I actually had to work on assignments.
Re:BlueJ – A Lightweight Java IDE by xhevahir on Thursday September 15, 2022 @08:31AM (#32850786)
Last weekend a high school sophomore told me his class was using Java with BlueJ. He'd never heard the term "object-oriented," which I thought was interesting. He said the previous year his class had covered some Python. Using Java in high school didn't sound very motivating, but then, my earliest memories of doing programming in school involve the gym teacher instructing me to type mysterious stuff like "GOTO 40" until finally a bunch of flashing lines appeared on my monitor...so maybe I should be envious.
Re:BlueJ – A Lightweight Java IDE by henkdehenker on Thursday September 15, 2022 @08:01AM (#32850437)
Wow, I also had to use blueJ when I had to program in Java. It felt really weird to me as there as so many better alternatives. Any chance this was at the Erasmus University?
Re:BlueJ – A Lightweight Java IDE by black_puppydog on Thursday September 15, 2022 @08:07AM (#32850493)
I had the same experience, TU Dortmund in 2007, algorithms 101.

I always figured the tool was deliberately chosen because it gave just enough support to the learner (syntax highlighting and class diagrams) but didn't offer any other safety nets or convenience. Kind of just one step away from programming in notepad.exe :)

Re:BlueJ – A Lightweight Java IDE by pdntspa on Thursday September 15, 2022 @09:48AM (#32851899)
Same for me, at a local community college, around 2005
Re:BlueJ – A Lightweight Java IDE by phinnaeus on Thursday September 15, 2022 @08:06AM (#32850481)
I've never heard of Erasmus. I used BlueJ to learn Java in intro to Comp Sci classes in 2010 at a small school in North Carolina.
Re:BlueJ – A Lightweight Java IDE by jen20 on Thursday September 15, 2022 @09:39AM (#32851768)
Bath (UK) also used it in the early 2000s, I believe faculty at Kent (UK) had some kind of hand in building it too.
Re:BlueJ – A Lightweight Java IDE by lapser on Thursday September 15, 2022 @10:29AM (#32852600)
> I believe faculty at Kent (UK) had some kind of hand in building it too.

That's correct! Michael Kölling, one of the original authors, was a lecturer who wrote it originally. All of OOP classes were taught with BlueJ, but we were allowed to other editors, though not many did.

Re:BlueJ – A Lightweight Java IDE by cies on Thursday September 15, 2022 @11:57AM (#32853978)
Yups this was at EUR (Erasmus).
Re:BlueJ – A Lightweight Java IDE by lwn on Thursday September 15, 2022 @08:17AM (#32850600)
Me too! But it was in Groningen
Re:BlueJ – A Lightweight Java IDE by omnibrain on Thursday September 15, 2022 @09:42AM (#32851802)
We had to use "Java-Editor" https://javaeditor.org/doku.php?id=start It was actually ok, because it integrated the Java help and a freely available Java book.

It also has some features you need in school, like a structogram editor, UML diagrams and so fort.

Re:BlueJ – A Lightweight Java IDE by saikatsg on Thursday September 15, 2022 @09:33AM (#32851669)
>And it seems in recent years schools have been preferring Python as a first language

JetBrains is trying to change this using Kotlin

Re:BlueJ – A Lightweight Java IDE by grendelt on Thursday September 15, 2022 @03:37PM (#32857424)
I use Python as an instructional first language when teaching beginners. I use the Thonny IDE because of its simplicity and limited "visual noise".

All the bells and whistles of more "mature" IDEs can make the whole thing more daunting for a newbie.

When I taught AP Comp Sci and was doing Java, we used BlueJ in class.

Re:BlueJ – A Lightweight Java IDE by UnpossibleJim on Thursday September 15, 2022 @09:54AM (#32852001)
>>>My teacher used to argue Java is good for beginners because it's a strict OOP language and teaches good habits, but I question how true that is<<<

Why wouldn't a teacher start off teaching the basics of programming with Python and then move to OOP with Python which wupports an OOP style? It may be a little frowned upon, but I mix up my styles depending on what's called for all the time. It's great and feels so naughty coming from someone who started out learning Basic then Java as my first "serious" language =)

Re:BlueJ – A Lightweight Java IDE by hdctambien on Thursday September 15, 2022 @10:11AM (#32852300)
The AP Exam covers Java and you have less than 180 days to cover everything from "what is a variable" to inheritance, recursion, and sorting algorithms.

My school has gone back and forth with starting with Python or Java in the Pre-AP course. There are pros and cons for both options, but ultimately a language is just a language. The concepts are what is really being taught.

The difference between a math variable and a computer variable and how "x = x + 1" works can be difficult for some students to wrap their minds around. Getting students comfortable/competent with a language and then switching it mid year would be a tough ask for quite a few students.

Keep in mind, many of the students taking Computer Science in high school are not exactly the same students that would have taught themselves to program at 15 and 16. Self-taught students are easy to teach (although they provide their own challenges), but you have to approach things much differently (and often slowly) for students that don't already "think like a programmer".

Re:BlueJ – A Lightweight Java IDE by drewzero1 on Thursday September 15, 2022 @10:36AM (#32852710)
> how "x = x + 1" works

In BASIC you can say "LET X = X + 1" which really helped me grasp the assignment operator when I was starting out.

We used BlueJ in my comp sci intro courses, but I had already taught myself BASIC in high school using QBASIC and making extensive use of the built-in documentation. It was helpful to have some programming experience coming into it. I had to unlearn a lot of outdated or unfashionable practices, though. If I had learned how to use subroutines instead of relying on GOTO that probably would've helped understand methods a little better.

Re:BlueJ – A Lightweight Java IDE by GoblinSlayer on Thursday September 15, 2022 @12:01PM (#32854044)
When I learned basic in school, the teacher taught to use subroutines, right after flow control statements.
Re:BlueJ – A Lightweight Java IDE by drewzero1 on Thursday September 15, 2022 @04:03PM (#32857747)
That's certainly the benefit of having a teacher. :) I was trying to learn from old books and help documentation, where subroutines seemed to be considered a niche feature for more experienced users.
Re:BlueJ – A Lightweight Java IDE by teucris on Thursday September 15, 2022 @11:49AM (#32853849)
Code.org recently released an AP CSA course that you may want to check out.