When comparing Kotlin vs B4X, the Slant community recommends B4X for most people. In the question“What are the best tools for making a cross-platform application?” B4X is ranked 1st while Kotlin is ranked 16th. The most important reason people chose B4X is:
B4XUI custom views are designed, by Erel and other forum members, exactly with this in mind; custom views that act and feel exactly the same no matter what platform you target.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Great tooling support
Since Kotlin is made by Jetbrains (the developers of IntelliJ IDEA) so it stands to reason that the IntelliJ support for Kotlin is also great. Besides that, Kotlin also works well with existing Java tools such as Eclipse, Maven, Gradle, Android Studio, etc...
Pro Easy adoption for existing Java programmers
Kotlin runs on the JVM and Java interoperability has been one of the main objectives since the language was born. It runs everywhere Java does; web servers, mobile devices (Android), and desktop applications. It also works with all the major tools in the Java ecosystem like Eclipse, IntelliJ, Maven, Ant, Gradle, Spring Boot, etc.
All of this makes adoption extremely easy even for existing Java projects. On top of this there's also ensured Type safety and less boilerplate code needed.
Pro Easy to learn if you have prior programming experience
Kotlin's syntax is extremely easy to understand. The language can be picked up in a few hours just by reading the language reference.
Pro No runtime overhead
The standard library is relatively small and tight. It mostly consists of focused extensions of the Java standard library and as such adds no additional runtime overhead to existing Java projects.
Pro Officially supported for Android development
Starting with version 3.0 of Android Studio, Kotlin support will be built-in. This means that it's now easier than ever to use Kotlin for existing Android projects or even start writing Android apps only with Kotlin from scratch.
This also means that Kotlin and Kotlin plugins for Android Studio will be fully supported in the future and their likelihood of being abandoned is quite small since Google is fully embracing the language for their Android ecosystem (alongside Java and C++).
Pro Low-risk adoption for existing Java codebases
Since it has such a good interoperability with Java, Java libraries, and Java tools. It can be adopted for an existing Java codebase at little to no cost. The codebase can be converted from Java to Kotlin little by little without ever disrupting the functionality of the application itself.
Pro Does not impose a particular philosophy of programming
It's not overly OOP like Java and it does not enforce strict functional paradigms either.
Pro Is built to solve industrial problems
Kotlin has been designed and built by developers who have an industrial background and not an academic one. As such, it tries to solve issues mostly found in industrial settings. For example, the Kotlin type system helps developers avoid null pointer exceptions. Reasearch languages usually do not have null
at all, but APIs and large codebases usually need null
.
Pro Create easy, fast cross-platform views with less code
B4XUI custom views are designed, by Erel and other forum members, exactly with this in mind; custom views that act and feel exactly the same no matter what platform you target.
Pro Powerful general purpose programming tool
As mentioned in its website, "With B4X, anyone who wants to, can develop real-world solutions."
Pro A very active forum where you can find any issue you have, and quick answers to new ones
Pro A highly motivated program author who is very active in the forums
Erel Uziel is simply the most pro-active Soft-Creator/Forum Manager you will ever come across. If it has not yet been asked & answered, just ask and you will be answered withing minutes, and thanks to it being a trully international forum, this is achieved 24h/7d.
Pro Very easy to use and powerful for IoT
Support for Bluetooth/BLE, MQTT, TCP/UDP, Serial, NFC, Websockets, HTTP/2 across platforms makes it the ideal tool for IoT projects.
Pro Live code swapping
A huge productivity boost when you can run your apps on the devices and make code changes real time without needing to recompile.
Pro No complexities compared with other tools
No need to learn JAVA, C+, PHP, or any other complementary languages in order to achieve exactly what you need.
Pro The best all round
Produces highly optimised end results. Easy to use and quick to learn. When you know how to produce an Android app you near enough know how to produce an IOS app.
The fact that there are subtle differences between writing for different platforms is a huge plus - those differences help optimise your code and they're really not difficult to wrap your head round.
Pro Erel has much passion for his tool
The speed of answer topics is amazing.
Pro Many informative video tutorials
The tutorials help beginners as well as more experienced programmers grasping important concepts.
Pro Many code examples of fully working apps for free
The Forum is filled with many code examples of fully working apps for free. Code snippets, animation, different type of views etc. can be easily downloaded and used in your own app.
Pro Large user community
Over the years it has built up a very active user community that is very involved in the evolution of B4X. In their forums you can find any answer to your questions, and if it is not there, they will answer you.
Pro RAD
VERY Rapid Application Development, with tons of pro features.
Pro Tightly integrated framework
Pro Almost everything is free and complete
Except the IDE for iOS. Even so it's very cheap.
Cons
Con May be hard for programmers already used to imperative style to learn functional programming from Kotlin
Since Kotlin does not enforce any particular paradigms and is not purely functional, it can be pretty easy to fall back to imperative programming habits if a programmer comes from an imperative background.
Con The need for Java interoperability has forced some limitations
The need to make Kotlin interoperable with Java has caused some unintuitive limitations to the language design.
Con Java-dependent Desktop Development
Con Only for Windows
The IDE, while very handy, only runs on Windows. If you want to code on Mac or Linux, you have to install it on a virtual machine. But you can debug your app by running it on the target OS.
Con The documentation and examples and tutorials are not up to date
The documentation and examples and tutorials are not up to date.
Con For BASIC language lovers
Lots of people are not fans of BASIC-like languages. Enjoyment of B4X, may depend on having a background or affinity for BASIC.
Con Can still need deep knowledge of Java
Attempts to provide BASIC-like language that is more comfortable for a certain demographic of users, but various circumstances will still require knowledge of Java. "No free lunch".
Con Lack of B4W real Web app
Erel needs to make a real Web app designer.