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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 5b1e799cdb,3ef3e78eacf6f938 X-Google-Attributes: gid5b1e799cdb,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!postnews.google.com!a26g2000yqn.googlegroups.com!not-for-mail From: Ludovic Brenta Newsgroups: comp.lang.eiffel,comp.lang.ada,comp.lang.modula3,comp.programming Subject: Re: Alternatives to C: ObjectPascal, Eiffel, Ada or Modula-3? Date: Sat, 18 Jul 2009 08:23:17 -0700 (PDT) Organization: http://groups.google.com Message-ID: References: <4a61e20e$0$2865$ba620e4c@news.skynet.be> NNTP-Posting-Host: 88.170.86.208 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: posting.google.com 1247930597 12033 127.0.0.1 (18 Jul 2009 15:23:17 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 18 Jul 2009 15:23:17 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: a26g2000yqn.googlegroups.com; posting-host=88.170.86.208; posting-account=pcLQNgkAAAD9TrXkhkIgiY6-MDtJjIlC User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.11) Gecko/2009061208 Iceweasel/3.0.9 (Debian-3.0.9-1),gzip(gfe),gzip(gfe) Xref: g2news2.google.com comp.lang.eiffel:298 comp.lang.ada:7132 comp.lang.modula3:25 comp.programming:11756 Date: 2009-07-18T08:23:17-07:00 List-Id: Francois PIETTE wrote: > > I'm a CS student and I often need to write number-crunching code dealing > > with combinatorial optimization problems. > > In the past I used C, but now I have decided to change language. > > I'm looking for a "better" one. > > > Here follow the features it should have, ranked approximately by > > relevance: > > > 0) open-source support and an alive community > > 1) directly compiled to efficient code > > 2) statically typed and object-oriented, better if multi-paradigm > > 3) general-purpose libraries (possibly standardized, either by standard or > > de facto), including containers and some math abstractions. > > 4) garbage collected. As an alternative, provide memory management > > policies via libraries (e.g. memory pools and such) > > 5) optional run-time checks and some kind of control over compilation and > > low-level issues > > 6) "relatively simple and consistent" > > > So I have considered these alternatives: FreePascal, Eiffel, Ada and > > Modula-3. > > You said you are a student. So probably your goal is to get a job after your > studies. If this is the case, you forgot the most important thing regarding > language selection: The possibility to get a job ! > > In that context, I wouldn't use any of the language you mentionned ! Ok, > maybe FreePascal which would be replaced by Delphi or Delphi Prism once you > are in a company for a real work. If it is not Delphi, then use C# or Java. > It is likely that Delphi would be the fastest regarding number crunching. > > Delphi has a large and alive community. You can find a lot of opensource and > freeware for Delphi. The OP already knows C, so he will not have any problem finding a job. Choosing a language based on perceived demand is a bad idea. A CS student is supposed to learn as many languages as possible so as to be able to compare them later, and not become captive of any one language. Even more importantly, you need to learn paradigms; this makes it easy to pick up any language that a job requires later on. Conversely, hiring people based on the languages they know is an equally bad idea. If you think knowledge of a particular language is a must for an engineering position, you are wrong. Better criteria include (but are not limited to) knowledge of sofware design (not just "design patterns"; the real thing), algorithms, version control systems, ability to work in teams, understanding of software maintenance and general attitude towards software quality. I think the OP understands all this very well; that's why he did not mention job opportunities or market demand in his criteria for language selection. Banks and insurance companies also understand this; they train their new hires in COBOL or Ada and don't care what languages they knew previously. (PS. comp.lang.pascal trimmed because it's archived now). -- Ludovic Brenta.