Next-Gen IDEs Jorge Hidalgo October 11, 2013 Organizers Top Media Partner Media Partner Supporter Presenter Jorge Hidalgo @_deors Accenture Delivery Center in Spain, Malaga Senior Technology Architect with 14 years.

Download Report

Transcript Next-Gen IDEs Jorge Hidalgo October 11, 2013 Organizers Top Media Partner Media Partner Supporter Presenter Jorge Hidalgo @_deors Accenture Delivery Center in Spain, Malaga Senior Technology Architect with 14 years.

Next-Gen IDEs
Jorge Hidalgo
October 11, 2013
Organizers
Top Media Partner
Media Partner
Supporter
Presenter
Jorge Hidalgo
@_deors
Accenture Delivery Center in Spain, Malaga
Senior Technology Architect with 14 years of IT professional
experience mostly with Java technologies across industries.
Java Capability Lead at the Accenture Delivery Center in Spain.
From time to time writing a blog called Dr. MacPhail’s Trance:
http://deors.wordpress.com
Father of two children, husband, whistle player, video gamer,
sci-fi junkie, Raspberry Pi fan...
Ask questions online
www.sli.do/openslava
Next-Gen IDEs
Let’s poll the audience:
1: Who knows what’s an IDE?
2: Who use an IDE in a regular basis?
Next-Gen IDEs
IDEs are neuralgic
to development
work
Next-Gen IDEs
Productivity
Quality
Predictability
Next-Gen IDEs
IDEs mean
different things to
different types of
developers
Subject Zero
Name: Lisa
CV: Undergraduate student in Computer
Sciences
Aspirations: Learn to program, find a job,
master her profession and eventually conquer
the world
Enterprise Developer
Name: Stefan
CV: Two years IT experience working for a
consulting firm
Aspirations: Gain experience, lead his own
developer team, become an architect, create his
own startup (who knows if Facebook would buy
it some day)
Hardcore Developer
Name: Adam
CV: 15 years IT experience, freelancer, night job
contributing to open source projects, Scala and
Groovy fan
Aspirations: Loves to have ideas and make them
reality through code, passionate about software
engineering, active in blogs, developer mailing
lists, stack overflow and similar. When not
programming he can be found playing as a
monk in WoW.
Next-Gen IDEs
Another poll for the audience:
3: What type of developer do you think you are?
 Learning / newbie
 Enterprise developer
 Hardcore developer
Next-Gen IDEs
And now the poll you were waiting for:
4: Which is your favorite IDE?







