Why Use BAR?

One of the most common questions I’ve found people asking me is this: Why would I want to use BAR or BARfly? What advantage do I gain by using this product?

Hmmm…if the product features described in the Main BARfly Website don’t provide a good answer, it will be a hard question to answer.

It’s possible your needs are very specific. For this reason, I’ve provided in the documentation some ideas about who you might be and why you would want to use BARfly. A quick rehash:

  1. Software Developers: People wanting to write code to support and maintain particular file formats
  2. Software Architects: People wanting to design structural elements to a software application
  3. Software Testers: People wanting to examine the contents of generated files or memory content
  4. Security Auditors: People wanting to study a company’s ability to keep data secure from hackers and crackers
  5. Database Administrators: People wanting to detect flaws and inefficiencies in a database, as well as develop solutions
  6. System Troubleshooters: People wanting to audit, diagnose, and fix files (tasks that were expensive or impossible before BARfly)
  7. Network Administrators: People wanting to examine traffic over a network in a schema-oriented fashion
  8. System Administrators: People wanting to do a number of the things listed above
  9. Cryptographers and Cryptanalysts: People trying to design and crack encrypted formats
  10. Casual Validators: Analysts that wants to check a file for consistency
  11. Data Entry Specialists: Individuals that must perform high-throughput data entry and format conversions
  12. Very Curious People: Individuals wanting to find out what all that weird unreadable stuff on their hard drive is

There are three builds of BARfly, which have capabilities reflecting the needs of the user:

  1. BARfly Bronze: Contains only viewing capability. You can view files, but you cannot edit them. Nor can you develop your own BAR implementation files.
  2. BARfly Silver: Contains viewing and editing capability. You can view files, edit them, and save them. You cannot develop your own BAR implementation files.
  3. BARfly Gold: Contains viewing and editing capability, plus the ability to develop BAR implementation files. This build comes with an integrated compiler, BARCC, that allows a user unlimited ability to create, edit, test, and use customized schemas.

Now, as for using the BAR engine in your own application, I’ll let you answer that question yourself. There are a HUGE number of technologies and languages being used. The fact that many “meta-languages” have been created has actually made the problem worse, because when people program in a meta, it actually reduces the readability and comprehensibility of the code or markup being written.

What’s to gain by learning an entirely new one? A lot, actually. For the most part, there’s very little to learn. If you know C++, you’ll know about 98% of BAR. BAR tries to keep the scripting and data-definition language low-level for handling low-level data. Where BAR is truly unique is in two simple definition types: blocks, and lists.

Think of BAR as the “XML Schema” for all files, text or binary. There are profound advantages to having applications reference platform-independent schemas for all their architecture, whether it’s in-memory only, secondary-storage only, or some combination of the two.

As of this writing, no attempt has been made to offer the BAR software development kit on this website. If enough people have looked at the documentation and are interested in trying it out, I’ll release it at a very reasonable cost, perhaps even for free.

Leave a Reply