B4J Question Is B4J suitable for complex programs

xulihang

Active Member
Licensed User
Longtime User
I want to develop a computer-aided translation tool like OmegaT(https://sourceforge.net/projects/omegat/) using B4J.

Is B4J suitable and what knowledge should I have to do it better? I should first be familiar with java and design model?

Thanks.
 

alwaysbusy

Expert
Licensed User
Longtime User
I used to have a company that created a CAT tool (Trans Suite). It was written in VB6. Wish B4J existed back in the day because it would’ve been the perfect tool for it.

Having a super fast and accurate fuzzy match engine is crusial. Took about good half of a year to get that algorithm spinning. But is was back then one of the fastest ever written (we even wrote our own database engine specifically for that task).
 
Upvote 0

xulihang

Active Member
Licensed User
Longtime User
I used to have a company that created a CAT tool (Trans Suite). It was written in VB6. Wish B4J existed back in the day because it would’ve been the perfect tool for it.

Having a super fast and accurate fuzzy match engine is crusial. Took about good half of a year to get that algorithm spinning. But is was back then one of the fastest ever written (we even wrote our own database engine specifically for that task).

Thanks for your informative story!

The fastest CAT tool in fuzzy match I have tried is SnowmanCAT(雪人CAT) written in c++, while trados and memoq are a bit sluggish.

I plan to write a basic functional tool first and then improve the algorithm.
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Java and .NET are slow and memory intense. If you want pure speed Java and .NET are not what you want.
This was correct many years ago. You can build desktop applications with excellent performance with Java, .Net or B4J.
 
Upvote 0

alwaysbusy

Expert
Licensed User
Longtime User
As a enterprise app... I disagree
How do you mean? Java (and B4J as it transpiles to java), is well used for enterprise apps as CRMs, ERPs etc, especially as in-house apps in very large enterprises. I've seen cases where java was actually faster than other languages who used the LLVM compiler. It all comes down on how well an app is written.
 
Upvote 0

Sandman

Expert
Licensed User
Longtime User
I haven’t coded Java myself, so from that perspective I haven’t anything real to add. But I can say that I used to work at a very large company with ~150 stores over a handful of countries in Europe. All these used a Java application to conduct business and customer interactions. It was a very complex application with lots of business rules, that interacted with a central server park. Worked beautifully.

And while I haven’t really spent any real time working with B4J, I have spent some time working with B4A and B4i. And based on that I can’t see any reason to not choose B4J. The application you are considering doesn’t seem to be overly complex, so there shouldn’t be too many challenges. (Apart from the apparent one, that Erel mentioned, which has its own problem space to study.)
 
Last edited:
Upvote 0

MarkusR

Well-Known Member
Licensed User
Longtime User
As a desktop app. I agree. As a enterprise app... I disagree. :)
in comparison with web apps java is hyper speed. most companys focus web apps because they think it run at all devices without problems.
for business apps i think the most continuous brake are network and indirect database access.
unfortunately the company where i work will switch from desktop to slow single page web application > end-user horror trip
 
Upvote 0

xulihang

Active Member
Licensed User
Longtime User
As for enterprise apps, I think the maintenability and extendibility are important. Java is a powerful object-oriented language with a good ecology(developers, docs, libraries). And B4J can benefit from this.
 
Upvote 0

JakeBullet70

Well-Known Member
Licensed User
Longtime User
How do you mean?
Java (and B4J as it transpiles to java), is well used for enterprise apps as CRMs, ERPs etc, especially as in-house apps in very large enterprises.

Let me explain... (I sucked at it the 1st time)

A job of ten or 15 years ago we did real time traffic planning. The GUI was in VB6... No issue from the GUI.
The real time engine was written in C. (C++ is heavy on RAM and was dumped because of this.)

VB6 was too slow. We had a C engineer who wrote the core code. It got handled.
Customers happy and he used to write software for missile system. This guy was HOT! He new his math.

Now, in my today job, (Oct 2018) we are doing real time machine schedule planning. Same issue. .NET and JAVA are to slow!!!!
Again .NET and JAVA suck for pure speed. No joke. (I know, Toss RAM and processor's at it. )

That was my point When you need speed...
Think... If you are writing code for the F35 fighter... or a missile system. Java? .NET? really?

That was my point. Sorry... I am old school ASM.
 
Last edited:
Upvote 0

JakeBullet70

Well-Known Member
Licensed User
Longtime User
Let me explain... (I sucked at it the 1st time)

A job of ten or 15 years ago we did real time traffic planning. The GUI was in VB6... No issue from the GUI.
The real time engine was written in C. (C++ is heavy on RAM and was dumped because of this.)

VB6 was too slow. We had a C engineer who wrote the core code. It got handled.
Customers happy and he used to write software for missile system. This guy was HOT! He new his math.

Now, in my today job, (Oct 2018) we are doing real time machine schedule planning. Same issue. .NET and JAVA are to slow!!!!
Again .NET and JAVA suck for pure speed. No joke. (I know, Toss RAM and processor's at it. )

That was my point When you need speed...
Think... If you are writing code for the F35 fighter... or a missile system. Java? .NET? really?

Again, That was my point. Sorry... You want speed... I am old school ML...
 
Upvote 0

alwaysbusy

Expert
Licensed User
Longtime User
for the F35 fighter... or a missile system
You consider this on the same level as enterprise apps like CRMs and ERPs, or even the OPs translation program? Guess the guys who went to the moon would've been very happy if they had today's java and .NET speed ;).

I agree, every language has its task, and for enterprise apps, java is perfectly suitable. You are talking about the 0.0001% apps out there that need that kind of speed, not the OPs translation program. He is going to save a lot of $ developing his app in B4J instead of C, and his users will not even see the difference. A CAT (Computer assisted translation) tool can not work without human interaction and such an apps speed is determined by its slowest component: in this case the human translator.

Because of the clever algorithm and proprietary database system written in VB6, we could search for fuzzy matches through millions of sentences, in fractions of a second, which was plenty enough speed (and this is 20 years ago).

Nowadays, when apps are slow, often it is because the programmer is lazy and doesn't want to invest time in clever algorithms. A real shame, as the real speed is in there, not necessary in the language one uses.

I've recently read this blog post http://tonsky.me/blog/disenchantment/ and I can agree with 95% of it (e.g. he is wrong about the Google Play Services, as this is a shared engine used among several apps on your phone, not an app in itself). But he hits the nail on several other points.
 
Upvote 0

techknight

Well-Known Member
Licensed User
Longtime User
Wow, that was a good read. that dude is on-key and hes right.

Tangentially, I traveled through a couple of his links where a node.js developer started going through dependencies. one of them links to hot pockets on every install (express), and then another one has a guys picture on each and every install, just sitting there.

And the one where the entire encyclopedia Britannica was in a dependency just to render the definition of one word in the help file. YIKES.
 
Upvote 0
Top