comp.lang.ada
 help / color / mirror / Atom feed
From: "Ingo M." <announce@amkade.com>
Subject: Re: How to make Ada popular. Get rid of ";" at end of statement.
Date: Tue, 23 Jul 2019 14:58:11 -0700 (PDT)
Date: 2019-07-23T14:58:11-07:00	[thread overview]
Message-ID: <5d9a8728-3c5b-4caf-b765-a455ba4d3523@googlegroups.com> (raw)
In-Reply-To: <qgtdf4$7ej$1@gioia.aioe.org>

Am Freitag, 19. Juli 2019 23:42:00 UTC+2 schrieb Nasser M. Abbasi:
> "Part of the reason for Python’s popularity is that it
> gets rid of the annoying conventions of other languages, such as
> using semicolons to indicate the end of a statement.

Python is popular because it is the "Basic" of our time. Basic was popular in the 70s because it was easy to handle for beginners who wanted to learn programming. Javascript (the "Basic" for the Web) is more complex for beginners since it requires basic knowledge how to deal with a web server. So Python is a good language for education.

Ada however is on the other end of the scale. It was developed for professionals who need a safe language for long-term mission-critical applications.

> So I'd like to make a suggestion: Remove ";" from Ada.

This is a bad idea. Semicolons may be annoying for small applications (which is typical for Python). However, if you deal with larger code bases then you realize that verbose syntax benefits maintainability. 

There are languages like OCaml which use even _double_ semicolons. This looks also annoying at the beginning. However, when you understand the design of OCaml then those double semicolons really make sense, and they don't look so annoying anymore. Many people are also disgusted by Lisp (all these strange parentheses). However, when you have realized the beauty of Lisp then those seemingly annoying parentheses get out of your focus quickly. They become just natural. In the same way Ada semicolons are just natural. In Ada you don't need to fear to insert larger code into your application since the compiler gets all information for clean inserts. Try to do that in Python (or Nim, see below), and you will get nervous at a certain code size.

I have the impression that newer languages like Python, Rust and Haskell are favored by some developers because it helps to develop "throw-away" software. Our industry is producing new devices rapidly which implies rapid code changes. It makes no sense for many products to deal with legacy code bases. It is more profitable just to write new software, and that explains also why anti-verbose languages with convenient toolboxes are so popular today. Bugs don't really matter if the product cycles are just short enough.

I think the larger a code base is the more a developer will esteem "boring" features like a verbose "archaic" syntax like Ada which eases readibility and maintainability. As for me, I have no problems at all to understand my own Ada95 code which I wrote decades ago. On the other hand, I had serious problems to understand my own Haskell code which I wrote just ten days ago :-) Regarding Haskell, someone condemned it as a "joke" regarding practically. This is a harsh statement. However, it is not that wrong. Try to write an MS office clone in Haskell -- good luck!

By the way, if you dislike languages with semicolon you should take a look at Nim (nim-lang.org). It is a Python-like language with native C performance. However, I wouldn't use it for big applications because of the whitespace indentation.

Regards,
Ingo

  parent reply	other threads:[~2019-07-23 21:58 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-19 21:41 How to make Ada popular. Get rid of ";" at end of statement Nasser M. Abbasi
2019-07-19 22:09 ` Dmitry A. Kazakov
2019-07-20  6:47   ` J-P. Rosen
2019-07-20  8:42     ` Paul Rubin
2019-07-21  5:11       ` J-P. Rosen
2019-07-23  9:24         ` darek
2019-07-20 17:08     ` Stéphane Rivière
2019-07-20 13:46   ` Dennis Lee Bieber
2019-07-20  0:47 ` Matt Borchers
2019-07-20 13:54   ` Dennis Lee Bieber
2019-07-20 14:40 ` Stephen Davies
2019-07-20 15:45   ` Optikos
2019-07-20 17:24     ` joviangm
2019-07-20 19:10       ` Optikos
2019-07-20 19:17         ` AdaMagica
2019-07-20 22:25           ` Paul Rubin
2019-07-20 23:08           ` Optikos
2019-07-20 22:24         ` Paul Rubin
2019-07-20 21:14   ` Keith Thompson
2019-07-23 21:58 ` Ingo M. [this message]
2019-07-23 23:56   ` Paul Rubin
2019-07-24 14:06   ` John Perry
2019-07-24 14:51     ` Ingo M.
2019-07-24 15:29       ` Dmitry A. Kazakov
2019-07-25 10:58         ` Ingo M.
2019-07-25 12:16           ` Dmitry A. Kazakov
2019-07-26 10:54           ` antispam
2019-07-26 11:35             ` Niklas Holsti
2019-07-26 16:07               ` Simon Wright
2019-07-24 19:52       ` Ingo M.
2019-07-24 20:31         ` J-P. Rosen
2019-07-25 13:34           ` gautier_niouzes
2019-07-25  7:26     ` Maciej Sobczak
2019-07-25 10:47       ` Ingo M.
2019-07-25 16:18       ` John Perry
2019-07-25 18:31         ` Dennis Lee Bieber
2019-07-26 18:04         ` Shark8
2019-07-26 18:53         ` Niklas Holsti
2019-07-26 19:16       ` Niklas Holsti
2019-07-27  1:27       ` Lucretia
2019-07-27  1:34         ` Keith Thompson
2019-07-27  3:11           ` Randy Brukardt
2019-07-27  4:06             ` Keith Thompson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox