1. Why FreePascal ?
  2. What is Bidi And Fribidi ?
  3. What does this project all about ?

Why FreePascal ?


For answering this, We should ask "why Pascal ?"
The answer is very simple.. but let me sell you Pascal, and if you are a c/++ developer, then I'll see your reaction :)

This text was taken from the FreePascal site, and I also added few of my own points of review, fixes and addition to existing points :)

  • Very clean language. Pascal is a very nice language, your programs will be more readable and maintainable than for example in C, and let's even forget about C++. And you don't need to give up the power, the Pascal language is as powerful as you want it.

  • No Makefiles. Unlike most programming languages, Pascal does not need Makefiles. You can save huge amounts of time, the compiler just figures out itself which files need to be recompiled.

  • Pascal compilers are Fast with a big F and Free Pascal is no exception. Yes, you no longer need to grow roots while compiling your programs, just hit the compile key and it's done, even for large programs.

  • Each unit has it's own identifiers. In Pascal you never need to worry about polluting the namespace, like in C where an identifier needs to be unique accross the entire program. No, in Pascal each unit gets it's own namespace and that's very relaxed.

  • Great integration with assembler. Do you think pascal is for wimps who need to learn programming? WRONG! It's excellent for high tech programming and for the supreme nerds among you we have the integrated assemblers. You can easily mix assembler code and Pascal code, in the language you wish? Prefer Intel styled assembler? No problem, if it's needed Free Pascal will convert it to AT&T for you. Do you want to convert your program into a source file for Nasm? No problem, and all AT&T assembler in your source files is automatically converted.

  • Object oriented programming. And if you do the serious programming, you are of course very interested in object oriented programming. Use the Turbo Pascal and Object Pascal ways of OOP according to your taste. The FCL and Free Vision provide you with the powerful object libraries you need. For your database needs we support PostgreSQL, MySQL, Interbase/FireBird SQL, ODBC and DBase. Database like Oracle are under development (true for the time this document last edited).

  • Smartlinking. Free Pascal's smart linker leaves out any variable or code that you do not use. That makes small programs small with a big S, while they are still statically linked, avoiding DLL hell!

  • Distribution independence (Linux). As a result of this, software compiled by the Linux version of Free Pascal runs on any Linux distribution, making it much, much, easier to make your software support multiple Linux distributions.

  • Available for a lot of platforms on several architectures. Free Pascal is available for more platforms than most other Pascal compilers and allows easy cross-compiling, just change the target in the IDE and compile! And there is work going on for even more platforms and processors.

    Like: MS-Windows, MS-DOS, Linux, FreeBSD, OS/2, SunOS (aka Solaris), BeOS (be.com was sold => does not exists), NetBSD, Mac-OSX, Netware, WDOSX-DOS, OpenBSD, Watcom, MorphOS, PalmOS, QNX, Amiga.

    Architectures: i386, PowerPC, Sparc, AMD64, m68k, Arm.

    And could be more support since the last edit that I made to this document :)

  • Compatible. Have existing code? Free Pascal is more compatible with it than any other Pascal compiler. We are almost completely compatible with Turbo Pascal and quite well compatible with Delphi source code. If you have code in another language, like C or assembler, just use favorite compiler for it and call it from Free Pascal.

  • "C and C++ are more popular than Pascal". I have only one answer for that :
    "A billion flies can be wrong - I'd rather eat lamb chops than shit."
           -- Linus Torvalds on LKML

[TOP]

What is Bidi And Fribidi ?


Bidi - It's an abbreviation of the phrase Bi-Directional. It means 2 sides...
If you are using languages like Arabic/Hebrew/Tai/Urdu/Aramiec/Yiddish/Farzi that are written from Left to right, you have noticed that when you are using at least a word of your own language, and any left to right language (such as English) in a computer, there are some big problems like:

  1. Imposible to select both texts on one selection.
  2. The computer only go to the right, but never gows to the left (or Vise Versa).
  3. If you write some words in English and the rest on the other language and back to English (or the other way around) the order is mixed, and you do not know what comes before what.
  4. Signs like "-" and numbers (aka Arabic numbers...) makes the Original language go crasy, like placing it on the false position or unable to remove the text currectly.

And more siptoms as well, caused developers to find a selution for that.
The selution is an algorithem known as BiDi (you can find it in the address of: http://www.unicode.org/reports/tr9/) that algorithem know how to handle 2 (or more) languages of diffrent directions at the same pharagraph.
The Handeling of the 2 directions on the same pharagraph is called Bi-Directional or for short BiDi

Fribidi (http://freedesktop.org/Software/FriBidi) is a library that takes the Algorithem of BiDi and implement it for Arabic, Hebrew and Farzi langauges.
This library consider to be one of the most complete and bug free (hmm.. i don't know any code that is truly bug free) that perform the algorithem.
It support Unicode and ANSI codes (ISO-8859-6, ISO-8859-8, ISIRI-3342, cp1255 [ISO-8859-8-i] and cp1256 [ISO-8859-6-i]).

[TOP]

What does this project all about ?


This project was created in order to give some good basics tools for the use of hebrew in a flowed use at first place using FreePascal. Afther the basics, to give more advanced tools and entier interfaces using Hebrew in FreePascal (and also in other langauges), and all this in an invisible way for the developer, in a manner of development and user langauges.

And now for the simpler explanetion :)

When a people comes from a Latin based langauge, they do not encounter any type of difficulty to develop a program. All they need is to put thier effort in the program itself. And that is my goal ! That the Hebrew users, will not need to warry of how to use the langauge, and simply develop a program in Hebrew in a natural manner without any problem.

Cool, but please stop all this slogans and please answer Why Pascal ?

First of all, I really belive that Pascal is an excellent langauge, and capble to perform much more then what many people think. I will not enter the flamming argument of what is the best language to do something. I simplly think that working in Pascal, with humen langauges stuff, is really much simpler then using C and C++ with all of thier useless pointers that cuse many of the problems we encounter in software.
Yes! I do know that languages like Perl (I use this language and really like it!) are made to deal with human languages in a fine way, but if i would like that my program will run as an OS for example, langauges like Perl are usless and only Pascal and C remains on the battle field.And YES! I do belive that Pascal is capable to win with the combat like so, with honor, and can humiliate C on this battle zone.

And now for the answer with less provokative...

Pascal still exists on may schools, and if I'll give good tools for students, they could work better with Hebrew, And there-for also work with more ease with a computer.

[TOP]

Free Pascal logo SourceForge.net Logo This site was written using gVIM - VI-Improved PHP logo Lazarus IDE web-site
Valid CSS!