Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IDE Wars - Oracle Code One

IDE Wars - Oracle Code One

With Ken Fogel and Scott Selikoff

Jeanne Boyarsky

September 16, 2019
Tweet

More Decks by Jeanne Boyarsky

Other Decks in Programming

Transcript

  1. @JeanneBoyarsky @ScottSelikoff @omniprof 1

    View Slide

  2. @JeanneBoyarsky @ScottSelikoff @omniprof
    Monday, September 16, 2019
    Oracle Code One (DEV1375)
    Java IDE Wars
    Jeanne Boyarsky, Scott Selikoff
    & Ken Fogel

    View Slide

  3. @JeanneBoyarsky @ScottSelikoff @omniprof
    About Us
    3
    • Java Developer
    • CodeRanch Mod
    • Java Champion
    • Robotics Mentor
    • Java Developer
    • CodeRanch Mod
    • Software
    Consultant
    • Teacher
    • DawsCon
    Organizer
    • Java Champion

    View Slide

  4. @JeanneBoyarsky @ScottSelikoff @omniprof
    A Commercial Break
    4
    Java 11 book I
    (Exam 1Z0-815)
    available in November
    Pre-Order Now
    January 10th
    Montreal, Canada
    Registration open now!
    Free

    View Slide

  5. @JeanneBoyarsky @ScottSelikoff @omniprof
    Time/Location Upcoming Talks Speakers
    Tuesday
    6PM - 6:45PM
    Organizing JUGs and
    Conferences: The World
    View from Guatemala,
    Turkey, and Canada
    Mert Caliskan
    Kenneth Fogel
    Jorge Cajas
    Wednesday
    5PM - 7PM
    Hands-on Java 11 OCP
    Certification Prep
    Jeanne Boyarsky
    Scott Selikoff
    Kenneth Fogel
    Thursday
    9AM - 9:45AM
    Choosing the Right Java
    Vendor and Strategy
    Jeanne Boyarsky
    Chandra Guntur
    5

    View Slide

  6. @JeanneBoyarsky @ScottSelikoff @omniprof
    Introduction
    •  Lots of features are supported by all IDEs but
    some do it better/easier than others
    •  These are our opinions and favorites
    •  Hold questions until the end
    6

    View Slide

  7. @JeanneBoyarsky @ScottSelikoff @omniprof
    The Big 3 ½ Java IDEs
    7
    https://www.baeldung.com/java-in-2018
    Anecdotal data!
    Your mileage will vary!

    View Slide

  8. @JeanneBoyarsky @ScottSelikoff @omniprof
    Product Derivations
    •  IDEs have been repackaged free/commercial
    products:
    •  IntelliJ - ex: Android Studio
    •  Eclipse - ex: Rational Application Developer
    •  NetBeans - ex: Praxis
    •  Many others!
    8

    View Slide

  9. @JeanneBoyarsky @ScottSelikoff @omniprof
    IntelliJ
    Ultimate Edition
    Paid
    Community Edition
    Free, contributions accepted
    IntelliJ Platform (Java based)
    Open source
    9

    View Slide

  10. @JeanneBoyarsky @ScottSelikoff @omniprof
    Eclipse
    Many packages by language/role (ex: Java, Java EE, C++, etc)
    Many plugins, views, perspectives
    Module based; written in Java
    Open source
    10

    View Slide

  11. @JeanneBoyarsky @ScottSelikoff @omniprof
    NetBeans
    Free, modular open-source Java-based IDE
    Donated by Oracle to the Apache Foundation
    NetBeans is simply a GUI on top of the command line
    Best parties at Code One involve the NetBeans
    aficionados
    11

    View Slide

  12. @JeanneBoyarsky @ScottSelikoff @omniprof
    VS Code
    Our ½ IDE (for now)
    Easily (we think) extensible to work with almost any
    programming language
    Microsoft built with Electron.js, a framework that combines
    the Chromium rendering engine and the Node.js runtime
    12

    View Slide

  13. @JeanneBoyarsky @ScottSelikoff @omniprof
    Background
    13
    Owned By First
    Released
    NetBeans Apache 1997
    Eclipse Eclipse Foundation 2001
    IntelliJ JetBrains 2001
    VS Code Microsoft 2015

    View Slide

  14. @JeanneBoyarsky @ScottSelikoff @omniprof
    Cost
    14
    Free Version
    IntelliJ Free - Community
    Paid - Ultimate
    Eclipse Free
    NetBeans Free
    VS Code Free

    View Slide

  15. @JeanneBoyarsky @ScottSelikoff @omniprof
    System Requirements
    15
    RAM
    IntelliJ 2GB min, 8GB rec
    Eclipse 2GB
    NetBeans 2GB
    VS Code 1GB

    View Slide

  16. @JeanneBoyarsky @ScottSelikoff @omniprof
    Common Build Tool Integrations
    16
    Ant Maven Gradle
    IntelliJ
    Eclipse
    NetBeans
    VS Code

    View Slide

  17. @JeanneBoyarsky @ScottSelikoff @omniprof
    Operating System Support
    17
    Windows Mac Linux
    IntelliJ
    Eclipse
    NetBeans
    VS Code

    View Slide

  18. @JeanneBoyarsky @ScottSelikoff @omniprof
    Favorite Features
    18
    Disclaimers:
    Many of these features exist across
    multiple IDEs.
    However, our highlighting it means we felt it
    was superior.

    View Slide

  19. @JeanneBoyarsky @ScottSelikoff @omniprof
    Favorite IntelliJ Features
    19

    View Slide

  20. @JeanneBoyarsky @ScottSelikoff @omniprof
    Refactoring
    20

    View Slide

  21. @JeanneBoyarsky @ScottSelikoff @omniprof
    Refactoring
    21

    View Slide

  22. @JeanneBoyarsky @ScottSelikoff @omniprof
    Refactoring
    22

    View Slide

  23. @JeanneBoyarsky @ScottSelikoff @omniprof
    Refactoring
    23

    View Slide

  24. @JeanneBoyarsky @ScottSelikoff @omniprof
    Maven Integration
    24
    •  Dependency
    does not exist
    •  Conflicting
    versions

    View Slide

  25. @JeanneBoyarsky @ScottSelikoff @omniprof
    Maven Integration
    25

    View Slide

  26. @JeanneBoyarsky @ScottSelikoff @omniprof
    Project Coin of IntelliJ
    26
    •  Warnings before commit
    (compiler warnings, TODOs + Sonar Lint)
    •  Highlight columns horizontally
    •  Notes when JavaDoc parameters incorrect
    •  Good autocomplete and refactoring support
    for streams/lambdas
    •  Copy file name/path

    View Slide

  27. @JeanneBoyarsky @ScottSelikoff @omniprof
    Favorite Eclipse Features
    27

    View Slide

  28. @JeanneBoyarsky @ScottSelikoff @omniprof
    Perspectives
    28
    Fully
    Customizable
    and Dynamic UI
    Perspective =
    Set of Views
    (size/position/
    tabs)

    View Slide

  29. @JeanneBoyarsky @ScottSelikoff @omniprof
    Perspectives (cont)
    29
    View = Window, often
    a Tool/Plugin
    Almost 100 Views
    available by default
    Save Perspectives and
    quick-launch favorites
    from the toolbar

    View Slide

  30. @JeanneBoyarsky @ScottSelikoff @omniprof
    Perspectives (cont)
    30
    Example: Debug
    Perspective
    Dozens of Built-in
    Perspectives
    Can easily customize
    and save your own
    perspectives

    View Slide

  31. @JeanneBoyarsky @ScottSelikoff @omniprof
    Working Sets
    31
    Workspace = List of
    Projects
    Working Set = View of
    subset of Projects
    Great for large number
    of microservices or
    modules

    View Slide

  32. @JeanneBoyarsky @ScottSelikoff @omniprof
    Working Sets (cont)
    32
    Can switch at
    any time
    Can also
    Deselect to
    View All

    View Slide

  33. @JeanneBoyarsky @ScottSelikoff @omniprof
    Other Eclipse Features
    Open File
    with System
    Editor
    Vast plugins
    library
    View/Filter
    Errors and
    Warnings
    on at All
    Times
    Build
    Automatically
    Enabled By
    Default
    Easy
    Upgrades
    (easy fresh
    installs too)
    Simple
    Project
    Imports
    Fast Loading
    via Lazy
    Instantiation
    Free!
    33

    View Slide

  34. @JeanneBoyarsky @ScottSelikoff @omniprof
    Favorite NetBeans Features
    34

    View Slide

  35. @JeanneBoyarsky @ScottSelikoff @omniprof
    NetBeans Features - JEP 330
    Projects are not required
    to write and/or run single
    file Java programs
    Invaluable for running
    snippets of code
    35

    View Slide

  36. @JeanneBoyarsky @ScottSelikoff @omniprof
    NetBeans Features: Project Groups
    Project Groups are
    similar to workspaces
    You can have
    projects in a group
    from different folders
    36

    View Slide

  37. @JeanneBoyarsky @ScottSelikoff @omniprof
    NetBeans Features: Default Build
    NetBeans does not
    have its own custom
    build system
    The choice of build
    system is made when
    a project is created
    37

    View Slide

  38. @JeanneBoyarsky @ScottSelikoff @omniprof
    NetBeans Features: version lookup
    38
    NetBeans can reveal what versions
    of a library are available

    View Slide

  39. @JeanneBoyarsky @ScottSelikoff @omniprof
    Favorite VS Code Features
    39

    View Slide

  40. @JeanneBoyarsky @ScottSelikoff @omniprof
    Markdown
    40
    •  Can open without project
    •  Preview
    •  Fast

    View Slide

  41. @JeanneBoyarsky @ScottSelikoff @omniprof
    FIRST Robotics
    41
    •  Simple first IDE
    •  Good when you
    expect an editor
    with some extra
    features
    •  Excellent
    FIRST robotics
    integration

    View Slide

  42. @JeanneBoyarsky @ScottSelikoff @omniprof
    Visual Studio Code Features
    JavaScript
    JSON
    HTML
    CSS, SCSS and
    Less
    TypeScript
    Markdown
    Go
    T-SQL
    C#
    .NET Core
    Rust
    Ruby
    & more
    42
    PowerShell
    C++
    Java
    PHP
    Python
    Widest range of
    supported languages

    View Slide

  43. @JeanneBoyarsky @ScottSelikoff @omniprof
    Closing
    •  They are each very powerful and feature rich
    and you can’t go wrong with any of them
    •  Great time to be a Java developer!
    •  Many people feel very strongly about IDEs
    43

    View Slide

  44. @JeanneBoyarsky @ScottSelikoff @omniprof
    Live Demos
    44

    View Slide

  45. @JeanneBoyarsky @ScottSelikoff @omniprof 45

    View Slide