Duw op enter om te zoeken

IBM moderniseren? Deze pakketten zijn daarvoor het meest geschikt

Author Avatar
Mario Aquino
Business Consultant

Ik heb een aantal "must-haves" op een rijtje gezet waarmee ontwikkelaars efficiënt kunnen werken. Bekijk deze lijst voor je aan de slag gaat met je moderniseringsproject.

Bash;

Een shell ontwikkeld door GNU. Het combineert handige functies uit KornShell (ksh) en CShell (csh). Dezelfde shell wordt gebruikt in alle Linux besturingssystemen.

+ Padaanvulling (door 2x op de tab te drukken)
+ Opdrachthistorie met pijltjes omhoog/omlaag
+ Pijplijnopdrachten

http://www.gnu.org/software/bash/bash.html

Text editors:

Een slimme teksteditor om snel configuratiebestanden aan te maken of te bewerken…

  • Vim: is een uitgebreid configureerbare teksteditor die is gebouwd om elke vorm van tekst zeer efficiënt te creëren of te wijzigen. Vim is zeer stabiel, heeft veel plug-ins, ondersteunt honderden programmeertalen - en dit zijn nog maar enkele van de vele voordelen. Dit is een teksteditor voor ervaren systeemengineers (die bekend zijn met het gebruik van Vi).

https://www.vim.org/

  • Nano: Kleine en gebruiksvriendelijke teksteditor. Ik raad aan deze editor te gebruiken als VIM te uitgebreid is.

Webservers:

  • NGINX: Open-source webserver, elke informaticastudent heeft hier ooit wel eens een van geconfigureerd.
  • Apache: Het Apache HTTP Serverproject heeft tot doel een open-source HTTP-server te ontwikkelen en onderhouden voor moderne besturingssystemen waaronder UNIX en Windows. Apache is nog steeds de populairste webserver. (Kan niet worden geïnstalleerd met de open-source package manager!)
  • Git: Een andere "must-have" waarmee ontwikkelaars efficiënt kunnen werken: Broncontrole. Gelukkig heeft de IBM-community ook een pakket voor GIT. Met GIT kun je opslagplaatsen hosten op dezelfde server als jouw applicatie, of op een speciale server voor versiebeheer. Je kunt de applicatie automatisch bouwen/implementeren met GIT-hooks, Jenkins of containers.

De belangrijkste aspecten van versiebeheer zijn:

  • Eenvoudig samenwerken (ongeacht teamgrootte)
  • Fouten kunnen worden teruggedraaid
  • Een overzicht van alle lopende zaken
  • Automatische implementatie

Vandaag de dag kan geen enkel ontwikkelteam zonder bron- en versiecontrole.

Moderne programmeertalen/frameworks

Tot nu toe hebben we de eenvoudige maar superhandige tools besproken die efficiënt werken op je SSH-terminal. Daarna hebben we de moderne webserver besproken om applicaties op te hosten. We kregen broncontrole om het werken met meerdere ontwikkelaars makkelijker te maken. Echter, in welke talen/frameworks kunnen we programmeren op de IBM i? De volgende talen kunnen allemaal draaien op de IBM i en verbinding maken met ibm-db2 databases:

Python

Python is een hoogwaardige, geïnterpreteerde, dynamische programmeertaal voor algemeen gebruik die gericht is op de leesbaarheid van de code. Het heeft veel ondersteunende bibliotheken (wordt geïnstalleerd met de package manager "pip"), is eenvoudig object-georiënteerd te programmeren en heeft veel krachtige functies om open/gesloten, herbruikbare oplossingen te creëren. Nadelen zijn de slechte prestatie en de primitieve database-laag, omdat andere programmeertalen gebruik maken van technologieën zoals JDBC and ODBC.

Populaire Python frameworks:

  • Django
  • CherryPy
  • Pyramid

https://www.netsolutions.com/insights/top-10-python-frameworks-for-web-development-in-2019/

PHP

De PHP-programmeertaal bestaat al meer dan twee decennia en is uitgegroeid tot een krachtige en betrouwbare oplossing met een grote schare van supporters en bewonderaars. Bekende voorbeelden van PHP als tool voor web-ontwikkeling zijn WordPress en Facebook. Voordelen van PHP zijn de prestatie, de vele opties voor databaseconnectiviteit en de goede documentatie. Het grootste nadeel van PHP daarentegen is de inconsistente syntax; voor een beginnend ontwikkelaar zal het moeilijker zijn om zich deze taal eigen te maken.

Populaire PHP frameworks:

  • Laravel
  • Symfony
  • CodeIgniter

https://hackernoon.com/8-popular-php-frameworks-for-web-development-in-2020-od3f38ez

Node.js

Node.js is een gebeurtenisafhankelijke JavaScript runtime, ontworpen om schaalbare netwerkapplicaties mee te maken. Node.js is populair geworden, omdat het eenvoudige schaalbaarheid en veel community-pakketten biedt (geïnstalleerd met NPM/YARN) en erg goed presteert. Onderstaand de voornaamste redenen waarom node.js zo snel is:

  • De V8 JavaScript engine van Google vertaalt Javascript erg snel in “machineopdrachten”.
  • De node.js runtime-omgeving ondersteunt niet-blokkerende I/O-bewerkingen
  • Het draait standaard asynchroon.

Nadeel is dat de code moeilijk is te lezen (hoewel de meeste ontwikkelaars JavaScript als front-end computertaal heel goed kennen). Daarnaast zijn in het verleden een aantal opmerkelijke veranderingen doorgevoerd die ontwikkelaars hebben gedwongen hun applicaties te herzien. Het wordt sterk aanbevolen om hedendaags JavaScript te leren aangezien je dit tegenkomt in de populaire front-end frameworks (React.js, Angular and Vue.js).

