Answer the question
In order to leave comments, you need to log in
MySQL+PHP and compiled language?
Greetings.
Colleagues, I ask for your advice. Now I will describe what functionality the software will have, and you, from your own experience, will advise the compiled language.
In general, there will be a MySQL database. In it somewhere up to 30 tables so far. Then there will be a web form similar to the screenshot. By choosing some parameters, a new table will be formed in this form from different database tables. Simply put, a site with analytics and logistics from the database. Both managers will fill in the database through the form and feed template Excel files. Over time, the functionality and growth of the database will be improved. And in the future, it is necessary to write applications for gadgets and display basic information (synchronizing) on them.
As I see it. Server with Centos (Linux) on it MySQL and web means php. It would seem to be enough. But maybe you need a more serious shell on top of the database, well, is there Java or C ++ and then output to php? You just need to quickly and fault-tolerantly get all the data from the database. While 20 people will work, but actively. I would like to provide for the growth of functionality and the load over the years on the software. Plus, you need to display some parts of the information in applications (for gadgets). Maybe write an API?
I ask for advice on which compiled language is better to use and preferably the reasons for the recommendation.
Answer the question
In order to leave comments, you need to log in
The best language for this task is the one that you personally (or the person you hired) know best.
For this task, it is important not in what language.
It is important - how to do it, and not on what.
Including for:
PHP is fine.
"Fault-tolerantly get data from the database" - this is generally implemented by a cluster of several DBMS servers.
Language has nothing to do with it.
;)
Only your ability to work with the DBMS.
You can even do it in assembler - but it will not work better from this.
For the load is a DBMS and the correct way to work with it (competent queries, correct indexes). And this does not depend on the programming language of your application. It's only SQL. And it will always be, regardless of what your application is C ++ or PHP or Haskell
1C. And let everyone shower me with slippers.
You yourself will write this task until the company closes.
A 1s solution will work in 1-2 months. But then, already rewrite / modernize slowly
PHP is enough for 20 people. And usually in such systems, the weak point is not php, but the database, because they start writing very tough queries, without much control, as a result, then these queries are executed for a couple of minutes, or hours, if there is a lot of data.
Write in c# asp net core. And all questions will immediately disappear.
1s, although I feel on the screen and so some kind of 7ka or 8.2. 1s in terms of the server will be an expensive solution, in terms of further 'then' it is cheaper for the customer to hire a 1s specialist than to support self-writing
dlang + https://github.com/dayllenger/atoll
Here is an example of what the GUI looks like:
Here are the sources
Thanks everyone for the advice!
I will stop as planned with a bunch of MySQL + PHP.
Based on the description, there will be a large database and a simple client for it.
The main requirements are for the database: distribution, fault tolerance, extensibility.
With the first two, everything is simple: a cluster.
But extensibility directly depends on the database architecture - it is worth working on it properly, then it will be very difficult and expensive to fix something here.
Neither the cluster nor the optimal client code will help with the crooked architecture - the database will always slow down, the project will have to be curtailed.
So everything was rightly said - the language is not as important as the database. You can make as many clients as you like, and in any languages, clients are primitive.
But the business logic, if it exists, is expensive to maintain in several languages. If it is, you need to select one language for it, and write everything in it.
Now go, python and php are in use for this. It is better to choose what you know - all this can be easily scaled under the load.
For clients in this language, an api is made, behind which business logic is hidden.
In this variant, the client code is simple and cheap, the logic is maintained in one variant, and is always consistent with all clients.
Fault tolerance for mysql is about galera cluster and balancing (for a start, stop at failover) through haproxy. percona has a good working version + ansible role ready to run the cluster.
How to work further with the database is a matter of taste, django or Bitrix, or from scratch even in php. Here, fault tolerance is no longer involved in any way :) unless the application itself is clustered, for example, in dockers with zero-downtime deployments, but I suspect you don’t need it, at least for me now.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question