Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Comments on What is a good modern language to use for a Business Rules project?

Parent

What is a good modern language to use for a Business Rules project?

+9
−0

This is a rather vague question, but I'm trying to solve a specific problem and I'm inexperienced in most of the potential solutions, so please forgive the inherent ambiguity.

I have access to a database with millions of historical financial transactions, with new transactions being added every day. Based on these transactions I want to apply several hundreds of business rules. These could be things like, "apply sales tax per lookup table based on city and state," or "record commissions based on the internal salesperson and their commission rate." It could also include things like, "bill client X twice per month between April and October at rate R1 for type A transactions and rate R2 for type B transactions, and a flat $100 per month from November to March."

Eventually I'd like for the business rules to be programmable via a web interface, but that's unnecessary at the beginning. My main concern is creating a system that is reliable and flexible enough to handle this level of complexity while still being relatively maintainable and comprehensible.

Unfortunately, it seems that COBOL is one of the most popular languages for this kind of problem, but I'd rather not go that route. I've used R and SQL at much smaller scale in a similar problem space, but it wasn't ideal. I'm familiar in passing with BREs like Drools, but have never actually worked with them, and my general perception is that they are often difficult to maintain.

I don't mind learning a new stack for this project; Go, python, or Rust have all caught my eye in the past. But I keep wondering if I'm missing something that has more inherent support for this use case.

History
Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

Programmable by whom? (4 comments)
Post
+0
−9

First of all, I don't think that there is a specific good programming language for your project.

Python

Python is beginner-friendly. But Python programs can be slower than programs written in other languages. You can handle millions-millions data easily using Python. But when you compare Python to other programming languages, Python is slower. There's a library is which used for data analysis. That library's name is Pandas. It can speed up the speed of Python for tasks which are suitable for being represented as data frames.

Python offers ready solutions for big projects. Sometimes it is easier to write something in Python and rewrite it later in another language, if necessary. This give the startups the most valuable gift they require: time. Often trying to make a startup work is like being stuck in limbo—you are heading to a really good place, but you are not there yet. So the faster the startup reaches the other end of the rainbow, the better. Python is a language that is great for writing prototypes.

Go

When you compare Python with Go, Go wins.

It’s a Cloud-native language that is being applied to the leading development projects based on the Ethereum and Docker.

Go is a cross-platform language that allows you to use the operating system of your choice when compiling the code. Golang is fairly easy to install and have superior debugging quality helping it gain popularity over other languages.

You can easily build production-level software of your choice including a range of use cases from the popular web APIs to encryption software.

Although Go vs Python is a trending topic among the business community, both the programming languages are not only good for creating web applications but both help in automating tasks related to your business.

However, Python is very easy to read and write. The biggest companies like Facebook, Google, Instagram, etc have used Golang also.

Golang is useful for carrying out programming for scalable servers and large software systems. The Golang programming language was built to fill in the gaps of C++ and Java that Google came across while working with its servers and distributed systems.

Rust

SO has a blog on What is Rust and why is it so popular?. Currently, the use of Rust is increasing rapidly. In Rust programs, the error message explains beautifully where the problem is. Currently, lots of users are choosing Rust and Julia for big data analysis and data science.

The main one is obviously Mozilla Firefox, more precisely its layout engine. Another large Rust project is the Redox Operating System. Also Tor might migrate some of their code from C to Rust and in the more distant future, same could happen for both Linux and Windows, but that’s a stretch. Now obviously in the case of Linux, Linus Torvalds is going to protest, but Microsoft is debating using Rust to avoid some of the nagging memory bugs they’ve had in the past and which cost them a lot. Also, both Windows and Linux would probably only make use of Rust in a rather localized manner. Rewriting everything is just not feasible. ~ source.

