but I am programming with forge libraries so therefore I am scripting programs (mods) (you are probably trying to say something but I am misunderstanding)
seems to be the same thing to me. programming with scripts.
scripts programmed by forge. (I am misunderstanding something aren't I. lol)
Yeah, you are programming. And scripting and programming are different.
Scripting usually refers to when you're writing code that is being executed by a program, like for example take Python. You write code to tell the Python interpreter to tell your CPU what to do. Programming usually refers to when you're writing code that is executed by your CPU. You write source code out for a compiler to compile down to a form of code known as bytecode which is the code that your CPU executes. Your CPU is then executing the bytecode generated by the compiler.
The key difference is scripting languages (also known as interpreted languages) are translated to code your CPU can understand as it's being ran in real time, no pre-compilation used. Compiled languages are translated to code your CPU can understand ahead of time, the .class files you see in Java applications contain the code your CPU executes, no translation required (not true with Java, see later paragraph). If you look in say a .py file (for Python), you should be able to see the code you write out in plain text, the code is stored in plain text. If you look in a .class file, you will see garbled random characters in a text editor as the text editor is trying to read plain binary code (1's and 0's). That's the difference, it's basically like slicing your own bread (which would be the compiled language) versus buying pre-sliced bread (the interpreted language), sort of. Same principle though, the work is done ahead of time with a compiled language.
Forge is also not a program, it's an API. A set of functions and variables you can use within your own program to speed development up. Rather than tediously write your own way to inject recipes into the game, Forge provides a function that does that for you. And you don't code in Forge, you use Forge in your code, following your logic you'd say that using a pen is the same as writing on the pen (again, analogies are not meant to be 100% accurate :P). Big difference between coding IN another program (like a Python interpreter) versus using functions available from a library in your own program.
Now, I said that Java technically translates, and that is true, but doesn't make it an interpreted language. Java requires another program known as the JVM (Java Virtual Machine), which is like a "virtual CPU" sitting on top the CPU that translates the instructions the CPU doesn't understand into instructions the CPU can understand, while still leaving the one's that the CPU can understand to just pass right on through untouched. JVM bytecode (bytecode using the JVM) does work a little differently to how the CPU natively works, and this is REQUIRED to make Java work on all computers regardless of CPU, GPU, RAM, OS and all other important components; you write the same code out, the JVM translates the code unique to the JVM into code designed for your CPU.
So no, you're not scripting, you're programming.
EDIT: Usually, scripting has several limitations in what you can do with the language, for example with Java / C (or any C derived language) you have the capability of working directly with the lower-level components and/or languages, like for instance you can directly interface with data stored in your RAM or bytecode that your CPU is executing. However with interpreted languages, because the language you're writing in is being processed by another program (probably in a form of C), anything you want to do is "filtered" by that program and the program sets limitations in place. This is both good and bad; for example limiting the direct access that a user has to temporary memory (RAM) can be seen as good as it minimises both the accidental and purposeful damage a program can do in any given scripting language, however it also can be seen as bad as the program is forced to work how the interpreter wants it to work; the program cannot directly optimise data stored in memory and the program's memory access is slowed down as it has to run through the interpreter first.
EDIT #2: To help explain this, basically the two work like this:
Your program in source code form -> Compiler -> Class file containing bytecode
Your class file -> CPU OR Your class file -> VM translator -> CPU
Interpreted / Scripting:
Your program in source form -> Interpreter -> CPU OR Your program in source form -> Interpreter -> VM translator -> CPU
EDIT #3: Just to correct your original post, you're a programmer using Java to mod Minecraft, not a programmer of Java Minecraft, Java is a programming language that Minecraft is written in, not a language Minecraft itself contains within it.
I would like to tell you guys of a few issues I am having.
First off I hate windows. Why?? here is why:
Glitches. Microsoft make new glitches, and are lazy to fix them, giving me a smaller opportunity of developing.
Glitches again. I compile, and build my beta project on a Mac (A friend's mac) no problems at all. On windows with my own PC, improperly building the mod and sometimes corrupts clients and servers due window's lazy dev team.
Tools are hard to find and hackers looking for all my info. Windows has a lot of vulnerabilities because microsoft likes to squish multiple OS features into one. Therefore, opening up more vulnerabilities for hackers to exploit and use.
Rooted OS. The OS contains roots, which grants protective administrative permissions to PUPs (potentially unwanted programs) and other horrible programs like malware and spyware.
Apple is making a rootless OS which means a lot to me. I can work on projects in peace. For now at least. (I know I rhymed. Deal with it)
Windows has other horrible problems that are common like corruption and loss. Mac and Linux seem to be the only 2 operating systems that I can depend on to help me get done what needs to be done. My file did not build properly because Eclipse did not save my project which I blame the lazy dev team (windows developers) for. Projects will be slow to upload until I get a new OS.
I am building a new PC but AMD is refusing to let me send in my processor for repairs for what I reason I do not know. For now, companies are shitting on me and its pissing me off. I will let you know when I create a successful update and when I finish building my computer and install Linux.