Presidents Meeting and German Natural User Group – Legacy Coder Podcast #4

Presidents Meeting and German Natural User Group

Let’s talk about what was presented and discussed at Software AG’s User Group Presidents Meeting and the German Natural User Group in Darmstadt in November 2017 in episode four of the Legacy Coder Podcast.

User Group Presidents Meeting

  • What’s the point of the meeting?
    Welcome to the International User Groups Presidents Meeting

    • Planning the International User Groups Conference (topics, date, venue etc.).
  • What was presented by Software AG?
    • Software AG’s revenue is now > 1 Billion. 4,400 employees all over the world. Ca. 25% Adabas/Natural.
    • 70% of the largest 1,000 companies worldwide use Software AG products.
    • ADAMOS: Joint Venture with big machine builders like Zeiss and Dürr.
    • Don’t rip and replace! Modernize!
    • 3 big moves: Adabas/Natural, integration with webMethods, IoT (1 bn. investment).
    • Modern architecture: System of Records, Integration, IoT/AI.
    • Software AG named by Gartner as leader in Streaming Analytics, InMemory Databases.
  • What was discussed with regards to Adabas/Natural?
    • Don’t separate Adabas and Natural. There will be only one conference for both technologies with a single keynote.
    • Max. 30min presentations, time restrictions for information about business, platform, environment.
    • Natuaral customer base: Mainframe vs. LUW: 50%/50%
    • A workshop for Natural developers would be interesting (best practices, architecture, training).
    • A Hackathon will not be possible at IUGC.
    • How to find/meet other customers with similar problems?
  • Topics for IUGC 2018 in Berlin
    • Already 5-6 presentations submitted.
    • NaturalONE (new features, introducing the IDE etc.)
    • DevOps (CI, Docker, etc.)
    • Rehosting (Mainframe -> LUW)
    • Who uses or plans to use Cloud Computing?
    • 2050 readiness award
  • International User Group Conference 2018 in Berlin
    Members of Software AG's International User Groups

    • Registration is open!

German Natural User Group

  • Ca. 60 attendees from all over Germany.
    About 60 Natural Developers get together for the German Natural User Group in November 2017 in Darmstadt
  • Quite a few “young” Natural developers were present. The “Generational Change” starts…
    Young Natural Developers at the German Natural User Group in Darmstadt in November 2017
  • I’m the new speaker of the German Natural User Group.
    Stefan Macke is the new speaker of the German Natural User Group
  • Topics of the talks
    • zIIP enablement for Adabas/Natural
    • New features of EntireX
    • How to develop your own Eclipse plugins for NaturalONE
      How to develop your own Eclipse plugin for NaturalONE

    • New features in Natural und NaturalONE
      Code Coverage in NaturalONE

      • Natural editor will be shut down with release in fall of 2018. There are still many customers that have concerns.
    • Adabas and Natural in a Docker container, started via Alexa
      Adabas now runs in a Docker container
    • Visualizing Adabas Events with ElasticSearch and Kibana
      Adabas pushes events to ElasticSearch that can be visualized with Kibana
    • RealHtml4Natural – an alternative webframework for Natural build on top of the Natural Native Interfaces and distributed under the GPL-3.0 license.

Call to Action

Start Tweeting with #AdabasNatural2050 and #IUGC18!


Modern Natural Development with NaturalONE – Legacy Coder Podcast #3

Modern Natural Development with NaturalONE

Why would anyone dismiss the good old Natural editor and switch over to NaturalONE? Let’s find out what features NaturalONE has to offer in the third episode of the Legacy Coder Podcast.

Why should you switch over to NaturalONE?

  • Increased developer productivity
    • Use Copy and Paste (duh!) for high quality Natural programming 😉
    • Syntax Highlighting will help you understand the source code faster.
    • Make use of intelligent search and replace features with regular expressions.
    • Code Completion makes you type way less than before.
      Code Completion in NaturalONE
    • Code Navigation (jump to a variable definition etc.) lets you explore the code base with a few keystrokes.
    • You can use Code Folding for focussing on the really important stuff.
    • Multiple compile errors are displayed instantly without uploading the source to the server.
      Multiple compile errors in NaturalONE
  • Repository based development
    • Finally develop software like the cool kids do!
    • Every code change is documented and can be rolled back with just a few commands. It can even be attached to an issue tracker like Jira or Redmine.
      Git integration in NaturalONE
    • You can try out new things in an isolated environment.
    • You can automate your coding with code generators like Xtext.
  • Modernize your development environment
    • Share knowledge and open up towards other (maybe younger) developers (Java etc.).
    • Be and stay attractive as a company to new employees.
    • Automate your build process
    • NaturalONE is Software AG’s platform of choice for the future.
    • The old Natural editor will be shut down!
  • Extendable with additional plugins
    • Software AG’s innovations will only take place in NaturalONE (e.g. Code Coverage, Screen Testing).
    • Attach your IDE to an issue tracker like Jira or Redmine with Mylyn.
    • Use Snipmatch for even less typing. Plugin Snipmatch used in NaturalONE
    • Create your own extensions (e.g. NatUnit) for whatever requirement you have.
      Our own NatUnit plugin used in NaturalONE

Recommended reading

  • NaturalOne Debugging


Automating Your Natural Build Process – Legacy Coder Podcast #2

Automating Your Natural Build Process

How can you automate the build process for your application based on Software AG’s Adabas and Natural? I talk about our journey towards a completely automated build from scratch after each push to Git in the second episode of the Legacy Coder Podcast.