Populaire Node.js frameworks:

  • Socket.io
  • Express.js
  • Sail.js

https://codersera.com/blog/top-10-nodejs-frameworks-for-developers-in-2020/

Ruby

Ruby is een krachtige, open-source programmeertaal gericht op eenvoud en productiviteit. Het heeft een elegante syntax die begrijpelijk is om te lezen en gemakkelijk is te schrijven. Het heeft veel community-pakketten (die Gems worden genoemd) en is goed gedocumenteerd. Ruby-code is gemakkelijk te lezen, maar het is vanwege de fundamentele opbouw iets moeilijker om te leren. Ruby biedt veel dynamische functionaliteit om herbruikbare en open/gesloten oplossingen te schrijven. (Kan niet worden geïnstalleerd met de open-source package manager!)

Ruby heeft dezelfde problematiek als python; het is traag en niet puur functioneel, maar toch ook niet echt object georiënteerd.

Populaire Ruby frameworks:

  • Ruby on Rails
  • Sinatra
  • Hanami

https://wpshopmart.com/best-ruby-frameworks/

.NET

.NET is een open-source ontwikkelaarsplatform gecreëerd door Microsoft. Het kan worden gebruikt om veel verschillende applicaties mee te bouwen. Het heeft veel pakketten (geïnstalleerd met Nuget), maar helaas zijn die niet allemaal gratis te gebruiken. NET heeft ook andere tijdbesparende functies zoals LINQ, ASP.NET en Entity Framework. (Kan niet worden geïnstalleerd met de open-source package manager!)

https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet

Databases

IBM db2

De IBM i heeft zijn eigen databasesysteem, de IBM db2 is een Relational DataBase Management System (RDBMS). Het heet db2 als verwijzing naar de overgang van hiërarchische database-modellen naar het nieuwe relationele model. DB2 is destijds ontworpen om alleen te werken op mainframe platforms van IBM, maar tegenwoordig is het beschikbaar op alle moderne servertypes. Het is een volledig uitgeruste, krachtige database-engine die grote hoeveelheden data kan verwerken terwijl het tegelijkertijd door veel mensen wordt gebruikt.

https://www.ibm.com/products/db2-database

Als je om wat voor reden dan ook de IBM DB2-databases niet wil/kan gebruiken, biedt QOpenSYS veel alternatieven.

PostgreSQL

PostgreSQL is een krachtig, open-source object-gerelateerd databasesysteem waaraan meer dan 30 jaar actief is ontwikkeld. Dit heeft het systeem een sterke reputatie opgeleverd op het gebied van betrouwbaarheid, robuustheid en prestatie. PostgreSQL is volledig open-source, zodat u de broncode vrij kunt uitvoeren, bekijken en bewerken. Het werkt relationeel en is zeer snel, vooral voor complexe query’s.

https://www.postgresql.org/

MySQL

MySQL is de populairste open-source database ter wereld. Met zijn bewezen prestatie, betrouwbaarheid en gebruiksgemak is MySQL de eerste keus op het gebied van databases voor web-based applicaties. Het werkt relationeel en is een van de snelste databases die beschikbaar zijn. Voor complexe query’s is het iets langzamer dan PostgreSQL. MySQL mag commercieel worden gebruikt, maar als je de codebasis aan gaat passen wordt je geacht dit te (ver)melden.

https://www.mysql.com/

SQLite3

SQLite3 is een C-taalbibliotheek die een kleine, snelle, zelfstandige, zeer betrouwbare, volledige SQL-database-engine implementeert. SQLite is de meest gebruikte database-engine ter wereld. SQLite wordt in alle mobiele telefoons en de meeste computers ingebouwd en wordt gebundeld in talloze andere applicaties die mensen dagelijks gebruiken. SQLite is de beste keuze voor lokale opslag, de database kan niet worden blootgesteld aan het internet. (De database moet bijvoorbeeld op dezelfde server staan als de backend applicatie).

https://www.sqlite.org/index.html

Dit zijn alle databases die QOpenSYS op dit moment aanbiedt, verrassend genoeg zijn MariaDB, MongoDB, Elasticsearch, ... (nog) niet beschikbaar, hoewel deze databases populair zijn. In het algemeen biedt QOpenSYS geen no-sql oplossing. Maar de IBM-gemeenschap zal hier in de toekomst zeker in voorzien .

Om af te ronden

Ik wil benadrukken dat de IBM-systemen betrouwbaar zijn en goede prestaties leveren - dat hebben ze al jaren bewezen. De systemen zijn robuust geworden door hun achterblijvende compatibiliteit, maar IBM heeft grote stappen gezet om dit te verbeteren. Ze hebben altijd een grote bijdrage geleverd aan moderne open-source-projecten (bijv. RedHat) en zullen zeker moderniseringen blijven doorvoeren.

Servers zijn grote investeringen, dus je zou ze op zijn minst moeten overwegen voordat je een ander (meestal duurder) systeem koopt. Ik ben aangenaam verrast door de duurzaamheid van de servers. Ik heb een bedrijf gezien waar ze al waren vergeten dat ze een IBM-server hadden (die was goed verstopt tussen de muren). Zonder onderhoud of enige ondersteuning is het systeem jarenlang live gebleven. Dit betekent echter niet dat je servers niet moet onderhouden, want voor je het weet moet je misschien noodgedwongen moderniseren ;-).

New call-to-action