Site Menu Project Specification Implementation Recommendations Reference Needs Updating Work in Progress Wastebasket Wiki Manual |
Design PrinciplesSpec.DesignPrinciples HistoryHide minor edits - Show changes to output 2015-09-21 17:32
by -
Changed line 19 from:
All built-in facilities must be type safe by default. Where type safety needs to be broken, it may be facilitated through explicit unsafe features. These must be marked unsafe and enabled by import from pseudo-module @@UNSAFE@@ or optional pseudo-module @@ASSEMBLER@@. No to:
All built-in facilities must be type safe by default. Where type safety needs to be broken, it may be facilitated through explicit unsafe features. These must be marked unsafe and enabled by import from pseudo-module @@UNSAFE@@ or optional pseudo-module @@ASSEMBLER@@. No other source of unsafe facilities shall be permitted. 2015-09-21 17:32
by -
Changed line 19 from:
All built-in facilities must be type safe by default. Where type safety needs to be broken, it may be facilitated through explicit unsafe features. These must be marked unsafe and enabled by import from pseudo-module UNSAFE or optional pseudo-module ASSEMBLER. No other source of unsafe facilities shall be permitted. to:
All built-in facilities must be type safe by default. Where type safety needs to be broken, it may be facilitated through explicit unsafe features. These must be marked unsafe and enabled by import from pseudo-module @@UNSAFE@@ or optional pseudo-module @@ASSEMBLER@@. No other source of unsafe facilities shall be permitted. 2015-09-20 12:00
by -
Changed line 27 from:
When considering the addition of a feature, we looked at in the context of the weight of the entirety of features, not in isolation. We observed an imaginary baggage allowance, whereby items had to be removed to make space for others to be added. Our aim was to avoid feature creep. to:
When considering the addition of a feature, we looked at it in the context of the weight of the entirety of features, not in isolation. We observed an imaginary baggage allowance, whereby items had to be removed to make space for others to be added. Our aim was to avoid feature creep. 2015-09-18 08:57
by -
Changed line 19 from:
All built-in facilities must be type safe by default. Where type safety needs to be broken, it may be facilitated through explicit unsafe features. These must be marked unsafe and enabled by import from pseudo- to:
All built-in facilities must be type safe by default. Where type safety needs to be broken, it may be facilitated through explicit unsafe features. These must be marked unsafe and enabled by import from pseudo-module UNSAFE or optional pseudo-module ASSEMBLER. No other source of unsafe facilities shall be permitted. 2015-09-18 08:56
by -
Changed line 16 from:
We followed the to:
We followed the '''Einsteinian simplicity''' principle ''“as simple as possible, not any simpler.”'' but we did not elevate simplicity to the status of dogma. Simplicity is a means to an end, not an end of itself. The end must be one of the primary design goals. Simplicity may thus sometimes be sacrificed for correctness, reliability and safety. '''Orthogonality''' of syntax is desirable when possible, but not at the expense of simplicity and clarity. 2015-09-18 08:55
by -
Changed line 16 from:
We followed the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”'' but we did not elevate simplicity to the status of dogma. Simplicity is a means to an end, not an end of itself. The end must be one of the primary design goals. Simplicity may to:
We followed the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”'' but we did not elevate simplicity to the status of dogma. Simplicity is a means to an end, not an end of itself. The end must be one of the primary design goals. Simplicity may thus sometimes be sacrificed for correctness, reliability and safety. '''Orthogonality''' of syntax is desirable when possible, but not at the expense of simplicity and clarity. 2015-09-18 08:55
by -
Changed line 16 from:
We followed the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”'' but we did not elevate simplicity to the status of dogma. Simplicity is a means to an end, not an end of itself. The end must be one of the primary design goals. Simplicity may to:
We followed the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”'' but we did not elevate simplicity to the status of dogma. Simplicity is a means to an end, not an end of itself. The end must be one of the primary design goals. Simplicity may therefore sometimes be sacrificed for correctness, reliability and safety. '''Orthogonality''' of syntax is desirable when possible, but not at the expense of simplicity and clarity. 2015-09-18 08:54
by -
Changed line 10 from:
* Suitability for mathematics to:
* Suitability for mathematics, engineering and mission critical systems. 2015-09-18 08:52
by -
Changed line 4 from:
* '''Prohibition of magic''' to:
* '''Prohibition of magic''' — Intuitive '''explicit syntax''' instead of magic implicit syntax. 2015-09-18 08:51
by -
Changed line 2 from:
* '''Modern''' — to:
* '''Modern''' — Meet today’s programming requirements. 2015-09-18 08:51
by -
Changed line 2 from:
* '''Modern''' to:
* '''Modern''' — meet today’s programming requirements. 2015-09-18 08:51
by -
Changed line 2 from:
* '''Modern''' to:
* '''Modern''' -- meet today’s programming requirements. 2015-09-18 08:50
by -
Changed line 3 from:
* '''Correctness''', ''' to:
* '''Correctness''', '''reliability''' and '''safety''' may not be sacrificed. 2015-09-18 08:50
by -
Changed line 9 from:
* Suitability as a '''safe to:
* Suitability as a '''safe alternative to C''' in systems development. 2015-09-18 08:49
by -
Changed lines 1-10 from:
!!!Primary Design Goals * ''' * * '''Clarity''' and '''maintainability''' of source code, specifically for readers other than the author. * '''No magic''', intuitive '''explicit syntax''' is always preferable to magic implicit syntax * to:
!!! Primary Design Goals * '''Modern''', meet today’s programming requirements. * '''Correctness''', '''Reliability''' and '''Safety''' may not be sacrificed. * '''Prohibition of magic''', intuitive '''explicit syntax''' instead of magic implicit syntax. * '''Clarity''' and '''maintainability''' of source code through '''literate syntax''', especially for readers other than the author. * Obsolescence when necessary, non-interference of backwards compatibility concerns with any of the above principles. !!! Targeted Areas of Application * Suitability as a '''safe''' alternative to C in systems development. * Suitability for mathematics and engineering. * Suitability as a core language for domain specific supersets. * Suitability as a general purpose application development language. * Suitability as a teaching language to teach engineering principles and best practises. !!! Simplicity Guidelines We followed the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”'' but we did not elevate simplicity to the status of dogma. Simplicity is a means to an end, not an end of itself. The end must be one of the primary design goals. Simplicity may at times be sacrificed for correctness, reliability and safety. '''Orthogonality''' of syntax is desirable when possible, but not at the expense of simplicity and clarity. !!! Safety Guidelines All built-in facilities must be type safe by default. Where type safety needs to be broken, it may be facilitated through explicit unsafe features. These must be marked unsafe and enabled by import from pseudo-modules UNSAFE or optional pseudo-module ASSEMBLER. No other source of unsafe facilities shall be permitted. !!! Feature Omission Guidelines Changed line 24 from:
!!!Feature Addition Guidelines to:
!!! Feature Addition Guidelines Changed lines 29-30 from:
!!!Backwards Compatibility Guidelines If a certain practise is outdated, such as the use of octal numerals, then a feature that has no other use than to support that practise can no longer be justified and consequently we removed it without any regard for backwards compatibility of source code. Instead, a source to source translator tool should be seen as a suitable solution to backwards compatibility issues that arise from removal of outdated features. to:
!!! Backwards Compatibility Guidelines If a certain practise is outdated, such as the use of octal numerals, then a feature that has no other use than to support that practise can no longer be justified and consequently we removed it without any regard for backwards compatibility of source code. Instead, a source to source translator tool should be seen as a suitable solution to backwards compatibility issues that arise from removal of outdated features. 2015-09-18 08:04
by -
Changed line 6 from:
* '''No to:
* '''No magic''', intuitive '''explicit syntax''' is always preferable to magic implicit syntax. 2015-09-18 08:04
by -
Added lines 1-19:
!!!Primary Design Goals * '''Revision''' of the language in the general context of today’s programming requirements. * Following the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”'' * Suitability as a '''safe''' alternative to C in systems implementation and systems programming. * '''Clarity''' and '''maintainability''' of source code, specifically for readers other than the author. * '''No Magic''', intuitive '''explicit syntax''' is always preferable to magic implicit syntax. * '''Orthogonality''' of syntax where possible, but not at the expense of simplicity and clarity. * Non-interference of backwards compatibility concerns with any of the above principles. !!!Feature Omission Guidelines In the context of modern programming practise, if we found the omission of a feature to be reasonable and justified then we considered its removal. Conversely, if we found its omission to to be unreasonable and unjustified then we rejected its removal. We aimed to avoid oversimplification. !!!Feature Addition Guidelines We considered a new feature for adoption if a clear need could be demonstrated and if we found it to be reasonable and consistent with the overall design philosophy. We put a particular emphasis on suitability for systems implementation and systems programming as well as interfacing to C. We aimed for the ability to replace C as a systems implementation language. When considering the addition of a feature, we looked at in the context of the weight of the entirety of features, not in isolation. We observed an imaginary baggage allowance, whereby items had to be removed to make space for others to be added. Our aim was to avoid feature creep. !!!Backwards Compatibility Guidelines If a certain practise is outdated, such as the use of octal numerals, then a feature that has no other use than to support that practise can no longer be justified and consequently we removed it without any regard for backwards compatibility of source code. Instead, a source to source translator tool should be seen as a suitable solution to backwards compatibility issues that arise from removal of outdated features. |