| Thread overview | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
September 06, 2014 What criteria do you take | ||||
|---|---|---|---|---|
| ||||
What criteria do you take into consideration for the choice of a programming language. and why? does not mention what language would be, but what criteria led them to choose. | ||||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico | On Saturday, 6 September 2014 at 02:30:50 UTC, Cassio Butrico wrote:
> What criteria do you take into consideration for the choice of a programming language.
> and why? does not mention what language would be, but what criteria led them to choose.
Expressiveness is king. Preferably both high and low level.
| |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico | Am 06.09.2014 04:30, schrieb Cassio Butrico:
> What criteria do you take into consideration for the choice of a
> programming language.
> and why? does not mention what language would be, but what criteria led
> them to choose.
Depends.
At work, I just use whatever the customer asks for. Programming languages and target platforms are already part of the request for proposals the company receives.
The only way to choose languages is to try to get assigned to projects using the said languages, but even then, there isn't a way to control what versions are being used, unless it was left undefined.
If choosing for my own hobby projects, expressive, supporting the majority of abstractions of the last 30 years that made it into the mainstream.
Support for the desired target platforms, availability of libraries and IDE support, including debuggers also play an important role.
--
Paulo
| |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico | On Saturday, 6 September 2014 at 02:30:50 UTC, Cassio Butrico wrote:
> What criteria do you take into consideration for the choice of a programming language.
> and why? does not mention what language would be, but what criteria led them to choose.
First of all I want efficient generated code: fast and small.
Then I love also very small source code, so expressiveness matters too.
| |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico Attachments: | On Sat, 06 Sep 2014 02:30:49 +0000
Cassio Butrico via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> What criteria do you take into consideration for the choice of a
> programming language.
> and why? does not mention what language would be, but what
> criteria led them to choose.
"fun factor". it *absolutely* *must* be fun to write in this language. Scheme is fun. Smalltalk is fun. D is fun. C is boring. C++ is disgusting. python is ugly. java is just trash. and so on.
| |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico | On Saturday, 6 September 2014 at 02:30:50 UTC, Cassio Butrico wrote: > What criteria do you take into consideration for the choice of a programming language. > and why? does not mention what language would be, but what criteria led them to choose. In the words of Marshall Cline, "programming language selection is dominated by business considerations, not by technical considerations." http://earth.uni-muenster.de/~joergs/doc/cppfaq/big-picture.html#[6.4] So I'd just chose whatever I *know* that I *could* use to solve a problem. If it works perfect. | |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico | If nothing imposes additional restrictions 1. efficient 2. C family 3. safer than C 4. nicer than C++ | |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Kagamin | Hehe, or like this: 1. C family 2. more efficient than Java/C#, like C/C++ 3. safer and nicer than C/C++, like Java/C# | |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico | On Saturday, 6 September 2014 at 02:30:50 UTC, Cassio Butrico wrote:
> What criteria do you take into consideration for the choice of a programming language.
1. Platform support, language stability and solid backing.
Compiled imperative programming languages are more or less alike, so platform support is usually the criterion that affects selection most and closely related to stability (of all kinds).
2. Learnability. Comprehensible structure of libraries.
Learning a new imperative language is typically done in a week or less. It is learning the libraries that takes most time, so I prefer languages that use standard structuring of core libraries (less to learn).
3. Expressiveness and rapid evolutionary development. Basically cheaper development.
4. Type-safety.
5. Predictable performance and portability. C/C++/shader-languages supports this well.
6. Transparency.
I want to understand what goes on in the runtime. C supports this very well. Big frameworks does not. I avoid big frameworks if possible since I they tend to imply limitations that are hard to work around.
Quick evalution of D:
1. D lacks platform support, language stability and backing. I don't plan on using D for paid projects until I understand the compiler internals so well that I know that I can fix it myself.
2. D is fairly easy to learn, except for quirks. Libraries could be more comprehensible, but I don't depend on them since D interfaces with C/C++.
3. D has decent expressiveness. Better for rapid development than C/C++, but Python does better.
4. D has acceptable type safety, but could do better at compile time correctness.
5. I think the C world overall does better at performance and portability at the moment.
6. The D runtime structure is too big for my liking, and not very transparent, but if you go to the trouble of modifying the compiler anyway it is not all that bad.
| |||
September 06, 2014 Re: What criteria do you take | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Cassio Butrico | Am Sat, 06 Sep 2014 02:30:49 +0000 schrieb "Cassio Butrico" <cassio_butrico@ig.com.br>: > What criteria do you take into consideration for the choice of a > programming language. > and why? does not mention what language would be, but what > criteria led them to choose. In a start-up: - known and been used by many developers - low potential of running into unsolved issues - rich eco-system with a potential solution for anything I planned - lots of free/open source solutions to get started without a big investment first - works as well for programmers on Windows/Linux/OS X - minimizes internal bike-shedding In other words Java. :) The only bike-shedding I ever had was weather we should write getID or getId. One says "ID" is the correct abbreviation of identification, the other says the field's name is "id" and camel case rules dictate "getId". Personally it just comes down "fun to work with" and my bias towards maximum efficiency and static checking through the compiler. D ranks very high here. + templates, CTFE and UDAs are fun to work with; it is easy to do meta-programming with these tools + if needed also works as a "better-C" + can use efficient C libraries without conversion layer + dynamic linking allows for small native executables and memory reuse of already loaded read-only segments of phobos2.so. + lots of static checking and template constraints + removes friction between systems by defining long as 64-bit and character arrays to be in Unicode encoding - incompatible ABI between compiler vendors requires 3 installations of the same lib to do testing with each - inline ASM syntax also diverges between vendors - GC implementation and efficiency issues - being flexible, safe and efficient at the same time is sometimes a liability; e.g. File.byLine buffer reuse issue, Java taking the freedom to offer inefficient operations on all containers to keep them interchangeable. Before D I used Delphi. It is IMHO the best programming environment for efficient, native GUI applications on Windows. It comes with integrated compiler, linker, debugger and that sort of stuff and the GUI designer is integral part of the IDE. Most other GUI designers feel like or are an external tool with no interaction with the code editor. -- Marco | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply