(no subject)
Nov. 24th, 2008 10:01 pmСобственно, возвращаясь к посту про настоящего программиста. Там в комментах
cmike высказал мнение, что Java - это такой нишевый язык.
Я задумался, и понял, что ниши для Java я не представляю. Возможно, сейчас не представляю - потому что уже есть C#.
Посему вопрос: какие задачи могут быть удачнее, чем на каком-либо другом языке, решены на чем-нибудь из списка: Java, Smalltalk, Haskell, Erlang? Меня устроит, если будет какой-то другой язык близкого класса, который это позволит сделать (кроме Java - там я хотел бы видеть четкие преимущества).
Желательно - чтобы с этими задачами было реально столкнуться на не сильно извилистом пути программиста (то есть если, чтобы к такой задаче подступиться, надо 15 лет учиться на микроэлектроника, то пример не канает).
Я задумался, и понял, что ниши для Java я не представляю. Возможно, сейчас не представляю - потому что уже есть C#.
Посему вопрос: какие задачи могут быть удачнее, чем на каком-либо другом языке, решены на чем-нибудь из списка: Java, Smalltalk, Haskell, Erlang? Меня устроит, если будет какой-то другой язык близкого класса, который это позволит сделать (кроме Java - там я хотел бы видеть четкие преимущества).
Желательно - чтобы с этими задачами было реально столкнуться на не сильно извилистом пути программиста (то есть если, чтобы к такой задаче подступиться, надо 15 лет учиться на микроэлектроника, то пример не канает).
no subject
Date: 2008-12-01 11:56 pm (UTC)Извини, но та и не увидел ответа на вопрос, за счёт чего возникает поддерживаемость.
Ну кроме тезиса про минимальность концепций и парадигм. Хотя это как раз "прокрустово ложе". С тем же успехом можно утверждать, что было бу куда лучше, если бы в мире был только один язык программирования. :)
В остальном же получается что-то вроде "поддерживаемость возникает из поддерживаемости и стремления к поддерживаемости". Примеров можно? Конкретных достоинств и недостатков?
no subject
Date: 2008-12-02 01:44 am (UTC)Да, на java тоже можно в качестве основного типа в системе завести нетипизованный хэш. Но если какой-нибудь новичок это сделает, то сразу заметит, что приходится писать кучу лишнего кода (явное приведение типов), среда разработки перестала ему давать подсказки и делать автокомплит. И, ура, через некоторое время он поймет, что лучше бы все типы описать по-человечески.
И так почти на каждом шагу - язык подталкивает к более качественному коду - хотя бы в простейших случаях. Да, иногда это приводит к переусложненной иерархии классов (беда всех ООП языков в неопытных руках), но так как она статически анализируется, рефакторинг производится просто и дешево.
no subject
Date: 2008-12-02 04:45 am (UTC)А строгая типизация - палка о двух концах всё же. Не отрицаю её достоинств, но иногда от неё удобства - как от латных доспехов на балу.