Jump to page: 1 2
Thread overview
What criteria do you take
Sep 06, 2014
Cassio Butrico
Sep 06, 2014
deadalnix
Sep 06, 2014
Paulo Pinto
Sep 06, 2014
ketmar
Sep 06, 2014
monarch_dodra
Sep 06, 2014
Kagamin
Sep 06, 2014
Kagamin
Sep 06, 2014
Marco Leise
Sep 06, 2014
Paulo Pinto
Sep 06, 2014
Cassio Butrico
Sep 07, 2014
Cassio Butrico
Sep 07, 2014
Nick Sabalausky
Sep 07, 2014
Marco Leise
Sep 07, 2014
Cassio Butrico
Sep 08, 2014
Nick Sabalausky
Sep 11, 2014
Alex Ogheri
September 06, 2014
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
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
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
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
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
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
If nothing imposes additional restrictions
1. efficient
2. C family
3. safer than C
4. nicer than C++
September 06, 2014
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
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
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

« First   ‹ Prev
1 2