Oracle heeft onlangs een preview uitgebracht van ‘JavaScript stored procedures’ in MySQL 8.2. Ontwikkelaars moeten echter voorzichtig zijn, zoals zowel experts als Oracle zelf aangeven.
De JavaScript stored procedures worden uitgevoerd door de GraalVM-runtime, die zowel JavaScript als Java ondersteunt. Deze procedures stellen ontwikkelaars in staat bepaalde handelingen voor data in de (MySQL) database zelf uit te voeren, zoals het formatteren van data met een template-systeem zoals Mustache, data-extractie, complexe validaties, datacompressie en encoding, en het transformeren van data.
Andere voordelen van de nieuwe mogelijkheid zijn onder meer dat ontwikkelaars productiever kunnen worden, omdat zij MySQL stored procedures nu in een bekende taal kunnen schrijven en daarbij kunnen putten uit het volledige JavaScript-ecosysteem. Dit betekent ook dat meer ontwikkelaars zich hiermee kunnen bezighouden, waardoor bedrijven uit een grotere pool ontwikkelaars kunnen werven, aldus Oracle.
Oppassen bij gebruik
Ondanks de voordelen die JavaScript stored procedures in MySQL met zich meebrengen, waarschuwen kritische ontwikkelaars in reacties, zoals op Reddit, voor mogelijke nadelen. Ze raden het mixen van JavaScript en MySQL in de database-engine af, omdat dit tot verwarring kan leiden en diverse problemen kan introduceren die moeilijk zijn op te lossen.
Volgens de kritische ontwikkelaars is het draaien van code in stored procedures goed voor betere prestaties omdat de code zo dicht mogelijk bij de data draait, maar is op hetzelfde moment deze code minder zichtbaar en daardoor moeilijker te benaderen voor het oplossen van problemen en onderhoud. Dit is niet het geval wanneer de applicatie-code apart wordt gehouden van de database engine.
Oracle ook voorzichtig
Ook Oracle zelf plaatst de nodige waarschuwingen. De techgigant geeft in begeleidende documentatie aan dat de binaries niet in een productie-omgeving moeten worden gebruikt. Tevens waarschuwt Oracle voor het gebruik van zogenaamde ‘global variabelen’, wat aangeeft dat ontwikkelaars voorzichtig moeten zijn wanneer zij een bekende taal in een andere context gebruiken.
De in preview uitgebrachte JavaScript stored procedures in MySQL 8.2 zijn op dit moment alleen beschikbaar in de Enterprise-editie van MySQL of in de MySQL Heatwave clouddienst in de public cloudomgevingen van AWS, Azure en Oracle Cloud Infrastructure (OCI).
Tip: ‘JavaScript-securitytool npm audit moet nu worden gefixt’