7
votes

Y a-t-il quelque chose que Java ne peut pas faire? Mais d'autres peuvent?

Y a-t-il quelque chose que Java ne peut pas faire? Mais les autres peuvent?

Je parle de Java en tant que langage de programmation.

Ceci est juste quelque chose pour m'aider à savoir quelles autres langues de programmation je devrais également envisager d'apprendre.

EDIT: OK, je fais une programmation Java depuis de nombreuses années et j'ai parfois le sentiment que je n'aurais pas besoin d'en apprendre une autre. Java était quelque peu limitée dans les versions précédentes comme il n'y a pas d'énumérum, d'autoboxyage, de génériques et de nombreuses autres. Je pose des questions sur "Java en tant que langage de programmation" ou peut-être que nous pourrions envisager les limitations de la syntaxe de Java que vous souhaitez que cela ait. Quelque chose à propos de la syntaxe / des fonctionnalités que d'autres langues proposent mais Java ne le font pas.

Edit: Merci d'avoir fermé cela. Je souhaite cependant que j'ai reçu un peu plus de temps pour rendre ma question un peu plus claire. On dirait que c'était fermé avant que ma première modification soit faite.


9 commentaires

Que pensez-vous exactement? Cette question est assez large.


D'accord, vous devez vraiment être plus précis que cela. En outre, Java est à la fois une langue et une API (et VM), contrairement à quelque chose comme C ++ qui est utilisé dans des centaines d'environnements différents. A quoi penses-tu?


Java ne peut pas vous faire une tasse de thé - vous avez besoin d'un sac à thé (ou de préférence des feuilles lâches), une tasse (de préférence une théière) et une eau bouillante pour cela, j'ai entendu dire que Java fait une tasse de café moyenne cependant.


Qu'entendez-vous par «n'importe quoi»? Voulez-vous dire des langues-sages (c'est-à-dire que Java ne peut pas faire de Lamda Calculus (facilement)), ou voulez-vous dire que vous voulez dire du monde entier (où il est très probable que Java puisse faire tout ce que vous pouvez penser, peut-être pas toujours très facilement).


Y a-t-il quelque chose qu'un avion de ligne de passagers ne peut pas faire et un jet de cargaison peut?


@Dominic - c'est juste parce que votre conteneur de servlet ne renvoie pas 418 Je suis une théière des réponses, bien sûr. Détails de la mise en œuvre mineurs.


N'ai-je pas précisé quand je dis "Java en tant que langage de programmation?"


Non, car il reste toujours la question des fondamentaux de la langue (c.-à-d. Java peut faire des commandes de style fonctionnel ou déclaratif - il ne peut pas vraiment) ou des implémentations du monde réel utilisant la langue (c'est-à-dire que Java pourrait être utilisé pour écrire une évaluation mathématique ou une GUI FPS jeu - ça peut.)


Je ne sais pas pourquoi cette question est fermée. Cette question devrait être ouverte. Quis Custodiet Ipsos Custodes?


3 Réponses :


2
votes

Si vous voulez dire des constructions linguistiques qu'il n'a tout simplement pas besoin de regarder dans une catégorie de langue différente. Quelque chose comme Haskell est un langage fonctionnel approche le développement de logiciels de manière très différente. Ils font tous la même chose (ils tuurent tous complètes) mais ils le font de différentes manières. Java est une langue très statique. Vous pouvez même regarder Python pour voir une approche différente à cet égard.


3 commentaires

Ok, Python semble intéressant comme je l'entends presque n'importe où ...


@ Demotics2002: Python peut faire si (a ; Java ne peut pas. C'est juste un exemple simple. Je ne sais pas si ce genre de choses vous importe vraiment pour vous, cependant.


@polugenélubants: bon exemple. Juste ce que je demandais.



1
votes

C'est une question ambiguë. Si vous voulez apprendre la programmation Choisir Java serait un bon début.


2 commentaires

Java serait un bon départ? Alors quoi d'apprendre ensuite? Devrais-je considérer Java en tant que programme de démarrage et autres langues aussi avancées?


Oui, Java serait un bon début. Ne vous inquiétez pas de ce qu'il faut apprendre ensuite, car vous obtiendrez votre tête autour de Java aura au moins quelques années.



10
votes

Toutes les langues de programmation à usage général utilisent sont Turing complet , donc dans ce théorique très rigoureux sens, ils ont le même pouvoir. Il y a rien qui est calculable, disons, c #, mais pas calculable en Java.

Dans un point de vue plus pratique, cependant, oui, il y a des choses que d'autres langues peuvent faire que Java ne peut pas. Cela dépend vraiment de la façon dont vous voulez choisir vos nits. Java n'a pas de non signé 8 bits octet , java ne peut pas convertir un int sur un valeur Boolean , Java n'a pas de méthodes de première classe, Java n'a pas de passage par la sémantique de référence, etc. Aucun de ceux-ci ne vous empêcherait de faire des choses, mais ils sont néanmoins des choses que Java ne peut pas faire ces autres langues.

En ce qui concerne l'apprentissage de votre programme, Java n'est pas un mauvais choix. C'est assez pratique, mais peut être assez verbeux. Plutôt subjectivement, cependant, il existe d'autres langues plus "amusantes" pour l'apprentissage qui est tout comme si elle n'est pas plus instructive que Java.

En ce qui concerne cette remarque:

Je fais de la programmation Java depuis de nombreuses années et j'ai parfois le sentiment que je n'aurais pas besoin d'en apprendre une autre.

Je suis désolé de dire que c'est un point de vue très limité. Apprendre une autre langue peut vraiment élargir votre esprit sur la programmation à propos. Cela peut aussi être amusant.

Questions connexes


1 commentaires

Wow! Ces questions connexes seront les plus utiles. Merci.