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=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable 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!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.ada Subject: Re: newbie, Spark 2014 or Ada 2012 Date: Sun, 05 Jul 2015 18:30:23 -0700 Organization: A noiseless patient Spider Message-ID: <87k2uenkcw.fsf@nightsong.com> References: <974c8db0-c9e8-49d4-8db1-3417ec49217b@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="4fa08f1ce1db3b0ae8c51611453a050c"; logging-data="30250"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+IayAW66Wq+U/L1NI0ufxh" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:p2s0hCfb3bziaj6oO8nHCo+EVN8= sha1:clXo/k7kM6VvTyR3PSnDoP1cG98= Xref: news.eternal-september.org comp.lang.ada:26623 Date: 2015-07-05T18:30:23-07:00 List-Id: nomadlite@gmail.com writes: > I am new to Ada. > I am choosing my hobby programming language for system programming. I > am doing programming for a hobby. It is going to be Java, python, VB > .Net or Ada/Spark. Ada is the only one of those suitable for what I usually think of as system programming, i.e. close to machine level. The others are for application programming, which is further away from the hardware and which are able to automate more of the program's requirements (particularly memory management). That makes them easier to use, at the cost of some efficiency and timing determinism. Are you new to programming in general? The first thing I'd want to ask is if there are specific types of programs you'd like to write: OS kernels, robot control, web servers, or what? If you don't have a clear direction yet, I'd say that Ada probably isn't the best place to start. Python doesn't have Ada's high-reliability features or its performance, but it's easier to learn and more productive for slapping small, non-critical projects together. Ada is for when you need large scale organization and deeper control and assurance about what the code is doing. Those benefits are sometimes invaluable, but they don't come for free. Think of the difference between hopping on your bike and riding somewhere (Python) and flying a jetliner there, complete with mechanical preparation and preflight checklists (Ada). > If I learn Ada 2012 then learn Spark 2014, is it often to confused > Spark 2014 code with Ada 2012 code when you do programming? No I don't think so. Spark is basically a subset of Ada with some extra annotations to write high-level specifications into your program, and then some tools for making sure the program actually matches the spec. This can get pretty complicated to use, but it's basically the gold standard for high-assurance real time programming. You probably want to know some mathematical logic if you want to use Spark in a sophisticated way. If you like the mathematical-logic approach to programming, you might also like to try out Haskell. It's much further "out there" than the other languages you've mentioned but brings a cleaner mathematical approach. See: http://haskell.org for some resources.