Have a question about server and database implementation
Asked by Mia Paulin:

[@mention](/t5/user/viewprofilepage/user-id/732788) Good afternoon all! I hope everyone enojyed their weekend. Happy Monday. I have a question about the language a servwer app is supposed to be written in. Most servers are coded in php, which is the language I want to use. Yet, in that Atlassian documentation, it's saying it's coded in Java. This is really going to sound stupid, but if I code it in php, will it still be compatible? Also, in the documention, I saw the fields that make up- not a table- and entire database. The schema is about enough for not even a whole dataset. It's as though there are 5 different types of values that are actual fields taht are expected to be an entire database instead of a table. Granted, I do have examples to pat schemas to look at, but I was wondering...Never mind. I'll use the past schemas, but if it's coded in php instead of Java, will it make a difference?


Answers:
author: Nic Brough -Adaptavist-
body: Why the "@ mention" in your posts? You do know it is spamming someone who probably doesn't want to hear it?

This is a stream of questions about development in general, but I'll frame the answers for Atlassian stuff because we are in an Atlassian Community!

\>\>\> have a question about the language a servwer app is supposed to be written in. Most servers are coded in php, which is the language I want to use.

Most servers are not coded in PHP, and certainly, very few are coded in just PHP. They often make use of many languages, frameworks, and technologies. Even when you find one that is primarily coded in PHP, you'll find it still makes use of at least Javascript, and usually good piles of CSS and HTML.

\>\>\>Yet, in that Atlassian documentation, it's saying it's coded in Java.

Yes, Jira and the other Atlassian applications are written in Java, or variants

