10 ms·
BlueJ – A Lightweight Java IDE
- bhedgeoser 4y ago> Simple: BlueJ has a deliberately smaller and simpler interface than professional environments like NetBeans or Eclipse. This allows beginners to get started more quickly, and without being overwhelmed. Simpler than intellij?
- pjmlp 4y agoGiven the target audience, yes.
- ch_123 4y agoIntelliJ is a great IDE, but it's designed for professional software developers. It can potentially be overwhelming in an educational context when teaching programming to people with no prior experience.
- ammo1662 4y agoYes, but it is totally different with a traditional IDE. It should not be compared with that. It is designed for educational purposes. So it shows some basic concept like "class", "object" and VM. You can create an object from a class, and run some method from the object. Which is very useful when you are teaching something to beginners. But for programmers, just use a professional IDE.
- jackpeterfletch 4y agoYeah its disingenuous to call BlueJ an IDE. Its just an educational tool, nothing more, designed to give a soft on ramp into OOP and programming in general.
- Double_a_92 4y agoBlueJ is really not something one would ever want to code in. It's really just to teach the basic concepts of OOPs. The title here is kinda misleading, since it's not really a practical IDE that anyone would ever want to use for actual coding.
- khitchdee 4y agoConnecting the IDE to teaching makes a lot of sense
- JeanMo 4y agoWe were forced to use this ide back in the days when I went to school. I never encountered something more worse to use then this "IDE". Not to mention we were told to use notepad in the beginning... Can't make this sh* up. From my perspective its very confusing for beginners to switch to a proper IDE after using this. And I will not mind the argument that "proper" IDE are overwhelming. If you are new to programming most likely everything, including BlueJ, is overwhelming. And with a good teacher and a good introduction I don't think its too much for beginners to use something like IntelliJ. Just use the "correct" tools right away. //edit: The IDE might improved a lot since the last time I used it. Didn't wanted to talk bad on BlueJ itself.
- preya2k 4y agoMy experience was quite the opposite: We used this IDE in the first (maybe two) semesters of my Computer Science bachelor's programme (obviously not for all classes), and it was great. BlueJ allowed us to focus on the modeling and structure aspects of programs. For introduction into OOP it was a very nice tool. Obviously after a couple of months, it's quite limiting – you don't want to write any proper programs in it, but for educational purposes and classes it's great.
- kjeetgill 4y agoThat's fascinating, I don't think we got into real OOP stuff until much later. Definitely not in the first year I think.
- maxehmookau 4y ago100% agree with this. As a way to learn about OOP concepts from first principles, it was fantastic. Obviously not something to use as a professional, but as a learning tool it was unmatched.
- alex3305 4y agoI, also having undergone this horrific treatment, totally agree with this. BlueJ was my first programming editor, as I will not call this an IDE. And because it didn't autocomplete and had an extremely simple debugger I got the hang of Java pretty fast. And we only build really small CLI applications with it anyway. The only thing I missed was auto imports. Especially when you get a little more experienced with Java, this was a bit of a pain. A nice side effect is that I now sometimes try to race the highlighter/autocomplete. And just see how far I can come without it highlighting or completing. Because I can type pretty quickly and know quite a lot by heart. But that's only because I used BlueJ and thus not relying on autocomplete all the time.
- cultofmetatron 4y agoblueJ is a terrible first IDE. but mostly because JAVA is a terribly first language for new programmers. New programmers should be focused on variables, control flow, functions and io. The absolute minimum to do something useful. abstraction should come later as the scope of what they are trying to accomplish outpaces their ability to manage complexity. java centric first programming classes are so idiotic it drives me mad. Some of these classes go so far as to model toy problems as MVC using classes when the students aren't even comfortable using a LOOP!! Drives me crazy. We should be starting them on python in repl.it. easy to get up an running. minimum amount of stuff you need to know to do something interesting. Java as a first language pushed on new CS students has caused untold damage to the industry.
- kjeetgill 4y ago> Java centric first programming classes are so idiotic it drives me mad. Sorry you're having such hard time :D. When I started first had programming classes we had a few months of a toy programming language called karel++ and then were given C++. Now the point wasn't really to learn C++ as you've pointed out, it's just a language (any language) to get comfortable with sequences of commands, basic logic, loops, etc. I don't think any progressional language could be quite as good as a purposefully crafted toy/educational language, but I actually think Java is still close to the top. If it wasn't for the 'class Main { public static void main(String[] args) {}}' bit I think it'd be pretty great. For anything a new student needs it's reasonably identical to C or C++ without pointers and segfaults. NPEs are a godsend. I think python is pretty okay for a first language, it has a lot going for it! Its simple to start. A repl is convenient to experiment. But imho it's probably worth introducing typed variables, braces for scope, a compile step that checks a few things for you pretty early. I think significant whitespace is fine but as with most things in python, the reduced structure makes it look simpler but alse the errors it'll cause are way more frustrating starting out. Way more than missing semicolons. The only other consideration is JavaScript. But I don't have the imagination for a intro CS class without a terminal prompt assignment.
- s-zeng 4y agoConsider also Racket scheme! Has a great starter IDE, an absolute barebones teaching variant that exposes the minimum amount of primitives required to do computations, a repl, as well as a typed variant. Has braces for scope, extremely clear error messages with literal arrows tracing exceptions through your code, and is quite amenable to terminal prompt assignments.
- Netcob 4y agoI'm not sure what the proper didactic concept is to teach programming. I'd love to see some data, because my personal feelings probably aren't of much use. BlueJ does have a number of concepts that can be useful in the beginning. The UML view of the classes is a nice way to connect something very abstract with the actual code. Scope highlighting is a great idea too - I tried teaching some people to code and scopes seem to be as difficult a concept as classes are. Having the IDE change based on some text you wrote is pretty good too - like seeing relationships form in the UML view, listing public members on classes and so on. The only problem I see is helping people move on from BlueJ. Some people who struggled a lot learning the basic concepts may feel like they finally managed to find a setup that "works" for them that's mostly based on a task-based understanding: "I click on the BlueJ icon on my desktop, I click here to create a new class, if something doesn't work I better delete everything and start again because I don't know where to go from there" Other IDEs aren't necessarily better! What does it actually do under the hood? How do I create a program that I can run outside of the IDE, not to mention on another person's computer? Maybe that's not the problem of an IDE, rather it's the teacher who needs to include that transition in their course. I remember how back in school/university that was hardly mentioned at all.
- andrewmackrodt 4y agoWe were recommended to use this during our first year of university (2006), Michael was a lecturer so the university must have felt BlueJ a useful introductory programming tool. Personally I struggled to get to grips with it. While I can appreciate it tries to visualize foundational OOP principles, for someone who already had some experience with various (mainly web programming languages), BlueJ felt too limiting but also broke my mental model of what I should be doing. If I were to think of it more as an interactive debugger, then maybe I would have had more favourable memories of it. However, a few weeks later I switched to Netbeans and felt far less anxiety that I didn't belong in my course.
- mkl95 4y agoMy memories of learning Java at school are tied to learning Eclipse shortcuts. Whenever I had to use some other Java IDE it just felt crippling. Having to use something like this wouldn't have been nice at all.
- anta40 4y agoWhoa, I thought BlueJ is dead. Turns out it's still under development. Nice. Used in the university (2004-2005) when I started learning Java as a freshman.
- Areibman 4y agoI think BlueJ is a fantastic intro to Java. Does a good job of teaching the concepts without creating the same IDE dependence of IntelliJ. And not as brutal as JGrasp thankfully.
- mnd999 4y agoGreat to see the University of Kent getting some publicity on hacker news, even if the BlueJ reviews are somewhat mixed. Ian Utting and David Barnes gave my first CS lecture.
- ejpo 4y agoCame here to say this. I personally did not like BlueJ as an IDE, but I found that the module that was built around it at Kent and the speed at which you can test classes you have created in isolation were a great aid for teaching people basic OOP principles.
- wufocaculura 4y agoI used bluej for a while - it was fine as your first IDE as it does not have tons of bells and whistle that overwhelms you. Obviously, as time passes and your skills improve, you will look for better tools. But BlueJ does its job. I sailed away from java world, which IDEs are being used now? IntelliJ, Netbeans, Eclipse?
- alex_suzuki 4y agoIntelliJ is really popular. Eclipse and Netbeans much less so. IntelliJ profits from “networking effects” from other Jetbrains IDEs like WebStorm, CLion etc.
- flopriore 4y agoYeah IntelliJ by far is the most popular at the moment. We have been recommended to use it even by our university (in Italy) for the exam "Algorithms and data structures in Java".
- BeefWellington 4y agoPersonally I use Eclipse whenever I need to dig into Java codebases these days, though a recent HN thread made me consider giving Netbeans another go.
- JCWasmx86 4y agoAnd some sort of extension of BlueJ is Greenfoot [1]: It is an "IDE" for making simple games using a really simple API[2]. I used it in school for making a game during my A-Levels for my scientific seminar (W-Seminar in german). While the concept is good, the editor is really not that good for anything bigger. You e.g. have no package support in Greenfoot (Or I was not able to find it), and e.g. if you restart a so called "scenario", the JVM does not get reset. Sure I did maybe go to the limits of Greenfoot with my game, but nevertheless it was really fun to work with [1] https://greenfoot.org/door https://greenfoot.org/door [2] https://greenfoot.org/files/javadoc/ https://greenfoot.org/files/javadoc/
- kypro 4y agoOh 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]".
- henkdehenker 4y agoWow, 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?
- phinnaeus 4y agoI'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.
- black_puppydog 4y agoI 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 :)
- pdntspa 4y agoSame for me, at a local community college, around 2005
- lwn 4y agoMe too! But it was in Groningen
- jbgreer 4y agoBack in 2006-8 I had an NSF teaching fellowship, and my peers and I used BlueJ as an introductory IDE in high school CS classes. BlueJ has a feature called “Object Bench” whereby one can instantiate and invoke methods on an object. The main thing I remember from that period is that Microsoft copied that functionality into Visual Studio, calling it “Object Test Bench”. Microsoft even admitted they were influenced by feedback from BlueJ users. Imitation, flattery, right? Then Microsoft filed a patent covering Object Test Bench. Suffice it to say Kolling et al. weren’t happy, and the news made it to several popular sites (Slashdot, etc.). Having been called out so publicly, and having basically admitted their knowledge of prior art, Microsoft withdrew the patent application.
- rie_t 4y agoI remember having to use BlueJ at University... I found that it makes programming so much harder. New window for every file, no ctrl+click following references, no auto-formatter, no easy sidebar tree of files... I ended up using vscode and just copying the files into BlueJ before submitting my assignments.
- BeefWellington 4y ago> I remember having to use BlueJ at University... I found that it makes programming so much harder. New window for every file, no ctrl+click following references, no auto-formatter, no easy sidebar tree of files... There's something to be said for a very minimal "just get shit done" code editor. I think Thonny[1] falls perfectly in this line though in terms of useful features vs IDE-completeness. It has most of the quality of life improvements you're talking about here but is otherwise an advanced text editor with code highlighting. I used to nearly exclusively write my code that way actually, using EditPlus and then later Notepad++, both with plugins for syntax and formatting. I found it to be surprisingly productive. Then again, I suspect there's a large overlap between people who are like me and will find it productive and those who like all those distraction-free writing applications out there. > I ended up using vscode and just copying the files into BlueJ before submitting my assignments. This I'm curious about. Why would you need to do this? Does BlueJ do something specific with the application that VSCode can't? [1]: https://thonny.org/ https://thonny.org/
- mberning 4y agoWe used this in school. If I remember correctly one of the intro CS courses was taught by Jennifer Blue and in the catalog it showed up as being taught by “Blue J”. Very fitting.
- exabrial 4y agoUsed BlueJ, then our Data Structures teacher showed us Eclipse and we were off like rockets. A good IDE is what makes strongly typed languages far more powerful and productive than any dynamic language. It’s similar to a mechanic upgrading to power tools over hand tools, both will get the job done but one decreases effort.
- emrah 4y agoTry IntelliJ, it's even better! :)
- exabrial 4y agohah! I have, and I did like my time with it, but ultimately, Eclipse does roughly the same things... and I have all of the keyboard shortcuts burnt into memory. I'll switch, someday!
- emrah 4y ago> Eclipse does roughly the same things I will respectfully disagree. If you give IntelliJ a try, I'm sure you'll agree with me. It has an option to use Eclipse keyboard shortcuts too
- mirkules 4y agoI cannot believe this IDE is still alive, 22 years after I last touched it. I would rather use vim to code in Java.
- deleted 4y ago[deleted]
- kfajdsl 4y agoI truly believe that IDEs like this one (including DrJava gag) ruined introductory programming courses. I don't think using a full fat IDE is good either. Using an IDE from the beginning has resulted in many (maybe even most) of my peers not understanding what actually happens when they compile and run a program, just that they put some text in a box, then click the magic compile and run buttons and some text pops out of the magic output window. They have no concept of how to actually make a useful program or how to distribute said program and run it on someone else's computer. These are never taught, it's just assumed that you know how to do that (as well as be comfortable with *nix) by the time you get to 3000 and 4000 level classes. That isn't even to mention how Java just isn't a great first programming language. Thankfully I believe they just chaged the introductory programming courses at my university to use Python—probably not using nano and the command line like I'd prefer, but IDLE is okay I guess.
- lapser 4y agoThere is also Greenfoot[0], created by the authors of BlueJ, that focuses on building 2 dimensional simulations and games. I think Greenfoot is derived from the same source as BlueJ. [0] https://www.greenfoot.org/ https://www.greenfoot.org/
- filereaper 4y agoWe used DrJava when first learning Java. http://www.drjava.org/ http://www.drjava.org/ It has a nice REPL built in and installation is just running a single jar file. It doesn't have any fancy autocomplete or any other features like that, just syntax highlighting.