-
Notifications
You must be signed in to change notification settings - Fork 1
Alore frequently asked questions
What is the purpose of Alore?
The primary goal of Alore is to combine a scripting language and a statically-typed general-purpose language in one language that is easy to learn and use. Alore also aims at high programmer convenience and productivity (including a very fast edit-test cycle), easy maintainability and a design that allows runtime efficiency comparable to statically-typed languages such as Java.
Alore is nice, but could I have more library modules?
There is still important library functionality not available for Alore. We have concrete plans for overcoming this limitation:
- Only a relatively small set of library functionality is used by a large fraction of all programs. We have analysed this with a large corpus of Python and Java code. We focus Alore development efforts on widely used features. This has two main advantages. First, the Alore library remains compact and bloat-free while containing the important functionality. Second, we can implement a wide range of library functionality even with limited developer resourcers.
- We are planning to implement a Alore-Python bridge that allows accessing Python modules from Alore programs. This allows using also the less-frequently used library features, even if some of those are not available in native Alore modules.
How is Alore different from languages such as C# that allow both static and dynamic typing?
Alore has a fundamentally different approach to dynamic typing than C#.
C# is a statically-typed language, but it allows some variables to be declared to have dynamic types. C# does not make it convenient to write pure dynamically-typed programs. For example, dynamically-typed container types are not compatible with statically-typed ones.
Alore has a perfectly capable pure dynamically-typed subset, and this subset can smoothly interoperate with statically-typed parts of a program. In addition, type checking can always be bypassed. This allows programs with type errors to be debugged, and allows almost immediate edit-test cycle for large programs without long compilation or type checking delays.
Why not use indentation for block structure, like Python?
Even though Alore is resembles Python in many ways, unlike Python, Alore uses explicit block end markers instead of indentation to mark block structure. There are several reasons for this. Here are just a few:
- Most programmers are familiar and comfortable with explicit block markers, as they are used in languages such as Java, C, PHP and Ruby. We believe that explicit block markers make Alore easier to learn for the majority of existing programmers.
- It is common to embed programming languages within HTML or XML document templates. The lack of explicit block structure makes this cumbersome for Python. This may be one reason why Ruby (which has explicit block end markers) gained prominence as a web development language, even though Python had a head start in popularity (another reason is Rails).
However, future Alore versions may have optional block end markers, and allow using indentation-based block structure.