(Most of Jira Service Management used to be written in Scala, and although I've not checked in recently, I have no reason to think that might have changed).

And they also use a load of other technologies. I've written apps (they were called "plugins" at the time, to show my age) for Jira and Confluence. They all started with Java code (I later dabbled in Kotlin), and usually Velocity, HTML, CSS, and sometimes Javascript. Atlassian applications are built with a longer list than that!

When I got my paws on Scriptrunner, I started writing scripts in Java, but moved on to Groovy quite quickly. Although you can usually spot my scripts because I'm blatantly writing Groovy first and dropping back into Java when I'm not sure!

\>\>\>This is really going to sound stupid, but if I code it in php, will it still be compatible?

Not by default, as Atlassian applications don't have any support for it in the distribution. Your app will have to implement a completely new PHP engine to run your code, or you'll have to have the server admins install PHP on the server to support it.

\>\>\>Also, in the documention, I saw the fields that make up- not a table- and entire database. The schema is about enough for not even a whole dataset. It's as though there are 5 different types of values that are actual fields taht are expected to be an entire database instead of a table.

The Jira database is very complex, Confluence, Bitbucket, and the others less so.

But the simple advice here is "stop looking at the database".

The applications are abstracted away from the database - your code should use the application's APIs to talk to the core data, not SQL, and "active objects" if it needs to store data in the database. It can never write to the database directly either, that will simply corrupt your data.

\>\>\>I'll use the past schemas, but if it's coded in php instead of Java, will it make a difference?

I think that's answered by "don't use PHP" and "don't look at the database directly"

\>\>\>aside from Sql Server DB and Oracle, are there any other database engines taht anyome can recommend?

Atlassian generally support the four "big" names in databases, but not their variants (MySQL for example, but not Percona, Maria, or Drizzle)

These are in my order of preference:

1. Postgres. Mainly because Atlassian code and test for this first. I've never had a problem with a Postgres Atlassian system that was down to Postgres itself, once I'd got the configuration right. Plus it's effectively free.
2. MySQL. Also free, but only ever had character encoding problems with it (mostly config problems, but not entirely)
3. Oracle. Paid, and has caused me some interesting problems with encoding, indexing (mostly down to code in Jira not using the driver correctly), and sometimes fetching the wrong data when using complex AO tables.
4. Microsoft SQL Server. (We need to be clear on the "Microsoft" because "SQL Server" could mean any form of server that acts as a database with SQL capability). I tend to avoid it, because it's caused all sorts of problems with Atlassian servers for many years of my career. I'm told more recent versions have improved, to a point where they might push it into second place on my list, but I've not used it recently enough to confirm that.

In terms of "best", though, there is a "gnat's whisker" between the top three in my list, and maybe a "gnat's tooth" between Oracle and MS.

I recommend not thinking "best" but "best for us". If your organisation has a preferred database, use the one they prefer - don't ask your DBAs to learn all the quirks of MySQL if all the rest of their databases are MS-SQL.

What you learn about any one of them, though, you'll find the knowledge mostly transferable to others. The biggest problem I have swapping between them is when I can't remember whether I need to end a SQL query with a ; or not!

comments: author: David Bakkers
body: [@Nic Brough -Adaptavist-](/t5/user/viewprofilepage/user-id/781454)Have a look at the OP's posting history. It's likely it's an AI bot, as the account has been posting contradictory or nonsense content across multiple groups and other mods have deleted it.


author: Nic Brough -Adaptavist-
body: Yeah, I know, it does look a bit "botty".

Atlassian have been asked to have a word with them, and apparently got a human response, and AI-detecting software consistently says their posts are human (I'd assumed they were too, because AI posts tend to be a bit more focussed and written in better English)


author: David Bakkers
body: Ok, fair enough. I've seen plenty of bots inject random spelling errors to humanise their content, but if our new AI overlords are happy with their brethren, so be it. ;)


author: Nic Brough -Adaptavist-
body: Yep, same here, I've seen a lot of bots try tricks like random spelling errors too.

I try to do "benefit of the doubt" a lot more nowadays, because they've got a bit more clever. AI threw me a bit of a curveball last autumn, but that's why I've installed "detect AI" extensions into my browser - any doubt, I can check with a simple "highlight and click".

But I do have a nagging doubt there when it comes to the AI. My native language is English, and I can get by in most of its variants (like American English, Canadian, Aussie, Indian, Scottish, Scouse, although I do have to draw a line at Corby "English", don't understand a word they say). I have a bit of Latin, which means I can sometimes get an idea of what someone speaking a Romance language might be talking about, but not a chance of saying anything coherent.

I'm very jealous of anyone who can speak more than one real live modern language.

So when it comes to AI postings, I'm wondering if people are asking AI's questions in their own first language and then running the response through a translator to turn out not great English that my extensions now can't spot are from an AI!


author: David Bakkers
body: *"I'm wondering if people are asking AI's questions in their own first language and then running the response through a translator to turn out not great English that my extensions now can't spot are from an AI!"*

Yep, a human in the middle.

Some of the traits of the Mia Paulin account that made me suspicious:

1. Opening questions consistently between 8 and 10 lines long.
2. Repeated use of [@mention](/t5/user/viewprofilepage/user-id/732788) at start for no reason, despite being told by many people it's an empty, unmonitored account.
3. Misspelling names of well known products or systems for no reason
4. Tells you that it is misspelling things (humans don't admit to knowing they have spelt something wrong)
5. Always omits spaces before left brackets
6. Falls back to "I need to check version" or "I will do more research" or "Never mind I will work it out" responses to deflect further interrogation (An AI defence by deflection technique)
7. Always asks short, specific, follow-on questions using keywords extracted from your original response (An AI re-engagement technique)

Too many repeated patterns to be a coincidence for me. Check out [this thread](https://community.atlassian.com/t5/Jira-Core-Server-questions/Have-a-question-about-the-version-of-CGI-that-is-currently-used/qaq-p/2355901) where it dodged every question when I asked it to be specific. Then when it got trapped in a loop of just rambling on about PHP's CGI version, it disengaged from the conversation.


author: Mia Paulin
body: [@David Bakkers](/t5/user/viewprofilepage/user-id/1575730) I'm not a bit. I'm human, dude. As human as everyone here, but I'm not a machine, neither is my account


author: Mia Paulin
body: Also, aside from Sql Server DB and Oracle, are there any other database engines taht anyome can recommend?