4 ms·
With Java, you have to worry about your environment before you can worry about programming. You have to download the jdk and set an environment variable. Then
by Sandman 16y ago
With Java, you have to worry about your environment before you can worry about programming.
You have to download the jdk and set an environment variable. Then open a text editor. That's about all the 'worrying about the environment' that you have to do before you can start programming in Java.
- masklinn 16y agoNo, you also have to think about various command-line tools invocation (java and javac for starters) and all the boilerplate that goes around what you want to write (create a file, name it correctly, put the same name inside with a `class` statement whatever that means, then put braces everywhere and a `main` and a `String[]` which you don't know jack about) and then you have the joy of wondering why you don't see anything when you run your program (assuming you got it to compile and run) and learn about `System.out.*`. With scheme, you download Racket or whatever (equivalent to downloading the JDK), you open it, and you start typing and getting instant feedback in your window.
- VB6_Foreverr 16y agoThis is where vb6 shines. With vb6 you don't have to worry about anything! :)
- Sandman 16y agoI'm not sure I understand you. You can't just start typing and getting instant feedback in Java simply because Java is not interpreted (well, actually, it is, but you have to compile to bytecode first). So, what you're saying about Java goes for just about any compiled language. No, you also have to think about various command-line tools invocation (java and javac for starters) Use "javac" to compile to byte code. Use "java" to run your compiled program. This is all you need to know about these tools to start programming. There are various options for using java and javac, of course, but it's not like you can't compile and run a simple program without these options. As for this part of your comment: create a file, name it correctly, put the same name inside with a `class` statement whatever that means, then put braces everywhere and a `main` and a `String[]` which you don't know jack about Yeah. You have to know a bit of Java before you actually start programming in it. If that's one of Java's shortcomings, well then, there are a lot of languages with the same shortcoming.
- Dn_Ab 16y ago>I'm not sure I understand you. You can't just start typing and getting instant feedback in Java simply because Java is not interpreted (well, actually, it is, but you have to compile to bytecode first). So, what you're saying about Java goes for just about any compiled language.< This is not true. There are statitically typed languages, usally functional, with a read-eval-print-loop. Haskell, Ocaml, SML, F#, Scala are the main ones I can tink of. There are many more. I will also note that your parenthetical is slightly inaccurate in that jvms usually JIT bytecode and don't just inteprete it straight.
- Sandman 16y agoAfter googling for a while, I found this great answer on SO: http://stackoverflow.com/questions/3265357/compiled-vs-interpreted-languages/3265680#3265680 http://stackoverflow.com/questions/3265357/compiled-vs-inter... Lunaryom is correct. There are no 'interpreted' and 'compiled' languages, just different implementations. So, I was wrong in my original post. It would appear that you can just type and get instant feedback in Java (if you use Beanshell, for example).
- Dn_Ab 16y agoI noticed the possibility of that semantic ambiguity, that is why I switched to noting static/dynamic typing instead of retaining your distinction on compiled/intepretated.
- scott_s 16y agoThe barrier to entry is certainly higher for Java, C++ and C than it is for, say, Scheme or even Python. Of all, I think Java has the highest barrier to entry. I have taught both Java and C++ to beginners (using the C subset with C++ I/O). Several weeks into the semester for Java, a student asked me what "public static void main" meant. I started giving him the correct answer when I stopped myself: his background did not prepare him to even understand my answer. I then told him, "I'll give you the real answer in a moment, but don't worry if you don't understand it. For now, it's the magic you have to tell the compiler to get your program to work." I call it "magic" because it is something the student have to write without understanding what it means; for them, it is indistinguishable from a magic incantation. The less magic a student has to recite to get a working program, the lower the barrier to entry.
- ww520 16y agoExactly. If it's starting from scratch, I have to download the scheme source, build it, resolve all compile problems within my environment before I can use it.
- masklinn 16y agoBecause you don't have to download the JDK source, build it and resolve all compilation issues with your environment before using java "from scratch"?
- ww520 16y agoThe usual distribution package of scheme is the source package. The usual distribution of JDK is the installable bundle. If the argument for scheme is that it's already installed and set up by the admin, then the same thing can be said about JDK. In term of ease of setup or installation to the end users, it's about the same. Once the JDK and environment have been set up by the sys admin, the tools are just available to the end users.
- masklinn 16y ago> If the argument for scheme is that it's already installed and set up by the admin, then the same thing can be said about JDK. It's not, and I'd like to understand where you got such a thing from.