Rust is also being used more frequently now on reasonably sized projects. ... Half of the respondents felt that Rust compiles times have improved, in particular for large codebases with at least 10,000 lines of code. Two-thirds of respondents believed there is now better library support, too. Companies large and small are using Rust in production all over the world, including Mozilla, Dropbox, npm, Postmates, Braintree and others. Rust programs also optimize quite well, sometimes better than C. While C is good for writing minimal code on byte-by-byte pointer-by-pointer level, Rust has powerful features for efficiently combining multiple functions or even whole libraries together.

C/C++/C#

I like these languages. Currently, lots of users are leaving these languages, because these languages need a lot of knowledge. You can't understand code easily in these languages. Even some graduated CSE students say that, I don't know why teachers taught us these languages. These languages are very hard to understand. I was a Python programmer also. When I took a book from a CSE student I saw that C/C++/C# needs a lot of knowledge. If you want to learn everything deeply, you can start with these. A data scientist said that Python is very easy for data analysis, but most of the backend work is done in C and C++. That's why teachers always teach C and C++ at first in CSE. It needs lot of logic.

The C programming language is so popular because it is known as the mother of all programming languages. This language is widely flexible to use memory management. C is the best option for system level programming language. Even, Linux was built using C and C++ also. Manjaro's git repo. C is perfectly suitable for building large projects in any field of programming.

However, it is, at heart, a systems programming language (as in close to the hardware), not an application programming language.

I've built pretty large applications in C, and it worked well. Would I have hired a programmer who couldn't do systems programming (understanding pointer arithmetic without thinking)? No way.

99% of today's programmers would be disqualified if we used C for applications. They need bulletproof object references and a GC. Even those don't help, at times.

Java

One of my favorite languages. Java is little bit hard, but not as hard as C or C++. Lots of big projects use Java also. Java is a little bit hard to read, too. If you are new to programming languages, I will suggest that you choose Golang or Python. If you have some knowledge on programming languages, you can choose Java. I give Java medium priority.

I believe I started using Java in 1997, not long after Java 1.1 saw the light of day. Since that time, by and large, I've really enjoyed programming in Java; although I confess these days, I'm as likely to be found writing Groovy scripts as "serious code" in Java.

Coming from a background in FORTRAN, PL/1, Pascal, and finally C, I found a lot of things to like about Java. Java was my first significant hands-on experience with object-oriented programming. By then, I had been programming for about 20 years, and it's probably safe to say I had some ideas about what mattered and what didn't. ~ visit the page to read more about Java

Java is a great powerful tool for building big projects that are easy to scale. You can use Java Platform to add as many features to the project as needed. Development environment comprises a wide choice of frameworks, plug-ins, APIs, libraries Runtime Environment and JVM (Java Virtual Machine).

History
Why does this post require moderator attention?
You might want to add some details to your flag.

2 comment threads

Most if not all examples seem to be general purpose languages, rather than fit to manage business rul... (6 comments)
Choose language (1 comment)
Most if not all examples seem to be general purpose languages, rather than fit to manage business rul...
Alexei‭ wrote almost 3 years ago

Most if not all examples seem to be general purpose languages, rather than fit to manage business rules. When I saw the question, I thought about Cucumber, but I do not have any experience with it and I cannot understand if it can be used to process business rules or only to check them (for testing).

Lundin‭ wrote almost 3 years ago

Indeed. This doesn't seem to answer the question, but just tosses out a bunch of generic opinions about random assorted programming languages, without any specific context in mind.

FoggyFinder‭ wrote almost 3 years ago · edited almost 3 years ago

One downvote is mine due to reasons that were indicated in comments above.

Skipping 1 deleted comment.

deleted user wrote almost 3 years ago

Alexei‭ I think you migrated the question to PU. But, I wonder how it still exists here?

Alexei‭ wrote almost 3 years ago

deleted user This question is OK for Software Codidact, why migrate it?

deleted user wrote almost 3 years ago · edited almost 3 years ago

Alexei‭ I think I had seen it there. :thinking.. But, can't find now.. Maybe, my mistake..