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: border2.nntp.dca3.giganews.com!backlog4.nntp.dca3.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!goblin3!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED!not-for-mail From: "Nasser M. Abbasi" Newsgroups: comp.lang.ada Subject: Re: Your wish list for Ada 202X Date: Sat, 12 Apr 2014 05:17:42 -0500 Organization: Aioe.org NNTP Server Message-ID: References: <7f1c01c5-3563-4b94-9831-152dbbf2ecdc@googlegroups.com> <8bhozh836pyt$.1qctlysud0s2q$.dlg@40tude.net> <1cdsyxjzsfgzm.1synpaujysv21$.dlg@40tude.net> <1aa804jg9qq4o$.wdiq33yo621l.dlg@40tude.net> <1w6eh0aiksmdh$.1h16p7y0b8c6h.dlg@40tude.net> <17twpp4p8u7o$.1idvzaaio4f3t$.dlg@40tude.net> <1wjmcbk375lzk.6o7dpqcp3va3.dlg@40tude.net> <1126zcuq75dmc.1pgvr5xlvkxp5$.dlg@40tude.net> Reply-To: nma@12000.org NNTP-Posting-Host: 7pEHGS+B4V/UqyqhVfVAew.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 X-Notice: Filtered by postfilter v. 0.8.2 X-Original-Bytes: 3847 Xref: number.nntp.dca.giganews.com comp.lang.ada:185698 Date: 2014-04-12T05:17:42-05:00 List-Id: On 4/12/2014 4:38 AM, Dmitry A. Kazakov wrote: >> In Julia, the way I understand it, when defining a function >> with some signature, then a compiled instance of this function >> is made for all the possible primitive types (int16, int32, >> real32, real64, etc...) > > Is made by whom? > If you mean in implementation, it is the by the "just-in-time (JIT) compilation, implemented using LLVM" The actual language is designed in MIT. >> and when the program is run, >> the run-time automatically dispatches to the correct matching >> function based on the argument used at time the call is made. > > Really? What is the "correct matching" function of int16/real32? Can I have > real_bounded_interval_64? What would be int16/real_bounded_interval_64? Who > does linear system equation resolution function for int16? > From http://julia.readthedocs.org/en/latest/manual/introduction/ it says "The ability to define function behavior across many combinations of argument types via multiple dispatch" ..... "While the casual programmer need not explicitly use types or multiple dispatch, they are the core unifying features of Julia: functions are defined on different combinations of argument types, and applied by dispatching to the most specific matching definition." It seems to be strongly typed language, but in dynamic sense, (when running the program, one finds their errors) and not at compile time. I am no expert in Julia, I just build it on Linux and played with it a little, since it has syntax that is close to Matlab in some sense. The above link talks more about the design of the language itself. I only mentioned it, since dynamic languages seems to be the trend these days, and this was a good example. > The idea that there exist "primitive" and "non-primitive" types is garbage. > The idea that any operation is applicable to any type is garbage. > >> Those good old fashioned, strong static type checking >> at compile time computer languages, seem like, well, old >> fashioned these days. > > If even members of ARG seem not to believe in merits of strong typing or > whatever typing... > Yes, strong static typing is a good thing. --Nasser