Eclipse / SpringSource Tool Suite / JBoss Tools
NetBeans
JetBrains IntelliJ IDE / AppCode / WebStorm …
Oracle JDeveloper
IBM Rational Application Dev. / Software Arch.
Microsoft Visual Studio
Others
Subject Zero
Name: Lisa
CV: Undergraduate student in Computer
Sciences
Aspirations: Learn to program, find a job,
master her profession and eventually conquer
the world
What’s in an IDE for Lisa?
What’s in an IDE for Lisa?
IDEs are learning instruments
• Wizards
• Project examples
• Skeletons
• Archetypes
• Code completion
IDEs help to write good code and follow best practices
• Static code profiling tools
Invest time in mastering an IDE – is the perfect way to
boost up adoption of new programming skills
Enterprise Developer
Name: Stefan
CV: Two years IT experience working for a
consulting firm
Aspirations: Gain experience, lead his own
developer team, become an architect, create his
own startup (who knows if Facebook would buy
it some day)
What’s in an IDE for Stefan?
What’s in an IDE for Stefan?
IDEs are collaboration tools
• Task/Issue management
• Source code management
• Peer/code reviews
IDEs help with quality and testing
• Static code profiling tools
• Test automation (unit, integration)
• Debugging
• Monitoring and profiling
What’s in an IDE for Stefan?
IDEs apply to all development phases
• Gather requirements
• Business processes modelling
• UML
• Test management
Within the IDE gain complete traceability of all
development work, from requirements to releases and
all the other way round.
Hardcore Developer
Name: Adam
CV: 15 years IT experience, freelancer, night job
contributing to open source projects, Scala and
Groovy fan
Aspirations: Loves to have ideas and make them
reality through code, passionate about software
engineering, active in blogs, developer mailing
lists, stack overflow and similar. When not
programming he can be found playing as a
monk in WoW.
What’s in an IDE for Adam?
What’s in an IDE for Adam?
Hardcore
developers
don’t use an
IDE!
What’s in an IDE for Adam?
There is an IDEs for nearly everything
• Java, Scala, Groovy… JVM languages
• Web: PHP, HTML5, JavaScript
• C/C++, Objetive C
Ability to work on multiple projects within the same
tool – ideally the one you know the best.
What’s in an IDE for Adam?
Next wave of code generation tools
• Spring Roo
• JBoss Forge
• Eclipse JET (not new but still underused)
Boost up productivity
• JRebel, Spring Loaded
Leverage the IDE to speed up development, do more
in less time and focus only on the fun part, not on the
repetitive stuff.
What’s in an IDE for Adam?
Next wave of collaboration tools
• Cloud-based code reviews
• Peer programming (even if no co-located)
Cloud, cloud, cloud
• Cloud IDEs: Code anywhere, anytime
• Cloud application platforms
• Cloud-based monitoring/profiling tools
• Cloud-based performance testing tools
Embrace the Cloud.
Recap
•
•
•
•
•
Learning instruments
Write good code and follow best practices
Collaboration tools
Quality and testing
Apply to all development phases
•
•
•
•
•
There is an IDEs for nearly everything
Boost up productivity
Next wave of code generation tools
Next wave of collaboration tools
Cloud, cloud, cloud
State of the Art I
Let’s go one by
one and check
what’s the IDE
state of the art
State of the Art II
• Learning instruments
Current: All major IDEs meet or exceed.
Wish-list:
• Improve documentation and step-by-step guidelines
• Help both the newbie and the experienced willing
to learn something new.
• For extension providers (i.e. SpringSource Tool Suite,
JBoss Tools, IBM Rational) I miss more specialized
code templates and code snippets.
State of the Art III
• Write good code and follow best practices
Current: All major IDEs meet or exceed in Java/.Net
with other languages catching up.
Wish-list:
• Java has a long “tradition” on static code analysis,
but other languages need to catch up, specially for
dynamic languages – there is no “compiler-safenet”.
• In JVM languages, leverage APT to “infuse” code
profiling in the compiler process.
State of the Art IV
• Collaboration tools
Current: All major IDEs meet or exceed.
Wish-list:
• While IDE plug-ins are good and improving, still
need to catch up to offer the same functionality that
usually can be found in web clients.
• What’s the point of going to go back to the browser
if you are already working on the IDE? Productivity,
productivity, productivity!
State of the Art V
• Quality and testing
Current: Unit testing support is good in all major IDEs,
but support for other Q&T activities need
improvement.
Wish-list:
• Integration/Functional/Regression testing support is
limited, i.e. integrate recording tools within the
same IDE.
• BDD/Acceptance testing adoption is growing, but
IDE support is minimal in the best case.
State of the Art VI
• Apply to all development phases
Current: Commercial IDEs are a bit ahead on
Requirements/Analysis/Modelling support.
Wish-list:
• Rest of IDEs to catch-up in UML modelling and
model-to-code transformations features.
• Better traceability of artifacts, from requirements to
release and vice-versa.
• There are good ALM platforms, but features
integrated within the IDE are still limited.
State of the Art VII
• There is an IDEs for nearly everything
Current: All major IDEs meet or exceed. Almost all
major IDEs are based on open platforms with a rich
community of plug-in developers. Even if ‘core’ IDE
doesn’t offer support for a framework or language, it is
likely that someone else is providing for that.
Wish-list:
• Improve “plug-in dependency hell” and installation
times.
• Sometimes command-line ops is still required.
State of the Art VIII
• Boost up productivity
• Next wave of code generation tools
Current: All major IDEs meet or exceed, but these
capabilities are still not widely used.
Wish-list:
• Extend your tool-belt and pick up good productivity
tools. Every hour you save is more value for you as a
professional, more value for your company/client,
and it is likely that you will have more free time!
• JRebel, Jet, Roo, Forge…
State of the Art IX
• Next wave of collaboration tools
Current: Area for further development. Good things
coming out like Gerrit integration or Sonar reviews, but
still much to do.
Wish-list:
• IDEs should allow for peer programming and
collaborative development, seamlessly.
• Use “social networks” to interact with peers, ask for
support, interchange working code, ideas, etc.
State of the Art X
• Cloud, cloud, cloud
Current: Area for further development. Support for
cloud platforms irregular, in many IDEs you don’t have
support and need to go to command-line.
Wish-list:
• Working in the IDE for a cloud platform should be
indistinguishable from a local server platform. E.g.
Azul for Azure, Cloud Foundry support in Eclipse.
• Cloud IDEs are growing in features and are a great
alternatively for Cloud work. E.g. Codenvy.
Discussion
www.sli.do/openslava