Why I like B4X

William Lancee

Active Member
Licensed User
I have attached a non-trivial example of a cross platform (B4A and B4J) application that uses many cross platform techniques and focusses on a selectable and an editable B4XTable. I am posting this example in the spirit of "Why I like B4X!" rather than following the suggested template.

1. There are over a 1000 statements in the attached example, but only 8 "#if B4A #else if B4J #end if" sections. All 8 sections are one or two lines that affect how things look on a smaller screen.

2. The suggested method for cross-platform development (A project folder with the App as a linked class and 3 folders , B4A, B4J, B4i, with platform specific main modules and designer files) worked flawlessly and helped me to develop this project in a week (I am not as fast as Peter Simpson).

3. The rich set of open-source libraries (internal and modifiable cross-platform libraries) allowed me to find out how to customize elements for my needs without having to re-invent the wheel.

4. The Forum has been of tremendous value, all my questions were resolved by searches and without me needing to post a question.

5. There are a few "special" language constructs that I find extremely valuable, such as:
a. the Type statement
b. $"Smart Strings"$
c. Collections - Map, List, Set, and the Array function.
d. For Each x As ... In Collection
e. the Wait For construct - absolutely brilliant (I have partially implemented it in JavaScript, but it's not pretty!)
f . the unifying B4Xview object that hides many platform differences in the GUI
g. the impressive community effort that allows for multi-lingual programming (easy to take for granted)
h. the Icon and Color picker, the implementation of Awesome and Material fonts, the standard use of Unicode allowing for characters like
APL = "←⍳⍴⌷↑↓/\,⌽⍉⌹?~∨∧⍱⍲=<>≤≥≠≡∪∩+-×÷%|⌈⌊○⍟*!∊≢⍪⊖⊂⊃⍋⍒⊤⊥⍕⍎⍬⊣⊢⎕⍞⌿⍀∘∇⍫⍝⍨'⋅"

6. Although there are separate IDE's for each platform, they are identical in looks and action.

7. Debugging is easy in the IDE, with breakpoints, debug mode, and the Try construct. But also the ubiquitous Log statement that converts items on the fly. The log that can be put on the clipboard.

8. The intellisense suggestions and auto-complete are the best I've seen, and often lets me avoid searching for properties and methods in the documentation.

9. The copy/paste of views in and across the designers saves hours of mind-numbing design work.

10. The re-use of layouts makes dynamic creation of views a breeze - even for complicated views such as CustomListView, CodeView, or the Table view.

11. I have used B4R for robotic projects, B4J for statistical analysis projects, and B4A for an automatic texting system, for speech synthesis/recognition, and for a neurological test app. At no time did I have to be concerned about the power and versatility of the B4X as a programming language.

12. I have extensive experience with diverse procedural programming languages (Fortran, Assembler, Cobol, Lisp, APL, Algol, SNOBOL, Basic, VB, JavaScript). While I was able do eventually what I needed to do in each, the B4X language is more natural to me than any of these. For me, a strongly typed language works best, but B4X's automatic conversion of type where appropriate is a real gift. I also like that it is simple to re-cast a type when necessary. I also don't miss "void" and "{}" and ";"

13. Erel Uziel, the author/designer of B4X, is extremely responsive to the needs of Forum community members, and is willing to modify and release new versions of libraries and IDEs at a rate that is unparalled by other software companies. [Probably because he doesn't have to get approval from superiors or take it through committees!]

14. As I am sitting here in front of my large desktop screen, and my Samsung tablet to the right, my Oscilloscope to the left, and my robotic toys on the shelf behind me, I feel that I am in a perfect place in time and space. I think I'll fire up B4J and start writing an APL interpreter for my tablet, just for fun. I'll write it in B4J, and every once in a while I will run it (the same class) on the tablet. APL is perfect for the tablet. APL has very little typing and powerful functions - in 1972 I had a MCM-700 which ran APL on a 16k microcomputer with 40 character LED line display and two cassette tape drives (see attached picture). I am pretty sure my android tablet version will be better. I'll use BBCodeView as an user interface for long (and smart) text and dynamic views and B4XTable for flat databases.

I thank all community members for making this possible.

William
 

Attachments

Last edited:

rabbitBUSH

Active Member
Licensed User
Great story @William Lancee sometimes I wonder if a forum isn't really operating by committee looking through some recent threads.

Most of all I LIKE people who can spell this word focussed
 
Last edited:

Erel

Administrator
Staff member
Licensed User
WOW!
Many efforts were made to implement each one of the features in this list.
I know that it takes time for developers to learn and trust the new features and it is really a great feeling to read posts such as this and know that developers appreciate and use those features.
 
Last edited:

skrjabin

Active Member
Licensed User
A good collection for good things in B4X syntax. I am still using VB.NET a lot (now almost only for Web in ASP.NET) and I can compare. For me it is much more logical, that in B4X a Sub is a Sub, whether it is void or not. In VB.NET, if I decide to give a Sub a return value, it becomes a function. Never understood, why.
 

Harris

Well-Known Member
Licensed User
WOW is right...

I shall have to agree with every single statement since they are all true... and there are many more!
That is why we all like (love) B4X.

all my questions were resolved by searches and without me needing to post a question
Now that is freakin impressive since I do not recall seeing your name here on this forum...

I could never aspire to your level of programming expertise yet I fear not...
ANYTHING I have ever tried to accomplish in this platform was easily accomplished with some searching, libs and classes, studying (learning) the examples posted by the pros and then (when stuck) asking properly formatted questions.

A "gift" of this platform is an understatement. I lack the mental capacity to properly define what it means to me and elevate beyond a gift...
 
Top