From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Nasser M. Abbasi" Newsgroups: comp.lang.ada Subject: Re: newbie, Spark 2014 or Ada 2012 Date: Mon, 06 Jul 2015 22:46:57 -0500 Organization: Aioe.org NNTP Server Message-ID: References: <974c8db0-c9e8-49d4-8db1-3417ec49217b@googlegroups.com> <87k2uenkcw.fsf@nightsong.com> <87615x9s3o.fsf@jester.gateway.sonic.net> Reply-To: nma@12000.org NNTP-Posting-Host: 8NUpq80EOZpQMEPcD5V8pw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:26670 Date: 2015-07-06T22:46:57-05:00 List-Id: On 7/6/2015 5:37 PM, Björn Lundin wrote: > Thanks, I have sorted out my issues. > The python documentation is good. > But - I often fall into the IndentationException trap Worst feature of any computer language I've seen. No closing token such as "}" or "end", to help the programmer _visually_ see and align the end of a construct or a block around. It depends on white spacings. White spacing is not visible as an "anchor" to align the eyes at as {...} or begin....end and I find I need more mental effort to see the code arrangement and the logic when looking at Python code due to its missing these visual anchors. I found this so bad of a design, and so distracting, that is why I did not look at Python after this. > when I have rewritten some code - > or find that I did not declare a variable There are no variable declaration in Python. Another bad feature of dynamics languages. Having variable declarations at the top of the function helps in self documenting the code as well. All of this is missing. > where I should, so after a change, > it is uninitialised when I read it - > which is same as reading an undeclared variable > and I get an exception. > Or not str(var) when I print it. > Welcome to the wonderful world of dynamic languages and duck typing. After 60 years of software engineering, the world has managed to get rid of all good solid programming features al in order to make programming "easier" for newbies. This is the first thing any one hears about Python or any language like it, it is "so easy" to program in it. (but wait until the bugs start showing up when the program gets larger than 100 lines and when has to maintain the program later.) > I know how to resolve the errors, > but it does not come as natural as Ada compile errors do. > > I find it more fragile. Or I am to bad at testing. > All the duck typing and loose typing languages are fragile. But this is by design. To make it easy to just type anything and it just supposed to know what you meant and it does it, thanks to duck typing. Try this is Lua for example (another one of those modern dynamic languages) ---------------------------------- >lua Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio > a=1+10 > print(a) 11 > a=1+"10" > print(a) 11 > ------------------------ See? It knew what to do. duck typing at its best. We need duck typing in Ada, to make it more popular and easy to program in ;) --Nasser