6
votes

Quelles sont les propriétés les plus importantes des langages de programmation pour vous?

Pour moi, c'est: Type fort

wikipedia :

"STROR TYPING" implique que le langage de programmation place de graves restrictions sur l'intermaxe permettant de se produire, empêchant la compilation ou l'exécution du code source qui utilise des données dans ce qui est considéré comme invalide

Pourquoi c'est important? Parce que j'adore la compilation d'erreur de compiler beaucoup plus que l'erreur d'exécution .

Je suppose qu'il est préférable de fournir des informations et des raisons pour lesquelles il est important.


3 commentaires

Que cela fonctionne pour la tâche à accomplir.


Peut-être que: Je tolérer une erreur compilée beaucoup mieux que l'erreur d'exécution :)


Le typing fort n'a rien à voir avec la recherche d'erreurs lors de la compilation. Ce serait une typographie statique.


9 Réponses :


5
votes

expressivité.

C'est-à-dire qu'il est facile d'exprimer la conception et les idées et ne nécessite pas de contournement technique pour faire un travail de conception.


6 commentaires

soin d'expliquer plus profondément? Voulez-vous dire par expressif est-ce que Turing Turing Langues?


Toutes les langues de programmation réelles sont complètes et plusieurs contiennent un autre sous-ensemble Turing-complet (tels que les modèles C ++).


Quels sont les différents entre expressifs et concis?


@Nanda - Concise signifie bref, bien que informatif. Expressif n'est pas liée de la longueur, mais de pouvoir exprimer différents modèles sans la langue d'être dans la voie.


@Madkeithv: Nope, ce n'est pas le cas. Il existe des langues «réelles» complètes comme Agda et Epigram. [Leur exhaustivité non turicing est en raison de la totale de leur système de type.] Bien sûr, votre définition d'un vrai langage de programmation pourrait être différente du mien, mais pour moi Agda et Epigram qualifiaient de véritables langues de programmation.


Apprenez quelque chose de nouveau tous les jours! Merci Rahul - Je recommande Frankmccabe.wordpress.com/ 2008/09/30 / ... pour les autres intéressés par des langues complètes et leur potentiel.



1
votes

Syntaxe concise, mais sans ambiguïté.

Visual Basic: C'est clair ce qui se passe, mais c'est très verbeux.

Perl: C'est assez concis, mais vous obtiendrez des programmes plus clairs en frappant votre clavier au hasard.

C #: juste juste: d


4 commentaires

Perl est lisible quand il est écrit bien, mais je l'ai appris d'abord. Personnellement, je trouve C # et Java pour être horriblement verbeux.


Je ne peux pas supporter Perl. Et je conviens que Java est également assez verbeux. Mais, c # a fait de grands progrès ces dernières années à la concision, tout en maintenant une syntaxe très sans ambiguïté. Je suppose que je suis un fanboy C #, puis: D


J'étais juste là avec toi, jusqu'à ce que c # .... La réponse est l'homme Lisp, Lisp. (langue fermement dans la joue)


Cobol: Qu'est-ce que diable !? @Mikecaron: Java était verbose en raison des haricots java de merde, qui encouragaient ce style horrible. Avec javafx, il est beaucoup moins verbeux imho



1
votes

pris en charge de telle manière que cela permet de déploiement rapide après de bons tests.


2 commentaires

Je ne pense pas que c'est une propriété Langue


Techniquement vrai. BWT, je ne veux pas dire «soutenu» en ce sens qu'il y a un service d'assistance, mais qu'il y a une outillage supplémentaire / IDE / etc. fournie pour la langue. Ce qui n'est pas une propriété de langue non plus, mais toujours d ** n important pour moi.



4
votes

Cela fait du travail. Je pense que c'est bien de connaître plus d'une langue. Autant que j'apprécie C #, je ne pense pas que ce soit le meilleur de tout. Donc, pour moi, je viens de regarder la tâche à portée de main et quelles sont certaines des exigences, puis essayez de choisir une langue qui correspond le mieux.


0 commentaires

2
votes

Il est important que le code ressemble à un pseudo-code, en ce qu'il est facile de lire et d'écrire. Il n'y a pas de mesure objective pour cela, car au fil du temps, la langue et le programmeur ont tendance à se plier les uns envers les autres.


0 commentaires

3
votes

1 ) Typage fort et caractéristiques qui le supportent .

c # / java v1.0 ont été fortement typées des langues, mais parfois, vous deviez briser la typing statique, car il n'y avait tout simplement pas assez d'expressivité pour faire des choses et l'avoir saisi de manière statique (c'est-à-dire que vous avez besoin de moulages, lorsque vous tirez des objets d'un past Collection par exemple).

Generics, bien sûr, améliorer la situation beaucoup et que les choses obtiennent encore plus de Merrier dans des langues prenant en charge des génériques d'ordre supérieur (comme Scala).

2 ) concis. Si c'est évident, je ne devrais pas avoir besoin de l'écrire. Type Inderence est un excellent outil pour cela.

3 ) une grande bibliothèque. Si cela est souvent nécessaire, je ne devrais pas avoir besoin de l'écrire.


0 commentaires

-2
votes

Être en train d'être Turing-complet aide.


5 commentaires

Ne pas être durcir - complète à peu près disqualifie une langue en tant que langage de programmation.


@Martin: Pas entièrement vrai. Un langage de programmation peut être parfaitement utile pour des types spécifiques de calcul ou de traitement, mais incapable de tâches générales. Non-Turing-complet n'implique pas nécessairement incapable de calcul utile.


@Jon: Peut-être en théorie - mais dans la pratique, quelles langues de programmation sont là-bas qui ne sont pas complètes? Toutes les langues de non-Turing-complètes que cette question ( Stackoverflow.com/Questions/315340/... ) est venu avoir été assez académiques. Mon point est que c'est incroyablement facile de tendre complète - Autoriser les boucles sans bornes et vous êtes à peu près là-bas. Regardez des modèles en C ++ - ils ont réalisé une exhaustivité pour la compilation entièrement par accident.


@Martin B: Voir mon commentaire ci-dessous la réponse de Oded.


SQL n'est pas terminé. Avec le préprocesseur C / C ++, il est discutable - on dirait qu'ils voulaient le rendre non turicing complet. Il y a des obstacles qui ont été clairement mis à cet effet - par exemple, ne pas avoir accès à l'ancienne valeur d'une définition lorsqu'il leur écrit (rendant presque impossible l'incrémente une variable). Mais #include fichier fait une boucle sans bornes et avec compteur (ce qui n'est pas standardisé, mais pris en charge par la plupart des compilateurs), vous pouvez simuler des variables incrémentées, c'est pourquoi je discute que C'est Turing complet.



1
votes

Je ne peux pas supporter purement explicite, nominatif, typing statique, c'est-à-dire de style Java. J'ai l'impression que je ne peux que programmer efficacement dans des langues offrant au moins l'une des opérations suivantes:

  1. dactylographie de canard similaire à Python, PHP, Perl, Ruby.

  2. Un bon système de modèles prenant en charge les variadiques, statiques si, etc. (Système de modèle similaire à D), plus au moins une propagation de type (comme c # 's var mot-clé ou d' auto < / code> mot-clé). J'utilise D pendant un certain temps et son système de modèle est suffisamment bon pour que je me réfère souvent comme "dactylographie du canard compilé".

    Sans au moins un de ceux-ci, je me sens souvent comme si je suis pris dans une veste droite complète.


0 commentaires

3
votes

Soutenir les fonctions de première classe (AKA supérieure)


0 commentaires