How to automate the build process for an Adabas/Natural application

  • Why would I want to automate the build process?
    • What hurts should be done more often!
    • No more long integration phases before each release!
    • You’ll get a faster time to market for new features.
    • You can get rid of knowledge silos concerning the release of your application.
  • What steps may need to be automated?
    • Upload (transfering the Natural source code to the server)
    • Compile (CATALOG, STOW, CATALL etc.)
    • Unit Tests (e.g. with NatUnit, see Unit Testing Natural Applications)
    • Deployment (the actual release of the new version on the target stage)
    • Restarting RPC servers or whatever individual steps might be necessary in your environment
  • What tools are available for automating the Natural build process?
    • It all starts with Git or any other versioning control system (Subversion, TFS, CVS).
    • You can use Jenkins for Continuous Integration.
    • Software AG’s command line tools (ftouch etc.) can be scripted.
    • Even the CATALL can be scripted by calling into Natural BATCHMODE.
    • NaturalONE’s ant scripts for uploading and compiling Natural sources.
    • Any additional tool that you might need (Bash scripts etc.)
  • How can I get started?
    • Make your project fully compilable. There can be no compile errors whatsoever.
    • Start with a single step, e.g. automate only the compile step first.
    • Script everything (e.g. with Bash) right from the beginning. You can easily call these scripts from Jenkins later on.
    • Hook Jenkins up to your source code repository. It provides plugins for every major system (e.g. Git, Subversion).
    • Try to automate the build with Jenkins. It’s completely free and easy to setup. Perhaps ask a Java colleague if he can help you.
  • How can you go even further than what’s possible today?
    • Try to automate imports of Adabas data that’s important for your application.
    • Try to automate Adabas schema migrations.
    • Implement feature toggles for more fine grained control over your application’s functionality at runtime.

Recommended reading


Unit Testing Natural Applications – Legacy Coder Podcast #1

Unit Tests for Natural Applications with NatUnit

Unit testing with Software AG’s Natural – is that even possible? Let’s find out in the very first episode of the Legacy Coder Podcast.

Unit testing Natural applications

  • Why would I want to unit test my Natural code?
    • You get instant feedback whether your code works. That’s fun! 😀
    • You get a safety net for refactoring and optimizing your Natural code.
    • You can catch regression as early as possible. That makes evolving your code base easy and painless.
    • Unit tests can be integrated into your build process (Continuous Integration, Continuous Delivery, Continuous Deployment).
    • Unit tests are the first step on your way to a fully automated build process.
  • What tools are available for unit tests with Natural?
    • Subprogram testing within NaturalONE
      • Only subprograms can be tested.
      • Different “language” for defining your tests.
      • Tests have to be defined manually from a GUI.
      • Tests cannot be executed from within Natural itself.
      • Proprietary software maintained by Software AG.
      • Professional support by Software AG is available.
    • NatUnit – an open source framework for unit testing with Natural
      • Everything that can be called from a subprogram can be tested (subprogram, subroutine, function).
      • Tests are written in the same language that is used for production code.
      • Tests can be written as Natural code with full IDE support.
      • Tests can be executed within any Natural runtime.
      • Open source project that can be extended by everybody – including yourself.
      • There’s no professional support for the framework.
  • What do I have to do differently when writing testable Natural modules?
    • You need more fine grained modularization!
    • You have to decouple the User Interface, Database access, and the core Business Logic from each other.
    • You need to extract the functionality to test into its own callable module.

NatUnit in action

Here are a few screenshot of our NatUnit Eclipse plugin in action.

You can run a NatUnit test from within the IDE.

NatUnit Eclipse Plugin: RunAs NatUnit Test

If the tests are successful, you instantly see the famous “green bar”.

NatUnit Eclipse Plugin: Successful Test

And if the tests are broken, you’ll definitely notice that, too. 😉

NatUnit Eclipse Plugin: Failing Test

Recommended reading


Introduction to the show and the host – Legacy Coder Podcast #0

Legacy Coder Podcast Episode 0: Introduction to the show and the host

Who is this guy and what the heck does he know about Software AG’s Adabas and Natural? I’ll show you in the pre-episode zero of the Legacy Coder Podcast.

Introduction to the podcast and myself

  • My experience with Adabas and Natural.
    • I’m programming with Natural since 2003.
    • I’m the president of the International Natural User Group since 2016.
    • I co-authored NatUnit (as part of my Master’s thesis) and L4N.
    • My main job is integrating Adabas/Natural into a modern SOA with webMethods Integration Server.
    • In the last few months I automated and modernized the Natural build process with Git, Jenkins, Java, and NaturalONE.
    • My biggest Natural project so far was the migration of an insurance system from Oracle/Java to Adabas/Natural.
    • I frequently speak at local and international user groups and conferences (e.g. Innovation World, Innovation Tour, IUG).
    • Our Natural code base: ~6 million LOC, ~19.000 modules.
  • My professional experience.
    • I studied business computer science (Bachelor’s degree) and software engineering (Master’s degree).
    • I train new hires and apprentices at ALTE OLDENBURGER Krankenversicherung AG in Germany.
    • I also use a few additional languages: Java, C#, PHP, Ruby.
    • I’m a software architect since 2014.
    • I work as an associate professor for programming and software engineering at PHWT since 2009.
  • My personal life.
    • I’m married.
    • I have two dogs.
    • I like taking photos.
    • I run a podcast for aspiring software developers in German.
    • I organize my own user group and conference for software developers.
    • You can find me almost everywhere: LinkedIn, Twitter, Instagram etc.