When will Processing IDE shift to Java 8

Why doesn't Processing IDE shift to Java 8? Is it even possible? If so, when will they do it? Does anyone have some information?

UPDATE: Is there any way to use Java 8 libraries in the Processing IDE?

Tagged:

Answers

  • That's... sad :((
    I really hope they do make the transition, it can come of a lot of use.
    I just don't see why they can't just change the ANTLR version. I suppose that the number of people working on Processing is just way too less to get things done fast.

  • Is there any method of using a Java 8 library in the Processing IDE?

  • edited April 29 Answer ✓

    I suppose that the number of people working on Processing is just way too less to get things done fast.

    • While indeed the staff is underpowered, I refuse to accept such excuse.
    • IMO the problem is caused by arbitrary choice of priorities rather than # of folks working on it.
    • The transition from Processing 2 to 3 was a big endeavor. And needed lotsa devs for it.
    • However, the # of new features brought to 3 is merely a fraction of what happened from Processing 1 to 2.
    • Actually I daresay it brought more problems than actual useful features.
    • Like the settings() "feature" and the loss of Applet inheritance.
    • For the PDE, we got partial code completion, error warnings & debug mode.
    • But I simply turn them all off. Those irritating warnings and code completion get in my way.
    • Instead, I woulda preferred they had simply made the PDE & its pre-processor fully compliant w/ Java 8, especially its lambda arrow syntax!
    • In short, it's a matter of priorities. If they was able to pull off the removal of Java's Applet dependency, by replacing its functionality w/ class PSurface, they woulda easily been able to make the PDE an actual Java 8+ IDE! [-(
  • edited April 28 Answer ✓

    Is there any method of using a Java 8 library in the Processing IDE?

    Well, we can't even use Java 8 syntax inside PDE's ".java" prefixed tabs, even though it is actually running under Java 8!

    Only way I see it possible is by compiling Java 8 syntax w/another IDE or directly in a terminal! =;

  • Well, we can't even use Java 8 syntax inside PDE's ".java" prefixed tabs, even though it is actually running under Java 8!

    Only way I see it possible is by compiling Java 8 syntax w/another IDE or directly in a terminal!

    Are you sure? It seems to be working.

  • Not in my PDE version 3.3. Maybe they've fixed it for latest version. Enjoy it then! <:-P

  • edited April 28

    Actually, I'm using 3.2.3 :-/
    And I meant using Java 8 libraries, not Java 8 syntax.

  • edited April 28 Answer ✓

    And I meant using Java 8 libraries, not Java 8 syntax.

    Then why did you quote me speaking about syntax, stating it's working, if you actually meant library: :-@

    Well, we can't even use Java 8 syntax inside PDE's ".java" prefixed tabs, ...

  • @GoToLoop sorry for misunderstanding, I thought you meant libraries included

    Well, we can't even use Java 8 syntax inside PDE's ".java" prefixed tabs, ...

    since the discussion was previously libraries, and you used the word even. :(|)

  • edited April 28 Answer ✓
    • Like I've said, PDE is running under Java 8 for a long time already.
    • Obviously it can accept libraries compiled under Java 8.
    • Your title is "When will Processing IDE shift to Java 8".
    • In my mind, it was about using Java 8 syntax in the PDE, b/c it's already running under Java 8.
  • edited May 14

    Oracle bought OpenOffice and half of the good guys switch to Libre Office.

    I would drop Java of any of my source. And (when) use a similar language, that i can influence.

    Javascript make such a great process!

    Java 7 or 8 who cares a big scary company look over your shoulder as tells you how to code.

    https://kotlinlang.org/community/

  • @nabr

    Would kotlin be similar to p5.js? I was checking the online editor and it gives you the option to run in JVM, js and js(Canvas). What is the concept behind it?

    Are you experienced user of kotlin? What are your comments about that language (?)

    Kf

  • edited May 14 Answer ✓

    Any language which runs under JVM can be turned into another Processing flavor mode. ~O)

  • edited May 14 Answer ✓

    Two of the entries on the "high-profile languages" list of that wikipedia page -- Jython and JRuby -- are what enable the Processing.py and JRubyArt modes. Renjin is being used for the under-development Processing.R. There is also a fair amount on the forum (mostly examples from @GoToLoop) about using Nashorn to write JavaScript for Processing JVM. https://forum.processing.org/two/search?Search=Nashorn

  • edited May 14

    @kfrajer when you know one language very well, it is less a troubel to learn a new language. p5 .js -java script / no i talking more about IDE Java mode. It's more a idea i got 5 minutes ago, nothing serious jet.

    My point is: You always waiting on some guys to update the language reference, do i get a """multiline string support, you just don't know"""

    And for a big company with a SDK, what matters, during a progress, if it fit's with their company plans. Gain value, - profit.

    Back 15? years ago, when processing was founded, i think, their were not much to choose from to build upon an Programming Environment with cross platform support and feathers you all know.

    But know things has changed, new languages are in the wild, and what realy new about them is, - they comunity based. You can log in a forum, and start a discussion. do i get """multiline string support, log in in a forum and start a discussion, when your arguments are right why not"""

    So when i read this https://github.com/processing/processing/issues/4484

    you always waiting: First for a new language reference and then for the dependencies to get updated.

    I heard form kotlin becourse they have a good OpengGL (JavaGL) support, so no more Ant or Jogl (Jogl also comunity based project) and far less Java, more Java, that develops, based on "likes" in a forum.

    Also Processing is a comunity driven project, whit a more flexibel community driven language, - they could influence each other and grow.

  • @cansik Rust,C++,Kotlin. Sounds like fun.

  • edited May 15

    @nabr, there are only 3 Processing libraries currently: L-)

    1. Processing Java: https://Processing.org/reference/
    2. Processing JS (Pjs): http://ProcessingJS.org/reference/
    3. p5.js: https://p5js.org/reference/

    2nd & 3rd are libraries written in JS language. While the 1st is written in Java. ~O)
    And all the other Processing mode flavors depend on Processing Java's library.

    Given Kotlin is a JVM language, it's possible to turn it into another Processing flavor, like Python & R modes and many others. :-bd

    However for Rust, some1 would need to re-write Processing library for it, as already happened to Pjs & p5.js flavors. #:-S

    For C++, although technically not Processing, but similar to it, there's http://OpenFrameworks.cc

    And if we look at it, language C/C++ flavor is more or less represented as Arduino IDE. :P

  • edited May 15 Answer ✓

    Kotlin & Processing

    I am currently using Kotlin as main language for my processing projects. But I stopped working with the Processing IDE and work with IntelliJ and gradle.

    Kotlin is great for developing with processing and also safer, for example the beginDraw and endDraw states can be turned into a nice extension method:

    fun PGraphics.draw(block: (g: PGraphics) -> Unit) {
        this.beginDraw()
        block(this)
        this.endDraw()
    }
    

    Then you just have to call it like that:

    val myGraphics = createGraphics(500, 500, P2D)
    
    myGraphics.draw {
        it.image(myImage, 0f, 0f)
    
        // draw ellipse
        it.strokeWeight(1f)
        it.stroke(0f, 0f, 255f)
        it.fill(0f, 0f, 255f)
    
        it.ellipse(100f, 100f, 50f, 50f)
    }
    

    Also the val and var type inference is great and makes it much more readable and safer to develop in teams.

    I have implemented some other extension methods to work with kotlin, check them out here (maybe there are also some for OpenCV, because I use it in this project):

    bildspur/dysp/Extensions.kt#L31-L46

    Java 8 and Processing

    The Processing IDE is nice for beginners or to sketch something, but once I started a big project with it and it grew up to over 30 files (LED Forest 1). Then I decided to start new projects only in a real IDE (LED Forest 2) because it is real pain to handle 30 different files in the Processing IDE.

    So I think there is no real need for Java8 Syntax support in the processing IDE, if you really want to develop a real application, use a real IDE.

    Maybe it would be good to share more Project Templates for common IDE's. It's really not that easy to setup a processing project. I have now my templates, but it was a real pain to find out all the native binding paths and such things.

  • edited May 15 Answer ✓

    So I think there is no real need for Java8 Syntax support in the processing IDE, ...

    There was no real need to have an underpowered debug mode in the PDE (Processing's IDE).
    Most folks simply rely on println() after all. :ar!

    IMO, it is very sad & lackluster that even today, PDE doesn't fully complies to Java 7.
    And Java 8 w/ its lambda syntax was launched in 2014. 3 years already! X_X

    It's a serious lack of vision neglecting fully Java compliance for the PDE and its pre-processor! 3:-O
    Folks shouldn't need to have to use another IDE merely to have Java 8 candies. ~:>

  • @GotoLoop: saw processing.js in my visual studio, via NuGet Package Manager. Thank you for the info! I got a C/C++ background, Java 7 or what ever. I just want to crush my car(Object) with 180 miles per hour against a wall and i can't, i just can't.

    @cansik: Great! This is very, very usefull. Thank you for the info, i will switch to "real IDE" :)

  • @GoToLoop Yeah you are right, switching to another IDE should not be the solution. But I do really understand them, rewriting the whole syntax checker / precompiler is just a really big thing which takes a lot of time.

    But that's also my question, why are they reinventing the wheel? Wouldn't it be better to use for example the Atom text editor and add plugins for compile and debug support? So it would be possible to focus on interesting problems and not the syntax highlighting / checking.

    I think the problem is, that they have some special treatments of certain types. For example numbers are always directly casted, not like in java.

    @nabr Yeah, if you need help to setup your first project, just write me a message.

  • edited May 15

    Processing as a language, rather than a library, relies on PDE's pre-processor in order to hide away some difficult aspects of the Java language.

    Some examples: :ar!

    • Suffix all literals w/ a . or an e w/ an f it it doesn't have 1 already.
    • Replace all usages of color when used as a datatype w/ int.
    • Make all methods & fields public if 1 isn't specified already.
    • Concatenate all ".pde" tab files as 1 ".java" wrapped up as 1 PApplet subclass.

    Unfortunately there were not enough effort to make PDE's pre-processor fully Java compliant.
    I know Processing since version 1.5.1 and the situation is still much the same! [-(

    For Processing 3, they've prioritized an incomplete debug mode and an irritating auto-complete, which I turn them all off. :-q

    IMO, folks would rather like Java 8's lambdas over those new features mentioned above. =P~

  • @GoToLoop where exactly is the problem to add Java8. I recompiled Processing 1 week ago becourse i want to explore lastest Jogl builds and it works great. shouldn't be somewhere linker switch ?

    https://github.com/processing/processing/blob/master/build/build.xml

  • @cansik thank you, i already setup everything within minutes. not a big deal. java is for kids.

  • That's a lot of information, so thanks everyone for their inputs!
    @nabr I'm afraid I'm not sure exactly what you meant, but please note that most programming languages aren't "for kids". Almost all famous programming languages have so much more to them than tutorial websites detail. Even experts do not know some of the finer details, as I'm sure @GoToLoop will agree.

  • @Lord_of_the_Galaxy im just fooling around

  • I see. I guess when it comes to the basics, Java is for "kids".

Sign In or Register to comment.